38 votos

Interpretación de la similitud del coseno negativo

Mi pregunta puede ser una tontería. Así que me disculpo por adelantado.

Estaba intentando utilizar el modelo GLOVE preentrenado por el grupo de PNL de Stanford ( enlace ). Sin embargo, me di cuenta de que mis resultados de similitud mostraban algunos números negativos.

Eso me llevó inmediatamente a mirar el archivo de datos de vectores de palabras. Al parecer, se permitía que los valores de los vectores de palabras fueran negativos. Eso explicaba por qué veía similitudes negativas del coseno.

Estoy acostumbrado al concepto de similitud del coseno de los vectores de frecuencia, cuyos valores están acotados en [0, 1]. Sé que el producto punto y la función coseno pueden ser positivos o negativos, dependiendo del ángulo entre vectores. Pero me cuesta mucho entender e interpretar esta similitud negativa del coseno.

Por ejemplo, si tengo un par de palabras con una similitud de -0,1, ¿son menos similares que otro par cuya similitud es de 0,05? ¿Y si comparo la similitud de -0,9 con la de 0,8?

¿O debo fijarme en el valor absoluto de la diferencia de ángulo mínimo de $n\pi$ ? ¿Valor absoluto de las puntuaciones?

Muchas gracias.

1 votos

La etiqueta de similitud del coseno dice: An angular-type similarity coefficient between two vectors. It is like correlation, only without centering the vectors. La única diferencia entre ambas es que en la correlación las desviaciones (momentos) -que se están multiplicando de forma cruzada- son respecto a la media, mientras que en el coseno las desviaciones son respecto al 0 original -es decir, son los valores tal cual-.

3 votos

(cont.) La comprensión del coeficiente positivo o negativo es la misma en ambos casos. Coef. negativo significa que las desviaciones/valores positivos de un vector tienden a emparejarse con las desviaciones/valores negativos del otro. Que esto signifique que los vectores son "similares" o, por el contrario, "muy diferentes" depende del significado que tenga para usted las desviaciones/valores positivos y negativos en los datos.

0 votos

@ttnphns ¡Muchas gracias por tu comentario! Me inspira a pensar en la similitud coseno de una manera nueva. En mi caso de uso, tal vez puedo pensar en ello como una diferencia en los resultados finales: si la correlación de Doc A y B es negativo, y una revista uni-tópico X incluye Doc A, entonces es menos probable que X incluye B también, de alguna probabilidad media. ¿Le parece válida esta interpretación?

19voto

Ye Lin Puntos 6

Sean dos vectores $a$ y $b$ el ángulo $θ$ se obtiene mediante el producto escalar y la norma de los vectores :

$$ cos(\theta) = \frac{a \cdot b}{||a|| \cdot ||b||} $$

Desde el $cos(\theta)$ está en el rango $[-1,1]$ :

  • $-1$ indicará vectores fuertemente opuestos
  • $0$ vectores independientes (ortogonales)
  • $1$ vectores similares (colineales positivos). Los valores intermedios se para evaluar el grado de similitud.

Ejemplo : Que dos usuarios $U_1$ y $U_2$ y $sim(U_1, U_2)$ la similitud entre estos dos usuarios según su gusto por las películas:

  • $sim(U_1, U_2) = 1$ si los dos usuarios tienen exactamente el mismo gusto (o si $U_1 = U_2$ )
  • $sim(U_1, U_2) = 0$ si no encontramos ninguna correlación entre los dos usuarios, por ejemplo, si no han visto ninguna película en común
  • $sim(U_1, U_2) = -1$ si los usuarios tienen gustos opuestos, por ejemplo, si califican las mismas películas de manera opuesta

2voto

npcmail mail Puntos 1

Es cierto que la similitud del coseno entre los vectores de frecuencia no puede ser negativa, ya que los recuentos de palabras no pueden ser negativos, pero con las incrustaciones de palabras (como el guante) se pueden tener valores negativos.

Una visión simplificada de la construcción de la incrustación de palabras es la siguiente: Se asigna cada palabra a un vector aleatorio en R^d. A continuación, se ejecuta un optimizador que intenta acercar dos vectores similares v1 y v2 o alejar dos vectores disímiles v3 y v4 (según alguna distancia, digamos el coseno). Se ejecuta esta optimización durante un número suficiente de iteraciones y, al final, se obtienen incrustaciones de palabras con el único criterio de que las palabras similares tienen vectores más cercanos y los vectores disímiles están más alejados. El resultado final puede ser que algunos valores de dimensión sean negativos y que algunos pares tengan una similitud de coseno negativa, simplemente porque el proceso de optimización no se preocupó por este criterio. Es posible que algunos vectores estén en valores negativos. Las dimensiones de los vectores no corresponden a los recuentos de palabras, sino que son conceptos latentes arbitrarios que admiten valores entre -inf y +inf.

1voto

zlack Puntos 374

No utilice los valores absolutos, ya que el signo negativo no es arbitrario. Para adquirir un valor de coseno entre 0 y 1, debe utilizar la siguiente función coseno:

(Código R)

cos.sim <- function(a,b) 
{
  dot_product = sum(a*b)
  anorm = sqrt(sum((a)^2))
  bnorm = sqrt(sum((b)^2))
  minx =-1
  maxx = 1
  return(((dot_product/anorm*bnorm)-minx)/(maxx-minx))
} 

(Código Python)

def cos_sim(a, b):
    """Takes 2 vectors a, b and returns the cosine similarity according 
to the definition of the dot product"""
    dot_product = np.dot(a, b)
    norm_a = np.linalg.norm(a)
    norm_b = np.linalg.norm(b)
    return dot_product / (norm_a * norm_b)

minx = -1 
maxx = 1

cos_sim(row1, row2)- minx)/(maxx-minx)
```

0 votos

¿Dónde se colocan minx y maxx? Podría aplicar esta normalización mín-máx a las dimensiones vectoriales, en lugar de a la distancia calculada.

1voto

Zachary Puntos 36

La similitud del coseno es como la correlación de Pearson, pero sin restar las medias. Por lo tanto, se puede comparar la fuerza relativa de 2 similitudes de coseno mirando los valores absolutos, al igual que se comparan los valores absolutos de 2 correlaciones de Pearson.

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