Minha IBM Efetue login Inscreva-se

O que é pesquisa vetorial?

6 de junho de 2024

Autores

Meredith Syed

Technical Content, Editorial Lead

IBM

Erika Russi

Data Scientist

IBM

O que é pesquisa vetorial?

A pesquisa vetorial é uma técnica utilizada para encontrar itens ou dados semelhantes, geralmente representados como vetores, em grandes coleções. Vetores, ou embeddings, são representações numéricas de palavras, entidades, documentos, imagens ou vídeos. Os vetores capturam as relações semânticas entre os elementos, permitindo um processamento eficiente por modelos de machine learning e aplicações de inteligência artificial. 

Pesquisa vetorial versus pesquisa tradicional

Diferentemente da pesquisa tradicional, que geralmente utiliza palavras-chave, a pesquisa vetorial baseia-se em técnicas de pesquisa por similaridade de vetores, como a pesquisa pelos k vizinhos mais próximos (k-NN), para recuperar pontos de dados semelhantes a um vetor de consulta com base em alguma métrica de distância. Os vetores capturam relações semânticas e similaridades entre pontos de dados, possibilitando uma busca semântica em vez de uma simples pesquisa por palavras-chave.

Para ilustrar a diferença entre a pesquisa tradicional por palavras-chave e a pesquisa vetorial, vamos a um exemplo. Imagine que você está procurando informações sobre a melhor pizzaria e pesquisa por "melhor pizzaria" em um motor de pesquisa tradicional. A pesquisa por palavras-chave procura por páginas que contêm exatamente as palavras "melhor", "pizza" e "pizzaria", retornando apenas resultados como "Melhor Pizzaria" ou "Pizzaria perto de mim". A pesquisa tradicional por palavras-chave foca em corresponder as palavras pesquisadas, em vez de compreender o contexto ou a intenção por trás da pesquisa.

Por outro lado, em uma pesquisa vetorial semântica, o motor de pesquisa compreende a intenção por trás da consulta. Semântica, por definição, refere-se ao significado na linguagem, ou seja, a pesquisa semântica entende o significado e o contexto de uma consulta. Nesse caso, ele procuraria por conteúdo que fale sobre pizzarias bem avaliadas ou altamente recomendadas, mesmo que as palavras exatas "melhor pizzaria" não estejam no conteúdo. Os resultados são mais relevantes em termos de contexto e podem incluir artigos ou guias que discutem pizzarias de alta qualidade em várias localidades.

Os métodos de pesquisa tradicionais geralmente representam os dados usando tokens ou funcionalidades discretas, como palavras-chave, tags ou metadados. Como mostrado no exemplo acima, esses métodos dependem de correspondências exatas para recuperar resultados relevantes. Por outro lado, a pesquisa vetorial representa os dados como vetores densos (um vetor em que a maioria ou todos os elementos são diferentes de zero) em um espaço vetorial contínuo, o espaço matemático no qual os dados são representados como vetores. Cada dimensão do vetor denso corresponde a uma característica latente ou aspecto dos dados, uma característica ou atributo subjacente que não é diretamente observado, mas inferido dos dados por meio de modelos matemáticos ou algoritmos. Essas funcionalidades latentes capturam padrões e relações ocultas nos dados, permitindo representações mais significativas e precisas dos itens como vetores em um espaço de alta dimensionalidade.

Os métodos tradicionais de busca podem enfrentar dificuldades de escalabilidade para grandes conjuntos de dados ou dados de alta dimensionalidade, devido a restrições computacionais e de memória. Em contraste, os vetores de embeddings são mais fáceis de escalar para conjuntos de dados maiores e modelos mais complexos. Diferente das representações esparsas de dados, onde a maioria dos valores são zeros ao longo das dimensões, os embeddings são representações densas em vetores, possuindo valores não nulos na maioria das dimensões. Isso permite que os embeddings armazenem mais informações em um espaço menor e de baixa dimensionalidade, reduzindo o uso de memória.Como resultado, algoritmos e modelos de aprendizado de máquina podem utilizar embeddings de forma mais eficiente, com menos recursos computacionais.

Processo de vetorização

Para esta explicação, focaremos nas representações vetoriais aplicáveis ao processamento de linguagem natural (NLP), ou seja, vetores que representam palavras, entidades ou documentos.

Iremos ilustrar o processo de vetorização vetorizando um pequeno corpus de frases: "o gato sentou-se no tapete", "o cachorro brincou no quintal" e "os pássaros cantaram nas árvores".

