Filtragem colaborativa através da fatoração matricial com função de perda logística


9

Considere o problema de filtragem colaborativa. Temos matriz de tamanho #users * #items. se o usuário gostar do item j, se o usuário não item j ese não houver dados sobre o par (i, j). Queremos prever para futuros pares de itens e usuários.MMEu,j=1 1MEu,j=0 0MEu,j=?MEu,j

A abordagem de filtragem colaborativa padrão é representar M como produto de 2 matrizes modo que é mínimo (por exemplo, minimizando o erro quadrático médio para elementos conhecidos de M ).você×V||M-você×V||2M

Para mim, a função de perda logística parece mais adequada, por que todos os algoritmos estão usando o MSE?


11
Nesse caso, faz sentido, mas na maioria das vezes M_i, j pode ser uma classificação e, nesse caso, o MSE é mais útil. Eu diria que o MSE é mais geral.
6133 ThiS

Respostas:


9

Usamos a perda logística para fatoração matricial implícita no Spotify no contexto das recomendações musicais (usando contagens de reprodução). Acabamos de publicar um artigo sobre nosso método em um próximo workshop do NIPS 2014. O artigo é intitulado Fatorização de matriz logística para dados implícitos de feedback e pode ser encontrado aqui http://stanford.edu/~rezab/nips2014workshop/submits/logmat.pdf

O código do artigo pode ser encontrado no meu Github https://github.com/MrChrisJohnson/logistic-mf


11
L (R | X, Y, β) = Prod (p (lui | xu, yi, βu, βi) ^ α.r_ui * (1 - p (lui | xu, yi, βu, βi)) ^ (1 - α.r_ui) A deu uma olhada no seu código e você usa 1 + α.r_ui l64: A = (self.counts + self.ones) * A github.com/MrChrisJohnson/logistic-mf/blob/master/ ... Portanto, estou faltando alguma coisa? Atenciosamente,
fstrub

Eu dei uma olhada no artigo que você publicou. É muito interessante, pois a fatoração matricial com regressão logística não foi estudada ativamente. Enfim, estou um pouco confuso com a sua função Loss (2) L (R | X, Y, β) = Prod (p (lui | xu, yi, βu, βi) ^ α.r_ui * (1 - p (lui | xu, yi, βu, βi)) Em relação a (3), acho que existe um erro de digitação L (R | X, Y, β) = Prod (p (lui | xu, yi, βu, βi) ^ α .r_ui * (1 - p (lui | xu, yi, βu, βi)) ^ (1 + α.r_ui ) Mas, na verdade, ainda estou um pouco confuso. Na verdade, eu esperava uma lei do tipo Bernouilli, como as
fstrub

Talvez eu esteja muito atrasado sobre o assunto. Alguém teve a chance de experimentar esse algo fora do contexto da recomendação musical e, em vez disso, do contexto clássico da recomendação do produto? Obrigado.
Marco Fumagalli

3

A maioria dos trabalhos que você encontrará sobre o assunto trata de matrizes em que as classificações estão em escala [0,5]. No contexto do Prêmio Netflix, por exemplo, as matrizes têm classificações discretas de 1 a 5 (+ os valores ausentes). É por isso que o erro quadrado é a função de custo mais disperso. Algumas outras medidas de erro, como a divergência Kullback-Leibler, podem ser vistas.

Outro problema que pode ocorrer com a fatoração da matriz padrão é que alguns dos elementos das matrizes U e V podem ser negativos (particularmente durante os primeiros passos). Essa é uma razão pela qual você não usaria a perda de log aqui como sua função de custo.

No entanto, se você estiver falando sobre fatoração matricial não negativa, poderá usar a perda de log como sua função de custo. Você está em um caso semelhante ao da Regressão logística, onde a perda de log é usada como função de custo: seus valores observados são 0 e 1 e você prevê um número (probabilidade) entre 0 e 1.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.