paint-brush
Uma análise de 5 casos de uso para pesquisa vetorial de grandes empresas de tecnologiapor@rocksetcloud
7,167 leituras
7,167 leituras

Uma análise de 5 casos de uso para pesquisa vetorial de grandes empresas de tecnologia

por Rockset12m2024/05/03
Read on Terminal Reader

Muito longo; Para ler

Um mergulho profundo em 5 primeiros adotantes da pesquisa vetorial – Pinterest, Spotify, eBay, Airbnb e Doordash – que integraram IA em seus aplicativos.
featured image - Uma análise de 5 casos de uso para pesquisa vetorial de grandes empresas de tecnologia
Rockset HackerNoon profile picture


Muitas organizações com as quais conversamos estão na fase de exploração do uso de pesquisa vetorial para personalização, recomendações, pesquisa semântica e detecção de anomalias baseadas em IA. As recentes e astronômicas melhorias na precisão e acessibilidade de grandes modelos de linguagem (LLMs), incluindo BERT e OpenAI, fizeram as empresas repensarem como construir experiências relevantes de pesquisa e análise.


Neste blog, capturamos histórias de engenharia de 5 primeiros adotantes da pesquisa vetorial – Pinterest, Spotify, eBay, Airbnb e Doordash – que integraram IA em seus aplicativos. Esperamos que essas histórias sejam úteis para as equipes de engenharia que estão pensando em todo o ciclo de vida da pesquisa vetorial, desde a geração de incorporações até as implantações de produção.

O que é pesquisa vetorial?

A pesquisa vetorial é um método para encontrar e recuperar com eficiência itens semelhantes de um grande conjunto de dados com base em representações dos dados em um espaço de alta dimensão. Neste contexto, os itens podem ser qualquer coisa, como documentos, imagens ou sons, e são representados como incorporações vetoriais. A similaridade entre itens é calculada usando métricas de distância, como similaridade de cosseno ou distância euclidiana , que quantificam a proximidade de dois embeddings vetoriais.


O processo de pesquisa vetorial geralmente envolve:


  • Gerando embeddings : onde recursos relevantes são extraídos dos dados brutos para criar representações vetoriais usando modelos como word2vec , BERT ou Universal Sentence Encoder
  • Indexação : os embeddings de vetores são organizados em uma estrutura de dados que permite uma pesquisa eficiente usando algoritmos como FAISS ou HNSW
  • Pesquisa vetorial : onde os itens mais semelhantes a um determinado vetor de consulta são recuperados com base em uma métrica de distância escolhida, como similaridade de cosseno ou distância euclidiana


Para visualizar melhor a pesquisa vetorial, podemos imaginar um espaço 3D onde cada eixo corresponde a uma característica. O tempo e a posição de um ponto no espaço são determinados pelos valores desses recursos. Neste espaço, os itens semelhantes estão localizados mais próximos e os itens diferentes estão mais distantes.


GITHUB JULIE-MILLS

 ^ | x Item 1 | / | / | /x Item 2 | / | / | /x Item 3 | / | / | / +------------------->


Dada uma consulta, podemos encontrar os itens mais semelhantes no conjunto de dados. A consulta é representada como uma incorporação de vetor no mesmo espaço que a incorporação do item, e a distância entre a incorporação da consulta e a incorporação de cada item é calculada. Os embeddings de itens com menor distância até o embedding da consulta são considerados os mais semelhantes.


 Query item: x | ^ | | x Item 1| | / | | / | | /x Item 2 | | / | | / | | /x Item 3 | | / | | / | | / | +------------------->


Esta é obviamente uma visualização simplificada, pois a pesquisa vetorial opera em espaços de alta dimensão.


Nas próximas seções, resumiremos cinco blogs de engenharia sobre pesquisa vetorial e destacaremos as principais considerações de implementação. Os blogs de engenharia completos podem ser encontrados abaixo:



Pinterest: pesquisa e descoberta de interesse

