评估 LightFM 推荐模型

Evaluating the LightFM Recommendation Model

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

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

  2. 如果使用 WARP 损失函数训练的模型的 precision@5 得分为 0.089,您会如何解释? AFAIK,Precision at 5 告诉我前 5 个结果的比例 positives/relevant。这意味着如果我的预测无法进入前 5 名,我将得到 0 precision@5,或者如果我在前 5 名中只有一个预测正确,我将得到 0.2。但我无法解释 0.0xx 对 [=17 意味着什么=]

谢谢

Precision@K 和 AUC 衡量的是不同的东西,让您从不同的角度看待模型的质量。一般来说,它们应该是相关的,但了解它们的不同之处可能有助于您选择对您的应用程序更重要的那个。

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

另请注意,虽然 AUC 指标的最大值为 1.0,但可实现的最大精度@K 取决于您的数据。比如你测precision@5,但是只有一个positive项,那么你能达到的最大分数是0.2。

在 LightFM 中,AUC 和 precision@K 例程 return 指标分数数组:测试数据中的每个用户一个。最有可能的是,您对这些进行平均以获得平均 AUC 或平均 precision@K 分数:如果您的某些用户在 precision@5 指标上的分数为 0,则您的平均 precision@5 可能在 0 到 0.2 之间。

希望对您有所帮助!