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

FLOAT_VECTOR

2-32,768

COSINE, L2, IP

COSINE

FLOAT16_VECTOR

2-32,768

COSINE, L2, IP

COSINE

BFLOAT16_VECTOR

2-32,768

COSINE, L2, IP

COSINE

INT8_VECTOR

2-32,768

COSINE, L2, IP

COSINE

SPARSE\_FLOAT\_VECTOR

Non è necessario specificare la dimensione.

IP, BM25 (utilizzato solo per la ricerca full text)

IP

BINARY_VECTOR

8-32,768*8

HAMMING, JACCARD, MHJACCARD

HAMMING

  • Per i campi vettoriali del tipo SPARSE\_FLOAT\_VECTOR, utilizzare il tipo di metrica BM25 solo 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à

L2

Un valore minore indica una maggiore somiglianza.

[0, ∞)

IP

Un valore maggiore indica una maggiore somiglianza.

[-1, 1]

COSINE

Un valore maggiore indica una maggiore somiglianza.

[-1, 1]

JACCARD

Un valore minore indica una maggiore somiglianza.

[0, 1]

MHJACCARD

Stima la somiglianza di Jaccard dai bit della firma MinHash; distanza minore = maggiore somiglianza.

[0, 1]

HAMMING

Un valore minore indica una maggiore somiglianza.

[0, dim(vettore)]

BM25

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, o INT8_VECTOR, si può usare MAX_SIM_COSINE, MAX_SIM_IP, o MAX_SIM_L2 come tipo metrico.

  • Per un campo vettoriale che memorizza incorporazioni vettoriali del tipo BINARY_VECTOR, si può usare MAX_SIM_JACCADR o MAX_SIM_HAMMING come 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:

Euclidean Metric 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:

IP Formula 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:

Normalize Formula Formula di normalizzazione

La correlazione tra le due incorporazioni è la seguente:

Correlation Between Embeddings 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:

Cosine Similarity 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.

JACCARD Similarity Coefficient Formula 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.

JACCARD Distance Formula 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 k1k_1 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 bb b che controlla la forza di questa normalizzazione.

Il punteggio di BM25 è calcolato come segue:

score(D,Q)=i=1nIDF(qi)TF(qi,D)(k1+1)TF(qi,D)+k1(1b+bDavgdl)score(D, Q)=\sum_{i=1}^{n}IDF(q_i)\cdot {{TF(q_i,D)\cdot(k_1+1)}\over{TF(q_i, D)+k_1\cdot(1-b+b\cdot {{|D|}\over{avgdl}})}}

Descrizione del parametro:

  • QQ Q: Il testo della query fornito dall'utente.

  • DD D: Il documento da valutare.

  • TF(qi,D)TF(q_i, D),: Frequenza dei termini, che rappresenta la frequenza con cui il termine qiq_iq appare nel documento DD D.

  • IDF(qi)IDF(q_i)): Frequenza inversa del documento, calcolata come:

    IDF(qi)=log(Nn(qi)+0.5n(qi)+0.5+1)IDF(q_i)=\log({N-n(q_i)+0.5\over n(q_i)+0.5} + 1)

    dove NN N è il numero totale di documenti nel corpus,en(qi)n(q_i) n ) è il numero di documenti contenenti il termine qiq_i q .

  • ∣D∣|D| Lunghezza del documento DD D (numero totale di termini).

  • avgdlavgdl: Lunghezza media di tutti i documenti del corpus.

  • k1k_1 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].

  • bb 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.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?