推荐系统 - Recall@K 和 Precision@K
Recommendation System - Recall@K and Precision@K
我正在为我的公司构建一个推荐系统,我对计算 precision@K 和 recall@K 的公式有疑问,我在 Google.
上找不到
使用 precision@K,一般公式是相关的前 k 个集合中推荐项目的比例。
我的问题是如何定义哪些项目相关,哪些不相关,因为用户不一定与所有可用项目进行交互,而只是其中的一小部分。如果前 k 个推荐项目缺乏真实性怎么办,这意味着用户没有与其中一些项目进行交互,所以我们没有实际评级怎么办?我们应该从计算中忽略它们还是将它们视为不相关的项目?
下面的文章建议忽略这些非交互项目,但我不太确定。
https://medium.com/@m_n_malaeb/recall-and-precision-at-k-for-recommender-systems-618483226c54
非常感谢。
你提到 "recommended items" 所以我假设你是在谈论计算推荐引擎的精度,即排名靠前 k
的预测数量,这些预测是对用户未来的准确预测互动。
推荐引擎的objective 是根据过去的交互来模拟未来的交互。这样的模型是在交互数据集上训练的,因此最后一次交互是目标,n
过去的交互是特征。
因此,精度的计算方法是 运行 模型在已知基本事实(最后一次交互)的测试集上,除以基本事实在顶部的预测数量 k
测试项目总数的预测。
用户没有互动过的项目不会出现,因为我们正在根据 其他 用户的行为训练模型。
我正在为我的公司构建一个推荐系统,我对计算 precision@K 和 recall@K 的公式有疑问,我在 Google.
上找不到使用 precision@K,一般公式是相关的前 k 个集合中推荐项目的比例。
我的问题是如何定义哪些项目相关,哪些不相关,因为用户不一定与所有可用项目进行交互,而只是其中的一小部分。如果前 k 个推荐项目缺乏真实性怎么办,这意味着用户没有与其中一些项目进行交互,所以我们没有实际评级怎么办?我们应该从计算中忽略它们还是将它们视为不相关的项目?
下面的文章建议忽略这些非交互项目,但我不太确定。
https://medium.com/@m_n_malaeb/recall-and-precision-at-k-for-recommender-systems-618483226c54
非常感谢。
你提到 "recommended items" 所以我假设你是在谈论计算推荐引擎的精度,即排名靠前 k
的预测数量,这些预测是对用户未来的准确预测互动。
推荐引擎的objective 是根据过去的交互来模拟未来的交互。这样的模型是在交互数据集上训练的,因此最后一次交互是目标,n
过去的交互是特征。
因此,精度的计算方法是 运行 模型在已知基本事实(最后一次交互)的测试集上,除以基本事实在顶部的预测数量 k
测试项目总数的预测。
用户没有互动过的项目不会出现,因为我们正在根据 其他 用户的行为训练模型。