9

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

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

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

谢谢

4

1 回答 1

24

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 或平均precision@K 分数:如果您的一些用户在precision@5 指标上得分为0,那么您的平均precision@5 可能介于0 和0.2 之间。

希望这可以帮助!

于 2017-08-02T16:39:32.873 回答