文章目录
Amazon.com Recommendations: Item-to-item collaborative filtering
Greg Linden, Brent Smith, and Jeremy York • Amazon.com
IEEE Internet Computing, 2003
电子商务推荐存在的挑战
- 数据规模大
- 需要高质量的实时推荐(系统需要实时响应用户行为)
- 新用户的冷启动问题
研究思路
- 目前有三种解决推荐的方法:传统协同过滤、聚类模型、search-based(contented based)。
- 我们提出的方法为item-to-item collaborative filtering。与传统的协同过滤不同,我们算法的在线计算花费与用户数量和物品数量无关,可以在海量数据上实时生成高质量推荐。
相关工作:已有的推荐算法及其不足
- 大多数推荐算法首先寻找对目标用户购买或评分的物品有同样行为的用户集,然后将这些相似用户产生过行为的物品进行合并,再剔除掉目标用户已经有过行为的物品,将剩下的物品推荐给目标用户。
传统协同过滤(基于用户的协同过滤)
- 传统的CF将每个用户表示为与物品数量有关的N维向量,用户对物品的购买行为或者积极评分表示为正数,消极的评分会表示为负数。为了补偿热门物品,该算法通常将用户向量乘以逆频率(对物品有购买或者评分行为的用户数量),使得较不为人知的物品更具有相关性[3]。对于大多数用户来说,这个向量极度稀疏。
- 算法基于和目标用户极为相似的一小部分用户产生推荐。有各种各样的方法计算用户之间的相似度,普遍采取的方法是两个用户向量之间的cosine角度。[4]
- 从相似用户的物品中选择推荐物品的算法也有很多,一种通用的方法是按照物品被相似用户购买的数量排序。
- 使用协同过滤产生推荐计算花费大,最坏是 O ( M N ) O(MN) O(MN),由于用户购买行为的稀疏性,算法最终的花费约为 o ( M + N ) o(M+N) o(M+N)。可以通过减小数据规模部分解决计算花费问题[4, 5]。然而所有减小数据规模的方法都会降低推荐质量。
- 传统CF没有或者很少离线计算,对于大量的用户和物品在线计算。算法在大规模数据上不可行,除非进行数据降维、采样和部分,这些方法会降低推荐质量。
聚类模型
- 聚类模型将用户分为很多segments,将寻找目标用户相似用户的任务视为一个分类任务。算法目标是将目标用户分配到包含最相似用户的segment中,然后使用segment中用混购买的商品和评分产生推荐。
- 聚类模型相比CF有更好的在线可扩展性和表现[3],因为聚类算法只将用户和可控制的segments数量比较而不是所有用户。
- 复杂花费高的聚类计算离线进行。聚类模型的质量很差[1]。可以使用更多(finegrained)细粒度的segments来提高质量,但是在线的user-segment分类将会和使用CF寻找相似用户花费一样。
- 聚类模型可以离线完成大部分计算,但推荐的质量相对较差。为了提高推荐质量,可以增加类别数量,但这会加大用户在线计算类别的花费。
serach-based(contented-based)methods[8]
- 推荐结果要么太general要么太narrow
- 基于搜索(内容)的模型离线构建关键字,类别和作者索引,但无法提供有趣的,有针对性的物品推荐。 对于拥有大量购买和评级行为的用户,它们的推荐很差。
我们的工作:item-to-item CF
- 数据规模的比较
(1)amazon.com:over 29 million customers, several items(ours)
(2)MovieLens:35000 customers and 3000 items.[4]
(3)EachMovie: 4000 customers and 1600 items. [3] - 传统的CF寻找相似的用户,item-based CF寻找相似的物品[9],建立I-I矩阵。
- 相似物品表的离线计算耗时,时间复杂度最高为 O ( N 2 M ) O(N^2M) O(N2M),实际中接近 O ( N M ) O(NM) O(NM)。对购买过热门物品的用户采样可以以推荐质量轻微降低为代价大量减少运行时间。
- 有了相似物品表之后,算法寻找用户购买或评分过的每个物品的相似物品,将这些物品中最流行或者最相关的物品进行推荐。这个计算过程只取决于用户购买或者评分过的物品数量,所以速度很快。
- item-to-item CF算法可扩展性和性能的关键是离线计算花费大的物品相似度矩阵,在线部分只为用户购买或评分的物品寻找其相似的物品,这部分的计算与用户数量和物品数量无关,只与用户购买或者评价的物品数量有关。所以,即使在超大数据集上速度依然很快。因为推荐了相似度(相关性)很大的物品,推荐质量也很好[10]。与传统的CF不同,在有限的用户数据集上表现也很好,可以基于用户购买的两三个物品提供高质量推荐(用户冷启动)。
参考文献
[1] J.B. Schafer, J.A. Konstan, and J. Reidl, “E-Commerce Recommendation Applications,” Data Mining and Knowledge Discovery, Kluwer Academic, 2001, pp. 115-153.
[3] J. Breese, D. Heckerman, and C. Kadie, “Empirical Analysis of Predictive Algorithms for Collaborative Filtering,” Proc. 14th Conf. Uncertainty in Artificial Intelligence, Morgan Kaufmann, 1998, pp. 43-52.
[4] B.M. Sarwarm et al., “Analysis of Recommendation Algorithms for E-Commerce,” ACM Conf. Electronic Commerce, ACM Press, 2000, pp.158-167.
[5] K. Goldberg et al., “Eigentaste: A Constant Time Collaborative Filtering Algorithm,” Information Retrieval J., vol. 4, no. 2, July 2001, pp. 133-151.
[8] M. Balabanovic and Y. Shoham, “Content-Based Collaborative Recommendation,” Comm. ACM, Mar. 1997, pp. 66-72.
[9] G.D. Linden, J.A. Jacobi, and E.A. Benson, Collaborative Recommendations Using Item-to-Item Similarity Mappings, US Patent 6,266,649 (to Amazon.com), Patent and Trademark Office, Washington, D.C., 2001.
[10] B.M. Sarwar et al., “Item-Based Collaborative Filtering Recommendation Algorithms,” 10th Int’l World Wide Web Conference, ACM Press, 2001, pp. 285-295.