论文部分内容阅读
在电子商务高速发展的今天,人们的生活方式发生了很大变化,我们只需要坐在电脑前或者使用任意能够接入互联网的终端就可以足不出户获取想要的东西。但是信息的爆炸一方面使我们有了很多选择,另一方面也增加了选择的困难,我们很难从海量信息中过滤掉不相干的资讯。推荐系统就是在这样的背景下诞生的,它的作用就是根据一定的知识来为我们挖掘出有用的信息。人们提出了很多不同的技术来实现它,协同过滤(Collaborative Filtering)是其中发展最为迅速的方法之一,也是在电子商务领域应用最广泛的方法。因此本文选择它作为推荐系统研究的重点。首先本文在研究传统协同过滤算法的基础上提出了一种减轻由于数据稀疏性对推荐效果产生负面影响的方法。传统的相似度算法从数学角度讲是非常严谨的,但是在缺乏数据支持的时候实用性稍差,为此本文提出一种基于项目相似度的数据填充方法,其目的在于当原始数据集比较稀疏时为算法提供足够的数据支持。在解决数据的问题后,本文还提出了一种当用户-项目矩阵(评分矩阵)有更新需要重新产生推荐列表时减少计算量的增量式算法。该算法主要使用了一种以空间换时间的思想,通过缓存中间数据来达到简化计算的目的,就可以在一定程度上提高系统的性能。经实验证明,本文提出的改进算法在MovieLens的数据集上比传统方法有更好的预测性能和运行效率。云计算是当今IT行业最热门的词汇之一,它被认为是引领下一次行业革命的核心技术。因为云有着非常强大的计算和存储能力,因此本文思考如何利用云计算的优势来解决传统协同过滤推荐算法所遭受到的严重的可扩展性问题,为此采用了Apache旗下的开源项目Hadoop作为算法的云开发平台。为在该平台上实现上述的改进算法,本文亦对其分布式文件系统HDFS和MapReduce编程框架进行了比较深入的研究。最后的实验结果显示当集群中的机器逐渐增多时,算法的运行效率也在不断提高,说明算法有比较理想的并行性能,也因此凸显了云平台与推荐算法结合的优势。