【推荐系统论文精读系列】(一)--Amazon.com Recommendations

简介: 推荐系统算法在电商网站现在已经被广泛使用,特们会使用关于用户兴趣的数据作为输入然后去产生一系列的推荐列表。一些应用只使用顾客购买的物品或者显示他们兴趣的数据,而且他们还会使用用户的其它属性,包括用户浏览过的物品,人口特征画像,感兴趣的话题和最喜爱的艺术家等。

@TOC


论文名称:Amazon.com Recommendations Item-to-Item Collaborative Filtering Prediction
原文地址:Amazon.com Item-to-Item


⚡本系列历史文章⚡


【推荐系统论文精读系列】(一)--Amazon.com Recommendations
【推荐系统论文精读系列】(二)--Factorization Machines
【推荐系统论文精读系列】(三)--Matrix Factorization Techniques For Recommender Systems
【推荐系统论文精读系列】(四)--Practical Lessons from Predicting Clicks on Ads at Facebook
【推荐系统论文精读系列】(五)--Neural Collaborative Filtering
【推荐系统论文精读系列】(六)--Field-aware Factorization Machines for CTR Prediction
【推荐系统论文精读系列】(七)--AutoRec Autoencoders Meet Collaborative Filtering
【推荐系统论文精读系列】(八)--Deep Crossing:Web-Scale Modeling without Manually Crafted Combinatorial Features
【推荐系统论文精读系列】(九)--Product-based Neural Networks for User Response Prediction
【推荐系统论文精读系列】(十)--Wide&Deep Learning for Recommender Systems
【推荐系统论文精读系列】(十一)--DeepFM A Factorization-Machine based Neural Network for CTR Prediction
【推荐系统论文精读系列】(十二)--Neural Factorization Machines for Sparse Predictive Analytics


一、摘要


推荐系统算法在电商网站现在已经被广泛使用,特们会使用关于用户兴趣的数据作为输入然后去产生一系列的推荐列表。一些应用只使用顾客购买的物品或者显示他们兴趣的数据,而且他们还会使用用户的其它属性,包括用户浏览过的物品,人口特征画像,感兴趣的话题和最喜爱的艺术家等。


在亚马逊电商网站,他们使用了推荐算法去为每个用户个性化推荐他们的网上商店。这个商城在根本上改变了基于顾客的兴趣,我们会向一个软件工程师展示程序标题,给一个妈妈推荐婴儿玩具。点击率和转化率是两个重要的网站和邮件广告有效性的评估指标,这极大的超过了那些没有针对性的文本,例如横幅广告或者卖得最好的物品列表。


电商推荐算法经常运作于一些具有挑战性的环境,例如:


  • 一个大的零售商可能会有巨大的数据量,数千万的顾客和数以百万的不同种类的物品
  • 一些应用需要实时的返回结果,不超过0.5秒仍然需要高质量的推荐列表
  • 新的顾客通常有有限的信息,只有少量的购买历史或者物品评分
  • 老顾客会有过剩的信息,数以千计的购买历史或者评分
  • 顾客数据是不稳定的,每个交互都会提供不同的顾客数据,并且算法必须要立刻的进行响应新的信息。


这里有三种方法去解决这些推荐问题,分别是:traditional collaborative filtering,cluster model,search-based。这里,我们会对比这几种方式和我们的算法,叫做 item-to-item collaborative filtering。不想传统的协同过滤,我们的算法线上计算不依赖于大量的顾客和物品类别。我们的算法会实时的产生推荐,囊括巨大的数据集,并且产生高质量的推荐。


二、推荐算法


大多数的推荐算法开始是以发现一系列用户,这些用户会购买或者评分重叠的一些物品,算法会聚集这些相似用户的物品,然后消除目标用户已经购买或者评分过的,然后将剩余的物品推荐给用户。两个受欢迎的算法分别是协同过滤和聚类模型。其它的算法还有基于搜索的方式和我们的物品-物品的协同过滤方法,都是集中区发现相似的物品,而不是相似的用户。对于每个用户购买过或者评分过的物品,算法会尝试发现相似的物品。然后会累积这些相似的物品并且推荐他们。


三、传统协同过滤


传统的协同过滤算法呈现一个用户作为一个N维的向量,N是不同物品门类的数目。向量的不同部分代表用户对该物品的一个积极程度,为了补偿那些卖的最好的物品,这个算法通常会通过转化频率然后乘以相应的向量部分,使那些不怎么受欢迎的物品也变得更加相关,罪域大多数顾客来说,这个向量是非常的稀疏。


这个算法会产生推荐基于一些最相似的用户。它能够衡量两个用户A和B的相似性以某种方式,一种通用的方式就是衡量两个向量的余弦相似度:


网络异常,图片无法展示
|


