La similarité de cosinus par rapport au produit scalaire comme métrique de distance

41

Il semble que la similitude cosinus de deux caractéristiques ne soit que leur produit scalaire mis à l'échelle par le produit de leurs grandeurs. Quand la similarité de cosinus fait-elle une meilleure métrique de distance que le produit scalaire? Par exemple, la similarité entre le produit scalaire et le cosinus a-t-elle des forces ou des faiblesses différentes selon les situations?

ahoffer
la source
Notez que ni l'une ni l'autre de ces mesures ne sont des mesures de distance appropriées, même si vous les transformez en une valeur petite lorsque les points sont "similaires". Cela peut être important ou non pour votre cas d'utilisation.
Sean Owen

Réponses:

41

Pensez géométriquement. La similarité des cosinus ne concerne que la différence d’angle, tandis que le produit scalaire se préoccupe de l’angle et de la magnitude. Si vous normalisez vos données pour qu'elles aient la même ampleur, il est impossible de les distinguer. Parfois, il est souhaitable d'ignorer la magnitude, d'où la similarité cosinus est agréable, mais si la magnitude joue un rôle, le produit scalaire serait préférable en tant que mesure de similarité. Notez qu’aucun d’eux n’est une "métrique de distance".

Memming
la source
3
"distance métrique" est couramment utilisé comme opposé de "similarité" dans la littérature: plus la distance est grande, plus la similarité est petite, mais elles représentent fondamentalement la même idée.
ffriend
1
@ffriend Vous voulez dire «dissimilarité». Métrique a une définition précise.
Memming
8

Vous avez raison, la similarité cosinus a beaucoup de points communs avec le produit scalaire des vecteurs. En effet, il s’agit d’un produit scalaire à l’échelle de la magnitude. Et en raison de la mise à l'échelle, il est normalisé entre 0 et 1. CS est préférable, car il prend en compte la variabilité des données et des fréquences relatives des entités. D'autre part, le produit Plain Point est un peu "moins cher" (en termes de complexité et de mise en œuvre).

sobach
la source
Pourquoi le produit scalaire seul (équivalent à ne pas normaliser) ne tient-il pas compte des données et de la fréquence des fonctionnalités? Je ne sais pas que c'est la différence.
Sean Owen
2
Peut-être que je n'étais pas clair. Je parlais de la diversité des données. Par exemple, nous avons deux paires de documents. Dans chaque paire, les documents sont identiques, mais les documents paire-1 sont plus courts que ceux-ci. Et nous calculons la similarité au sein de chaque paire. Le produit ponctuel produirait des nombres différents, bien que dans les deux cas une estimation de similarité maximale soit attendue.
Sobach
5

J'aimerais ajouter une dimension supplémentaire aux réponses données ci-dessus. Nous utilisons généralement la similarité cosinus avec un texte de grande taille, car l’utilisation de la matrice de distance sur des paragraphes de données n’est pas recommandée. De plus, si vous souhaitez que votre cluster soit large, vous avez tendance à choisir la similarité cosinus, car il capture la similarité dans son ensemble.

Par exemple, si vous avez des textes de deux ou trois mots au maximum, je pense que l'utilisation de la similarité cosinus n'atteint pas la précision obtenue par la métrique de distance.

Vimal Chandra Gorijala
la source
4

Il existe une excellente comparaison des métriques de similarité communes basées sur les produits internes ici .

En particulier, la similarité des cosinus est normalisée à l'intérieur de [0,1], contrairement au produit scalaire qui peut être un nombre réel, mais, comme le dit tout le monde, cela nécessitera d'ignorer la magnitude des vecteurs. Personnellement, je pense que c'est une bonne chose. Je pense à la magnitude en tant que structure interne (au sein d'un vecteur) et à l'angle entre les vecteurs en tant que structure externe (entre les vecteurs). Ce sont des choses différentes et (à mon avis) sont souvent mieux analysées séparément. Je ne peux pas imaginer une situation dans laquelle je préférerais calculer les produits internes plutôt que de calculer les similitudes de cosinus et simplement comparer les magnitudes par la suite.

shadowtalker
la source
"La similarité du cosinus est normalisée à l'intérieur de [0,1]" Il a toujours un produit scalaire dans le numérateur, je pense que la plage devrait être plutôt [-1, 1]?
Kari
2

X,||X||2=X,X=1φX,y=cosφφ=arccosX,y

Visuellement, toutes vos données vivent sur une unité de sphère. Utiliser un produit scalaire comme distance vous donnera une distance en cordes, mais si vous utilisez cette distance en cosinus, elle correspond à la longueur du chemin entre les deux points de la sphère. Cela signifie que si vous voulez une moyenne des deux points, vous devez prendre le point entre les deux sur cette trajectoire (géodésique) plutôt que le point médian obtenu à partir de la «moyenne arithmétique / produit scalaire / géométrie euclidienne», car ce point pas vivre sur la sphère (donc essentiellement pas le même objet)!

micro
la source
1

Comme d'autres l'ont fait remarquer, il ne s'agit pas de "métriques" de distance, car elles ne répondent pas aux critères de métrique. Dites plutôt "mesure de distance".

Quoi qu'il en soit, que mesurez-vous et pourquoi? Cette information nous aidera à donner une réponse plus utile à votre situation.

sintax
la source
Je me suis toujours demandé quelle était la différence entre les mesures et les mesures. Selon le gouvernement (NIST): "... Nous utilisons mesure pour des attributs plus concrets ou objectifs et métrique pour des attributs plus abstraits, de niveau supérieur ou quelque peu subjectif. ... Robustesse, qualité (comme dans" haute qualité "), et l'efficacité sont des attributs importants pour lesquels nous avons une certaine cohérence, mais qui sont difficiles à définir objectivement. Ce sont donc des métriques. " Mais le contexte est le génie logiciel, pas les mathématiques. Quelle est votre prise?
ahoffer
1
Wikipedia était plus utile. la distance (x, y) doit être non négative; d (x, y) = 0 seulement si x = y; d (x, y) = d (y, x); et satisfaire l'inégalité des triangles - d (x, z) ≤ d (x, y) + d (y, z)
ahoffer
1
C'est à peu près tout: une métrique doit respecter certains axiomes et une mesure est moins strictement définie.
Sintax