¿Cuál debería ser el valor del campo no calificado al encontrar la similitud del coseno?

8

Estoy trabajando en un sistema de recomendación de libros muy básico. Quiero saber qué hacer con los campos que el usuario no califica cuando encuentra similitud de coseno, en caso de que los ignoremos y calculemos solo con los campos calificados o los marquemos 0.

El libro que sigo dice que excluye los campos, ya que dará una interpretación incorrecta en el caso de la correlación euclidiana y de Pearson, pero en el caso de la similitud de coseno, pone todos los campos no clasificados a 0.

¿Alguien puede explicar por qué es necesario poner los campos no calificados a 0 solo para Coseno y no para otros o hay una forma diferente de hacerlo? (Sé cómo hacer que los campos 0 en Euclidiana y Pearson afecten a la salida pero no estoy seguro del coseno)

divyum
fuente
Puede consultar esta pregunta en stackoverflow para obtener más información al respecto.
Janpreet Singh
La respuesta responde en parte a la pregunta, ya que muestra que mantener entradas no calificadas como 0 definitivamente afectará la similitud correspondiente. Lo que podría ser (o no) que se utiliza en el algoritmo del motor de recomendaciones para
janpreet Singh
¿Has probado la normalización media?
Valentin Calomme

Respuestas:

1

Por el lado de la implementación, hay una buena razón para hacer que 0 corresponda a no calificado. Dado que la mayoría de los usuarios no han calificado la mayoría de los libros, 0 será el valor más común y la función de similitud de coseno puede usar matrices dispersas internamente para acelerar el cálculo. El acceso directo de matriz dispersa es la razón principal por la cual las personas usan la similitud de coseno en primer lugar.

Por otro lado, rechazará sus recomendaciones si el algoritmo interpreta que un 0 está más cerca de un 1 que un 2. Es necesario ignorarlos intencionalmente, pero puede hacerlo fácilmente dentro de su implementación de similitud de coseno en lugar de filtrar el datos antes de aplicarlo.

Timothy Nodine
fuente
1. Entonces, según su respuesta, ¿seguir algo no debería afectar el resultado?
divyum
0

Considere cómo se calcula la similitud de coseno .

La similitud de coseno toma el producto escalar de dos vectores reales y divide este valor por el producto de sus magnitudes. Por la identidad del producto de punto euclidiano, esto es igual al coseno del ángulo entre los dos vectores. El resultado de esto es un valor entre 1 y -1.

Cuando el valor es 1, esos vectores apuntan exactamente en la misma dirección. Cuando el valor es -1, los vectores apuntan exactamente en la dirección opuesta (uno es la negación del otro). Cuando el valor es 0, los vectores son perpendiculares entre sí; en otras palabras, cuando el valor es cero, estos dos vectores son tan diferentes en el espacio de características como es posible obtener.

El producto punto es la suma de todos los productos de sus dos vectores basados ​​en elementos. Cuanto más grandes son esos números, más contribuyen a la similitud del coseno.

Ahora, tome cualquier característica en su vector. El quinto, digamos. Si establece esto en cero en uno de sus vectores, el quinto elemento en el producto de los dos vectores también será cero, independientemente de su valor en el otro vector. Cuando resume todos estos productos basados ​​en elementos, el quinto elemento no tendrá ningún impacto en la suma. Como resultado, establecer un valor en su vector de características a cero significa que no hace ninguna contribución a la similitud del coseno.

Esta es la razón por la que establecer un valor en cero en un vector de características es equivalente a no incluir la característica en el cálculo de la similitud del coseno, y no distorsiona la similitud del coseno.

R Hill
fuente