Modelo de fatoração de matriz para sistemas de recomendação como determinar o número de recursos latentes?


8

Estou tentando projetar uma técnica de fatoração matricial para um sistema simples de recomendação de itens de usuário. Eu tenho 2 perguntas sobre isso.

Primeiro, em uma implementação simples que vi da técnica de fatoração matricial para recomendação de filme, o autor acabou de inicializar as dimensões dos recursos latentes, vamos chamá-lo de K das duas matrizes de usuário e item do recurso latente, para um K constante, digamos 2 e, portanto, cada das matrizes de recursos latentes P e Q eram NXK e MXK, onde R é a matriz de classificação de itens do usuário original que estamos tentando aproximar com as dimensões NXM (N usuários e M itens). Portanto, minhas perguntas são: como determino o 'K' ideal (número de recursos latentes) nesse caso, em vez de apenas defini-lo como uma constante?

Também existe alguma maneira de incorporar informações de usuário ou item que eu já possuo no meu conjunto de dados, como a classificação média de um usuário em particular, sexo do usuário, localização do usuário etc. nesse resultado da fatoração da matriz ao fazer minha recomendação final (eu acho talvez um modelo de mesclagem com as informações de usuário e item representadas em algum outro modelo de filtragem baseado em conteúdo, juntamente com o meu modelo de fatoração de matriz funcionasse?).

1> Minha primeira pergunta é como determinar o número ideal de recursos latentes K 2> alguém conhece a literatura recente que implementa um modelo de fatoração matricial e filtragem baseada em conteúdo (porque acho que essa seria a única maneira de representar informações demográficas de usuários e itens em um espaço de recurso comum.)

Respostas:


3

Em resposta à sua primeira pergunta, a validação cruzada é uma abordagem amplamente usada. Um esquema possível é o seguinte.

Para cada valor K dentro de um intervalo pré-selecionado, use a validação cruzada para estimar o desempenho do modelo (por exemplo, precisão da previsão). Isso fornecerá uma métrica de desempenho estimada do modelo por valor-k. Em seguida, selecione o k que corresponde ao desempenho mais alto.

Em resposta à sua segunda pergunta, gostaria de ver exemplos de uma "abordagem híbrida", por exemplo, em http://www.stanford.edu/~abhijeet/papers/cs345areport.pdf


0

Para responder à sua primeira pergunta, eu faria a validação cruzada e, para a segunda, eu diria que você deveria analisar a fatoração do tensor. Se você possui representação de dados multidimensional, você pode definitivamente considerar a fatoração do tensor, que permite que você jogue com alguns dados adicionais como outras dimensões.

Você pode verificar o seguinte link para isso.

https://github.com/kuleshov/tensor-factorization
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.