O Pinterest usa pesquisa vetorial para pesquisa e descoberta de imagens em diversas áreas de sua plataforma, incluindo conteúdo recomendado no feed inicial, pins relacionados e pesquisa usando um modelo de aprendizagem multitarefa.


Diferentes interações do usuário e pontos de dados usados para formar incorporações de vetores no Pinterest.


Um modelo multitarefa é treinado para executar múltiplas tarefas simultaneamente, muitas vezes compartilhando representações ou recursos subjacentes, o que pode melhorar a generalização e a eficiência em tarefas relacionadas. No caso do Pinterest, a equipe treinou e utilizou o mesmo modelo para direcionar conteúdo recomendado no homefeed, pins relacionados e busca.


O Pinterest treina o modelo emparelhando a consulta de pesquisa do usuário (q) com o conteúdo em que eles clicaram ou os pins que salvaram (p). Veja como o Pinterest criou os pares (q,p) para cada tarefa:


  • Pins relacionados : os embeddings de palavras são derivados do assunto selecionado (q) e do pin clicado ou salvo pelo usuário (p).

  • Pesquisa : os embeddings de palavras são criados a partir do texto da consulta de pesquisa (q) e do alfinete clicado ou salvo pelo usuário (p).

  • Homefeed : os embeddings de palavras são gerados com base no interesse do usuário (q) e no pin clicado ou salvo pelo usuário (p).


Para obter uma incorporação geral da entidade, o Pinterest calcula a média das incorporações de palavras associadas para pins relacionados, pesquisa e feed inicial.


O Pinterest criou e avaliou seu próprio Pintext-MTL (aprendizagem multitarefa) supervisionado em relação a modelos de aprendizagem não supervisionados, incluindo GloVe, word2vec, bem como um modelo de aprendizagem de tarefa única, PinText-SR de precisão. PinText-MTL teve maior precisão do que outros modelos de incorporação, o que significa que teve uma proporção maior de previsões positivas verdadeiras entre todas as previsões positivas.

A precisão de diferentes modelos de incorporação avaliados pelo Pinterest. Esta tabela de resultados foi retirada do blog PinText: A Multitask Text Embedding System in Pinterest.



O Pinterest também descobriu que os modelos de aprendizagem multitarefa tinham um recall maior ou uma proporção maior de instâncias relevantes corretamente identificadas pelo modelo, tornando-os mais adequados para pesquisa e descoberta.


Para juntar tudo isso em produção, o Pinterest possui um modelo multitarefa treinado em streaming de dados do homefeed, pesquisa e pins relacionados. Depois que o modelo é treinado, os embeddings de vetores são criados em um grande trabalho em lote usando Kubernetes+Docker ou um sistema de redução de mapa. A plataforma constrói um índice de pesquisa de incorporações de vetores e executa uma pesquisa por K-vizinhos mais próximos (KNN) para encontrar o conteúdo mais relevante para os usuários. Os resultados são armazenados em cache para atender aos requisitos de desempenho da plataforma Pinterest.


A pilha de dados para pesquisa vetorial no Pinterest.



Spotify: pesquisa de podcast

O Spotify combina pesquisa por palavra-chave e semântica para recuperar resultados relevantes de episódios de podcast para os usuários. Como exemplo, a equipe destacou as limitações da pesquisa por palavra-chave para a consulta “impacto climático dos carros elétricos”, uma consulta que rendeu 0 resultados, embora existam episódios de podcast relevantes na biblioteca do Spotify. Para melhorar o recall, a equipe do Spotify usou o vizinho mais próximo aproximado (ANN) para uma pesquisa rápida e relevante de podcast.


Uma pesquisa atual por “impacto climático dos carros elétricos” no Spotify.


A equipe gera embeddings vetoriais usando o modelo CMLM do Universal Sentence Encoder, pois é multilíngue, oferece suporte a uma biblioteca global de podcasts e produz embeddings vetoriais de alta qualidade. Outros modelos também foram avaliados, incluindo o BERT , um modelo treinado em um grande corpus de dados de texto, mas descobriu que o BERT era mais adequado para incorporação de palavras do que para incorporação de frases e foi pré-treinado apenas em inglês.


