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 le metriche di somiglianza più diffuse si adattano a varie forme di dati di input e agli indici di Milvus. Attualmente Milvus supporta vari tipi di dati, tra cui embeddings in virgola mobile (spesso noti come vettori in virgola mobile o vettori densi), embeddings binari (noti anche come vettori binari) e embeddings sparsi (noti anche come vettori sparsi).
Tipi di metriche | Tipi di indice |
---|---|
|
|
Tipi di metriche | Tipi di indice |
---|---|
|
|
Tipi metrici | Tipi di indice |
---|---|
IP |
|
Distanza euclidea (L2)
Essenzialmente, la distanza euclidea misura la lunghezza di un segmento che collega 2 punti.
La formula della distanza euclidea è la seguente:
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.
Prodotto interno (IP)
La distanza IP tra due incorporazioni vettoriali è definita come segue:
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 di distanza IP alle incorporazioni normalizzate, il risultato sarà equivalente al calcolo della somiglianza del coseno tra le incorporazioni.
Supponiamo che X' sia normalizzato dall'incorporamento X:
normalizzare
La correlazione tra le due incorporazioni è la seguente:
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:
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, minore è l'angolo tra due vettori, il che indica 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.
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.
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:
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:
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 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
- Per saperne di più sui tipi di indice supportati in Milvus.