论文部分内容阅读
随着信息技术的飞速发展,Internet已成为包含海量信息和用户的复杂网络,为全世界人们传递和共享信息。然而,海量的信息资源导致了“信息迷茫”和“信息过载”等问题,使人们常常在信息的海洋里迷失方向,越来越难以准确、高效地获取自己需要的信息。为此,个性化服务技术应时而生。推荐系统作为一种成熟的个性化服务技术已在社区交友、电子商务和科学研究等领域得到了广泛的应用。常用的推荐技术包括:协同过滤推荐、基于模型的推荐、基于内容的推荐和混合推荐。其中,协同过滤技术因其推荐精度高、实现简单、易于用于实际系统而备受青睐。然而,除了稀疏性和冷启动问题外,经典的协同过滤算法,另一个最大的缺点是可扩展性问题,即随着商品和用户数量的增加,计算时间迅速的增加,影响了推荐的实时性。本文针对协同过滤推荐算法的可扩展性问题,从项目或用户向量的表示方法人手,剖析了对象属性严格匹配的缺陷,提出了基于均模型的协同过滤推荐算法。另外重点考察了系统的运行模式,设计实现了一种新的基于MapReduce分布式框架的协同过滤推荐算法。本文的创新点主要有两个,一是采用均模型来表示项目或用户的特征,该模型通过抽取项目或用户的关键特征,适当浓缩向量的长度,为在大规模数据集上进行高效、实时的推荐提供支持;二是通过评测经典协同过滤推荐算法的关键步骤,找到了适合用于MapReduce编程模式改进的方法,并基于Hadoop实现原理选用合适的Map与Reduce方案,将基于均模型的协同过滤推荐算法的三大关键步骤所涉及的数据表达、计算等问题转换为Map或Reduce操作,实现了算法的并行化。本文采用的检测数据是Grouplens提供的MovieLens100k、MovieLens1M、MovieLens10M三个数据集,主要从算法精度和运行时间两方面对经典基于项目的协同过滤推荐算法、基于云模型的推荐算法和基于均模型的协同过滤算法进行了对比实验。实验结果表明:基于均模型的协同过滤推荐算法在确保精度的前提下,能有效缩短项目相似性计算时间,易于处理大数据;基于MapReduce的协同过滤算法使推荐系统具有了更强的并行能力以及可扩展性和容错性。最后为证实本文所提算法的实用性。设计实现了一个基于上述方法的原型系统,并对其进行了评测。