20 votos

Coseno similar / distancia y ecuación de triángulo

Existe una función de semejanza particularmente popular para el procesamiento de vectores dispersos como los datos textuales (recuento de frecuencia de palabras, etc.), comúnmente denominada semejanza de coseno.

Hay dos variantes para invertirla a una diferencia, a menudo denominada distancia de coseno y de arcos (¡distancia en el sentido débil, aunque no la definición matemática estricta!)

En esencia, la función de similitud es: $$ \text {cosine-similarity}(A,B) = \frac { \left <A,B \right >}{||A|| \cdot ||B||}$$ Que luego se utiliza como una función de distancia como $$ \text {cosine-dist}(A,B) := 1 - \text {cosine-similarity}(A,B)$$ $$ \text {arccos-dist}(A,B) := \arccos ( \text {cosine-similarity}(A,B))$$

Obviamente, estas distancias no pueden ser una función de distancia en $ \mathbb {R}^n$ ya que no están bien definidos para el punto $\{0\}^n$ ya que esto lleva a $0/0$ . ¿Cuál es el resultado adecuado entonces? $1$ ? $ \infty $ ?

Intenté encontrar una prueba formal en Google de que estas distancias satisfacen o no la desigualdad del triángulo. Wikipedia parece afirmar que solo la segunda es una métrica adecuada, pero no da una referencia .

Actualización reelaboró mi pregunta de aquí en adelante, con pensamientos actualizados sobre este tema.

Como lo confirma Joriki, el $0$ es un problema para esta función de distancia, ya que no se puede calcular el ángulo con este vector. Hay otro problema con esta distancia, que sin embargo en muchas circunstancias es intencional: dos vectores que son un múltiplo lineal positivo de cada uno de ellos tendrán el ángulo de 0, mientras que no son lo mismo. Véase su respuesta sobre por qué la cosinodistancia no satisface la igualdad de los triángulos para los ángulos pequeños (me pregunto si esta cuestión es comparable a la de $L_p$ con $p<1$ ).

Tengo las siguientes ideas en mi mente, y de nuevo aprecio cualquier indicación sobre la literatura, referencias errores en estos pensamientos, extensiones:

A) En lugar de $ \mathbb {R}^n$ En lugar de eso, veamos la unidad de la esfera, es decir, los vectores de longitud. $1=||A||=||B||$ . $ \arccos ( \left <A,B \right >)$ entonces es la distancia geodésica en la unidad de la esfera, que es métrica, ¿verdad? Así que en este dominio restringido, arccos-dist es una distancia apropiada?

B) Suponiendo que tengo un mapa inyectivo (no necesariamente surjectivo) de otro dominio a la unidad de la esfera, entonces uso esta función de distancia, esto se convierte también en un espacio métrico? Después de todo, cualquiera de las propiedades de la función de distancia debería mantenerse, ¿verdad?

C) ¿Es el arccos-dist a pseudométrico en $ \mathbb {R}^n \setminus \{0\}$ ? (es decir, acepto que $d(x,y) = 0 \not\Rightarrow x=y$ Sólo $d(x,x)=0$ )

3 votos

Reescribir completamente una pregunta como esta dificulta que otros que encuentren el hilo puedan hacer uso de la(s) respuesta(s) existente(s). Estas son realmente nuevas preguntas que deberían haber sido formuladas en un nuevo post en lugar de desordenar la pregunta y respuesta existente.

17voto

JiminyCricket Puntos 143

Ninguno de ellos es una métrica en $\mathbb R^n$ por varias razones, algunas de las cuales has señalado. En cierto sentido, la razón principal, de la que el resultado indefinido del vector cero es un síntoma, es que este valor sólo depende de la dirección de los vectores y no de su longitud (y el vector cero no tiene dirección).

Si quieres considerar estas funciones como métricas, tienes que considerarlas en el conjunto de direcciones (es decir, rayos desde el origen) en $\mathbb R^n$ o, de forma equivalente, en la esfera unitaria $S^{n-1}$ en $\mathbb R^n$ .

La segunda función, la "distancia arcós", no es más que el ángulo entre las dos direcciones/vectores, y es una métrica porque es la distancia geodésica en la esfera unidad.

La primera función, la "distancia coseno", no es una métrica porque para ángulos pequeños calcula aproximadamente (la mitad) el cuadrado del ángulo, $1-\cos \alpha\approx\frac12\alpha^2$ y si se gira en el mismo ángulo $\alpha$ dos veces, la suma de las dos "distancias" individuales será aproximadamente $\frac12\alpha^2+\frac12\alpha^2=\alpha^2$ mientras que la "distancia" entre las direcciones $2\alpha$ separados serán aproximadamente $\frac12(2\alpha)^2=2\alpha^2$ .