O Spotify constrói os embeddings vetoriais com o texto da consulta sendo o embedding de entrada e uma concatenação de campos de metadados textuais, incluindo título e descrição para os embeddings de episódios de podcast. Para determinar a semelhança, o Spotify mediu a distância cosseno entre a consulta e os embeddings do episódio.


Para treinar o modelo CMLM básico do Universal Sentence Encoder, o Spotify usou pares positivos de pesquisas e episódios de podcast bem-sucedidos. Eles incorporaram negativos em lote, uma técnica destacada em artigos como Dense Passage Retrieval for Open-Domain Question Answering (DPR) e Que2Search: consulta rápida e precisa e compreensão de documentos para pesquisa no Facebook , para gerar pares negativos aleatórios. Os testes também foram realizados usando consultas sintéticas e consultas escritas manualmente.


Para incorporar a pesquisa vetorial ao fornecimento de recomendações de podcast em produção, o Spotify usou as seguintes etapas e tecnologias:


  • Indexar vetores de episódios : o Spotify indexa os vetores de episódios offline em lote usando Vespa , um mecanismo de busca com suporte nativo para RNA. Uma das razões pelas quais a Vespa foi escolhida é que ela também pode incorporar filtragem de metadados pós-pesquisa em recursos como popularidade de episódios.

  • Inferência online : o Spotify usa o Google Cloud Vertex AI para gerar um vetor de consulta. A Vertex AI foi escolhida por seu suporte à inferência de GPU, que é mais econômica ao usar grandes modelos de transformadores para gerar embeddings, e por seu cache de consulta. Depois que a incorporação do vetor de consulta é gerada, ela é usada para recuperar os 30 principais episódios de podcast da Vespa.


A pesquisa semântica contribui para a identificação de episódios de podcast pertinentes, mas não é capaz de suplantar totalmente a pesquisa por palavras-chave. Isso se deve ao fato de que a pesquisa semântica fica aquém da correspondência exata do termo quando os usuários pesquisam um episódio exato ou nome de podcast. O Spotify emprega uma abordagem de busca híbrida, mesclando a busca semântica na Vespa com a busca por palavras-chave no Elasticsearch , seguida de uma etapa conclusiva de reclassificação para estabelecer os episódios exibidos aos usuários.


O fluxo de trabalho para pesquisa vetorial no Spotify.


eBay: pesquisa de imagens

Tradicionalmente, os motores de busca exibem resultados alinhando o texto da consulta de pesquisa com descrições textuais de itens ou documentos. Este método depende extensivamente da linguagem para inferir preferências e não é tão eficaz na captura de elementos de estilo ou estética. O eBay apresenta a pesquisa de imagens para ajudar os usuários a encontrar itens relevantes e semelhantes que atendam ao estilo que procuram.


O eBay usa um modelo multimodal projetado para processar e integrar dados de múltiplas modalidades ou tipos de entrada, como texto, imagens, áudio ou vídeo, para fazer previsões ou executar tarefas. O eBay incorpora texto e imagens em seu modelo, produzindo embeddings de imagens utilizando um modelo de Rede Neural Convolucional (CNN), especificamente Resnet-50 , e embeddings de títulos usando um modelo baseado em texto, como o BERT . Cada listagem é representada por uma incorporação vetorial que combina a incorporação da imagem e do título.


Uma representação do modelo de incorporação multimodal usado no eBay.



Depois que o modelo multimodal for treinado usando um grande conjunto de dados de pares de listagens de títulos de imagens e listagens vendidas recentemente, é hora de colocá-lo em produção na experiência de pesquisa do site. Devido ao grande número de listagens no eBay, os dados são carregados em lotes no HDFS, o data warehouse do eBay. O eBay usa o Apache Spark para recuperar e armazenar a imagem e os campos relevantes necessários para o processamento posterior das listagens, incluindo a geração de incorporações de listagens. Os embeddings de listagem são publicados em um armazenamento colunar como o HBase, que é bom para agregar dados em grande escala. A partir do HBase, a incorporação da listagem é indexada e veiculada no Cassini, mecanismo de busca criado no eBay.