这个算法能够从相似用户的物品中进行选择作为推荐,通用的方式就是去对每个物品进行排序,评分的标准就是有多少相似的用户购买过它。


使用协同过滤去产生推荐是计算非常昂贵的。它最坏情况下的复杂度为

网络异常,图片无法展示
|
网络异常,图片无法展示
|
是顾客的数量,
网络异常,图片无法展示
|
是不同中物品的数量,因为他需要遍历不同的用户和物品。可是,因为大多用户的特征向量是非常稀疏的,这个算法的复杂度倾向于
网络异常,图片无法展示
|
。扫描每个用户几乎是
网络异常,图片无法展示
|
而不是
网络异常,图片无法展示
|
,因为几乎大都数的用户向量包含很少的有效值物品。但是也会存在购买过或者评分过百分比很大的用户,这种的就需要
网络异常,图片无法展示
|
,因此这个算法的表现几乎是
网络异常,图片无法展示
|
。尽管是这样,当算法面临巨量的数据时,例如100万或者更多的用户和物品,这个算法会遇到严重的表现和规模问题。


它是很可能去部分的解决这些规模问题通过减少数据大小。我们会通过随机采样减少M的数量或者时丢弃一些几乎没买什么物品的顾客,还可以通过丢弃那些受欢迎和不受欢迎的物品来减少N的数量。还有一种方式就是减少物品的数量通过一些因素特征将他们进行分区根据物品的类别或者感兴趣的分类。维度缩减技术例如聚类或者主成分分析成狗通过一些因素来减少M和N的数量。


不幸的是,所有这些方式都会降低推荐的质量,首先,算法只进行计算少量的用户采样,那么算法挑选出来的顾客将会与目标用户的相似性降低。第二,将物品进行分区会导致只能够推荐特定领域的物品。第三,i法国算法丢弃最受欢迎和不受欢迎的物品,他们将不会出现在推荐系统中,并且那些只买个这些物品的顾客将再也不会得到推荐。维度缩减技术适用于物品空间有重叠,可以使用这种方式来消除低频物品。还适用于那些相似用户分到不同的组中,像我们所描述的,聚类也会适当降低推荐质量。


四、聚类模型


为了去发现相似的用户群体,聚类模型会将用户分成几个部分,并且将这个任务转化成分类问题,算法的目标就是去将用户分配到包含最相似用户的部分群体中。然后它会使用这个部分群体的购买记录或者评分去产生推荐。


这个部分通常时使用聚类或者其它无监督的学习算法创建,尽管一些应用使用手动的进行分类。使用一个相似度的指标,一个聚类算法会将最相似的用户聚到一个组中。针对于大量的数据,获得最优聚类显然是不实际的,大多数是使用不同种方式的贪婪算法进行聚类。这些算法通常会以一小部分开始,随机选择一些用户。然后他们会重复进行匹配用户到存在的组别中,使用一些准备好的去创建新的或者合并存在的类。对于非常大的数据集,特别是那些高纬度的,采样或者降维是非常必要的。


一旦算法生成了这些组,他就会计算用户的相似度和不同的组,然后选择最相似的组,将用户分配进去,一些算法会将用户分配到多个组中并且描述互相的关系。


聚类模型有很好的线上可扩展性和表现能力比协同过滤,因为对比用户到一个受约束的类而不是整个的用户群体。复杂度和昂贵的聚类计算通常是线下计算的。然而推荐的质量是很低的,聚类模型会将大多数用户聚到一个类中,然后匹配目标用户到相应的群体,然后考虑所有当前类相似的用户的物品作为推荐。由于通过聚类模型发现的相似用户不是最相似的用户,所以他们推荐的物品往往不是特别相关。通过使用更多的细粒度的数据类别可能会提高推荐质量,但是这带来的影响就是计算起来特别的贵。


五、基于搜索方式


基于搜索或者文本的方式会将推荐问题看作是搜索相关的物品。如果一个用户购买或者评分过一个物品,这个算法会构造一个搜索去查找其它受欢迎的物品通过这个物品相同的作者,艺术家或者是导演,还有就是相似的关键词或者兴趣主题。如果用户买了 Godfather DVD,那么推荐算法可能推荐其它的犯罪戏剧标题,其它的例如 Marlon Brando或者其它的电影被Francis Ford Coppola所导演的电影。


如果用户有很多的购买历史或者评分,基于搜索的推荐算法仍然会表现的很好。对于一个用户如果购买过数以千计的物品,它是不实际的去搜索所有的物品,这个算法必须使用总数据的子集,这样就会减少推荐的质量。在所有的情况,这个算法的推荐质量是相对不好的,这个算法通常要门太笼统要么太狭窄。推荐系统应该帮助一个顾客发现新的、相关的和感兴趣的物品,但是这个算法没有达到这个目的。


六、基于物品的协同过滤