Para responder a sus preguntas:

  1. No conozco una fuente, pero espero que los argumentos anteriores sean lo suficientemente inmediatos como para convencer sin necesidad de una fuente.

  2. No, ya que seguirías teniendo una distancia de $0$ para cualquier vector en la misma dirección, por lo que esto podría ser como máximo un pseudométrico .

  3. Nunca he oído hablar de ellos.

  4. No existe; la función será necesariamente discontinua si se extiende a $0$ y el valor en $0$ será necesariamente arbitraria porque hay vectores en todas las direcciones arbitrariamente cercanos a $0$ .

0 votos

Gracias, y +1 por esta respuesta. He reformulado mi pregunta sustancialmente gracias a tu aportación. Ya me has hecho avanzar mucho en la comprensión de las propiedades de las distancias del coseno.

3voto

Brian Rushton Puntos 10407

A y B son ciertas, pero C no lo es, porque cualquier vector paralelo tiene longitud 0. Arccos-dist es sólo una proyección sobre la esfera seguida de la métrica regular en la esfera (se puede ver esto porque la longitud del vector no importa, así que se puede asumir que cada vector está en la esfera); así que sí, los mapas inyectivos en la esfera se convierten en espacios métricos de esta manera, pero el espacio euclidiano menos el origen no.

Ver este enlace en "versión vectorial", donde vemos que arccos dist es la métrica esférica, y sólo depende de la dirección.

0 votos

Tenga en cuenta que en C he preguntado sobre que sea pseudo métrica: es.wikipedia.org/wiki/Espacio pseudométrico que hace permiten que los vectores no idénticos tengan distancia 0.

0 votos

Entonces la respuesta es sí, y satisface la desigualdad del triángulo porque la métrica de la distancia esférica satisface la desigualdad del triángulo.

0voto

Robert Dixon Puntos 1

La coseno-similitud se define como el producto interior de dos vectores A y B dividido por el producto de sus magnitudes. Este es el definición del coseno del ángulo entre dos vectores en un espacio de producto interior.

Por supuesto, si luego se toma el arccos (que es cos -1 ) entonces sólo te dará el ángulo entre los dos vectores. Así que la distancia arcós no es realmente una distancia, es el ángulo entre vectores.

A) Sí, el arccos(< A,B >) es una métrica. Dado que todos los productos internos en los reales pueden representarse por el producto punto de dos vectores sobre los que actúa una matriz invertible, nos centraremos en el producto punto.
1) d(X,Y) $\geq$ 0 es cierto ya que sólo permitimos que los ángulos sean positivos.
2) d(X,Y) = 0 si X=Y:
el producto punto de dos vectores en R n puede calcularse mediante ||a|| |b|| cos( $ \theta $ ) y dado que tanto ||a|| como |b|| son 1, el único punto donde cos( $\theta$ ) = 0 es cuando $\theta$ = 0 lo que significa que a = b (ya que no tenemos que preocuparnos de que sean linealmente dependientes)
3) d(X,Y) = d(Y,X) es trivial.
4) d(X,Z) $\leq$ d(X,Y)+d(Y,Z) :
Consideremos tres vectores X,Y,Z en la esfera. Proyectaremos Y sobre el tramo de X y Z, es decir, lo proyectaremos sobre el plano en el que se encuentran ambos. Esta proyección se llamará Y o y debería ser obvio que d(X,Z) $\leq$ d(X,Y 0 ) + d(Y 0 Z) con igualdad si Y 0 cae entre X y Z. A continuación observamos que Y=Y 0 +A para algún vector A y mi "prueba" original me he dado cuenta de que no es del todo correcta, así que estoy un poco atascado. Pero me imagino que como A está potenciando Y 0 perpendicularmente al plano XZ que no tendría sentido que el ángulo disminuyera. Me cuesta probarlo.

B) Si se demuestra que lo primero es cierto, entonces esto es verdad. Como la función es inyectiva, se puede limitar a la imagen de X en S y hacer d(f(X),f(Y)) (usar esto como métrica también significa que f es una incrustación de X en S)

C) Creo que sí. Consideremos una función f: R n -> S n por f(X) = $\frac {X} {||X||} $ y luego calcular la distancia de dos vectores utilizando la distancia para S n esto producirá la psuedo-métrica.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X