Pesquisa de vetores

O que é a pesquisa de similaridade vetorial?

Visão geral da pesquisa de similaridade vetorial

A pesquisa de similaridade vetorial é uma técnica que encontra conteúdo ou dados semelhantes de acordo com suas representações vetoriais. Imagine cada dado como uma coleção de números organizados de uma maneira específica. Ao comparar essas coleções de números, podemos pesquisar rapidamente conteúdo ou dados semelhantes em conjuntos de dados maiores. É como encontrar livros semelhantes em uma biblioteca comparando seus códigos exclusivos ou imagens semelhantes comparando seus valores de pixel. Continue lendo para saber mais sobre a pesquisa de similaridade de vetores, suas aplicações e como a distância entre vetores é medida.

Como funciona a pesquisa de similaridade vetorial

A pesquisa de similaridade vetorial é amplamente usada na recuperação de informações, aprendizado de máquina, sistemas de recomendação e visão computacional. Vamos explorar como ela funciona.

Representação vetorial

Na pesquisa de similaridade vetorial, representamos dados como documentos, imagens ou produtos como vetores em um espaço com muitas dimensões. Cada dimensão representa uma característica ou atributo específico dos dados. Por exemplo, em um sistema de pesquisa de documentos, cada dimensão poderia representar uma palavra ou um termo. Com esse método de organização, podemos comparar vetores e encontrar dados semelhantes. Essa abordagem torna a pesquisa mais eficaz porque capturamos características importantes dos dados em um formato estruturado e mensurável.

Indexação

Para tornar as pesquisas de similaridade mais rápidas e eficientes, criamos uma estrutura de índice que organiza os vetores. Pense no índice como uma maneira especial de organizar os dados que nos permite encontrar rapidamente vetores semelhantes sem comparar cada par no conjunto de dados. A indexação é particularmente útil ao lidar com grandes quantidades de dados, pois acelera significativamente o processo de pesquisa. Com o índice, podemos encontrar vetores relevantes muito mais rapidamente, economizando tempo e recursos.

Distância métrica

Usamos uma métrica de distância para determinar o quanto os vetores são semelhantes ou diferentes (falaremos mais sobre métricas de distância na próxima seção). Essa métrica calcula a distância ou a dissimilaridade entre dois vetores no espaço de alta dimensão. Há diferentes métricas de distância disponíveis, como distância euclidiana, similaridade de cosseno e similaridade de produto escalar. A escolha da métrica de distância a ser usada depende da natureza dos dados e das necessidades específicas do aplicativo. Cada métrica de distância tem seus pontos fortes e é adequada para diferentes tipos de dados. 

Criação do índice

Os vetores e a métrica de distância escolhida são usados para criar a estrutura de índice. Diferentes tipos de estruturas de índice podem ser empregados, incluindo árvores k-d, árvores de bolas, Árvores VPou árvores de projeção aleatória. Essas estruturas dividem o espaço de alta dimensão em regiões menores, permitindo uma pesquisa eficiente ao restringir o espaço de pesquisa. A organização dos vetores dessa forma nos permite localizar rapidamente vetores semelhantes sem comparar todos os pares possíveis. A estrutura de índice funciona como um roteiro, orientando o processo de pesquisa e acelerando-o significativamente, especialmente ao lidar com grandes conjuntos de dados.

Consulta

Para encontrar vetores semelhantes, começamos com um vetor de consulta que representa o objeto no qual estamos interessados. O vetor de consulta é então comparado com os vetores indexados usando a métrica de distância escolhida. A estrutura do índice desempenha um papel fundamental nesse processo, orientando a pesquisa. Ela direciona a pesquisa para regiões relevantes do espaço de alta dimensão, o que ajuda a reduzir o número de comparações de vetores necessárias. Ao aproveitar a estrutura do índice, podemos localizar com eficiência vetores semelhantes sem comparar o vetor de consulta com cada vetor do conjunto de dados. Essa abordagem economiza tempo e recursos computacionais, tornando o processo de pesquisa mais rápido e eficaz.

