推荐系统会记录向特定用户提出的推荐以及该用户是否接受推荐的日志。就像是
user_id item_id result
1 4 1
1 7 -1
5 19 1
5 80 1
其中 1 表示用户接受了推荐,而 -1 表示用户没有响应推荐。
问题:如果我要根据上面描述的那种日志向一堆用户推荐,并且我想最大化 MAP@3 分数,我应该如何处理隐式数据(1 或 -1)?
我的想法是将 1 和 -1 视为评级,并使用分解机器类型的算法预测评级。但这似乎并不正确,因为隐含数据的不对称性(-1 并不意味着用户不喜欢推荐)。
编辑 1 让我们在矩阵分解方法的背景下考虑它。如果我们将 -1 和 1 视为评级,则会出现一些问题。例如,用户1喜欢在潜在因素空间中在一个因素(例如,具有优美的背景音乐)中得分高的电影A。系统推荐了在“华丽背景音乐”中也得分很高的电影 B,但由于某种原因用户 1 太忙而无法查看推荐,我们给电影 B 评分为 -1。如果我们只是平等对待 1 或 -1 , 则系统可能不鼓励向用户 1 推荐 BGM 优美的电影,而用户 1 仍然喜欢 BGM 优美的电影。我认为这种情况是应该避免的。