Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Pesquisa de Vetor ENN (Vizinho Exato) executa um cálculo de distância exaustiva em todos os vetores indexados para garantir a recuperação dos vizinhos mais próximos com base em uma métrica de distância especificada. O ENN tem suporte em todas as camadas de cluster sem custo adicional e não requer registro.
O que é a pesquisa de vetor ENN (Vizinho Mais Próximo) exata?
A Pesquisa de Vetores ENN realiza uma comparação abrangente entre o vetor de consulta e cada vetor no conjunto de dados. Essa abordagem garante:
- Precisão Garantida: recupera os verdadeiros vizinhos mais próximos de acordo com a métrica de distância escolhida (por exemplo, distância euclidiana, similaridade de cosseno).
- Aumento da carga computacional: devido à sua natureza exaustiva, o ENN é mais intensivo em recursos e pode resultar em tempos de consulta mais longos, especialmente com grandes conjuntos de dados.
Por outro lado, a pesquisa de ANN (Vizinho Mais Próximo Aproximado) usa técnicas de indexação, como HNSW (Mundo Pequeno Navegável Hierárquico), Arquivo Invertido (IVF) ou DiskANN para agilizar as pesquisas. Embora a ANN ofereça tempos de resposta mais rápidos e melhor escalabilidade, ela pode não retornar sempre os vizinhos realmente mais próximos.
Quando você deve usar a pesquisa de vetor ENN?
Considere usar a Pesquisa de Vetor ENN nos seguintes cenários:
- Requisitos de alta precisão: para aplicativos em que os resultados precisos de top-k são críticos, como sistemas de recomendação confidenciais ou pesquisas científicas, a ENN garante a precisão máxima.
- Tamanho do conjunto de dados gerenciável: ao lidar com conjuntos de dados menores ou quando as restrições de desempenho são menos rigorosas, a natureza exaustiva do ENN é viável.
- Filtragem de baixa seletividade: se aplicar filtros que resultam em um subconjunto relativamente pequeno de dados, o ENN poderá executar comparações exaustivas com eficiência dentro desse subconjunto.
Por exemplo: em um conjunto de dados grande que contém milhões de documentos categorizados por locatários, a execução de uma pesquisa de vetor em um locatário específico (composta por alguns milhares de vetores) pode ser efetivamente tratada pela ENN.
Como usar a pesquisa de vetor ENN
Antes de usar a Pesquisa de Vetor ENN, verifique se um índice de vetor (por exemplo, FIV, HNSW, DiskANN) foi criado para o caminho relevante. Se um índice de vetor já existir, não será necessário recompilá-lo ao alternar entre métodos de pesquisa, já que o ENN opera independentemente desses índices durante a execução da consulta.
Para habilitar o ENN, defina "exact": true em 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" }
}
}
}
}
Combinando pesquisa de vetor ENN com filtros
A Pesquisa de Vetores ENN pode ser combinada com filtros geoespaciais ou de atributo para restringir o escopo da pesquisa a um subconjunto específico de dados. Depois de aplicar o filtro, o mecanismo de pesquisa executa cálculos de distância exaustivos no subconjunto filtrado, retornando os principais k vizinhos mais próximos que atendem aos critérios de filtro.
Cenário de caso de uso
Um cliente mantém uma coleção de aproximadamente 300.000 documentos, cada um contendo um campo de vetor, um tenant_id campo (representando milhares de locatários) e outros atributos. Eles observaram que as pesquisas de vetor ANN com um tenant_id filtro eram lentas.
Ao alternar para o ENN Vector Search mantendo o mesmo filtro, o cliente obteve uma melhoria de 50% no desempenho da consulta e atingiu 100% precisão de recall.
FAQs
Como o ENN funciona em escala?
- Desempenho em conjuntos de dados grandes: o ENN pode ser mais lento para grandes conjuntos de dados sem filtragem seletiva devido à necessidade de avaliar cada vetor.
- Custo computacional mais alto: o ENN envolve a comparação do vetor de consulta com todos os vetores (ou filtrados), levando ao aumento do uso de recursos para um conjunto de dados grande.
ANN vs ENN: Qual é a diferença?
- A Pesquisa de Vetor ENN (Vizinho Exato) oferece 100% precisão comparando exaustivamente o vetor de consulta com todos os vetores indexados, tornando-o adequado para aplicativos que exigem resultados precisos ou ao lidar com conjuntos de dados menores ou subconjuntos filtrados.
- A Pesquisa aproximada de Vizinhos Mais Próximos (ANN) utiliza técnicas especializadas de indexação para fornecer respostas mais rápidas e melhor escalabilidade para grandes conjuntos de dados, embora isso possa comprometer ligeiramente a precisão.