Classificação e recuperação

Depois de comparar o vetor de consulta com os vetores indexados usando a métrica de distância escolhida, os vetores recuperados geralmente são classificados com base em sua similaridade com o vetor de consulta. Essa classificação é determinada pelos valores de distância obtidos com a métrica de distância. Os vetores com distâncias menores em relação ao vetor de consulta são considerados mais semelhantes e recebem classificações mais altas. Por fim, os resultados da pesquisa consistem nos vetores mais semelhantes, com base na métrica de distância escolhida, que são retornados como saída final. Esse processo de classificação garante que os vetores mais relevantes e semelhantes sejam apresentados como os principais resultados da pesquisa.

Pós-processamento

Etapas adicionais de pós-processamento podem ser aplicadas aos resultados da pesquisa em determinados aplicativos com base nos requisitos do aplicativo. Por exemplo, em um sistema de recomendação, outras etapas, como algoritmos de filtragem e classificação, podem ser empregadas para personalizar as recomendações de acordo com as preferências do usuário. Essas etapas de pós-processamento ajudam a refinar e adaptar os resultados da pesquisa para atender melhor às necessidades e preferências dos usuários. Ao incorporar esses algoritmos adicionais, o sistema pode fornecer recomendações mais direcionadas e personalizadas, aprimorando a experiência geral do usuário.

Ao representar efetivamente os objetos como vetores, construir uma estrutura de índice, selecionar uma métrica de distância adequada e utilizar o índice para uma pesquisa eficiente, a pesquisa de similaridade de vetores permite a recuperação de vetores semelhantes de um espaço de alta dimensão. Os vetores recuperados são então classificados, e as etapas de pós-processamento podem ser aplicadas com base nos requisitos específicos do aplicativo.

Métricas de distância na pesquisa de similaridade de vetores

As métricas de distância são um componente essencial da pesquisa de similaridade de vetores, pois fornecem uma maneira de medir a similaridade ou a dissimilaridade entre dois vetores. Vários tipos de métricas de distância podem ser usados na pesquisa de similaridade de vetores, cada um com pontos fortes e fracos. A escolha da métrica de distância dependerá, em última análise, do aplicativo específico e do tipo de dados que está sendo analisado.

Distância Euclidiana

A distância euclidiana mede a distância em linha reta entre dois vetores em um espaço multidimensional. Ela é calculada como a raiz quadrada da soma dos quadrados das diferenças entre os elementos correspondentes dos dois vetores.

Distância L2 ao quadrado

A distância L2 ao quadrado mede a distância entre dois vetores com base na distância euclidiana. Ela é calculada como a soma dos quadrados das diferenças entre os elementos correspondentes dos dois vetores.

Similaridade do produto de pontos

A similaridade do produto escalar mede a similaridade entre dois vetores com base no produto escalar dos vetores. Ela é calculada como o produto escalar dos dois vetores.

Similaridade de cosseno

A similaridade de cosseno mede a similaridade entre dois vetores com base em seu produto escalar. Ela é calculada como o produto escalar dos dois vetores dividido pelo produto de suas magnitudes.

Similaridade Jaccard

A similaridade de Jaccard mede a similaridade entre dois conjuntos com base no tamanho de sua interseção e união. Ela é calculada como o tamanho da interseção dividido pelo tamanho da união.

Distância de Manhattan

A distância de Manhattan mede a distância entre dois vetores com base na soma das diferenças absolutas entre seus elementos correspondentes.

Distância de Hamming

A distância de Hamming mede a distância entre dois vetores com base no número de posições em que os elementos correspondentes dos vetores são diferentes.

Casos de uso para pesquisa de similaridade de vetores

Agora que já analisamos as métricas de distância vetorial, vamos explorar três casos de uso da pesquisa de similaridade vetorial: pesquisa de imagens, sistemas de recomendação e detecção de fraudes.

Pesquisa de imagens

