【发布时间】:2015-12-22 19:26:39
【问题描述】:
我开始使用ALS algorithm 开发离线推荐系统。 我需要为系统设定一个目标。
所以我想知道用于评估推荐系统的标准。 我已经知道 MAP(平均平均精度)和对 baselineRmse 的改进,我想知道:现代推荐系统中这些标准的性能如何设定我的目标。
【问题讨论】:
标签: recommendation-engine evaluation precision-recall
我开始使用ALS algorithm 开发离线推荐系统。 我需要为系统设定一个目标。
所以我想知道用于评估推荐系统的标准。 我已经知道 MAP(平均平均精度)和对 baselineRmse 的改进,我想知道:现代推荐系统中这些标准的性能如何设定我的目标。
【问题讨论】:
标签: recommendation-engine evaluation precision-recall
在推荐系统的早期,人们认为预测评分是个好主意。事实证明,这本身几乎没有用。如果您在 UI 中有足够的空间来显示一些推荐,您会选择您认为用户会选择的评分最高的推荐吗?这总是会导致糟糕的表现。评分预测是 RMSE 旨在衡量的。
另一方面,MAP@k 旨在找到推荐器中的预测性。它衡量训练数据预测测试数据中的内容的程度。它还说明了推荐的顺序。最近发现推荐的排名/排序对推荐的有效性有更大的影响,因为如果你只能显示有限的数量,它们最好是最有可能导致用户采取行动的。
MAP@k 还考虑了排名,如果您测量 MAP@1 和 MAP@10,您将看到 MAP 分数下降如果您的第一个推荐更有可能在测试数据比10号。这意味着您订购的建议大致正确。
出于这些原因,我们使用 MAP@k。拆分您将在以后的休息中使用的“黄金标准”数据集并保持拆分静态 - 大约 80%-20% 将按随机选择或时间拆分,最近的 20% 用作测试拆分。在 80% 上构建模型,然后为 20% 中的每次交互获取推荐,并查看推荐是否包含测试集中实际交互的项目。所有这些的总和将进入 MAP@k 计算,k 取决于您要求的推荐数量。
请参阅这些参考资料和一些我们必须这样做的工具:
【讨论】: