Partilhar via


Pesquisa vetorial do Vizinho Mais Próximo Exato (ENN) para uma recuperação precisa

A Pesquisa Vetorial de Vizinho Mais Próximo Exato (ENN) realiza um cálculo exaustivo de distância em todos os vetores indexados para garantir a recuperação dos vizinhos mais próximos com base numa métrica de distância especificada. O ENN é suportado em todos os níveis de cluster sem custo adicional e não requer registo.

A ENN Vector Search realiza uma comparação abrangente entre o vetor de consulta e todos os vetores do conjunto de dados. Esta abordagem assegura:

  • Precisão Garantida: Recupera os verdadeiros vizinhos mais próximos conforme a métrica de distância escolhida (por exemplo, distância euclidiana, similaridade cosseno).
  • Aumento da Carga Computacional: Devido à sua natureza exaustiva, a ENN é mais intensiva em recursos e pode resultar em tempos de consulta mais longos, especialmente com grandes conjuntos de dados.

Por outro lado, a pesquisa de Vizinho Aproximado (ANN) utiliza técnicas de indexação como Hierarchical Navigable Small World (HNSW), Inverted File (IVF) ou DiskANN para acelerar as pesquisas. Embora o ANN ofereça tempos de resposta mais rápidos e melhor escalabilidade, pode não sempre retornar os vizinhos absolutos mais próximos.

Considere usar a Pesquisa Vetorial ENN nos seguintes cenários:

  • Requisitos de Elevada Precisão: Para aplicações onde resultados top-k precisos são críticos — como sistemas de recomendação sensível ou investigação científica — a ENN assegura a máxima precisão.
  • Tamanho do Conjunto de Dados Gerível: Quando se lida com conjuntos de dados mais pequenos ou quando as restrições de desempenho são menos rigorosas, a natureza exaustiva da ENN é viável.
  • Filtragem de Baixa Seletividade: Se aplicarem filtros que resultem num subconjunto relativamente pequeno de dados, a ENN pode realizar comparações exaustivas de forma eficiente dentro deste subconjunto.

Por exemplo: Num grande conjunto de dados contendo milhões de documentos categorizados por inquilinos, realizar uma pesquisa vetorial dentro de um inquilino específico (com alguns milhares de vetores) pode ser eficazmente gerido pela ENN.

Antes de usar a Pesquisa Vetorial ENN, certifique-se de que um índice vetorial (por exemplo, IVF, HNSW, DiskANN) é criado para o caminho relevante. Se já existir um índice vetorial, não há necessidade de o reconstruir ao alternar entre métodos de pesquisa, uma vez que o ENN opera independentemente destes índices durante a execução da consulta.

Para ativar ENN, defina "exact": true na sua consulta. Por exemplo:

{
  "$search": {
    "cosmosSearch": {
      "path": "myVectorField",
      "exact": true,               // Enables ENN
      "query": [0.2, 0.4, 0.9],    // Query vector
      "k": 10,                     // Number of results to return
      "filter": {
        "tenant_id": { "$eq": "tenant123" }
      }
    }
  }
}

Combinação da Pesquisa Vetorial ENN com Filtros

A Pesquisa Vetorial ENN pode ser combinada com filtros de atributos ou geoespaciais para restringir o âmbito da pesquisa a um subconjunto específico de dados. Após aplicar o filtro, o motor de busca realiza cálculos exaustivos de distância no subconjunto filtrado, retornando os k vizinhos mais próximos que cumprem os critérios do filtro.

Cenário de Caso de Utilização

Um cliente mantém uma coleção de aproximadamente 300.000 documentos, cada um contendo um campo vetorial, um tenant_id campo (representando milhares de inquilinos) e outros atributos. Observaram que as buscas vetoriais de RNA com um tenant_id filtro eram lentas.

Ao mudar para a Pesquisa Vetorial ENN mantendo o mesmo filtro, o cliente alcançou uma melhoria de 50% no desempenho da consulta e alcançou uma precisão de recordação de 100%.

FAQs

Como é que a ENN se comporta em grande escala?

  • Desempenho em Grandes Conjuntos de Dados: A ENN pode ser mais lenta para grandes conjuntos de dados sem filtragem seletiva devido à necessidade de avaliar todos os vetores.
  • Custo Computacional Superior: A ENN envolve a comparação do vetor de consulta com todos os vetores (ou filtrados), levando a um aumento do uso de recursos para um grande conjunto de dados.

ANN vs ENN: Qual é a diferença?

  • A Pesquisa Vetorial de Vizinho Mais Próximo Exato (ENN) oferece 100% de precisão ao comparar exaustivamente o vetor de consulta com todos os vetores indexados, tornando-o adequado para aplicações que requerem resultados precisos ou quando lidam com conjuntos de dados mais pequenos ou subconjuntos filtrados.
  • A Pesquisa de Vizinho Aproximado (ANN) utiliza técnicas especializadas de indexação para fornecer respostas mais rápidas e melhor escalabilidade para grandes conjuntos de dados, embora possa comprometer ligeiramente a precisão.

Próximo passo