A pesquisa de similaridade de vetores pode encontrar com eficiência imagens semelhantes em um grande banco de dados. Por exemplo, um usuário pode carregar uma imagem de consulta, e o algoritmo de pesquisa pode localizar todas as imagens no banco de dados que sejam semelhantes à imagem de consulta com base em seus recursos visuais, como cor, textura e forma. Além da pesquisa de imagens, isso pode ser usado para detecção de objetos e reconhecimento facial.

Sistemas de recomendação

A pesquisa de similaridade de vetores pode ser usada para criar sistemas de recomendação que sugerem produtos ou serviços semelhantes aos que um usuário gostou ou comprou anteriormente. Por exemplo, o histórico de compras de um usuário pode ser representado como um vetor, e o algoritmo de pesquisa pode encontrar todos os produtos no banco de dados semelhantes ao histórico de compras do usuário com base em seus recursos, como categoria, preço e marca. Essa capacidade pode ser útil em aplicativos como comércio eletrônico, streaming de música e vídeo e publicidade on-line.

Detecção de fraudes

A pesquisa de similaridade de vetores pode detectar transações fraudulentas comparando a similaridade entre uma transação de consulta e um banco de dados de transações fraudulentas conhecidas. Por exemplo, uma transação de consulta pode ser representada como um vetor, e o algoritmo de pesquisa pode encontrar todas as transações no banco de dados que sejam semelhantes à transação de consulta com base em seus recursos, como valor, local e hora do dia. Essa capacidade pode ser útil em aplicativos como detecção de fraude de cartão de crédito, detecção de fraude de seguro e detecção de lavagem de dinheiro.

Vantagens da pesquisa de similaridade de vetores

Aqui estão alguns dos principais benefícios do uso da pesquisa vetorial:

    • Pesquisa eficiente: Os algoritmos de pesquisa de similaridade de vetores são projetados para pesquisar com eficiência em grandes bancos de dados de vetores, possibilitando encontrar vetores semelhantes rapidamente. A pesquisa eficiente é especialmente útil ao lidar com grandes conjuntos de dados, nos quais os métodos de pesquisa tradicionais podem ser lentos ou impraticáveis.
    • Escalabilidade: A pesquisa de similaridade vetorial pode ser facilmente dimensionada para lidar com grandes bancos de dados, o que a torna uma ótima opção para aplicativos que processam grandes quantidades de dados. A escalabilidade é particularmente útil em aplicativos como a pesquisa de imagens ou vídeos.
    • Precisão aprimorada: A pesquisa de similaridade de vetores pode ser mais precisa do que os métodos de pesquisa tradicionais, especialmente ao pesquisar vetores com vários atributos. Isso ocorre porque os algoritmos de pesquisa de similaridade de vetores consideram a similaridade entre vetores em um espaço multidimensional, em vez de se basearem apenas em um único atributo.
    • Flexibilidade: A pesquisa de similaridade de vetores pode ser usada com uma variedade de métricas de distância, como distância euclidiana, similaridade de cosseno e similaridade de produto escalar. Isso permite que você escolha o melhor tipo de métrica de distância para o seu caso de uso específico, tornando-a uma técnica versátil para uma ampla gama de aplicações.
    • Suporte a consultas de intervalo: A pesquisa de similaridade de vetores oferece suporte a consultas de intervalo, permitindo que você pesquise vetores semelhantes a um vetor de consulta dentro de um determinado intervalo. Essa capacidade é útil em aplicativos como a pesquisa de imagens, em que você pode querer encontrar imagens semelhantes a uma imagem de consulta, mas não necessariamente idênticas.

Limitações da pesquisa de similaridade de vetores

