Définition
La similarité cosinus mesure à quel point deux vecteurs sont similaires en calculant le cosinus de l’angle entre eux. Les valeurs vont de -1 (opposé) à 1 (identique), avec 0 indiquant orthogonal (pas de similarité). C’est la métrique la plus courante pour comparer les embeddings de texte car elle se concentre sur la direction (sens) plutôt que la magnitude (longueur).
Pourquoi c’est important
La similarité cosinus est fondamentale pour la recherche et récupération IA moderne :
- Direction sur magnitude — capture l’orientation sémantique, pas la longueur du vecteur
- Comparaison normalisée — fonctionne avec embeddings de différentes magnitudes
- Efficacité — rapide à calculer, surtout avec bibliothèques optimisées
- Interprétabilité — facile à comprendre : 1 = même, 0 = non lié, -1 = opposé
- Métrique standard — défaut dans la plupart des bases vectorielles et APIs d’embedding
Elle permet une comparaison significative de texte, images et autres représentations embedées.
Comment ça fonctionne
┌────────────────────────────────────────────────────────────┐
│ SIMILARITÉ COSINUS │
├────────────────────────────────────────────────────────────┤
│ │
│ FORMULE: cos(θ) = (A · B) / (||A|| × ||B||) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ B │ │
│ │ / │ │
│ │ / θ = angle │ │
│ │ / │ │
│ │ / │ │
│ │ ──────────────► A │ │
│ │ │ │
│ │ cos(0°) = 1.0 → Direction identique │ │
│ │ cos(45°) ≈ 0.71 → Direction similaire │ │
│ │ cos(90°) = 0.0 → Orthogonal (non lié) │ │
│ │ cos(180°) = -1.0 → Direction opposée │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ EXEMPLE DE CALCUL: │
│ Vecteur A = [0.8, 0.6] │
│ Vecteur B = [0.6, 0.8] │
│ │
│ A · B = (0.8 × 0.6) + (0.6 × 0.8) = 0.96 │
│ ||A|| = √(0.8² + 0.6²) = 1.0 │
│ ||B|| = √(0.6² + 0.8²) = 1.0 │
│ │
│ cos(θ) = 0.96 / (1.0 × 1.0) = 0.96 → Très similaire │
│ │
└────────────────────────────────────────────────────────────┘
Comparaison avec autres métriques:
| Métrique | Formule | Quand utiliser |
|---|---|---|
| Cosinus | 1 - cos(θ) | Embeddings normalisés, similarité texte |
| Euclidienne | √Σ(a-b)² | Distances absolues importantes |
| Produit scalaire | Σ(a×b) | Vecteurs déjà normalisés |
Questions fréquentes
Q : Pourquoi cosinus au lieu de distance euclidienne ?
R : Cosinus ignore la magnitude du vecteur, se concentrant uniquement sur la direction. Deux documents sur “droit fiscal” devraient être similaires même si l’un est plus long avec plus grande magnitude d’embedding. Cosinus capture cela; Euclidienne les traite comme plus différents.
Q : Que signifie une similarité cosinus de 0.8 ?
R : Les vecteurs pointent dans presque la même direction—ils sont sémantiquement similaires. Pour embeddings texte, 0.8+ indique typiquement forte pertinence. Cependant, les seuils varient par modèle; calibrez avec vos données.
Q : La similarité cosinus peut-elle être négative ?
R : Oui, quand les vecteurs pointent dans des directions opposées. Avec la plupart des embeddings texte, les négatifs sont rares car les modèles produisent typiquement des vecteurs dans l’espace positif. Une valeur proche de 0 est plus courante pour contenu non lié.
Q : Similarité cosinus = distance cosinus ?
R : Ce sont des inverses. Distance cosinus = 1 - similarité cosinus. Les bases utilisent souvent “distance” (plus bas = plus similaire) tandis que les APIs rapportent “similarité” (plus haut = plus similaire). Vérifiez la convention de votre outil.
Termes associés
- Embeddings — vecteurs que similarité cosinus compare
- Similarité Sémantique — concept mesuré par similarité cosinus
- Base de Données Vectorielle — utilise cosinus pour recherche nearest-neighbor
- Recherche Sémantique — récupération alimentée par comparaisons cosinus
Références
Singhal (2001), “Modern Information Retrieval: A Brief Overview”, IEEE Data Engineering Bulletin. [3 000+ citations]
Manning et al. (2008), “Introduction to Information Retrieval”, Cambridge University Press. [20 000+ citations]
Mikolov et al. (2013), “Efficient Estimation of Word Representations in Vector Space”, arXiv. [35 000+ citations]
Johnson et al. (2019), “Billion-scale similarity search with GPUs”, IEEE Transactions on Big Data. [1 500+ citations]
References
Singhal (2001), “Modern Information Retrieval: A Brief Overview”, IEEE Data Engineering Bulletin. [3,000+ citations]
Manning et al. (2008), “Introduction to Information Retrieval”, Cambridge University Press. [20,000+ citations]
Mikolov et al. (2013), “Efficient Estimation of Word Representations in Vector Space”, arXiv. [35,000+ citations]
Johnson et al. (2019), “Billion-scale similarity search with GPUs”, IEEE Transactions on Big Data. [1,500+ citations]