基于协同过滤的大数据推荐系统
关键词:大数据,协同过滤,电子商务,电影推荐,mapReduce,框架,计算科学
摘要:
协同过滤算法在电子商务网站推荐系统中得到广泛应用,该系统基于对大量用户历史行为数据的分析,目的是探索用户的兴趣并向用户推荐合适的产品。在本文中,我们着重于如何设计一个可靠的和高度准确的电影推荐算法。值得注意的是,该算法不仅局限于电影推荐,还可以应用于电子商务的许多其他领域。在本文中,我们使用Java语言在Ubuntu系统中实现了一个电影推荐系统。得益于MapReduce框架和基于物品的推荐算法,该系统可以处理大型数据集。实验结果表明,该系统在大数据集中具有较高的效率和可靠性。
1 引言
随着电子商务的快速发展,人类进入了网络经济时代,随着数据的爆炸式增长,网络进入了大数据时代。电子商务的快速发展给消费者带来了便利,但面对大量的商品信息,用户很难搜索到有用的信息。信息过载是指从信息接收器或信息处理器处接收到的信息远远超出了它的能力。随着网络技术的不断发展,世界信息和知识处于大爆炸的状态,这也导致信息量大、信息质量差、信息价值低等问题。一方面,人们得到的信息越来越多,另一方面,人们需要花更多的时间和精力去寻找对他们有帮助的信息,这使得信息超载的现象变得越来越严重。
当一个人想看一部电影时,他/她经常会对该看什么电影感到困惑。此时,他/她可以向周围的人寻求意见。但是目前,社会每天都在产生大量的信息。面对这么多的信息,很多人都不知道自己真正需要什么信息。而这,正是推荐系统所做的事情。现在推荐系统的应用随处可见,网上购物就是一个典型的例子。此外,还有电影推荐、新闻推荐、博客推荐等。
推荐系统出现在信息过滤系统的子类试图预测用户对某个物品的“评级”或“偏好”的历史时刻。推荐系统的目标是从集合中选择最有趣的物品,它使用现有用户组的过去行为和意见来预测将来用户最有可能感兴趣的物品。
1.1 我们的贡献
在本文中,我们在大数据环境下实现了一个有效的电影推荐系统。主要工作和贡献如下。
-
-
- 我们提出了一个推荐系统。
-
本文实现了一个高效的准确的电影推荐系统,基于此系统,我们可以根据现有的数据来预测用户对电影的评价。
-
-
- 我们使用协同滤波算法来实现电影推荐系统。
-
协同过滤算法是一种相对灵活的算法,它只需要依赖于用户的商品评分。该算法对商品的推荐不受限制,除传统文件外,推荐的内容还可以包括图片、音频、视频等。此外,该算法还可用于推荐对商品感兴趣的潜在用户。
-
-
- 我们使用MapReduce分布式编程框架。
-
MapReduce分布式处理框架不仅可以用于大规模数据处理,还可以用于隐藏大量繁琐的细节,如自动并行化、负载平衡和危机管理。它将大大简化程序员的开发。另一方面,MapReduce还具有非常好的可伸缩性,也就是说,每一个额外的服务器都将能够接近集群的计算能力。
2 相关工作
目前,大多数的分布式推荐机制都遵循以下理念。利用网络之间的传输评分向量计算每个用户的相似项,最后也是在网络上构建覆盖网。
协同过滤(CF)的概念是在1992年由Goldberg等人首次提出的。挂毯系统只适用于较小的用户组(例如,单个单元),并且对用户有太多的要求(例如,需要用户进行显式评估)。作为CF推荐系统的原型,Tapestry提出了新的推荐理念,但它还存在许多技术缺陷。从那时起,就出现了一个基于评分的CF推荐系统,如可以推荐新闻和电影的GroupLens。目前,还有许多电子商务网站都在使用推荐系统,如亚马逊、CDNow、Drugstor和Moviefinder等。
2001年Tveit等人提出了一种基于洪泛策略的推荐算法,即目标用户将评分向量传递给网络用户来计算相似项。该算法的优点是简单、易于部署。但它的缺点也是显而易见的,该策略具有较大的网络开销,算法的延迟较大。鉴于上述不足,许多研究者提出了改进方案。
2004年,Miller构建了为每个用户描述物品相似性的覆盖网络。该方法通过采用随机访问用户评分向量的方法对覆盖网络进行更新,可以显著降低网络覆盖范围和网络开销。2008年,Kim等人提出了在覆盖网络更新阶段使用面向邻居的传播评分向量的方法,用以替代Tveit等人的全球洪泛策略,它可以有效地控制网络开销。
2010年,Zhen等人提出了一种将以用户为中心的覆盖网络逐层更新到相邻邻居直到达到预设的搜索深度阈值的方法。2009年,Bakker等人提出,随机选择策略可以用于覆盖网络的初始化阶段,从而进一步降低初始化覆盖网络所需的大规模网络开销。
CF推荐算法有两种:基于用户的CF推荐算法(Breeseetal.,2013)和基于物品的CF推荐算法(LiandKim,2003)。
随着用户体验需求的不断增加,系统响应速度必须作为用户体验的重要指标纳入web应用程序中。传统的电子商务推荐系统的可扩展性很差,计算时间也很差。虽然已经提出了各种各样的有效的推荐算法,但面对大量的数据,它的性能仍然还过得去。此外,通过对算法本身的改进,提高计算效率,可以使计算所需的空间越来越小。因此,要改进当前的个性化推荐系统,平台存储、高性能和可伸缩性等问题是必须要考虑的。
本文利用基于物品的协同过滤算法,实现了一个基于Hadoop和MapReduce并行的电影推荐系统。
3 准备工作和定义
CF推荐算法的主要思想是根据现有用户组过去的行为或意见来预测当前用户的兴趣。CF推荐方法可分为两类:基于用户的CF和基于物品的CF。
3.1 基于用户的协同过滤算法
定义:基于用户的协同过滤算法的基本思想是找出与目标用户有相同兴趣的用户,根据最近邻与目标用户之间的相似性,预测目标用户对目标对象的偏好程度。
3.2 基于物品的协同过滤算法
定义:基于物品的协同过滤算法的基本思想是,如果有大量的用户与这两个物品非常相似,则这两个物品是相似的。该算法首先是要计算物品之间的相似度,再找到相似的物品。最后结合用户在类似物品上的评分来计算当前物品的可能评分。基于物品的协同过滤算法可以分为两个步骤:
- 计算物品之间的相似性
- 根据物品之间的相似性和用户的历史行为生成一个推荐列表
3.3 物品之间的相似性
我们可以用下面的公式方程(1)来定义物品的相似度。
这里,|N(i)|是喜欢物品i的用户数量,而|N(j)|是喜欢物品j的用户数量。|N(i)cap;N(j)|是同时喜欢物品i和j的用户数量。从上面的方程(1)中,我们可以观察到,在协同过滤算法中,两个对象产生相似性是因为它们被许多用户同时共享。此外,这两个物品之间的相似性越高,就意味着它们同时受到许多人的欢迎。
假设:假设每个用户的兴趣仅限于几个方面。因此,如果两个物品通属于一类用户的兴趣列表,则这两个物品可能同属于一些限定的领域。此外,如果两个对象同属于多个用户的兴趣列表,那么它们可能属于同一个领域,因此它们之间会具有更高的相似性。
3.4 推荐列表
在获得物品之间的相似性后,就可以生成一个基于物品的相似性和用户的历史行为的推荐列表。基于物品的协同过滤算法能够根据公式(2)计算用户u对物品j的兴趣。
在方程(2)中,puj表示用户u对物品j的兴趣,N(u)表示用户喜欢的物品集合(i是用户喜欢的物品之一,即iisin;N(u))。S(i,K)表示与物品i最相似的K个物品的集合(j是这个集合中的一个物品,即jisin;S(i,K))。wji代表物品i和物品j之间的相似性。rui表示用户u对物品i的兴趣,它被简化为1。请注意,公式(2)意味着与用户感兴趣的物品相似的物品更有可能在用户的推荐列表中获得更高的排名。
4 电影推荐系统
作为一种快速连接互联网信息和用户的工具,推荐系统可以帮助用户获取感兴趣的信息。本节将详细介绍如何设计和实现电影推荐系统。
我们的系统用了最广泛使用的推荐算法:基于物品的协同过滤算法。基于物品的协同过滤算法是通过用户对不同的物品评分来评估物品之间的相似性,最后根据物品之间的相似性提出建议。从计算的角度来看,该算法是通过利用用户对特定物品的偏好来计算对象之间的相似性。该算法在获得目标物品的相似物品后,会根据用户的历史记录的偏好,来预测用户未表示喜好的物品。
在定义3.2之后,基于物品的协同过滤算法被分为两个步骤。
- 计算物品之间的相似性
- 根据物品的相似性和用户的历史行为,整理推荐列表
4.1 基于物品的协同过滤算法的过程
4.1.1物品共现矩阵的建立
- 按照用户将数据集的数据进行分组
- 查找为每个用户选择的物品,并获取有同样该物品特点的所有列表
- 计算物品出现的次数
4.1.2建立用户对该物品的分数矩阵
- 按照用户将数据集的数据进行分组
- 查找为每个用户选择的物品和相应的评级
最后,通过物品同现矩阵和评分矩阵计算推荐结果。
4.2基于MapReduce的基于物品的协同过滤算法
基于物品的协同过滤算法推荐的一般思想是基于用户的评级数据建立一个类似的商品模型。计算过程分为以下三个步骤。
- 数据收集和初始化。生成用户项评级矩阵,如表1所示。在表1中,使用ntimes;m阶矩阵Rntimes;m来表示用户-物品评级矩阵,其中n和m 分别表示物品的数量和用户的数量。rji代表了用户对临时物品的评级。
- 通过MapReduce为物品创建一个用户评级矩阵,如表2所示。MapReduce的输入是用户-物品评级矩阵,输出是物品的用户评级矩阵。在表2中。MapReduce的输入是用户,每一行都包含对已知项的所有用户的评级数据。
- 计算物品的相似度,以形成目标物品的最近邻集。基于用户评分矩阵建立物品共现矩阵,如表3所示。在表3中,c表示两个项在用户评分矩阵中出现在同一行的次数。
- 将用户-物品评级矩阵与物品共现矩阵相加,得到推荐的最终结果。
外文原文资料信息
[1] 外文原文作者:Jian Shen, Tianqi Zhou and Lina Chen
[2] 外文原文所在书名或论文题目:Collaborative filtering-based recommendation
system for big data
[3] 外文原文来源:
出版社或刊物名称、出版时间或刊号、译文部分所在页码:Int. J. Co
剩余内容已隐藏,支付完成后下载完整资料
英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[595963],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。