O fluxo de trabalho para pesquisa vetorial no eBay.


O pipeline é gerenciado usando Apache Airflow, que é capaz de escalar mesmo quando há grande quantidade e complexidade de tarefas. Ele também fornece suporte para Spark, Hadoop e Python, tornando-o conveniente para a equipe de aprendizado de máquina adotar e utilizar.


A pesquisa visual permite que os usuários encontrem estilos e preferências semelhantes nas categorias de móveis e decoração, onde o estilo e a estética são fundamentais nas decisões de compra. No futuro, o eBay planeja expandir a pesquisa visual em todas as categorias e também ajudar os usuários a descobrir itens relacionados para que possam estabelecer a mesma aparência em sua casa.

AirBnb: listagens personalizadas em tempo real

Os recursos de pesquisa e listagens semelhantes geram 99% das reservas no site AirBnb. O AirBnb desenvolveu uma técnica de incorporação de listagens para melhorar recomendações de listagens semelhantes e fornecer personalização em tempo real nas classificações de pesquisa.


O AirBnb percebeu desde o início que poderia expandir a aplicação de embeddings além de apenas representações de palavras, abrangendo também os comportamentos do usuário, incluindo cliques e reservas.


Para treinar os modelos de incorporação, o AirBnb incorporou mais de 4,5 milhões de listagens ativas e 800 milhões de sessões de pesquisa para determinar a similaridade com base em quais listagens um usuário clica e pula em uma sessão. As listagens que foram clicadas pelo mesmo usuário em uma sessão são aproximadas; as listagens que foram ignoradas pelo usuário são empurradas para mais longe. A equipe decidiu pela dimensionalidade de uma incorporação de listagem de d=32, dada a compensação entre o desempenho offline e a memória necessária para a veiculação online.


O AirBnb descobriu que certas características dos anúncios não requerem aprendizado, pois podem ser obtidas diretamente dos metadados, como preço. No entanto, atributos como arquitetura, estilo e ambiente são consideravelmente mais difíceis de derivar dos metadados.


Antes de passar para a produção, o AirBnb validou seu modelo testando até que ponto o modelo recomendava listagens que um usuário realmente reservou. A equipe também executou um teste A/B comparando o algoritmo de listagem existente com o algoritmo baseado em incorporação de vetor. Eles descobriram que o algoritmo com incorporações de vetores resultou em um aumento de 21% na CTR e um aumento de 4,9% no número de usuários que descobriram uma listagem que reservaram.


A equipe também percebeu que a incorporação de vetores poderia ser usada como parte do modelo para personalização em tempo real na pesquisa. Para cada usuário, eles coletaram e mantiveram em tempo real, usando Kafka, um histórico de curto prazo de cliques e pulos de usuários nas últimas duas semanas. Para cada pesquisa realizada pelo usuário, eles realizaram duas pesquisas por similaridade:


  • com base nos mercados geográficos que foram pesquisados recentemente e depois

  • a semelhança entre as listagens de candidatos e aquelas em que o usuário clicou/ignorou


Os embeddings foram avaliados em experimentos offline e online e passaram a fazer parte dos recursos de personalização em tempo real.


Doordash: feeds de loja personalizados

Doordash tem uma grande variedade de lojas nas quais os usuários podem escolher fazer pedidos e poder exibir as lojas mais relevantes usando preferências personalizadas melhora a pesquisa e a descoberta.


A Doordash queria aplicar informações latentes aos algoritmos de feed de sua loja usando incorporações de vetores. Isso permitiria ao Doordash descobrir semelhanças entre lojas que não estavam bem documentadas, incluindo se uma loja tem itens doces, é considerada moderna ou oferece opções vegetarianas.


