Mi pregunta puede ser tonta. Así que me disculparé de antemano.
Estaba tratando de usar el modelo GLOVE pre-entrenado por el grupo Stanford NLP ( enlace ). Sin embargo, noté que mis resultados de similitud mostraron algunos números negativos.
Eso inmediatamente me llevó a mirar el archivo de datos de vectores de palabras. Aparentemente, se permitió que los valores en la palabra vectores fueran negativos. Eso explicaba por qué veía similitudes negativas de coseno.
Estoy acostumbrado al concepto de similitud coseno de los vectores de frecuencia, cuyos valores están delimitados en [0, 1]. Sé con certeza que el producto de puntos y la función coseno pueden ser positivos o negativos, dependiendo del ángulo entre vectores. Pero realmente me cuesta entender e interpretar esta semejanza negativa del coseno.
Por ejemplo, si tengo un par de palabras que dan una similitud de -0.1, ¿son menos similares que otro par cuya similitud es 0.05? ¿Qué hay de comparar la similitud de -0.9 a 0.8?
¿O debería mirar el valor absoluto de la diferencia de ángulo mínima de ? ¿Valor absoluto de las puntuaciones?
Muchas muchas gracias.
An angular-type similarity coefficient between two vectors. It is like correlation, only without centering the vectors.
La única diferencia entre los dos es que en las desviaciones de correlación (momentos), que se multiplican cruzada, son de la media, mientras que en las desviaciones de coseno son del 0 original, es decir, son los valores tal como son. .Respuestas:
Deje dos vectores y , el ángulo se obtiene por el producto escalar y la norma de los vectores:a b θ
Como el valor está en el rango :cos(θ) [−1,1]
Ejemplo : permita que dos usuarios y , y la similitud entre estos dos usuarios según su gusto por las películas:U1 U2 sim(U1,U2)
fuente
No utilice los valores absolutos, ya que el signo negativo no es arbitrario. Para adquirir un valor de coseno entre 0 y 1, debe usar la siguiente función de coseno:
(Código R)
(Código de Python)
fuente
La similitud de coseno es como la correlación de Pearson, pero sin restar los medios. Por lo tanto, puede comparar la fuerza relativa de 2 similitudes de coseno observando los valores absolutos, tal como compararía los valores absolutos de 2 correlaciones de Pearson.
fuente
Es cierto que la similitud de coseno entre los vectores de frecuencia no puede ser negativa, ya que los recuentos de palabras no pueden ser negativos, pero con las incorporaciones de palabras (como el guante) puede tener valores negativos.
Una vista simplificada de la construcción de incrustación de palabras es la siguiente: Usted asigna cada palabra a un vector aleatorio en R ^ d. A continuación, ejecute un optimizador que intente empujar dos vectores similares v1 y v2 cerca uno del otro o conducir dos vectores diferentes v3 y v4 más separados (según cierta distancia, por ejemplo, coseno). Ejecuta esta optimización para suficientes iteraciones y, al final, tiene incrustaciones de palabras con el único criterio de que palabras similares tienen vectores más cercanos y los vectores diferentes están más separados. El resultado final podría dejarlo con algunos valores de dimensión negativos y algunos pares con coseno negativo similar, simplemente porque el proceso de optimización no se preocupó por este criterio. Puede haber empujado algunos vectores bien en los valores negativos. Las dimensiones de los vectores no corresponden a conteos de palabras,
fuente