milvus-logo
LFAI
Casa
  • Concetti

Metriche di somiglianza

In Milvus, le metriche di somiglianza sono utilizzate per misurare le somiglianze tra i vettori. La scelta di una buona metrica di distanza aiuta a migliorare notevolmente le prestazioni di classificazione e clusterizzazione.

La tabella seguente mostra come queste metriche di somiglianza ampiamente utilizzate si adattano a varie forme di dati di input e agli indici di Milvus.

Tipi di metrica Tipi di indice
  • Distanza euclidea (L2)
  • Prodotto interno (IP)
  • Somiglianza coseno (COSINE)
  • PIATTO
  • IVF_FLAT
  • FIV_SQ8
  • IVF_PQ
  • GPU_IVF_FLAT
  • GPU_IVF_PQ
  • HNSW
  • DISKANN
Tipi di metriche Tipi di indice
  • Jaccard
  • Hamming
  • BIN_FLAT
  • BIN_IVF_FLAT
Tipi metrici Tipi di indice
IP
  • INDICE SPARSE_INVERTITO
  • SPARSE_WAND

Distanza euclidea (L2)

Essenzialmente, la distanza euclidea misura la lunghezza di un segmento che collega 2 punti.

La formula della distanza euclidea è la seguente:

euclidean euclidea

dove a = (a0, a1,...,an-1) e b = (b0, b0,..., bn-1) sono due punti nello spazio euclideo n-dimensionale.

È la metrica di distanza più utilizzata ed è molto utile quando i dati sono continui.

Milvus calcola il valore prima di applicare la radice quadrata solo quando la distanza euclidea è scelta come metrica di distanza.

Prodotto interno (IP)

La distanza IP tra due incorporazioni è definita come segue:

ip ip

L'IP è più utile se si devono confrontare dati non normalizzati o se si tiene conto della magnitudine e dell'angolo.

Se si applica la metrica della distanza IP a embeddings normalizzati, il risultato sarà equivalente al calcolo della somiglianza del coseno tra gli embeddings.

Supponiamo che X' sia normalizzato dall'incorporamento X:

normalize normalizzare

La correlazione tra le due incorporazioni è la seguente:

normalization normalizzazione

Somiglianza coseno

La somiglianza coseno utilizza il coseno dell'angolo tra due insiemi di vettori per misurare la loro somiglianza. Si può pensare ai due insiemi di vettori come a due segmenti di linea che partono dalla stessa origine ([0,0,...]) ma puntano in direzioni diverse.

Per calcolare la somiglianza del coseno tra due insiemi di vettori A = (a0, a1,...,an-1) e B = (b0, b1,..., bn-1), utilizzare la seguente formula:

cosine_similarity coseno_similarità

La somiglianza del coseno è sempre nell'intervallo [-1, 1]. Ad esempio, due vettori proporzionali hanno una somiglianza di coseno pari a 1, due vettori ortogonali hanno una somiglianza pari a 0 e due vettori opposti hanno una somiglianza pari a -1. Più grande è il coseno, più piccolo è l'angolo tra due vettori, a indicare che questi due vettori sono più simili tra loro.

Sottraendo la somiglianza del coseno da 1, si ottiene la distanza del coseno tra due vettori.

Distanza di Jaccard

Il coefficiente di somiglianza di Jaccard misura la somiglianza tra due insiemi di campioni ed è definito come la cardinalità dell'intersezione degli insiemi definiti divisa per la cardinalità dell'unione degli stessi. Può essere applicato solo a insiemi di campioni finiti.

Jaccard similarity coefficient Coefficiente di somiglianza di Jaccard

La distanza di Jaccard misura la dissimilarità tra gli insiemi di dati e si ottiene sottraendo il coefficiente di somiglianza di Jaccard da 1. Per le variabili binarie, la distanza di Jaccard è equivalente al coefficiente di Tanimoto.

Jaccard distance Distanza di Jaccard

Distanza di Hamming

La distanza di Hamming misura le stringhe di dati binari. La distanza tra due stringhe di uguale lunghezza è il numero di posizioni di bit in cui i bit sono diversi.

Ad esempio, supponiamo che esistano due stringhe, 1101 1001 e 1001 1101.

11011001 ⊕ 10011101 = 01000100. Poiché questa contiene due 1, la distanza di Hamming, d (11011001, 10011101) = 2.

Somiglianza strutturale

Quando una struttura chimica si presenta come parte di una struttura chimica più grande, la prima viene chiamata sottostruttura e la seconda sovrastruttura. Ad esempio, l'etanolo è una sottostruttura dell'acido acetico e l'acido acetico è una sovrastruttura dell'etanolo.

La somiglianza strutturale viene utilizzata per determinare se due formule chimiche sono simili tra loro nel senso che una è la sovrastruttura o la sottostruttura dell'altra.

Per determinare se A è una sovrastruttura di B, utilizzare la seguente formula:

superstructure sovrastruttura

Dove:

  • A è la rappresentazione binaria di una formula chimica da recuperare
  • B è la rappresentazione binaria di una formula chimica presente nel database.

Se restituisce 0, A non è una sovrastruttura di B. Altrimenti, il risultato è opposto.

Per determinare se A è una sottostruttura di B, utilizzare la seguente formula:

substructure sottostruttura

Dove:

  • A è la rappresentazione binaria di una formula chimica da recuperare
  • B è la rappresentazione binaria di una formula chimica nel database.

Se la formula restituisce 0, A non è una sottostruttura di B. Altrimenti, il risultato è il contrario.

FAQ

Perché il risultato top1 di una ricerca vettoriale non è il vettore di ricerca stesso, se il tipo di metrica è il prodotto interno?Questo accade se non si sono normalizzati i vettori quando si usa il prodotto interno come metrica di distanza.
Che cos'è la normalizzazione? Perché è necessaria la normalizzazione?

La normalizzazione si riferisce al processo di conversione di un incorporamento (vettore) in modo tale che la sua norma sia uguale a 1. Se si utilizza il prodotto interno per calcolare le somiglianze tra gli incorporamenti, è necessario normalizzare gli incorporamenti. Dopo la normalizzazione, il prodotto interno è uguale alla somiglianza del coseno.

Per ulteriori informazioni, consultare Wikipedia.

Perché si ottengono risultati diversi utilizzando la distanza euclidea (L2) e il prodotto interno (IP) come metrica di distanza?Controllare se i vettori sono normalizzati. In caso contrario, è necessario normalizzare prima i vettori. In teoria, le somiglianze elaborate con L2 sono diverse da quelle elaborate con IP, se i vettori non sono normalizzati.

Cosa succede dopo

Tradotto daDeepLogo

Feedback

Questa pagina è stata utile?