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