Qu'est-ce que la similarité cosinus ?
La similarité cosinus mesure le degré de ressemblance entre deux vecteurs en s'appuyant sur l'angle qui les sépare, et non sur leur longueur. Elle renvoie une valeur comprise entre −1 et 1 : la valeur 1 indique que les vecteurs pointent exactement dans la même direction, 0 qu'ils sont orthogonaux (sans lien), et −1 qu'ils sont diamétralement opposés. On l'utilise abondamment en fouille de textes, dans les systèmes de recommandation, en recherche d'information et en apprentissage automatique pour comparer des documents, des plongements (embeddings) ou des vecteurs de caractéristiques.
Comment utiliser ce calculateur
Saisissez les composantes du vecteur A et du vecteur B sous forme de nombres séparés par des virgules. Les deux vecteurs doivent avoir le même nombre de dimensions (s'ils diffèrent, le calculateur retient la longueur la plus courte). Cliquez sur Calculer pour afficher la similarité cosinus, le produit scalaire, la norme de chaque vecteur ainsi que l'angle en degrés entre les deux vecteurs.
La formule expliquée
La similarité cosinus correspond au produit scalaire des deux vecteurs divisé par le produit de leurs normes euclidiennes :
$$\cos\theta = \frac{\vec{A} \cdot \vec{B}}{\lVert \vec{A} \rVert \, \lVert \vec{B} \rVert} = \frac{\sum_{i=1}^{n} A_i B_i}{\sqrt{\sum_{i=1}^{n} A_i^{2}} \; \sqrt{\sum_{i=1}^{n} B_i^{2}}}$$
Le produit scalaire \(\vec{A} \cdot \vec{B}\) est la somme des produits terme à terme. La norme \(\lVert \vec{A} \rVert\) est la racine carrée de la somme des composantes élevées au carré. La division par les normes normalise le résultat : il ne dépend ainsi que de la direction, et non de la longueur des vecteurs.
Exemple concret
Prenons \(A = [1, 2, 3]\) et \(B = [4, 5, 6]\). Le produit scalaire vaut $$1\cdot 4 + 2\cdot 5 + 3\cdot 6 = 4 + 10 + 18 = 32.$$ La norme de A est \(\sqrt{1+4+9} = \sqrt{14} \approx 3{,}7417\) et celle de B est \(\sqrt{16+25+36} = \sqrt{77} \approx 8{,}7750\). On obtient donc $$\cos\theta = \frac{32}{3{,}7417 \times 8{,}7750} \approx \frac{32}{32{,}8329} \approx 0{,}9746,$$ soit un angle d'environ 12,93°.
Questions fréquentes
Le résultat peut-il être négatif ? Oui. Lorsque les vecteurs pointent dans des directions à peu près opposées, la similarité cosinus est négative, et atteint −1 pour des directions exactement opposées.
Que se passe-t-il si les vecteurs n'ont pas la même longueur ? Le calculateur ne compare que les dimensions communes (celles du vecteur le plus court). Pour des résultats pertinents, utilisez des vecteurs de dimension identique.
En quoi cela diffère-t-il de la distance euclidienne ? La similarité cosinus ignore la longueur et se concentre sur l'orientation : deux vecteurs orientés dans le même sens sont parfaitement similaires, même si l'un est bien plus long que l'autre.