Un système de recommandations conserve un journal des recommandations qui ont été faites à un utilisateur particulier et si cet utilisateur accepte la recommandation. C'est comme
user_id item_id result
1 4 1
1 7 -1
5 19 1
5 80 1
où 1 signifie que l'utilisateur a accepté la recommandation tandis que -1 signifie que l'utilisateur n'a pas répondu à la recommandation.
Question: Si je vais faire des recommandations à un groupe d'utilisateurs en fonction du type de journal décrit ci-dessus et que je souhaite maximiser les scores MAP @ 3, comment dois-je traiter les données implicites (1 ou -1)?
Mon idée est de traiter 1 et -1 comme des notes et de prédire la note en utilisant des algorithmes de type machines de factorisation. Mais cela ne semble pas correct, compte tenu de l'asymétrie des données implicites (-1 ne signifie pas que l'utilisateur n'aime pas la recommandation).
Edit 1 Réfléchissons-y dans le contexte d'une approche de factorisation matricielle. Si nous traitons -1 et 1 comme des notes, il y aura un problème. Par exemple, l'utilisateur 1 aime le film A qui obtient un score élevé dans un facteur (par exemple, avoir une musique de fond glorieuse) dans l'espace des facteurs latents. Le système recommande le film B qui a également un score élevé dans la "musique de fond glorieuse", mais pour une raison quelconque, l'utilisateur 1 est trop occupé pour examiner la recommandation, et nous avons un film de classement B. Si nous traitons simplement 1 ou -1 également , alors le système peut être découragé de recommander un film avec un BGM glorieux à l'utilisateur 1 tandis que l'utilisateur 1 aime toujours les films avec un BGM glorieux. Je pense que cette situation est à éviter.