Búsqueda de Vectores Exact Nearest Neighbor (ENN) para una recuperación precisa

La búsqueda de vecinos más cercanos exactos (ENN) realiza un cálculo exhaustivo de distancia en todos los vectores indexados para garantizar la recuperación de los vecinos más cercanos según una métrica de distancia específica. ENN se admite en todos los niveles de clúster sin costo adicional y no requiere registro.

La búsqueda de vectores de ENN realiza una comparación completa entre el vector de consulta y cada vector del conjunto de datos. Este enfoque garantiza:

  • Precisión garantizada: recupera los vecinos más cercanos verdaderos según la métrica de distancia elegida (por ejemplo, distancia euclidiana, similitud de coseno).
  • Mayor carga computacional: debido a su naturaleza exhaustiva, ELN es más intensivo en los recursos y puede dar lugar a tiempos de consulta más largos, especialmente con grandes conjuntos de datos.

Por el contrario, la búsqueda aproximada de vecino más cercano (ANN) utiliza técnicas de indexación como Hierarchical Navigable Small World (HNSW), Archivo Invertido (IVF) o DiskANN para acelerar las búsquedas. Aunque ANN ofrece tiempos de respuesta más rápidos y una mejor escalabilidad, es posible que no siempre devuelva los vecinos más cercanos absolutos.

Considere la posibilidad de usar la búsqueda de vectores en ENN en los escenarios siguientes:

  • Requisitos de alta precisión: en el caso de las aplicaciones en las que los resultados superiores precisos son críticos, como sistemas de recomendaciones confidenciales o investigaciones científicas, ENN garantiza la máxima precisión.
  • Tamaño de conjunto de datos administrable: al tratar con conjuntos de datos más pequeños o cuando las restricciones de rendimiento son menos estrictas, la naturaleza exhaustiva de ENN es factible.
  • Filtrado de selectividad baja: si aplica filtros que dan lugar a un subconjunto relativamente pequeño de datos, ENN puede realizar comparaciones exhaustivas de forma eficaz dentro de este subconjunto.

Por ejemplo: en un conjunto de datos grande que contiene millones de documentos clasificados por inquilinos, la realización de una búsqueda vectorial dentro de un inquilino específico (que comprende unos miles de vectores) se puede controlar eficazmente mediante ENN.

Antes de usar la búsqueda de vectores en ENN, asegúrese de que se crea un índice vectorial (por ejemplo, IVF, HNSW, DiskANN) para el camino relevante. Si ya existe un índice vectorial, no es necesario recompilarlo al cambiar entre métodos de búsqueda, ya que ENN funciona independientemente de estos índices durante la ejecución de la consulta.

Para habilitar ENN, establezca "exact": true en la consulta. Por ejemplo:

{
  "$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" }
      }
    }
  }
}

Combinación de búsqueda de vectores ENN con filtros

La búsqueda de vectores de ENN se puede combinar con filtros geoespaciales o atributos para restringir el ámbito de la búsqueda a un subconjunto específico de datos. Después de aplicar el filtro, el motor de búsqueda realiza cálculos exhaustivos de distancia en el subconjunto filtrado, devolviendo los k vecinos más cercanos que cumplen con los criterios de filtro.

Escenario de casos de uso

Un cliente mantiene una colección de aproximadamente 300 000 documentos, cada uno que contiene un campo vectorial, un tenant_id campo (que representa miles de inquilinos) y otros atributos. Observaron que las búsquedas vectoriales de ANN con un tenant_id filtro eran lentas.

Al cambiar a búsqueda de vectores en ENN mientras se mantiene el mismo filtro, el cliente obtuvo una mejora de 50% en el rendimiento de las consultas y alcanzó 100% precisión de recuperación.

FAQs

¿Cómo funciona ENN a escala?

  • Rendimiento en conjuntos de datos grandes: EL ENN puede ser más lento para grandes conjuntos de datos sin filtrado selectivo debido a la necesidad de evaluar cada vector.
  • Mayor costo computacional: ENN implica comparar el vector de consulta con todos los vectores (o filtrados), lo que conduce a un mayor uso de recursos para un conjunto de datos grande.

ANN frente a ENN: ¿Cuál es la diferencia?

  • La búsqueda de vectores de vecino más cercano exacto (ENN) ofrece una precisión del 100% al comparar exhaustivamente el vector de consulta con todos los vectores indexados, lo que lo hace adecuado para aplicaciones que requieren resultados precisos o cuando se maneja conjuntos de datos más pequeños o subconjuntos filtrados.
  • La búsqueda de vecino más cercano (ANN) utiliza técnicas de indexación especializadas para proporcionar respuestas más rápidas y una mejor escalabilidad para grandes conjuntos de datos, aunque puede poner en peligro ligeramente la precisión.

Paso siguiente