O primeiro passo para construir embeddings vetoriais é limpar e processar o conjunto de dados bruto. Isso pode envolver a remoção de ruídos e a padronização do texto. Para o nosso exemplo, não faremos nenhuma limpeza, pois o texto já está limpo e padronizado.

Em seguida, um modelo de embedding é escolhido para ser treinado no conjunto de dados. O modelo de embedding treinado é utilizado para gerar embeddings para cada ponto de dados no conjunto. Para dados textuais, alguns modelos de embedding populares de código aberto incluem Word2Vec, GloVe, FastText ou modelos pré-treinados baseados em transfomadores, como BERT ou RoBERTa2.

No nosso exemplo, usaremos o Word2Vec para gerar nossos embeddings.

Depois, os embeddings são armazenados em um banco de dados vetorial ou um plugin de busca vetorial para um mecanismo de busca, como o Elasticsearch. Na busca vetorial, a relevância de um resultado é estabelecida avaliando a similaridade entre o vetor de consulta, gerado ao vetorizar a consulta, e o vetor de documento, que representa os dados que estão sendo consultados. Para garantir recuperação rápida e eficiente dos embeddings com base em consultas semelhantes, índices precisam ser criados no banco de dados vetorial. Técnicas como Hierarchical Navigable Small World (HNSW) podem ser utilizadas para indexar os embeddings e facilitar a busca por similaridade no momento da consulta. O HNSW organiza o conjunto de dados, permitindo buscas rápidas pelos vizinhos mais próximos, ao agrupar vetores semelhantes durante o processo de construção do índice.

Por fim, é necessário estabelecer um mecanismo ou procedimento para gerar vetores para novas consultas. Isso geralmente envolve criar uma API ou serviço que recebe consultas de pesquisa dos usuários em tempo real, processa usando o mesmo modelo vetorial e gera uma representação vetorial correspondente. Esse vetor pode então ser usado para pesquisar no banco de dados e obter os resultados mais relevantes.

Encontrando similaridade com medições de distância e algoritmos de ANN

Na busca vetorial, a relevância é determinada medindo a similaridade entre os vetores de consulta e documento. Para comparar dois vetores e determinar sua similaridade, podem ser utilizadas métricas de distância, como a distância Euclidiana ou similaridade cosseno.3

Distância euclidiana

A distância euclidiana é uma medida da distância em linha reta entre dois pontos. É calculada como a raiz quadrada da soma das diferenças ao quadrado entre as coordenadas correspondentes dos dois pontos.

Essa fórmula pode ser estendida para espaços de maior dimensionalidade adicionando mais termos para considerar dimensões adicionais.

Similaridade de cosseno

A similaridade cosseno é uma medida de similaridade entre dois vetores em um espaço multidimensional. Ela calcula o cosseno do ângulo entre os dois vetores, indicando quão próximos eles estão alinhados entre si.

Matematicamente, a similaridade cosseno, cos(θ), entre dois vetores é calculada como o produto escalar dos dois vetores dividido pelo produto de suas magnitudes.
.

A similaridade de cosseno varia de -1 a 1, onde: 

  • 1 indica que os vetores estão perfeitamente alinhados (apontando na mesma direção),
  • 1 indica que os vetores estão perfeitamente alinhados (apontando na mesma direção), e
  • -1 indica que os vetores estão apontando em direções opostas.

A similaridade cosseno é particularmente útil ao lidar com vetores, pois foca na relação direcional entre os vetores em vez de suas magnitudes.

vizinho mais próximo aproximado (ANN)

Embora as métricas de distância mencionadas possam ser usadas para medir a similaridade vetorial, torna-se ineficiente e lento comparar todos os vetores possíveis com o vetor de consulta no momento da pesquisa por similaridade. Para resolver isso, podemos usar uma pesquisa pelo vizinho mais próximo aproximado (ANN).

Em vez de encontrar uma correspondência exata, os algoritmos ANN pesquisam eficientemente os vetores que estão aproximadamente mais próximos de uma consulta, com base em alguma métrica de distância como a distância euclidiana ou a similaridade cosseno. Ao permitir algum nível de aproximação, esses algoritmos podem reduzir significativamente o custo computacional da pesquisa pelo vizinho mais próximo sem a necessidade de calcular as similaridades dos embeddings em todo o corpus.