Embora a pesquisa de similaridade de vetores seja uma técnica poderosa, ela também tem algumas limitações que devem ser consideradas. Essas limitações incluem:

    • Maldição da dimensionalidade: À medida que a dimensionalidade dos vetores aumenta, a eficácia da pesquisa de similaridade pode se degradar devido à densidade esparsa dos dados em espaços de alta dimensão.
    • Escalabilidade: O tratamento eficiente de conjuntos de dados em grande escala pode ser desafiador, exigindo técnicas avançadas de indexação e recursos de computação distribuída para manter o desempenho em tempo real.
    • Escolha da métrica de distância: A seleção de uma métrica de distância é crucial, pois métricas diferentes têm propriedades diferentes e podem gerar resultados de pesquisa diferentes.
    • Sensibilidade a ruídos e outliers: A pesquisa de similaridade vetorial pode ser sensível a pontos de dados com ruídos ou discrepantes, o que pode afetar significativamente os resultados da pesquisa.
    • Interpretabilidade: A pesquisa de similaridade de vetores pode não ter explicações intuitivas para a similaridade e pode não revelar os motivos subjacentes a ela, limitando a interpretabilidade dos resultados da pesquisa.

Essas limitações devem ser cuidadosamente consideradas ao aplicar técnicas de pesquisa de similaridade de vetores. A atenuação de seu impacto pode exigir adaptações específicas do domínio ou abordagens alternativas.

Exemplos de ferramentas de pesquisa de similaridade vetorial

Estão disponíveis várias ferramentas e bibliotecas populares que oferecem recursos de pesquisa de similaridade de vetores. Aqui estão alguns exemplos:

    1. Irritação: Annoy é uma biblioteca C++ com ligações Python que se concentra na pesquisa aproximada do vizinho mais próximo. Ela foi projetada para lidar com conjuntos de dados em grande escala de forma eficiente e oferece pesquisa rápida de similaridade usando técnicas como árvores de projeção aleatória.
    2. Faiss: Faiss é uma biblioteca para pesquisa eficiente de similaridade e agrupamento de vetores densos. Ela foi desenvolvida pelo Facebook AI Research e oferece implementações aceleradas por GPU de várias estruturas de indexação e algoritmos de pesquisa de similaridade.
    3. Milvus: O Milvus é um banco de dados vetorial de código aberto especializado em pesquisa de similaridade e gerenciamento de vetores de alta dimensão. Ele oferece recursos de pesquisa de similaridade aproximada e exata e suporta várias técnicas de indexação.
    4. Elasticsearch com o plug-in Dense Vector: O Elasticsearch, um mecanismo popular de pesquisa e análise, oferece um plug-in de vetor denso que permite a pesquisa de similaridade em vetores densos. Ele permite a indexação e a consulta de dados vetoriais usando diferentes métricas de similaridade.
    5. HNSW: O Hierarchical Navigable Small World (HNSW) é um algoritmo de indexação projetado para a pesquisa aproximada do vizinho mais próximo. Ele oferece uma pesquisa de similaridade rápida e eficiente em espaços de alta dimensão e é usado em bibliotecas como NMSLIB e o Annoy do Spotify.

Essas ferramentas e bibliotecas oferecem diferentes recursos, eficiência e flexibilidade na pesquisa de similaridade de vetores. A escolha da ferramenta depende de requisitos específicos, como tamanho do conjunto de dados, dimensionalidade, precisão desejada e recursos disponíveis.

Principais conclusões

Em resumo, a pesquisa de similaridade vetorial consiste em representar objetos como vetores em um espaço. Criamos um índice para organizar esses vetores, facilitando a localização rápida de vetores semelhantes. Usamos métricas de distância para medir a semelhança ou a diferença entre os vetores. Estruturas diferentes, como árvores, nos ajudam a pesquisar com eficiência, dividindo o espaço em partes menores. Comparamos um vetor de consulta com os vetores indexados para encontrar vetores semelhantes. Quanto mais próximos os vetores estiverem, mais semelhantes eles são considerados. Podemos refinar ainda mais os resultados usando algoritmos de filtragem e classificação. Em geral, as ferramentas de pesquisa de similaridade de vetores nos ajudam a encontrar itens semelhantes em vários aplicativos, como recomendação de produtos ou localização de imagens semelhantes.

Para saber mais sobre a pesquisa de similaridade de vetores e conceitos relacionados, dê uma olhada nos recursos a seguir:

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Marketing de produto do Couchbase

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.