评估基于项目的协同过滤对二进制 (yes/no) 产品推荐的性能

evaluating the performance of item-based collaborative filtering for binary (yes/no) product recommendations

我正在尝试为基于项目的产品推荐协同过滤编写一些代码。输入的行是买家,列是产品,带有一个简单的 0/1 标志来指示买家是否购买了商品。输出是给定购买的相似项目列表,按余弦相似度排序。

我正在尝试测量几种不同实现的准确性,但我不确定最佳方法。我发现的大多数文献都提到使用某种形式的均方误差,但是当您的协同过滤算法预测评级(例如 5 星中的 4 星)而不是推荐用户将购买的商品时,这似乎更适用。

我正在考虑的一种方法如下...

上面的内容似乎有点武断,但我认为在对相同数据进行训练时比较两种不同的算法可能很有用。

测试推荐系统的最佳方式始终是手动验证结果。然而,某种自动验证也很好。

本着推荐系统的精神,你应该及时拆分你的数据,看看你的算法是否可以预测用户未来的购买行为。这应该为所有用户完成。

不要指望它可以预测一切,100% 的正确性通常是过度拟合的标志。

实际上您的方法与文献中的方法非常相似,但我认为您应该像大多数论文一样考虑使用召回率和精确率。

http://en.wikipedia.org/wiki/Precision_and_recall

此外,如果您将使用 Apache Mahout,那么在此 class 中有一个用于召回和精确的实现; GenericRecommenderIRStatsEvaluator