评估LightFM推荐模型

时间:2017-08-02 03:52:03

标签: python machine-learning recommendation-engine matrix-factorization

我一直在玩lightfm很长一段时间,并发现生成推荐非常有用。但是,我想知道两个主要问题。

  1. 在建议的排名重要的情况下评估LightFM模型,我是否应该更多地依赖precision@k或其他提供的评估指标,例如AUC score?在哪些情况下,与其他指标相比,我应该专注于改进precision@k?或者他们高度相关?这意味着如果我设法提高我的precision@k分数,其他指标将会跟随,我是否正确?

  2. 如果使用WARP损失函数训练的模型对precision@5得分为0.089,您会如何解释? AFAIK,Precision at 5告诉我前5个结果中有多少比例为正/相关。这意味着如果我的预测无法达到前5,我将得到0 precision@5如果我在前5中只有一个预测正确,我将得到0.2但是我无法解释0.0xx对于{{1 }}

  3. 由于

1 个答案:

答案 0 :(得分:13)

Precision @ K和AUC测量不同的东西,并为您提供有关模型质量的不同视角。一般来说,它们应该是相关的,但了解它们的不同之处可能有助于您选择对您的应用更重要的那个。

  • Precision @ K衡量K个排名最高的项目中的正项目比例。因此,它非常关注列表顶部的排名质量:只要前K个项目大多为正数,排名的其余部分的好坏都无关紧要。如果您只是将用户显示在列表的最顶层,这将是一个合适的指标。
  • AUC衡量整体排名的质量。在二元情形中,它可以被解释为随机选择的阳性项目的排名高于随机选择的阴性项目的概率。因此,接近1.0的AUC将表明,您的排序基本上是正确的:即使前K个项目都不是正数,也可能是这样。如果您未对将向用户呈现哪些结果进行完全控制,则此指标可能更合适;可能是前K个推荐项目不再可用(比如,它们缺货),你需要进一步降低排名。高AUC分数将使您确信您的排名始终保持高质量。

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

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

希望这有帮助!