Amazon.com 使用推荐系统作为一个有目的性的营销工具在一些邮件运动或者是大多数的网站,包括高流量的Amazon.com的主页。


点击 "Your Recommendations" 链接会引领顾客去一个能够过滤他们的推荐的一个地方,并且能够看到为什么这些物品会被推荐。


我们的购物车推荐,将会提供顾客物品建议基于他们的购物车的物品。这个是相似的会与那些一时冲动购买的物品在一个超市中,但是我们的是为每个顾客个性化推荐的。


Amazon.com广泛的使用推荐算法去个性化它的网站给符合每个顾客的兴趣。由于现有的推荐算法是不能扩展到千万的顾客和物品数据,所以我们开发了属于我们自己的推荐算法。我们的算法叫做 Item-to-Item Collaborative Fitering ,能够扩展巨大的数据集并且能够实时的产生高质量的推荐列表。


七、怎样工作?


相反使用匹配相似的用户,我们的算法是进行匹配相似的物品,然后结合相似的物品放到推荐列表中。


为了确定最相似的匹配,这个算法会构建一个相似物品的表通过发现物品,那些顾客趋向卖的物品。我们可以构建一个物品和物品的一个矩阵,不断进行迭代成对的物品,然后计算其相似度为每对的物品。


可是,一些商品对没有共同的顾客,并且因此这个方式对处理时间和内存使用是不高效的。下面会提供一个更高的迭代方法通过计算一个物品和其相关物品的相似度。


for each item in prodect catelog I1

   for each customer C who purchased I1

    for each item I2 purchased by customer C

        Record that a customer purchased I1 and I2

   for each item I2

    Compute the similarity between I1 and I2


计算不同物品之间的相似度存在多种方式,但是最常用的方式就是使用余弦相似度进行计算,每个向量会对应一个物品而不是一个用户,并且向量的M维度对应着那些顾客购买过它们。


这个离线计算需要大量的使劲啊,最坏的复杂度为

网络异常,图片无法展示
|
,在实际中,它是非常接近
网络异常,图片无法展示
|
的,因为大多数的用户有很少的购买记录。


给定一个相似物品表,这个算法会发现不同物品的相似性然后根据物品的购买或者评分,然后来接这些物品,然后进行推荐最受欢迎的或者最具关联的物品,这个计算是非常的快,只依赖于用户购买过或者评分过物品的数量。


八、可扩展性


Amazon.com 有着超过2900万的顾客和数百万的物品,其它的零售商的数据可能比这个还要大。尽管这些数据为推荐提供了机会,但是它也是一个诅咒,由于数据量太大,为这些数据设计算法很难,前几个算法的数量级比这些数据小很多。


几乎所有现存在的算法都只使用于小数据集,例如,MovieLend数据集包含35000个用户和3000个物品,而且 EachMovie数据集包含4000个顾客和1600个物品。


对于这些大数据集,这些算法要进行扩展是非常贵的在离线计算部分。作为一个简短的对比展示,现有的算法都达不到标准:


  • 传统的协同过滤不需要或者很少需要离线计算,而且它的计算式和用户和物品的数量成正比,这个算法是不实际的对于大的数据集,如果它不适用数据降维或者采样、分区这些方式,但是一旦使用,推荐的质量就会降低。
  • 聚类模型能够在线下计算,但是推荐的质量是不怎么好,为了提高这个,就需要增多分类的数据,提高细粒度,但是这会使线上用户类别分类变得非常贵
  • 基于搜索的模型会建立关键词、分类和作者的索引在线下,但是它不能够提供感兴趣、有目的的推荐,而且当用户和物品的规模过大时,也会变得表现极差。


Item-to-Item Collaborative Filtering的可扩展性和表现能力的关键地方就是它可以创建昂贵的物品相似矩阵在线下。这个算法的线上部分为根据用户的购买记录或者评分寻找相似的物品,它是仅仅依赖一些用户购买过或者评分过的物品。因此,这个算法时非常快的即使是在大数据的情况下。因为这个算法的推荐是与相似物品是高度关联的,这个推荐质量是非常好的。不像传统的协同过滤,这个算法表现得很好对于有限的用户数据,提供高质量的推荐,尽管一些用户只购买或2个或者3个物品。


九、总结


推荐算法提供了一个有效的方式去做有目的性的营销通过为每个用户做个性化的购物推荐。对于一个大的零售商,例如Amazon.com 一个好的推荐算法是可扩展到很大的用户和物品数据集的,需要次秒级的处理时间然后去产生线上推荐,能够去对用户数据的改变立刻做出相应,并且为用户推荐有吸引力的物品不管用户购买过物品或者评分的数量。不像其它的算法,基于物品的协同过滤是能够面临这个挑战的。


