论文部分内容阅读
近年来,随着移动互联网的高速发展,人们能够非常方便的获取大量的信息,享受着信息丰富的便利。然而,由于个人处理信息的能力有限,一个人很难在有限的时间内找到对自己有价值的信息,所以人们要面对信息过载的困扰。传统互联网公司实现了两种解决方法,第一种解决方法是分类信息目录,如雅虎和赶集网;另一种解决方法是搜索引擎,如谷歌和百度。这两种解决方法的相同之处是用户非常明确自己的需求,但是当用户对需求不明确时,上述两种解决方式就无能为力了。因此推荐系统诞生了,用户不需要主动提供任何输入,它就能主动向用户推荐其偏好的物品。这是因为推荐系统是通过在后台的日志记录进行建模分析出用户行为数据,最后把分析的结果推荐给用户。 本论文用Mahout以及Hadoop技术为背景,研究了推荐系统和分布式并行计算,并对推荐系统常见的传统的两种协同过滤推荐算法以及其所面临的问题(如冷启动、数据稀疏性等)进行了较深入的研究。在此基础上,本文结合项目实践中所应用到的分类算法,提出了基于朴素贝叶斯分类的协同过滤推荐算法。该算法针对数据稀疏性问题采用朴素贝叶斯方法对没有评分的数据进行预测,通过对未评分数据进行预测,缓解了数据稀疏性,从而在一定程度上提高了最近邻居项目搜索的准确度,缓解了推荐系统面临的主要挑战。 同时应用Hadoop和Mahout开源框架,分别实现了传统的基于用户的协同过滤推荐算法和基于项目的协同过滤推荐算法的电影推荐系统,并把改进的基于朴素贝叶斯分类的协同过滤算法应用到电影推荐系统中,使得电影推荐系统可以使用三种不同的协同过滤推荐算法进行推荐,并且有不同的推荐效果。 然后使用MovieLens数据集以及推荐算法的评估方法,仿真实验了提出的基于朴素贝叶斯分类的协同过滤推荐算法、传统的基于用户的协同过滤推荐算法和基于项目的协同过滤推荐算法,对比了两种基本的的协同过滤推荐算法以及基于朴素贝叶斯分类的协同过滤推荐算法的实验效果,同时对实验结果进行了分析并证明了基于朴素贝叶斯分类的协同过滤推荐算法能在一定程度上提高推荐系统的推荐质量。最后针对协同过滤推荐算法在数据稀疏性及在大数据规模下系统可扩展性的两个问题,通过加速比实验证明Hadoop集群能够有效地提高基于项目的协同过滤推荐算法在大规模数据集下的执行效率。从而能够进一步的搭建低成本高性能、动态扩展的分布式推荐系统。