Calcul de similarité cosinus
Données
| Composante a₁ | 0,5 |
|---|---|
| Composante a₂ | 0,1 |
| Composante a₃ | -0,3 |
| Composante b₁ | 0,4 |
| Composante b₂ | 0,2 |
| Composante b₃ | -0,1 |
Calcul de similarité cosinus
Calcule la similarité cosinus et l’angle entre deux vecteurs à partir de leurs composantes — la méthode de référence pour mesurer à quel point deux plongements de texte se ressemblent.
Données
Vecteur A
Vecteur B
Résultats
Saisissez une valeur pour afficher les résultats.
Détails
Similarité cosinus
La similarité cosinus mesure à quel point deux vecteurs pointent dans la même direction. Elle correspond au cosinus de l'angle qui les sépare et ne dépend donc que de leur orientation, jamais de leur longueur. Le score s'étend de moins un, pour des vecteurs orientés en sens exactement opposés, à plus un, pour des vecteurs parfaitement alignés, en passant par zéro, pour des vecteurs perpendiculaires. C'est la méthode usuelle de comparaison des plongements de texte (embeddings), où la direction d'un vecteur encode le sens tandis que sa longueur reste pour l'essentiel accessoire. Ce calculateur travaille en trois dimensions pour que les opérations restent faciles à suivre, mais la formule et son interprétation sont identiques dans les centaines ou les milliers de dimensions qu'occupe un plongement réel.
Comment elle se calcule
Deux ingrédients se combinent pour produire le score. Le produit scalaire mesure l'accord des vecteurs composante par composante, et les normes mesurent leur longueur. Pour des vecteurs et , le produit scalaire vaut
a⋅b=a1b1+a2b2+a3b3et la norme d'un vecteur est la racine carrée de la somme de ses composantes au carré,
∥a∥=a12+a22+a32Diviser le produit scalaire par les deux normes annule l'effet de la longueur et ne laisse subsister que l'angle :
cosθ=∥a∥∥b∥a⋅bL'angle lui-même s'obtient en inversant le cosinus, , ce qui est parfois plus parlant que le score brut : une similarité de 0,92 est plus difficile à se représenter qu'un angle d'environ vingt-trois degrés.
Exemple détaillé
Comparons avec . Le produit scalaire est
a⋅b=(0,5)(0,4)+(0,1)(0,2)+(−0,3)(−0,1)=0,20+0,02+0,03=0,25Les normes valent
∥a∥∥b∥=0,25+0,01+0,09=0,35=0,5916=0,16+0,04+0,01=0,21=0,4583de sorte que la similarité cosinus est
cosθ=0,5916×0,45830,25=0,27110,25=0,9221ce qui correspond à un angle de . Les deux vecteurs sont proches sans être identiques : ils penchent fortement dans le même sens, avec un peu plus de vingt degrés d'écart. Dans une recherche par plongements, un score aussi élevé signalerait une forte correspondance entre les deux éléments.
Remarques et variantes
Lorsque les vecteurs sont normalisés à une longueur unité au préalable, les deux normes valent un et la similarité cosinus se réduit au seul produit scalaire — c'est pourquoi les bases de données vectorielles stockent des plongements normalisés et classent les résultats par une simple multiplication suivie d'une addition. La similarité cosinus est aussi étroitement liée à la distance euclidienne sur la sphère unité : pour des vecteurs unitaires, une similarité cosinus plus élevée correspond toujours à une distance en ligne droite plus faible, si bien que les deux classements coïncident. Les scores ne sont comparables qu'au sein d'un même modèle de plongement ; une valeur de 0,8 issue d'un modèle ne signifie pas la même chose qu'un 0,8 issu d'un autre.
Application
La similarité cosinus est l'étape de notation qui sous-tend la recherche par plongements, fondement de la génération augmentée par la récupération. Les passages qu'elle compare sont produits par une étape de découpage — voir Calculateur de découpage RAG — puis transformés en vecteurs dont le coût est estimé par Calculateur de coût d'embeddings. Le nombre de vecteurs qu'un système doit comparer détermine la taille de l'index calculée par Calculateur de taille de base de données vectorielle.
Questions fréquentes (FAQ)
En quoi la similarité cosinus diffère-t-elle de la distance euclidienne ?
La distance euclidienne mesure l’écart en ligne droite entre les extrémités de deux vecteurs et dépend de leurs longueurs. La similarité cosinus ne mesure que l’angle entre eux et ignore totalement la longueur.
Deux plongements qui pointent dans le même sens mais diffèrent par leur norme présentent une grande distance euclidienne tout en ayant une similarité cosinus proche de 1. Pour les plongements de texte, c’est la direction qui porte le sens et la norme est surtout accessoire ; l’angle est donc généralement la comparaison la plus instructive.
Quelle plage de valeurs prend la similarité cosinus ?
Elle varie de −1 à +1. Une valeur de +1 signifie que les vecteurs pointent exactement dans la même direction, 0 signifie qu’ils sont orthogonaux et ne partagent aucune direction commune, et −1 signifie qu’ils pointent dans des directions opposées.
Les modèles de plongement sont souvent entraînés pour que les textes sans rapport se situent près de 0 et que les textes liés obtiennent des scores bien supérieurs, même si l’échelle exacte dépend du modèle, et de nombreux modèles produisent rarement des valeurs fortement négatives.
Pourquoi les recherches sur plongements utilisent-elles la similarité cosinus ?
Un plongement encode le sens sous forme de direction dans un espace à grande dimension, et deux passages ont un sens proche lorsque leurs vecteurs pointent dans des directions semblables, quelle que soit la longueur des passages. La similarité cosinus capte précisément cette comparaison fondée sur la seule direction.
Elle est aussi peu coûteuse à grande échelle : une fois les vecteurs normalisés à une longueur unitaire, la similarité cosinus se réduit à un seul produit scalaire, que les bases de données vectorielles peuvent évaluer rapidement sur des millions d’entrées.
Mentions légales
Un score de similarité cosinus n’a de sens que par rapport à d’autres scores issus du même modèle de plongement. Il n’existe pas de seuil universel marquant deux éléments comme « similaires » ; calibrez à partir d’exemples de vos propres données avant de tirer des conclusions.
Recommandations
Calculateur de coût d'embeddings
Estimez le coût ponctuel de la vectorisation d'un corpus de documents pour la recherche, à partir du nombre de documents, du nombre de jetons par document et du prix par million de jetons du modèle d'embeddings.
Calculateur de taille de base de données vectorielle
Estimez l'empreinte de stockage d'un index d'embeddings à partir du nombre de vecteurs, de la dimension des vecteurs, du nombre d'octets par valeur et du surcoût d'index ajouté par les structures de recherche du plus proche voisin approché.