Similitud de coseno versus producto de punto como métrica de distancia

41

Parece que la similitud de dos características del coseno es solo su producto escalado por el producto de sus magnitudes. ¿Cuándo la similitud del coseno hace una mejor distancia métrica que el producto de punto? Es decir, ¿la similitud del producto escalar y el coseno tienen diferentes fortalezas o debilidades en diferentes situaciones?

ahoffer
fuente
Tenga en cuenta que ninguno de estos son métricas de distancia adecuadas, incluso si las transforma en un valor pequeño cuando los puntos son "similares". Puede o no importar para su caso de uso.
Sean Owen

Respuestas:

41

Piensa geométricamente. La similitud de coseno solo se preocupa por la diferencia de ángulo, mientras que el producto de punto se preocupa por el ángulo y la magnitud. Si normaliza sus datos para que tengan la misma magnitud, los dos son indistinguibles. A veces es deseable ignorar la magnitud, por lo tanto, la similitud del coseno es agradable, pero si la magnitud juega un papel, el producto punto sería mejor como medida de similitud. Tenga en cuenta que ninguno de ellos es una "métrica de distancia".

Memming
fuente
3
"métrica de distancia" se usa comúnmente como un opuesto de "similitud" en la literatura: la distancia más grande, la similitud más pequeña, pero básicamente representan la misma idea.
amigo
1
@friend Quieres decir 'disimilitud'. La métrica tiene una definición precisa.
Memming
8

Tiene razón, la similitud de coseno tiene mucho en común con el producto punto de vectores. De hecho, es un producto escalar, escalado por magnitud. Y debido a la escala, se normaliza entre 0 y 1. CS es preferible porque tiene en cuenta la variabilidad de los datos y las frecuencias relativas de las características. Por otro lado, el producto de punto simple es un poco "más barato" (en términos de complejidad e implementación).

Sobach
fuente
¿Por qué el producto punto solo (equivalente a no normalizar) no tiene en cuenta los datos y la frecuencia de las funciones? No sé si esta es la diferencia.
Sean Owen
2
Quizás, no estaba claro. Estaba hablando de la diversidad de datos. Por ejemplo, tenemos dos pares de documentos. Dentro de cada par, los documentos son idénticos, pero los documentos del par 1 son más cortos que los del par 2. Y calculamos similitud dentro de cada par. El producto de puntos produciría números diferentes, aunque en ambos casos se espera una estimación de similitud máxima.
sobach
5

Me gustaría agregar una dimensión más a las respuestas dadas anteriormente. Usualmente usamos similitud de coseno con texto grande, porque no se recomienda el uso de matriz de distancia en párrafos de datos. Y también, si pretende que su clúster sea amplio, tiende a adoptar similitudes de coseno, ya que captura la similitud en general.

Por ejemplo, si tiene textos que tienen dos o tres palabras de longitud máxima, creo que el uso de la similitud del coseno no logra la precisión que se logra con la métrica de distancia.

vimal chandra Gorijala
fuente
4

Hay una excelente comparación de las métricas de similitud basadas interior subproducto comunes aquí .

En particular, la similitud de coseno se normaliza para situarse dentro de [0,1], a diferencia del producto escalar que puede ser cualquier número real, pero, como todos dicen, eso requerirá ignorar la magnitud de los vectores. Personalmente, creo que es algo bueno. Pienso en la magnitud como una estructura interna (dentro del vector), y el ángulo entre vectores como una estructura externa (entre vectores). Son cosas diferentes y (en mi opinión) a menudo se analizan mejor por separado. No puedo imaginar una situación en la que prefiera calcular productos internos que calcular similitudes de coseno y simplemente comparar las magnitudes después.

Shadowtalker
fuente
"La similitud de coseno se normaliza para estar dentro de [0,1]" ¿Todavía tiene un producto de puntos en el numerador, creo que el rango debería ser [-1, 1]?
Kari
2

X,El |El |XEl |El |2=X,X=1ϕX,y=cosϕϕ=arcosX,y

Visualmente, todos sus datos viven en una esfera de unidad. El uso de un producto de puntos como distancia le dará una distancia cordal, pero si usa esta distancia coseno, corresponde a la longitud del camino entre los dos puntos en la esfera. Eso significa que, si desea un promedio de los dos puntos, debe tomar el punto intermedio en este camino (geodésico) en lugar del punto medio obtenido de la 'geometría promedio aritmética / producto puntual / euclidiana' ya que este punto sí ¡No vivir en la esfera (por lo tanto, esencialmente no es el mismo objeto)!

mic
fuente
1

Como otros han señalado, estas no son "métricas" de distancia, porque no satisfacen los criterios métricos. Diga en cambio "medida de distancia".

De todos modos, ¿qué estás midiendo y por qué? Esa información nos ayudará a dar una respuesta más útil para su situación.

sintax
fuente
Siempre me he preguntado sobre la diferencia entre medidas y métricas. Según el gobierno (NIST): "... Utilizamos medidas para atributos más concretos u objetivos y métricas para atributos más abstractos, de nivel superior o algo subjetivos ... Robustez, calidad (como en" alta calidad "), y la efectividad son atributos importantes para los que tenemos una sensación consistente, pero son difíciles de definir objetivamente. Por lo tanto, estas son métricas ". Pero el contexto es la ingeniería de software, no las matemáticas. ¿Cuál es tu opinión?
ahoffer
1
Wikipedia fue más útil. la distancia (x, y) debe ser no negativa; d (x, y) = 0 solo si x = y; d (x, y) = d (y, x); y satisfacer la desigualdad del triángulo- d (x, z) ≤ d (x, y) + d (y, z)
ahoffer
1
Eso es casi todo: una métrica tiene que cumplir ciertos axiomas y una medida está menos estrictamente definida.
sintax