论文部分内容阅读
随着互联网时代的发展,大量的信息数据在不断产生。个性化推荐帮助用户从海量数据中筛选出需求的数据,为了使用户获得更好的推荐体验,如何优化推荐就成为推荐领域的研究热点。协同过滤算法是推荐领域中常用的一种技术,它可以方便用户获得较精准的个性化推荐结果。但由于推荐算法的数据稀疏性问题和扩展性问题,导致协同过滤算法的推荐效果不佳以及算法在传统单机上运行困难。所以本文采用在云计算环境里,用一种新的混合推荐算法进行解决。在本文的混合协同过滤算法中,本文对基于内存的协同过滤算法提出改进。首先是相似度的改进,Pearson相关系数是传统协同过滤算法中常用的一种相似度计算方法,但由于该方法存在着这样的一个问题:当共同评分项越小,则Pearson系数反而越大。针对这一问题,本文使用共同评分项目个数与最多的用户评分项目的个数比值,对传统的皮尔逊相关系数进行加权,得到新的相似度计算公式。然后在本文算法中引进参数θ。因在数据稀疏的情况下,最近邻居集中会出现这样一种情况:两用户或项目间的共同评分项很少,且两者中,一个的评分项个数远远大于共同评分项个数。这在推荐算法中,将导致预测出一些多余且不可靠的评分项。所以将共同评分个数与最多的评分项目个数的一个比值θ,作为判断是否为最近邻居。最后本文的混合协同过滤算法框架的设计,将最近邻居个数作为判断,是否把基于项目的推荐结果填充基于用户的预测结果中。此外,本文还实现了混合协同过滤算法分布式化。Hadoop云计算平台是一个能够对大量数据进行分布式处理的软件框架,它具有可靠的、高效的、可伸缩的特点。该Hadoop云计算平台完全可以支撑推荐算法对海量数据的计算需求。但Hadoop的MapReduce编程模型不同于以往其他的编程形式。所以本文将算法的分布式实现分解成一系列的MapReduce过程,具体分为数据集的预处理模块、基于用户的算法模块和基于项目的算法模块3部分。通过模块的整合更好地实现混合协同过滤算法分布式化。为了验证算法的推荐效果,本文将Grouplen提供的Movielens数据集和Netflix提供的竞赛数据集做为实验数据,并且使用平均绝对误差、准确率和覆盖率3种评价标准作为综合指标。通过实验数据,从准确性和个性化两个方面,证明了该混合算法相比于传统协同过滤算法有更好的效果。