资源描述:
《基于协同过滤的个性化推荐》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、ThePersonalizedRecommendationbasedonCollaborativeFilteringADissertationSubmittedfortheDegreeofMasterCandidate:WangXuebeiSupervisor:Prof.XuYongSouthChinaUniversityofTechnologyGuangzhou,China摘要随着互联网时代的迅猛发展,丰富海量的信息资源为我们的生活、学习带来了便利,然而,随着信息资源的飞速增长,我们很难从海量的数据中发现自己所需要的信息,这便是“信息过载”。目前解决信
2、息过载问题的技术主要分为两类,一类是信息检索技术,如:搜索引擎,另一类是信息过滤技术,如:推荐系统。其中,搜索引擎获取的信息质量很大程度依赖于用户对需求描述的准确程度,而推荐系统不需要用户提供明确的需求,它根据用户的历史行为,建立用户模型,筛选出用户感兴趣的信息。因此在用户需求不明确时,推荐系统的作用尤为重要。目前,提出的推荐算法已有很多,协同过滤是目前最有效且被应用得最为广泛的推荐算法。虽然协同过滤算法已被广泛应用到许多实际的推荐系统中,但是协同过滤方法仍存在一些问题:(1)数据稀疏问题引起推荐结果不准确;(2)兴趣漂移导致的用户模型失真;(3)大部分
3、基于单机实现,面对越来越大的数据,无法满足实际需求。基于以上问题,本文主要完成以下工作:(1)针对数据稀疏问题,本文对基于用户的协同过滤方法做出改进,其关键在于在计算用户相似度阶段,采用了兴趣相似度和置信度混合的相似度计算方法。其中,兴趣相似度是由兴趣向量计算余弦距离得到,兴趣向量是从用户历史数据的类别标签,经过筛选确定标签所属的兴趣类别:正向兴趣类别、一般兴趣类别、负向兴趣类别,然后根据兴趣类别为用户标签进行加权,再结合时间函数得到最终的兴趣向量;置信度是指两个用户拥有的共有项比率,从统计上反映出用户之间的相似程度。由于此种方法都不直接使用用户评分矩阵
4、,因此有效地解决了数据稀疏导致推荐结果的不准确的问题;(2)针对兴趣漂移问题,本文提出时间函数(基于时间的遗忘函数),结合用户兴趣向量获取过程,调节用户兴趣模型,缓解兴趣漂移带来的推荐质量下降;(3)针对推荐算法在单机情况下扩展性不足的问题,本文通过引入Hadoop并行计算框架,设计并实现了电影推荐系统。在实验阶段,采用了Movielens数据集,设计了两组实验。其中,一组实验是对本文中提出改进算法进行参数调优;另一组实验是本文改进的算法与传统的协同过滤算法以及近2年的同类硕士论文中的改进算法进行对比实验。实验结果证明,本文的改进算法在推荐准确率、召回率
5、上均优于其他对比算法。关键词:协同过滤;数据稀疏;兴趣漂移;混合相似度;HadoopIAbstractWiththerapiddevelopmentoftheInternet,massive,richinformationresourcesbringtheconvenienceforourlife,learning,however,withtherapidgrowthofinformationresources,it’sverydifficultforustofindtheinformationweareinterestedinfromthemassof
6、data,thisis“informationoverload”.Atpresent,tosolvetheproblemofinformationoverload,technologyismainlydividedintotwotypes,oneisinformationretrievaltechnologysuchassearchengine,theotherisinformationfilteringtechnologysuchasrecommendationsystem.Insearchengine,thequalityofobtainedinfo
7、rmationdependsontheaccuracyofuser’sdescriptionofdemand,however,it’snoneedtoprovideuser’sdemandinrecommendationsystem,itbasesontheuser’spastbehavior,establishestheusermodel,andthenfiltersouttheinformationtheyareinterested.Therefore,therecommendationsystemisparticularlyimportant,wh
8、enthedemandofusersisnotclear.Atpresent,a