Aller au contenu
uencoder

Cosine Similarity

La similarité cosinus mesure le cosinus de l'angle entre deux vecteurs, en ignorant leur longueur ; elle est largement utilisée pour le calcul de similarité entre vecteurs de texte.

Objectif

Compare la direction du vecteur plutôt que sa norme, permettant de comparer équitablement documents longs et courts.

Mécanisme

sim(A,B) = (A·B) / (|A|×|B|) = Σ(A_i×B_i) / (sqrt(ΣA_i²)×sqrt(ΣB_i²)). Le résultat va de -1 à 1 (de 0 à 1 pour les vecteurs de texte non négatifs). 1 signifie direction identique ; 0 signifie orthogonal (sans lien).

Cas d’usage

  • Recherche de documents similaires
  • Similarité d'items dans les recommandations
  • Similarité sémantique de vecteurs de mots
  • Métrique de distance pour le clustering

Exemples

  • entrée
    [1,0,1] vs [1,1,1]
    Output
    0.816

    Angle of about 35°

Erreurs courantes

Unnormalized vectors cause computation overflow
Apply L2 normalization in advance or use a numerically stable implementation

Termes associés

Outils associés

References