milvus-logo
LFAI
Home
  • Concepts

Métriques de similarité

Dans Milvus, les métriques de similarité sont utilisées pour mesurer les similitudes entre les vecteurs. Le choix d'une bonne métrique de distance permet d'améliorer considérablement les performances de classification et de regroupement.

Le tableau suivant montre comment ces métriques de similarité largement utilisées s'adaptent à diverses formes de données d'entrée et aux index Milvus. Actuellement, Milvus prend en charge différents types de données, y compris les incorporations à virgule flottante (souvent connues sous le nom de vecteurs à virgule flottante ou de vecteurs denses), les incorporations binaires (également connues sous le nom de vecteurs binaires) et les incorporations éparses (également connues sous le nom de vecteurs épars).

Types de métriques Types d'indices
  • Distance euclidienne (L2)
  • Produit intérieur (IP)
  • Similitude cosinus (COSINE)
  • FLAT
  • IVF_FLAT
  • IVF_SQ8
  • IVF_PQ
  • GPU_IVF_FLAT
  • GPU_IVF_PQ
  • HNSW
  • DISKANN
Types de métriques Types d'indices
  • Jaccard
  • Hamming
  • BIN_FLAT
  • BIN_IVF_FLAT
Types de métriques Types d'index
IP
  • INDEX_INVERTI_SPARSE
  • SPARSE_WAND

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 :

euclidean euclidienne

a = (a0, a1,...,an-1) et b = (b0, b0,..., 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 intégrations vectorielles est définie comme suit :

ip 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 appliquez la distance IP à des intégrations normalisées, le résultat sera équivalent au calcul de la similarité cosinus entre les intégrations.

Supposons que X' soit normalisé à partir de l'intégration X :

normalize normaliser

La corrélation entre les deux embeddings est la suivante :

normalization normalisation

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 deux segments de ligne qui partent de la même origine ([0,0,...]) mais qui pointent 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 :

cosine_similarity cosinus_similarité

La similarité 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 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 similarité de 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.

Jaccard similarity coefficient Coefficient de similarité de Jaccard

La distance de Jaccard mesure la dissimilarité entre des ensembles de données et est obtenue en soustrayant le coefficient de similitude de Jaccard de 1. Pour les variables binaires, la distance de Jaccard est équivalente au coefficient de Tanimoto.

Jaccard distance 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 auxquelles 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 structurelle

Lorsqu'une structure chimique fait partie d'une structure chimique plus importante, la première est appelée sous-structure et la seconde superstructure. Par exemple, l'éthanol est une sous-structure de l'acide acétique et l'acide acétique est une superstructure de l'éthanol.

La similarité structurelle est utilisée pour déterminer si deux formules chimiques sont similaires en ce sens que l'une est la superstructure ou la sous-structure de l'autre.

Pour déterminer si A est une superstructure de B, utilisez la formule suivante :

superstructure superstructure

Où :

  • A est la représentation binaire d'une formule chimique à retrouver
  • B est la représentation binaire d'une formule chimique dans la base de données.

Si le résultat est 0, A n'est pas une superstructure de B. Dans le cas contraire, le résultat est inversé.

Pour déterminer si A est une sous-structure de B, utilisez la formule suivante :

substructure sous-structure

Où : A est la représentation binaire d'une sous-structure de B :

  • A est la représentation binaire d'une formule chimique à retrouver
  • B est la représentation binaire d'une formule chimique dans la base de données.

Si le résultat est 0, A n'est pas une sous-structure de B. Dans le cas contraire, le résultat est inversé.

FAQ

Pourquoi le premier résultat d'une recherche vectorielle n'est-il pas le vecteur de recherche lui-même, si le type de métrique est le produit intérieur ?Cela se produit si vous n'avez pas normalisé les vecteurs lorsque vous utilisez le produit intérieur comme métrique de distance.
Qu'est-ce que la normalisation ? Pourquoi la normalisation est-elle nécessaire ?

La normalisation est le processus qui consiste à convertir un encastrement (vecteur) de manière à ce que sa norme soit égale à 1. Si vous utilisez le produit intérieur pour calculer les similitudes des embeddings, vous devez normaliser vos embeddings. Après normalisation, le produit intérieur est égal à la similarité cosinusoïdale.

Voir Wikipedia pour plus d'informations.

Pourquoi est-ce que j'obtiens des résultats différents en utilisant la distance euclidienne (L2) et le produit intérieur (PI) comme métrique de distance ?Vérifiez si les vecteurs sont normalisés. Si ce n'est pas le cas, vous devez d'abord normaliser les vecteurs. En théorie, les similitudes calculées par L2 sont différentes des similitudes calculées par IP si les vecteurs ne sont pas normalisés.

Prochaines étapes

  • En savoir plus sur les types d'index pris en charge dans Milvus.

Traduit parDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?