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 |
|
|
| 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étriqueBM25
que 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 supérieure 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] |
| 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, ∞) |
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.
Formule de la distance 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 du produit intérieur
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 du produit intérieur normalisé
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.
Formule de similarité en cosinus
La similitude du 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 JACCARD
Le coefficient de similarité 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 de JACCARD
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, BM25 utilise le paramètre de saturation k1 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.
Formule de similarité BM25
Description des paramètres.
Q
: Le texte de la requête fourni par l'utilisateur.D
: Le document à évaluer.TF(qi,D)
: La fréquence des termes, qui représente la fréquence d'apparition du termeqi
dans le documentD
.IDF(qi)
: Fréquence inverse du document, calculée comme suit.Formule IDF
où
N
est le nombre total de documents dans le corpus, etn(qi)
est le nombre de documents contenant le terme qi.∣D∣
: Longueur du documentD
(nombre total de termes).avgdl
: Longueur moyenne de tous les documents du corpus.k1
: 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.