Doordash usou um derivado do word2vec, um modelo de incorporação usado no processamento de linguagem natural, chamado store2vec, que foi adaptado com base nos dados existentes. A equipe tratou cada loja como uma palavra e formou frases a partir da lista de lojas visualizadas durante uma única sessão do usuário, com limite máximo de 5 lojas por frase. Para criar embeddings de vetores de usuários, o Doordash somou os vetores das lojas nas quais os usuários fizeram pedidos nos últimos 6 meses ou até 100 pedidos.


Por exemplo, o Doordash usou a pesquisa vetorial para encontrar restaurantes semelhantes para um usuário com base em suas compras recentes nos restaurantes populares e modernos 4505 Burgers e New Nagano Sushi em São Francisco. Doordash gerou uma lista de restaurantes semelhantes medindo a distância do cosseno da incorporação do usuário para armazenar incorporações na área. Você pode ver que as lojas mais próximas em distância cosseno incluem Kezar Pub e Wooden Charcoal Korean Village BBQ.


Um exemplo de pesquisa vetorial no Doordash retirado do blog Personalized Store Feed with Vector Embeddings.


O Doordash incorporou o recurso de distância store2vec como um dos recursos em seu modelo maior de recomendação e personalização. Com a pesquisa vetorial, o Doordash conseguiu observar um aumento de 5% na taxa de cliques. A equipe também está experimentando novos modelos como seq2seq , otimizações de modelo e incorporação de dados de atividades dos usuários no local em tempo real.


Principais considerações para pesquisa vetorial

Pinterest, Spotify, eBay, Airbnb e Doordash criam melhores experiências de pesquisa e descoberta com pesquisa vetorial. Muitas dessas equipes começaram a usar a pesquisa de texto e encontraram limitações na pesquisa difusa ou em pesquisas de estilos ou estéticas específicas. Nesses cenários, adicionar a pesquisa vetorial à experiência tornou mais fácil encontrar podcasts, travesseiros, aluguéis, pins e restaurantes relevantes e muitas vezes personalizados.


Existem algumas decisões tomadas por essas empresas que valem a pena serem destacadas ao implementar a pesquisa vetorial:


  • Incorporação de modelos : muitos começaram usando um modelo pronto para uso e depois o treinaram com seus próprios dados. Eles também reconheceram que modelos de linguagem como o word2vec poderiam ser usados trocando palavras e suas descrições com itens e itens semelhantes que foram clicados recentemente. Equipes como o AirBnb descobriram que o uso de modelos derivados de linguagem, em vez de modelos de imagem, ainda poderia funcionar bem para capturar semelhanças e diferenças visuais.
  • Treinamento : muitas dessas empresas optaram por treinar seus modelos com base em dados de compras anteriores e cliques, fazendo uso de conjuntos de dados existentes em grande escala.
  • Indexação : embora muitas empresas tenham adotado a pesquisa ANN, vimos que o Pinterest foi capaz de combinar a filtragem de metadados com a pesquisa KNN para obter eficiência em escala.
  • Pesquisa híbrida : a pesquisa vetorial raramente substitui a pesquisa de texto. Muitas vezes, como no exemplo do Spotify, um algoritmo de classificação final é usado para determinar se a pesquisa vetorial ou a pesquisa de texto gerou o resultado mais relevante.
  • Produção : estamos vendo muitas equipes usarem sistemas baseados em lote para criar embeddings vetoriais, já que esses embeddings raramente são atualizados. Eles empregam um sistema diferente, frequentemente o Elasticsearch, para calcular a incorporação do vetor de consulta ao vivo e incorporar metadados em tempo real em sua pesquisa.


Rockset, um banco de dados de pesquisa e análise em tempo real, adicionou recentemente suporte para pesquisa vetorial . Experimente a pesquisa vetorial no Rockset para personalização em tempo real, recomendações, detecção de anomalias e muito mais, iniciando hoje mesmo um teste gratuito com US$ 300 em créditos.