评估 LightFM 推荐模型

Posted

技术标签:

【中文标题】评估 LightFM 推荐模型【英文标题】:Evaluating the LightFM Recommendation Model 【发布时间】:2018-01-09 02:35:29 【问题描述】:

我已经使用lightfm 有一段时间了,发现生成推荐非常有用。但是,我想知道两个主要问题。

    在推荐排名很重要的情况下评估 LightFM 模型,我应该更多地依赖 precision@k 或其他提供的评估指标,例如 AUC score?与其他指标相比,在哪些情况下我应该专注于改进我的precision@k?或者它们是否高度相关?这意味着如果我设法提高我的precision@k 分数,其他指标也会随之而来,对吗?

    如果使用 WARP 损失函数训练的模型对于 precision@5 的得分为 0.089,您将如何解释? AFAIK,Precision at 5 告诉我前 5 个结果中有多少是积极的/相关的。这意味着如果我的预测无法进入前 5 名,我将得到 0 precision@5,或者如果我在前 5 名中只有一个预测正确,我将得到 0.2。但我无法解释 0.0xx 对 precision@n 意味着什么

谢谢

【问题讨论】:

【参考方案1】:

Precision@K 和 AUC 测量不同的事物,并为您提供关于模型质量的不同观点。一般来说,它们应该是相关的,但了解它们之间的差异可能会帮助您选择对您的应用程序更重要的一个。

Precision@K 测量 K 个最高排名项目中正项目的比例。因此,它非常关注列表顶部的排名质量:只要前 K 项大多是正面的,其余排名的好坏并不重要。如果您只想向用户展示列表的最顶部,这将是一个合适的指标。 AUC 衡量整体排名的质量。在二元情况下,它可以解释为随机选择的正项排名高于随机选择的负项的概率。因此,接近 1.0 的 AUC 将表明,总的来说,您的排序是正确的:即使前 K 项都不是正数,这也是正确的。如果您无法完全控制将向用户呈现哪些结果,则此指标可能更合适;可能是前K个推荐的商品已经没有了(比如缺货),你需要把排名往下移。较高的 AUC 分数会让您确信您的排名始终是高质量的。

另请注意,虽然 AUC 指标的最大值为 1.0,但可实现的最大精度@K 取决于您的数据。例如,如果您测量precision@5,但只有一个正项,则您可以达到的最高分数为0.2。

在 LightFM 中,AUC 和precision@K 例程返回度量分数数组:测试数据中的每个用户对应一个。最有可能的是,您平均这些以获得平均 AUC 或平均精度@K 分数:如果您的一些用户在精度@5 指标上得分为 0,那么您的平均精度@5 可能介于 0 和 0.2 之间。

希望这会有所帮助!

【讨论】:

在非二进制情况下如何解释 AUC?即电影分数是连续的 有效点。我宁愿期待像RMSE这样的东西。有没有可能?

以上是关于评估 LightFM 推荐模型的主要内容,如果未能解决你的问题,请参考以下文章

模型中评价指标过多会怎么样

推荐系统评估:你的推荐系统足够好吗?

推荐系统评估

深度 | 推荐系统评估

最全面的推荐系统评估方法介绍

推荐系统之评估方法和评价指标PR、ROC、AUC