Tipi di metriche
Le metriche di somiglianza sono utilizzate per misurare le somiglianze tra vettori. La scelta di una metrica di distanza appropriata aiuta a migliorare notevolmente le prestazioni di classificazione e clustering.
Attualmente, Milvus supporta questi tipi di metriche di somiglianza: Distanza euclidea (L2), Prodotto interno (IP), Somiglianza coseno (COSINE), JACCARD, HAMMING e BM25 (specificamente progettato per la ricerca full text su vettori sparsi).
La tabella seguente riassume la mappatura tra i diversi tipi di campo e i corrispondenti tipi di metrica.
Tipo di campo |
Intervallo di dimensione |
Tipi di metrica supportati |
Tipo di metrica predefinito |
|---|---|---|---|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
Non è necessario specificare la dimensione. |
|
|
|
8-32,768*8 |
|
|
Per i campi vettoriali del tipo
SPARSE\_FLOAT\_VECTOR, utilizzare il tipo di metricaBM25solo quando si esegue la ricerca full text. Per ulteriori informazioni, consultare la sezione Ricerca a testo completo.Per i campi vettoriali del tipo
BINARY_VECTOR, il valore della dimensione (dim) deve essere un multiplo di 8.
La tabella seguente riassume le caratteristiche dei valori della distanza di similarità di tutti i tipi di metrica supportati e il loro intervallo di valori.
Tipo di metrica |
Caratteristiche dei valori della distanza di similarità |
Intervallo dei valori della distanza di similarità |
|---|---|---|
|
Un valore minore indica una maggiore somiglianza. |
[0, ∞) |
|
Un valore maggiore indica una maggiore somiglianza. |
[-1, 1] |
|
Un valore maggiore indica una maggiore somiglianza. |
[-1, 1] |
|
Un valore minore indica una maggiore somiglianza. |
[0, 1] |
|
Stima la somiglianza di Jaccard dai bit della firma MinHash; distanza minore = maggiore somiglianza. |
[0, 1] |
|
Un valore minore indica una maggiore somiglianza. |
[0, dim(vettore)] |
|
Attribuisce un punteggio alla rilevanza in base alla frequenza dei termini, alla frequenza dei documenti invertiti e alla normalizzazione dei documenti. |
[0, ∞) |
Per indicizzare i campi vettoriali in un campo Array of Structs, occorre aggiungere il prefisso MAX_SIM all'insieme dei tipi di metrica menzionati sopra, in base alle incorporazioni vettoriali memorizzate in tali campi. Ad esempio,
Per un campo vettoriale che memorizza incorporazioni vettoriali del tipo
FLOAT_VECTOR,FLOAT16_VECTOR,BFLOAT16_VECTOR, oINT8_VECTOR, si può usareMAX_SIM_COSINE,MAX_SIM_IP, oMAX_SIM_L2come tipo metrico.Per un campo vettoriale che memorizza incorporazioni vettoriali del tipo
BINARY_VECTOR, si può usareMAX_SIM_JACCADRoMAX_SIM_HAMMINGcome tipo metrico.
Distanza euclidea (L2)
In sostanza, la distanza euclidea misura la lunghezza di un segmento che collega due punti.
La formula della distanza euclidea è la seguente:
Metrica euclidea
dove a = (a0, a1,...,an-1) e b = (b0, b1,..., 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:
Formula IP
L'IP è più utile se si devono confrontare dati non normalizzati o se si tiene conto della grandezza e dell'angolo.
Se si usa l'IP per calcolare le somiglianze tra embeddings, è necessario normalizzare le embeddings. Dopo la normalizzazione, il prodotto interno equivale alla somiglianza del coseno.
Supponiamo che X' sia normalizzato dall'incorporamento X:
Formula di normalizzazione
La correlazione tra le due incorporazioni è la seguente:
Correlazione tra le incorporazioni
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 segmenti di linea che partono dallo stesso punto, come [0,0,...], ma che 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:
Similitudine del coseno
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 i 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 JACCARD
Il coefficiente di distanza 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.
Formula del coefficiente di somiglianza JACCARD
La distanza JACCARD misura la dissimilarità tra gli insiemi di dati e si ottiene sottraendo il coefficiente di somiglianza JACCARD da 1. Per le variabili binarie, la distanza JACCARD è equivalente al coefficiente Tanimoto.
Formula della distanza JACCARD
MHJACCARD
MinHash Jaccard (MHJACCARD) è un tipo di metrica utilizzata per la ricerca efficiente e approssimativa della somiglianza su insiemi di grandi dimensioni, come gli insiemi di parole dei documenti, gli insiemi di tag degli utenti o gli insiemi di k-mer genomici. Invece di confrontare direttamente gli insiemi grezzi, MHJACCARD confronta le firme MinHash, che sono rappresentazioni compatte progettate per stimare in modo efficiente la somiglianza di Jaccard.
Questo approccio è significativamente più veloce del calcolo della somiglianza di Jaccard esatta ed è particolarmente utile in scenari su larga scala o ad alta dimensionalità.
Tipo di vettore applicabile
BINARY_VECTORdove ogni vettore memorizza una firma MinHash. Ogni elemento corrisponde al valore minimo di hash secondo una delle funzioni hash indipendenti applicate all'insieme originale.
Definizione di distanza
MHJACCARD misura il numero di posizioni corrispondenti in due firme MinHash. Più alto è il rapporto di corrispondenza, più simili sono gli insiemi sottostanti.
Milvus riporta:
- Distanza = 1 - somiglianza stimata (rapporto di corrispondenza).
Il valore della distanza varia da 0 a 1:
0 significa che le firme MinHash sono identiche (somiglianza Jaccard stimata = 1)
1 significa che non ci sono corrispondenze in nessuna posizione (somiglianza di Jaccard stimata = 0).
Per informazioni sui dettagli tecnici, consultare MINHASH_LSH.
Distanza HAMMING
La distanza HAMMING misura 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, si supponga che esistano due stringhe, 1101 1001 e 1001 1101.
11011001 ⊕ 10011101 = 01000100. Dato che contiene due 1, la distanza HAMMING, d (11011001, 10011101) = 2.
Similitudine BM25
Il BM25 è un metodo di misurazione della rilevanza del testo ampiamente utilizzato, progettato specificamente per la ricerca di testi completi. Combina i seguenti tre fattori chiave:
Frequenza dei termini (TF): Misura la frequenza con cui un termine appare in un documento. Sebbene frequenze più elevate indichino spesso una maggiore importanza, BM25 utilizza il parametro di saturazione k per evitare che termini troppo frequenti dominino il punteggio di rilevanza.
Frequenza inversa del documento (IDF): Riflette l'importanza di un termine nell'intero corpus. I termini che compaiono in un minor numero di documenti ricevono un valore IDF più alto, indicando un maggiore contributo alla rilevanza.
Normalizzazione della lunghezza del documento: I documenti più lunghi tendono a ottenere un punteggio più alto perché contengono più termini. BM25 attenua questa distorsione normalizzando la lunghezza dei documenti, con il parametro b che controlla la forza di questa normalizzazione.
Il punteggio di BM25 è calcolato come segue:
Descrizione del parametro:
Q: Il testo della query fornito dall'utente.
D: Il documento da valutare.
,: Frequenza dei termini, che rappresenta la frequenza con cui il termine q appare nel documento D.
): Frequenza inversa del documento, calcolata come:
dove N è il numero totale di documenti nel corpus, n ) è il numero di documenti contenenti il termine q .
Lunghezza del documento D (numero totale di termini).
: Lunghezza media di tutti i documenti del corpus.
k: Controlla l'influenza della frequenza dei termini sul punteggio. Valori più alti aumentano l'importanza della frequenza dei termini. L'intervallo tipico è [1,2, 2,0], mentre Milvus consente un intervallo di [0, 3].
b: Controlla il grado di normalizzazione della lunghezza, che va da 0 a 1. Quando il valore è 0, non c'è alcuna normalizzazione. Quando il valore è 0, non viene applicata alcuna normalizzazione; quando il valore è 1, viene applicata una normalizzazione completa.