在将来,我们期待零售行业可以更广泛的应用推荐算法去做出有针对性地营销不管是在线下还是在线上。然后电商有着个性化推荐最容易的工具,但与传统的大规模方式相比,这项技术提高了交易率,这也将使离线零售商更具有吸引力地用于邮政邮件、优惠卷和其它形式地客户沟通。


References


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.


2.P. Resnick et al., “GroupLens: An Open Architecture for Collaborative Filtering of Netnews,” Proc. ACM 1994 Conf. Computer Supported Cooperative Work, ACM Press, 1994, pp. 175-186.


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.


6.P.S. Bradley, U.M. Fayyad, and C. Reina, “Scaling Clustering Algorithms to Large Databases,” Knowledge Discovery and Data Mining, Kluwer Academic, 1998, pp. 9-15.


7.L. Ungar and D. Foster, “Clustering Methods for Collaborative Filtering,” Proc. Workshop on Recommendation Systems, AAAI Press, 1998.


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.

目录
相关文章
|
6月前
|
设计模式 搜索推荐 测试技术
电影推荐系统的设计与实现(论文+系统)_kaic
电影推荐系统的设计与实现(论文+系统)_kaic
|
机器学习/深度学习 搜索推荐 算法
基于协同过滤的旅游推荐系统设计与实现(论文+源码)_kaic
摘要:旅游已经成为了大众节假日放松的主要方式,但因为不熟悉旅游地点带来的选择困难却是不可避免的。随着旅游业的发展旅游行业越来越信息化,用户获取旅游景点信息更加方便。然而,用户在选择旅游目的地时,往往会面对海量的景点信息,这导致他们难以找到适合自己的景点,同时也费时费力 。数量众多的旅游景点存在着信息过载现象且日益严重,用户在网上查找时很难真正搜索到自己感兴趣的旅游景点,对此推荐系统是一种行之有效的解决方法。目前推荐系统已在电影、新闻、音乐、电子商务等方面应用广泛,但在旅游领域还未广泛使用。各大旅游网站多是提供信息查询及订票服务,因此本文将协同过滤算法应用于旅游景点的推荐。
|
SQL 存储 搜索推荐
基于线上考研资讯数据抓取的推荐系统的设计与实现(论文+源码)_kaic
随着互联网的飞速发展,互联网在各行各业的应用迅速成为众多学校关注的焦点。他们利用互联网提供电子商务服务,然后有了“考研信息平台”,这将使学生考研的信息平台更加方便和简单。 对于考研信息平台的设计,大多采用java技术。在设计了一个搭载mysal数据库的全人系统,是根据目前网上考研信息平台的情况,专门开发的,专门根据学生的需要,实现网上考研信息平台的在线管理,并定期进行各种信息存储,进入考研信息平台页面后,即可开始操作主控界面。系统功能包括学生前台:首页、考研信息、申请指南、资料信息、论坛信息、我的、跳转到后台、购物车、客服、管理员:首页、人人中心、研究生信息管理、学生管理、申请指南管理、资料信
|
搜索推荐 安全 关系型数据库
基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic
最近几年来,伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变,学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的需求情况,以至于推荐效果差强人意。与此同时,这种信息数字化的新学习方法在给学生群体带来方便的同时,也带来了很多其他的问题,例如信息冗杂、形式让人眼花缭乱的问题,导致系统检索变得难以运行。 解决问题的关键是个性化学习推荐系统,它适合于各式各样的用户产生的各式各样的需求。
|
机器学习/深度学习 搜索推荐 TensorFlow
【推荐系统】TensorFlow复现论文Wide&Deep网络结构
【推荐系统】TensorFlow复现论文Wide&Deep网络结构
220 0
【推荐系统】TensorFlow复现论文Wide&Deep网络结构
|
搜索推荐 TensorFlow 数据处理
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
122 1
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
|
人工智能 搜索推荐 算法
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
285 0
|
搜索推荐 TensorFlow 数据处理
【推荐系统】TensorFlow复现论文PNN网络结构
【推荐系统】TensorFlow复现论文PNN网络结构
115 0
【推荐系统】TensorFlow复现论文PNN网络结构
|
搜索推荐 TensorFlow 算法框架/工具
【推荐系统】TensorFlow复现论文NeuralCF网络结构
【推荐系统】TensorFlow复现论文NeuralCF网络结构
178 0
【推荐系统】TensorFlow复现论文NeuralCF网络结构
|
机器学习/深度学习 搜索推荐 算法
【推荐系统论文精读系列】(三)--Matrix Factorization Techniques For Recommender Systems
现在推荐系统一般是基于两种策略,一种是基于文本过滤的方式,另外一种是协同过滤,而基于文本过滤的方法是创造画像为用户或者物品,说白了就是用一些描述性的特征去描述它们,例如对于一部电影来说,可以为其创造画像电影类型、导演、演员、电影市场、票房等来进行描述,对于用户来说,可以用一些人口统计特征来进行描述。
474 1