Filtrado colaborativo a través de factorización matricial con función de pérdida logística

9

Considere el problema de filtrado colaborativo. Tenemos una matriz de tamaño #users * #items. si al usuario me gusta el elemento j, si al usuario no le gustan los elementos j ysi no hay datos sobre el par (i, j) Queremos predecir para futuros usuarios, pares de elementos.MMi,j=1Mi,j=0Mi,j=?Mi,j

El enfoque de filtrado colaborativo estándar es representar M como producto de 2 matrices modo que sea ​​mínimo (por ejemplo, minimizar el error cuadrático medio para elementos conocidos de ).U×V||MU×V||2M

Para mí, la función de pérdida logística parece más adecuada, ¿por qué todos los algoritmos usan MSE?

Slon
fuente
1
En este caso tiene sentido, pero la mayoría de las veces M_i, j puede ser una calificación y en ese caso el MSE es más útil. Yo diría que el MSE es más general.
Jueves

Respuestas:

9

Usamos la pérdida logística para la factorización implícita de matrices en Spotify en el contexto de las recomendaciones musicales (usando recuentos de reproducción). Acabamos de publicar un artículo sobre nuestro método en un próximo taller de NIPS 2014. El documento se titula Factorización de matriz logística para datos de retroalimentación implícitos y se puede encontrar aquí http://stanford.edu/~rezab/nips2014workshop/submits/logmat.pdf

El código para el documento se puede encontrar en mi Github https://github.com/MrChrisJohnson/logistic-mf

Chris Johnson
fuente
1
L (R | X, Y, β) = Prod (p (lui | xu, yi, βu, βi) ^ α.r_ui * (1 - p (lui | xu, yi, βu, βi)) ^ (1 - α.r_ui) A echó un vistazo a su código, y usted usa 1 + α.r_ui l64: A = (self.counts + self.ones) * A github.com/MrChrisJohnson/logistic-mf/blob/master/ ... Por lo tanto, ¿me estoy perdiendo algo? Saludos cordiales
fstrub
Eché un vistazo al artículo que publicaste. Es muy interesante ya que la factorización matricial con regresión logística no se ha estudiado activamente. De todos modos, estoy un poco confundido con su función de pérdida (2) L (R | X, Y, β) = Prod (p (lui | xu, yi, βu, βi) ^ α.r_ui * (1 - p (lui | xu, yi, βu, βi)) Con respecto a (3), creo que hay un error tipográfico L (R | X, Y, β) = Prod (p (lui | xu, yi, βu, βi) ^ α .r_ui * (1 - p (lui | xu, yi, βu, βi)) ^ (1 + α.r_ui ) Pero, en realidad, todavía estoy un poco confundido. De hecho, hubiera esperado una ley similar a Bernouilli as
fstrub
Tal vez llego bastante tarde al tema ... ¿alguien tuvo la oportunidad de probar este algo fuera del contexto de la recomendación musical y en lugar del contexto clásico de la recomendación del producto? Gracias.
Marco Fumagalli
3

La mayoría de los trabajos que encontrará sobre el tema tratarán con matrices donde las calificaciones están en una escala [0,5]. En el contexto del Premio Netflix, por ejemplo, las matrices tienen clasificaciones discretas de 1 a 5 (+ los valores faltantes). Es por eso que el error al cuadrado es la función de costo más extendido. Se pueden ver algunas otras medidas de error, como la divergencia Kullback-Leibler.

Otro problema que puede ocurrir con la factorización matricial estándar es que algunos de los elementos de las matrices U y V pueden ser negativos (particularmente durante los primeros pasos). Esa es una razón por la que no usaría la pérdida de registro aquí como su función de costo.

Sin embargo, si está hablando de factorización matricial no negativa , debería poder utilizar la pérdida de registro como su función de costo. Se encuentra en un caso similar a la Regresión logística, donde se utiliza la pérdida logarítmica como función de costo: sus valores observados son 0 y 1 y predice un número (probabilidad) entre 0 y 1.

Aymen
fuente