论文部分内容阅读
随着互联网技术与其应用领域的迅猛发展,接入互联网的服务器数量迅速增长,信息共享变得越来越方便。与此同时产生的是互联网上数据的指数增长,带来了海量数据的存储和管理问题。面对如此海量的数据,用户想要找到自已感兴趣的商品或信息变得非常困难。传统的搜索算法只能根据用户提供的关键词呈现给所有用户一样的搜索结果,不能深入挖掘用户的喜好,提供不同的搜索服务。信息量大规模增长,但是信息的利用率很低,这种现象称为信息过载。解决信息过载最有效的方法之一是采用个性化推荐系统。个性化推荐系统产生的目的是为了降低人们在网上搜寻信息时所耗费的时间成本,采用一种“推”的方式把信息呈现在人们面前,它的实现思想是根据用户过去的行为记录,例如浏览记录、点击记录、购买商品的历史记录等,利用一些算法,挖掘出用户的喜好或需求,预测用户可能感兴趣的潜在的信息和商品或者服务,从而对用户进行推荐。本文首先对推荐系统做了一般性的了解,然后深入研究了基于网络结构的推荐算法的发展现状,并且详细介绍了基于二分图的推荐算法。在基于二分图的推荐算法的基础上,做了以下三个方面的工作:(1)利用Hadoop平台做分布式计算框架和底层存储,利用mongodb数据库做辅助存储,将基于二分图的资源分配算法改写成为mapreduce模式,设计了基于二分图的资源分配推荐算法的并行化,并且编码实现了算法,设计多组实验进行验证。实验结果显示算法的效率和可扩展性达到了预期要求。(2)本文分析了用户在网上选择产品的过程中可能会发生的兴趣转移,以及在兴趣发生转移之后用户选择的产品信息对推荐结果可能带来的影响。在这个分析结果的基础上,本文将用户选择的时间因素考虑进来,在基于二分图的资源分配算法的基础上,提出了一种改良的加入时间权重的推荐算法,最后编码实现并验证推荐准确率和推荐列表多样性。(3)基于二分图的资源分配算法把用户对产品的选择信息包含在二分图的边中,但是没有考虑用户对产品的喜好程度,本文将用户对产品的打分信息作为边的权值加在二分图上,并且改进了基于二分图的资源分配算法的资源分配方法,然后以此来设计推荐算法,最后利用网上的公共数据库里的数据进行验证。