Ricerca vettoriale Vicino Esatto Più Prossimo (ENN) per un recupero accurato

Exact Nearest Neighbor (ENN) Vector Search esegue un calcolo completo della distanza tra tutti i vettori indicizzati per garantire il recupero dei vicini più vicini in base a una metrica di distanza specificata. ENN è supportato in tutti i livelli del cluster senza costi aggiuntivi e non richiede alcuna registrazione.

Ricerca vettoriale ENN esegue un confronto completo tra il vettore di query e ogni vettore nel set di dati. Questo approccio garantisce:

  • Accuratezza garantita: recupera i vicini più vicini reali in base alla metrica di distanza scelta (ad esempio, distanza euclidea, somiglianza del coseno).
  • Aumento del carico di calcolo: a causa della sua natura esaustiva, ENN è più intensivo delle risorse e può comportare tempi di query più lunghi, soprattutto con set di dati di grandi dimensioni.

Al contrario, la ricerca Nearest Neighbor (ANN) approssimativa usa tecniche di indicizzazione come HNSW (Hierarchical Navigable Small World), Inverted File (IVF) o DiskANN per accelerare le ricerche. Anche se ANN offre tempi di risposta più rapidi e una migliore scalabilità, potrebbe non restituire sempre i vicini più vicini assoluti.

Prendere in considerazione l'uso della ricerca vettoriale ENN negli scenari seguenti:

  • Requisiti di accuratezza elevata: per le applicazioni in cui i risultati top-k precisi sono critici, ad esempio sistemi di raccomandazione sensibili o ricerche scientifiche, ENN garantisce la massima accuratezza.
  • Dimensioni del set di dati gestibili: quando si gestiscono set di dati più piccoli o quando i vincoli di prestazioni sono meno rigorosi, la natura completa di ENN è fattibile.
  • Filtro a bassa selettività: se si applicano filtri che generano un sottoinsieme di dati relativamente piccolo, ENN può eseguire in modo efficiente confronti completi all'interno di questo subset.

Ad esempio: in un set di dati di grandi dimensioni contenente milioni di documenti classificati in base ai tenant, l'esecuzione di una ricerca vettoriale all'interno di un tenant specifico (che comprende alcune migliaia di vettori) può essere gestita in modo efficace da ENN.

Prima di usare ricerca vettoriale ENN, assicurarsi che venga creato un indice vettoriale (ad esempio, IVF, HNSW, DiskANN) per il percorso pertinente. Se esiste già un indice vettoriale, non è necessario ricompilarlo quando si passa da un metodo di ricerca all'altro, poiché ENN opera indipendentemente da questi indici durante l'esecuzione della query.

Per abilitare ENN, impostare "exact": true nella query. Per esempio:

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

Combinazione di ricerca vettoriale ENN con filtri

La ricerca vettoriale ENN può essere combinata con filtri geospaziali o attributi per restringere l'ambito della ricerca a un subset specifico di dati. Dopo aver applicato il filtro, il motore di ricerca esegue calcoli completi della distanza sul subset filtrato, restituendo i primi k vicini più vicini che soddisfano i criteri di filtro.

Scenario del caso d'uso

Un client gestisce una raccolta di circa 300.000 documenti, ognuno contenente un campo vettoriale, un tenant_id campo (che rappresenta migliaia di tenant) e altri attributi. Hanno osservato che le ricerche dei vettori ANN con un tenant_id filtro erano lente.

Passando alla ricerca vettoriale ENN mantenendo lo stesso filtro, il client ha ottenuto 50% miglioramento delle prestazioni delle query e ha raggiunto 100% accuratezza del richiamo.

FAQs

Come funziona ENN su larga scala?

  • Prestazioni nei set di dati di grandi dimensioni: ENN può essere più lento per set di dati di grandi dimensioni senza filtri selettivi a causa della necessità di valutare ogni vettore.
  • Costo computazionale superiore: ENN implica il confronto tra il vettore di query e tutti i vettori (o filtrati), con conseguente aumento dell'utilizzo delle risorse per un set di dati di grandi dimensioni.

ANN e ENN: Qual è la differenza?

  • Exact Nearest Neighbor (ENN) Vector Search offre 100% accuratezza confrontando il vettore di query con tutti i vettori indicizzati, rendendolo adatto per applicazioni che richiedono risultati precisi o quando si gestiscono set di dati più piccoli o subset filtrati.
  • La ricerca approssimativa Nearest Neighbor (ANN) utilizza tecniche di indicizzazione specializzate per fornire risposte più rapide e una migliore scalabilità per insiemi di dati di grandi dimensioni, sebbene possa ridurre leggermente l'accuratezza.

Passo successivo