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 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
  • 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 vettoriali è 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 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:

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, 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.

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 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

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?