推荐系统的离线评估

数据挖掘 推荐系统 评估
2022-03-05 01:03:49

假设我想比较一个推荐系统 (A) 是否比另一个 (B) 更好。

一种方法是让人们对两个系统返回的推荐进行评分。

但是,在某些情况下,我想离线评估我的推荐系统。我考虑的一种方法是从系统 A 收集用户对推荐的评分,并将它们转化为测试数据集。但是,如果系统 B 返回的推荐没有出现在测试数据集中,这并不意味着它们不好。这只是意味着我对他们没有评价。

一些替代方案:

  • 尽量增加测试数据集的数量,以增加推荐者之间的重叠。
  • 限制项目空间的大小,让推荐者在测试期间从 500 个而不是 5*10^6 个项目中选择项目。

您会推荐哪些其他方法?

2个回答

推荐系统中的离线测试总是存在偏差。真正的评估发生在 A/B 测试中。但是,这不应该阻止人们进行离线测试。

正在使用多臂强盗对该主题进行研究。我建议使用reco-gym阅读离线测试程序

以下研讨会讨论了消除这些偏差并为推荐系统开发有效的离线估计器。他们还开设了关于有效地对推荐系统进行离线评估的在线 课程。

您还可以在本网站上观看有关反事实评估的视频教程

传统的离线评估使用从机器学习和信息检索中借鉴的指标和方法来估计推荐的性能。它们可能是偏见,但它们是芯片替代品。
离线评估遵循训练测试评估程序:
1.将用户数据拆分为训练集和测试集。
2.在训练集上训练推荐算法。对于每个用户:
2.1.生成推荐列表
2.2.测试预测准确性或排名有效性
对于将用户数据拆分为训练集和测试集的部分,我通常会删除一些部分训练推荐器时的数据,然后将其用作ground true。
在你的情况下,我会计算两个 RS 的度量并比较结果,当然使用相同的数据。有关评估的更多信息,请参阅https://scholarworks.boisestate.edu/cgi/viewcontent.cgi?article=2703&context=td