12 votos

Filtrado colaborativo mediante factorización matricial con función de pérdida logística

Consideremos el problema del filtrado colaborativo. Tenemos la matriz $M$ de tamaño #usuarios * #artículos. $M_{i,j} = 1$ si al usuario i le gusta el artículo j, $M_{i,j} = 0$ si al usuario i no le gusta el artículo j y $M_{i,j}=?$ si no hay datos sobre el par (i,j). Queremos predecir $M_{i,j}$ para futuros usuarios, pares de artículos.

El enfoque estándar de filtrado colaborativo consiste en representar M como producto de 2 matrices $U \times V$ tal que $||M - U \times V||_2$ es mínimo (por ejemplo, minimizando el error cuadrático medio para elementos conocidos de $M$ ).

A mí me parece que la función de pérdida logística es más adecuada, ¿por qué todos los algoritmos utilizan el MSE?

1 votos

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.

12voto

Chris Johnson Puntos 61

Usamos la pérdida logística para la factorización matricial implícita en Spotify en el contexto de las recomendaciones musicales (usando recuentos de reproducciones). Acabamos de publicar un artículo sobre nuestro método en un próximo taller de NIPS 2014. El artículo se titula Logistic Matrix Factorization for Implicit Feedback Data y se puede encontrar aquí http://stanford.edu/~rezab/nips2014workshop/submits/logmat.pdf

El código del artículo se puede encontrar en mi Github https://github.com/MrChrisJohnson/logistic-mf

0 votos

He echado un vistazo al documento que has publicado. Es muy interesante ya que la factorización matricial con regresión logística no ha sido estudiada 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)) En cuanto 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, habría esperado una ley tipo Bernouilli como

1 votos

L(R | X, Y, ) = Prod( p(lui | xu, yi, u, i)^.r_ui * (1 p(lui | xu, yi , u, i))^ (1 - .r_ui) He echado un vistazo a su código, y usted utiliza 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

0 votos

Tal vez llegue tarde al tema ¿alguien ha tenido la oportunidad de probar este algo fuera del contexto de la recomendación de música y en su lugar el contexto clásico de la recomendación de productos? Gracias.

5voto

Xavi Puntos 9768

La mayoría de los artículos que encontrará sobre el tema tratarán sobre matrices en las que las valoraciones están en una escala [0,5]. En el contexto del Premio Netflix, por ejemplo, las matrices tienen calificaciones discretas de 1 a 5 (+ los valores que faltan). Por eso el error al cuadrado es la función de coste más extendida. Se pueden ver otras medidas de error como la divergencia de 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 puede ser negativo (especialmente durante los primeros pasos). Esa es una razón por la que no utilizaría la pérdida logarítmica aquí como función de coste.

Sin embargo, si se trata de Factorización de matrices no negativas debería poder utilizar la pérdida logarítmica como función de coste. Se encuentra en un caso similar al de la regresión logística, en la que se utiliza la pérdida logarítmica como función de coste: los valores observados son 0 y 1 y usted predice un número (probabilidad) entre 0 y 1.

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