Understanding the Cosine Similarity Measure in Machine Learning Algorithms
Table of Contents
Dans l'apprentissage automatique, la capacité de quantifier la similitude entre les points de données sous-tend de nombreux algorithmes de base, du regroupement aux systèmes de recommandation et au traitement des langues naturelles. similitude entre les deux Cet article fournit une exploration approfondie de la similitude cosinusienne : sa fondation mathématique, son intuition géométrique, ses applications pratiques, ses avantages, ses limites et sa comparaison avec d'autres mesures. À la fin, vous comprendrez clairement quand et pourquoi utiliser la similitude cosinusienne dans vos projets d'apprentissage automatique, y compris des contextes modernes comme la recherche sémantique et la génération augmentée par récupération.
Quelle est la similitude Cosine?
La similitude des cosinus est une mesure de la similitude entre deux vecteurs non nuls dans un espace intérieur du produit. Elle calcule la cosinus de l'angle entre les vecteurs, quantifiant ainsi la similitude de leurs directions sont, indépendamment de leur magnitude. Formellement, avec deux vecteurs A et B, la similarité de la cosine est définie comme suit:
Similarité de la cosine = (A · B) / (=A=) ×=B=)
où A · B est le produit à point des vecteurs, et A. A. et ,B sont leurs normes euclidiennes (magnitudes). -1 à 1- Oui.
- 1: Les vecteurs sont parfaitement alignés (même direction).
- 0: Les vecteurs sont orthogonaux (pas de similarité).
- -1: Les vecteurs pointent exactement dans des directions opposées.
La similitude cosinusale se concentre uniquement sur l'orientation. Deux vecteurs peuvent avoir des longueurs très différentes, mais ils atteignent encore une forte similitude cosinusienne si leurs angles sont proches. Cette propriété la rend particulièrement utile dans des scénarios où la magnitude porte moins de signification que le modèle relatif des caractéristiques – par exemple, dans l'extraction de texte où la longueur du document varie, ou dans la récupération d'images où les cartes de caractéristiques de différentes entrées peuvent avoir des intensités différentes.
Comment fonctionne la similitude Cosine
Le produit et les normes d'entrée
Pour calculer la similarité de la cosine, nous calculons d'abord le produit point des deux vecteurs :
A · B = φi (Ai × Bi)
Ensuite, nous calculons chaque vecteur , norme euclidienne (ou norme L2) :
A. A. = √( -i Ai2)
Le produit point capture la quantité de points des vecteurs dans la même direction, tandis que les normes normalisent le résultat de sorte qu'il dépende uniquement de l'angle. Si un vecteur est tous zéros, la norme est zéro et la mesure est non définie – ces cas doivent être traités séparément (par exemple, attribuer la similitude = 0).
Exemples
Considérez deux vecteurs dans l'espace 2D:
- A = [1, 2]
- B = [2, 4]
Ces vecteurs sont collinéaires (B est exactement 2× A). Leur produit à points: 1×2 + 2×4 = 10. Norm of A = √(12+22) = √5 ↓ 2.236; norme de B = √(22+42) = √20 ↓ 4.472. 1,0. Cela correspond à notre intuition géométrique : ils pointent dans la même direction.
Maintenant prends A = [1, 0] et B = [0, 1]. Produit à point = 0, normes les deux = 1. A = [1, 1] et B = [-1, -1] : produit à point = -2, normes = √2 chacune. -1. Ces exemples simples illustrent comment la mesure capture l'angle entre les vecteurs, indépendamment de leur longueur.
Si nous utilisons plutôt des vecteurs avec des grandeurs différentes mais dans la même direction, [1, 1] et [10, 10], la similitude cosine reste 1, même si la distance euclidienne serait grande. C'est la force de la similitude cosine pour de nombreuses applications du monde réel où les modèles relatifs comptent plus que les échelles absolues.
Applications dans l'apprentissage automatique
La similitude des cosinus est omniprésente dans l'apprentissage automatique, particulièrement pour les tâches où les vecteurs de caractéristiques à haute dimension, à faible densité ou à magnitude sont communs.
Documenter la similitude et l'extraction de texte
Dans le traitement du langage naturel (NLP), les documents sont souvent représentés comme vecteurs TF-IDF. Chaque dimension correspond à un terme, et la valeur reflète l'importance du terme par rapport au document et au corpus. Parce que les documents ont des longueurs différentes, les fréquences brutes de terme biaisent la similitude vers des documents plus longs. Pondération TF-IDF combiné à la similarité des cosinus reste une référence pour de nombreux systèmes à base de texte, et il est utilisé dans les pipelines modernes de génération d'augmentés de récupération (RAG) pour récupérer le contexte pertinent de grands corpus de documents.
Systèmes de recommandation
Dans le filtrage collaboratif, les utilisateurs ou les éléments sont représentés comme vecteurs de notation ou de comptage des interactions. La similitude cosine mesure la similitude entre les utilisateurs (pour trouver des voisins) ou entre les éléments (pour recommander des produits similaires). Par exemple, deux utilisateurs qui évaluent les films de la même façon – même si l'on utilise une échelle de notation différente (p. ex., 3–5 vs. 1–5) – peuvent avoir une forte similitude cosine parce que leurs préférences relatives s'alignent. Système d'échange d'éléments d'Amazon Dans les systèmes modernes, les ancrages appris par le comportement de l'utilisateur sont souvent comparés par la similitude de la cosine aux recommandations personnalisées de surface en temps réel.
Groupement
Les algorithmes comme les moyennes k peuvent être adaptés pour utiliser la distance cosine (1 - similarité cosine). Ceci est particulièrement efficace pour les données à haute dimension telles que les profils d'expression textuelle ou génique, où la distance euclidienne devient moins significative en raison de la malédiction de dimensionnalité.
Les adhérences de mots et la similitude sémantique
Word2Vec, GloVe et les ancrages contextuels modernes (par exemple BERT, GPT) produisent des vecteurs denses où la similitude sémantique est saisie par la similitude cosine. Par exemple, la similitude cosine entre -king et -queen est élevée, tandis que -king et -apple est faible. Cette propriété permet des tâches comme la recherche voisine la plus proche dans l'espace d'intégration, qui permet la recommandation, la réponse aux questions et la génération augmentée par récupération (RAG).
Récupération d'images et vision informatique
Dans l'analyse des images, les réseaux neuraux profonds extraient les vecteurs de caractéristiques des images. La similitude cosine peut être utilisée pour trouver des images visuellement similaires en comparant ces vecteurs de caractéristiques. Elle est également employée dans la reconnaissance du visage (par exemple, FaceNet utilise la similitude cosine pour comparer les ancrages du visage).
Détection des anomalies
Lorsque les points de données sont normalisés en longueur unitaire, la similitude cosine peut aider à détecter des aberrations : les points présentant une faible similitude moyenne avec leurs voisins indiquent souvent des anomalies.Cette approche est utilisée dans la détection des intrusions et l'analyse de la fraude, où les vecteurs de caractéristiques du trafic réseau ou des antécédents de transaction sont comparés.
Avantages de la similitude Cosine
- Invariance de l'échelle: La similitude des cosinus ignore l'ampleur, ce qui la rend robuste aux différences de dimensionnement ou de longueur entre les échantillons. Ceci est critique dans le texte où les documents varient en nombre de mots, ou dans les ancrages d'images où les magnitudes des cartes de caractéristiques peuvent différer en raison des choix de normalisation.
- Bonne performance en haute dimension: Si toutes les mesures de distance souffrent de la malédiction de la dimensionnalité, la similitude cosine reste souvent significative parce que la direction tend à capturer plus d'informations que l'ampleur dans les données clairsemées et à haute dimension.
- Simplicité et efficacitéLe calcul se réduit à un produit à point et à deux calculs standard. Avec des vecteurs prénormalisés, il devient un produit à point unique, qui peut être accéléré par des opérations matricielles (par exemple via NumPy ou GPU).
- Interprétation facile: La plage délimitée [-1, 1] fournit un score de similitude intuitive, et les valeurs supérieures à 0,5 ou 0,8 sont communément acceptées comme - fortement similaires - dans de nombreux domaines. En pratique, les seuils peuvent être ajustés en fonction de l'ensemble de données et de la tâche spécifiques.
- Compatibilité avec les méthodes du noyau: La similarité de la cosine peut être interprétée comme une fonction du noyau (le noyau linéaire sur des données normalisées), ce qui permet d'être utilisé dans les machines vectorielles de support et autres algorithmes kernelisés sans perdre d'efficacité.
Limitations de la similitude des cosines
- Insensibilité à la magnitude Lorsque l'ampleur du vecteur contient des informations importantes (par exemple, un utilisateur, un montant total d'achat, une valeur de lecture de capteur), la similitude des cosinus la rejette. Dans de tels cas, la distance euclidienne ou un hybride pondéré peut être plus approprié.
- Pas une métrique de distance appropriée: La similitude des cosinus ne satisfait pas l'inégalité des triangles (bien que la distance de cosinus = 1 - la similitude le fait parfois si les vecteurs sont normalisés en longueur unitaire). Cela peut compliquer les algorithmes qui supposent un espace métrique, comme les médoïdes k ou DBSCAN. Certains algorithmes de regroupement doivent être explicitement adaptés pour gérer des distances non métriques.
- Problèmes de données sparses Bien que la similitude cosine gère mieux la sparté que la distance euclidienne, elle peut encore être induit en erreur lorsque les éléments non nuls sont peu nombreux. Deux vecteurs clairsemés peuvent avoir un produit point de zéro (orthogonal) même s'ils partagent certaines caractéristiques communes, simplement parce que les coordonnées ne s'alignent pas. Ceci est courant dans -bag-of-words--- représentations avec de petits vocabulaires; des techniques comme l'intégration de mots ou la réduction dimensionnelle peut atténuer le problème.
- Problème de vecteur zéro Dans la pratique, ces deux types de données doivent être exclus ou traités comme un cas particulier (par exemple, attribuer la similitude = 0). Dans les grands ensembles de données, les vecteurs zéro peuvent provenir d'une extraction incomplète de la fonction ou de données manquantes.
- Moins discriminant dans des dimensions très élevées: Au fur et à mesure que la dimensionnalité grandit, les angles entre les vecteurs aléatoires tendent à devenir orthogonaux (cf. le paradoxe de la -Bénédiction de la non-orthogonalité -). La similitude cosine entre les points aléatoires se concentre près de 0, ce qui rend difficile de différencier les paires similaires et dissemblables sans normalisation ou réduction de dimensionnalité prudente.La similitude des cosinus n'est pas immunisée, elle souffre simplement de moins que la distance euclidienne dans de nombreux contextes pratiques.
Comparaison avec d'autres mesures de similarité
Distance Cosine/Euclidéenne
La distance euclidienne mesure la distance linéaire entre les points. Elle est sensible à la fois à la direction et à la magnitude. Pour les vecteurs normalisés (longueur unitaire), la similitude cosine et la distance euclidienne sont monotoniquement liées: Euclidéan2 = 2 × (1 - similarité de cosine) Lorsque les grandeurs sont importantes (p. ex., lectures numériques), la distance euclidienne est préférable. Lorsque seulement les motifs relatifs de la matière (p. ex., fréquences de terme), la similitude cosine gagne. Dans la pratique, de nombreux systèmes normalisent les vecteurs d'abord et utilisent ensuite l'une ou l'autre mesure, mais la similitude cosine est souvent plus robuste à aberrante.
Cosine c. Pearson Corrélation
La corrélation Pearson est essentiellement une similitude de cosinus centrée sur la moyenne. Elle soustrait la moyenne de chaque vecteur avant de calculer le cosinus. Ainsi, elle est invariante aux déplacements additifs, et non seulement à l'échelle. Ceci est utile pour comparer les vecteurs avec différentes lignes de base (p. ex., les utilisateurs avec différentes tendances de notation).
Cosine vs Jaccard Similarité
Pour les vecteurs binaires, Jaccard est souvent préféré à la cosine parce qu'elle ignore les doubles zéros (absences courantes). Cependant, la cosine fonctionne avec des vecteurs à valeur continue et est plus largement utilisée dans les espaces d'intégration à valeur réelle. Lorsque les fonctionnalités sont binaires (par exemple, présence/absence d'un mot), Jaccard peut être plus interprétable, mais la cosine est encore efficace.
Cosine contre Manhattan Distance
La distance Manhattan (L1) résume les différences absolues le long de chaque dimension. Elle est plus robuste que la distance euclidienne mais elle tient compte de l'ampleur. La similitude cosine, en ignorant l'ampleur, peut être un meilleur choix lorsque la forme de la distribution entre les dimensions est plus informative que la somme totale des différences.
Considérations pratiques
Normalisation
La plupart des implémentations normalisent les vecteurs en longueur unitaire avant de calculer la similitude cosine. Cette précomputation simplifie la formule en un produit à point et garantit que la similitude se situe à [0, 1] pour les données non négatives. Dans NLP avec TF-IDF, les vecteurs sont souvent normalisés L2, de sorte que la similitude cosine devient un produit à point simple.
Efficacité informatique
Pour les applications à grande échelle (p. ex., dans les moteurs de recherche privés ou les systèmes de recommandation), les algorithmes voisins les plus proches (ANN) comme hachage sensible à la localité (LSH) Les bibliothèques telles que FAISS, Annoy et Scann supportent nativement la distance de cosine. Ces outils permettent aux systèmes de rechercher des milliards de vecteurs avec une complexité temporelle sub-linéaire, rendant la similarité de cosinus possible pour les environnements de production.
Utilisation dans les pipelines modernes de ML
La similitude des cosinus reste une pierre angulaire de nombreux systèmes de production. Directus La plate-forme de données utilise souvent les ancrages vectoriels et la similitude cosine pour les recommandations basées sur le contenu, la recherche sémantique et le regroupement de données. Son profil calculateur léger le rend adapté pour l'inférence en temps réel sur les grands ensembles de données.
Conclusion
La similitude cosine est un outil indispensable dans la boîte à outils de l'apprentissage automatique. Sa capacité à mesurer la similitude directionnelle indépendamment de l'ampleur la rend idéale pour des données à haute dimension, peu abondantes, le pain et le beurre des systèmes modernes de NLP, de recommandation et de récupération. Bien que non sans limites (cécité de la magnitude, problèmes métriques, sensibilité à la dimensionnalité), sa simplicité, sa interprétabilité et son efficacité computationnelle garantissent qu'elle demeure une référence standard et souvent la méthode de choix.