Types de métriques
Les métriques de similarité sont utilisées pour mesurer les similitudes entre les vecteurs. Le choix d'une métrique de distance appropriée permet d'améliorer considérablement les performances de classification et de regroupement.
Actuellement, Milvus prend en charge les types de métriques de similarité suivants : Distance euclidienne (L2), Produit intérieur (IP), Similitude cosinus (COSINE), JACCARD, HAMMING, et BM25 (spécialement conçu pour la recherche de texte intégral sur des vecteurs épars).
Le tableau ci-dessous résume la correspondance entre les différents types de champs et les types de métriques correspondants.
Type de champ |
Plage de dimensions |
Types de métriques pris en charge |
Type métrique par défaut |
|---|---|---|---|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
Il n'est pas nécessaire de préciser la dimension. |
|
|
|
8-32,768*8 |
|
|
Pour les champs de vecteurs de type
SPARSE\_FLOAT\_VECTOR, n'utilisez le type métriqueBM25que pour la recherche en texte intégral. Pour plus d'informations, reportez-vous à la section Recherche en texte intégral.Pour les champs vectoriels de type
BINARY_VECTOR, la valeur de la dimension (dim) doit être un multiple de 8.
Le tableau ci-dessous résume les caractéristiques des valeurs de distance de similarité de tous les types de métriques pris en charge et leur plage de valeurs.
Type de métrique |
Caractéristiques des valeurs de distance de similarité |
Plage de valeurs de la distance de similarité |
|---|---|---|
|
Une valeur plus petite indique une plus grande similarité. |
[0, ∞) |
|
Une valeur plus élevée indique une plus grande similarité. |
[-1, 1] |
|
Une valeur plus élevée indique une plus grande similitude. |
[-1, 1] |
|
Une valeur plus petite indique une plus grande similarité. |
[0, 1] |
|
Estime la similarité de Jaccard à partir des bits de la signature MinHash ; plus la distance est petite, plus la similarité est grande. |
[0, 1] |
|
Une valeur plus petite indique une plus grande similarité. |
[0, dim(vector)] |
|
Score de pertinence basé sur la fréquence des termes, la fréquence inversée des documents et la normalisation des documents. |
[0, ∞) |
Pour indexer les champs vectoriels dans un champ Tableau de structures, vous devez préfixer MAX_SIM à l'ensemble des types de métriques mentionnés ci-dessus, en fonction des intégrations vectorielles stockées dans ces champs. Par exemple, pour un champ vectoriel qui stocke des intégrations vectorielles, il faut ajouter le préfixe
Pour un champ vectoriel qui stocke des intégrations vectorielles de type
FLOAT_VECTOR,FLOAT16_VECTOR,BFLOAT16_VECTOR, ouINT8_VECTOR, vous pouvez utiliserMAX_SIM_COSINE,MAX_SIM_IP, ouMAX_SIM_L2comme type métrique.Pour un champ de vecteurs qui stocke des intégrations vectorielles du type
BINARY_VECTOR, vous pouvez utiliserMAX_SIM_JACCADRouMAX_SIM_HAMMINGcomme type métrique.
Distance euclidienne (L2)
La distance euclidienne mesure essentiellement la longueur d'un segment reliant deux points.
La formule de la distance euclidienne est la suivante :
Métrique euclidienne
où a = (a0, a1,...,an-1) et b = (b0, b1,..., bn-1) sont deux points dans un espace euclidien à n dimensions.
Il s'agit de la mesure de distance la plus couramment utilisée et elle est très utile lorsque les données sont continues.
Milvus calcule uniquement la valeur avant d'appliquer la racine carrée lorsque la distance euclidienne est choisie comme mesure de distance.
Produit intérieur (PI)
La distance IP entre deux embeddings est définie comme suit :
Formule IP
Le produit intérieur est plus utile si vous devez comparer des données non normalisées ou si vous vous intéressez à la magnitude et à l'angle.
Si vous utilisez le produit intérieur pour calculer les similarités entre les embeddings, vous devez normaliser vos embeddings. Après la normalisation, le produit intérieur est égal à la similarité cosinusoïdale.
Supposons que X' soit normalisé à partir de l'intégration X :
Formule de normalisation
La corrélation entre les deux embeddings est la suivante :
Corrélation entre les embeddings
Similitude en cosinus
La similarité en cosinus utilise le cosinus de l'angle entre deux ensembles de vecteurs pour mesurer leur degré de similarité. Vous pouvez considérer les deux ensembles de vecteurs comme des segments de ligne partant du même point, tel que [0,0,...], mais pointant dans des directions différentes.
Pour calculer la similitude en cosinus entre deux ensembles de vecteurs A = (a0, a1,...,an-1) et B = (b0, b1,..., bn-1), utilisez la formule suivante :
Similitude en cosinus
La similitude en cosinus est toujours comprise dans l'intervalle [-1, 1]. Par exemple, deux vecteurs proportionnels ont un cosinus de 1, deux vecteurs orthogonaux ont un cosinus de 0 et deux vecteurs opposés ont un cosinus de -1. Plus le cosinus est grand, plus l'angle entre les deux vecteurs est petit, ce qui indique que ces deux vecteurs sont plus semblables l'un à l'autre.
En soustrayant leur cosinus de 1, on obtient la distance en cosinus entre deux vecteurs.
Distance de JACCARD
Le coefficient de distance JACCARD mesure la similarité entre deux ensembles d'échantillons et est défini comme la cardinalité de l'intersection des ensembles définis divisée par la cardinalité de leur union. Il ne peut être appliqué qu'à des ensembles d'échantillons finis.
Formule du coefficient de similarité JACCARD
La distance de JACCARD mesure la dissimilarité entre les ensembles de données et est obtenue en soustrayant le coefficient de similarité de JACCARD de 1. Pour les variables binaires, la distance de JACCARD est équivalente au coefficient de Tanimoto.
Formule de la distance JACCARD
MHJACCARD
MinHash Jaccard (MHJACCARD) est un type de métrique utilisé pour une recherche de similarité efficace et approximative sur de grands ensembles, tels que des ensembles de mots de documents, des ensembles d'étiquettes d'utilisateurs ou des ensembles de k-mer génomiques. Au lieu de comparer directement les ensembles bruts, MHJACCARD compare les signatures MinHash, qui sont des représentations compactes conçues pour estimer efficacement la similarité de Jaccard.
Cette approche est nettement plus rapide que le calcul de la similarité Jaccard exacte et est particulièrement utile dans les scénarios à grande échelle ou à haute dimension.
Type de vecteur applicable
BINARY_VECTORLes vecteurs de type MinHash sont des vecteurs de données, où chaque vecteur stocke une signature MinHash. Chaque élément correspond à la valeur de hachage minimale sous l'une des fonctions de hachage indépendantes appliquées à l'ensemble d'origine.
Définition de la distance
MHJACCARD mesure le nombre de positions qui correspondent dans deux signatures MinHash. Plus le taux de correspondance est élevé, plus les ensembles sous-jacents sont similaires.
Milvus rapporte :
- Distance = 1 - similarité estimée (taux de correspondance)
La valeur de la distance est comprise entre 0 et 1 :
0 signifie que les signatures MinHash sont identiques (similarité Jaccard estimée = 1)
1 signifie qu'il n'y a aucune correspondance à aucune position (similarité Jaccard estimée = 0).
Pour plus d'informations sur les détails techniques, voir MINHASH_LSH.
Distance de HAMMING
La distance de HAMMING mesure les chaînes de données binaires. La distance entre deux chaînes de même longueur est le nombre de positions de bits où les bits sont différents.
Par exemple, supposons qu'il y ait deux chaînes, 1101 1001 et 1001 1101.
11011001 ⊕ 10011101 = 01000100. Comme ces chaînes contiennent deux 1, la distance de HAMMING, d (11011001, 10011101) = 2.
Similitude BM25
BM25 est une méthode de mesure de la pertinence des textes largement utilisée, spécialement conçue pour la recherche de textes intégraux. Elle combine les trois facteurs clés suivants
La fréquence des termes (TF) : Mesure la fréquence d'apparition d'un terme dans un document. Bien que des fréquences plus élevées indiquent souvent une plus grande importance, le BM25 utilise le paramètre de saturation k pour éviter que des termes trop fréquents ne dominent le score de pertinence.
Fréquence inverse des documents (IDF) : Reflète l'importance d'un terme dans l'ensemble du corpus. Les termes apparaissant dans moins de documents reçoivent une valeur IDF plus élevée, ce qui indique une plus grande contribution à la pertinence.
Normalisation de la longueur des documents : Les documents plus longs ont tendance à obtenir un score plus élevé parce qu'ils contiennent plus de termes. BM25 atténue ce biais en normalisant la longueur des documents, le paramètre b contrôlant l'intensité de cette normalisation.
La notation du BM25 est calculée comme suit :
Description des paramètres :
Q : Le texte de la requête fourni par l'utilisateur.
D : le document évalué.
,: Fréquence des termes, représentant la fréquence à laquelle le terme q apparaît dans le document D.
) : Fréquence inverse du document, calculée comme suit
où N est le nombre total de documents dans le corpus, n ) est le nombre de documents contenant le terme q .
Longueur du document D (nombre total de termes).
: Longueur moyenne de tous les documents du corpus.
k: Contrôle l'influence de la fréquence des termes sur le score. Des valeurs plus élevées augmentent l'importance de la fréquence des termes. La plage typique est [1,2, 2,0], tandis que Milvus permet une plage de [0, 3].
b : contrôle le degré de normalisation de la longueur, de 0 à 1. Lorsque la valeur est 0, aucune normalisation n'est appliquée ; lorsque la valeur est 1, une normalisation complète est appliquée.