Um dos algoritmos de ANN mais populares são os gráficos HNSW. A estrutura hierárquica navegável do gráfico de mundo pequeno indexa o conjunto de dados e facilita a pesquisa rápida dos vizinhos mais próximos, agrupando vetores semelhantes enquanto constrói o índice. O HNSW organiza os dados em bairros, vinculando-os a conexões prováveis. Ao indexar um vetor denso, ele identifica a vizinhança adequada e suas conexões potenciais, armazenando-as em uma estrutura de grafo. Durante uma pesquisa HNSW com uma consulta de vetor denso, ele localiza o ponto de entrada da vizinhança ideal e retorna os vizinhos mais próximos.

Aplicações de pesquisa vetorial

A pesquisa vetorial tem inúmeras aplicações em diversos domínios devido à sua capacidade de recuperar eficientemente itens semelhantes com base em suas representações vetoriais. Algumas aplicações comuns da pesquisa vetorial incluem:

Recuperação de informações

A pesquisa vetorial é usada em motores de pesquisa para recuperar documentos, artigos, páginas da web ou outros conteúdos textuais com base em sua similaridade com uma consulta. Isso permite que os usuários encontrem informações relevantes mesmo que os termos exatos usados na consulta não estejam presentes nos documentos.

Geração aumentada de recuperação (RAG)

A busca vetorial desempenha um papel essencial no framework de geração aumentada de recuperação (RAG), que busca contexto relevante em grandes corpora de texto. O RAG é um framework de IA generativa que combina busca vetorial com modelos de linguagem generativa, a fim de gerar respostas mais precisas e informadas.

Nos métodos tradicionais de geração de linguagem, grandes modelos de linguagem (LLMs), como GPT (Generative Pre-trained Transformer) da OpenAI ou os modelos Granite da IBM, são usados para gerar respostas com base em um prompt de input. No entanto, esses modelos podem ter dificuldades em produzir respostas contextualmente relevantes, factualmente precisas ou atualizadas. O RAG corrige essa limitação ao incorporar uma etapa de recuperação antes da geração da resposta. Durante a etapa de recuperação, a busca vetorial é usada para identificar informações contextualmente pertinentes, como trechos ou documentos relevantes de um grande corpus de texto, que são tipicamente armazenados em um banco de dados vetorial. Em seguida, um LLM é utilizado para gerar uma resposta baseada no contexto recuperado.

Além da geração de linguagem, o RAG e a pesquisa vetorial têm outras aplicações em várias tarefas de NLP, incluindo resposta a perguntas, chatbots, sumarização e geração de conteúdo.

Procura híbrida

A pesquisa vetorial pode ser integrada em abordagens de busca híbrida para melhorar a eficácia e a flexibilidade do processo de busca. A pesquisa híbrida combina a pesquisa vetorial com outras técnicas de busca, como a busca por palavras-chave ou baseada em metadados. A pesquisa vetorial pode ser usada para recuperar itens com base em sua similaridade com uma consulta, enquanto outros métodos de pesquisa podem recuperar itens com base em correspondências exatas ou critérios específicos.

Pesquisa de vídeos e imagens

Armazenamentos vetoriais são usados em motores de busca de imagens e vídeos para indexar e recuperar conteúdo visual com base na similaridade. Embeddings de imagens e vídeos são armazenados como vetores, permitindo que os usuários busquem por imagens ou vídeos visualmente semelhantes em grandes conjuntos de dados.

Sistemas de recomendação

Os motores de recomendação em serviços de streaming, bem como em e-commerce, mídias sociais e plataformas de mídia visual, podem ser alimentados pela pesquisa vetorial. A pesquisa vetorial permite a recomendação de produtos, filmes, músicas ou outros itens com base em sua similaridade com itens com os quais os usuários já interagiram ou gostaram anteriormente.

Análise geoespacial

A busca vetorial é utilizada em aplicações de dados geoespaciais para recuperar dados espaciais, como pontos de interesse, características geográficas ou trajetórias espaciais, com base em sua proximidade ou similaridade com uma localização ou padrão de consulta. Ela possibilita buscas e análises espaciais eficientes em sistemas de informação geográfica (GIS) e serviços baseados em localização.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionadas por especialistas sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Mistura de Especialistas | Podcast

Decodificando a IA: resumo semanal das notícias

Junte-se a nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Soluções relacionadas

Soluções relacionadas

IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use IA para trabalhar em sua empresa com a experiência em IA líder do setor e com o portfólio de soluções da IBM.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real
Notas de rodapé

Bahaaldine Azarmi e Jeff Vestal, Vector Search for Practitioners with Elastic, Packt Publishing, 2023

2 Vicki Boykis, “What are embeddings,” 2023, https://vickiboykis.com/what_are_embeddings 

3 Trey Grainger, Doug Turnbull e Max Irwin, AI Powered Search, Manning Publications, 2024