Um sistema de recomendação mantém um registro de quais recomendações foram feitas para um usuário específico e se esse usuário aceita a recomendação. É como
user_id item_id result
1 4 1
1 7 -1
5 19 1
5 80 1
onde 1 significa que o usuário aceitou a recomendação enquanto -1 significa que o usuário não respondeu à recomendação.
Pergunta: Se vou fazer recomendações para vários usuários com base no tipo de log descrito acima e quero maximizar as pontuações do MAP @ 3, como devo lidar com os dados implícitos (1 ou -1)?
Minha idéia é tratar 1 e -1 como classificações e prever a classificação usando algoritmos do tipo máquinas de fatoração. Mas isso não parece certo, dada a assimetria dos dados implícitos (-1 não significa que o usuário não goste da recomendação).
Edit 1 Vamos pensar sobre isso no contexto de uma abordagem de fatoração matricial. Se tratarmos -1 e 1 como classificações, haverá algum problema. Por exemplo, o usuário 1 gosta do filme A, que pontua alto em um fator (por exemplo, com música de fundo gloriosa) no espaço de fator latente. O sistema recomenda o filme B, que também tem uma pontuação alta em "gloriosa música de fundo", mas por alguma razão o usuário 1 está ocupado demais para procurar a recomendação, e temos um filme de classificação -1. Se apenas tratarmos 1 ou -1 igualmente , o sistema pode ficar desanimado em recomendar filmes com gloriosa BGM ao usuário 1, enquanto o usuário 1 ainda gosta de filmes com gloriosa BGM. Eu acho que essa situação deve ser evitada.