基于Hadoop的协同过滤推荐算法研究

发布时间:2022-02-04 17:02
  电子商务的兴起不仅为消费者提供了更多选择,而且还导致了信息超过人们所能处理的范围。为了从大量资源中快速找到喜欢的物品,用户希望出现可以为他们进行推荐自己可能感兴趣的物品的技术。因此,为了解决人们的问题出现了个性化的推荐系统。协同过滤推荐算法作为推荐系统最成功的算法之一,发挥了关键作用。尽管协同过滤算法已成功应用于许多商业领域,但是协同过滤算法的一些缺陷,例如数据的稀疏性等。面对当今信息社会海量信息数据的增长,对算法的准确性和通用性等方面都提出了更高的要求。在推荐系统中,推荐算法的准确性要求总是难以实现。用户的兴趣随着时间的改变也会发生变化,在大数据背景下,传统的协同过滤推荐算法无法为用户提供精准的推荐服务,使得用户数据的稀疏性在复杂的社交网络环境中成为影响推荐准确性的重要因素。本文提出在传统推荐算法相似度计算的基础上,结合用户的兴趣,不仅对用户与项目之间的相似度进行计算,还对用户兴趣的相似度进行计算,将用户的评分和兴趣度结合起来。本文改进的算法解决用户的兴趣问题,用计算实际的评分与推荐评价算法对比得到的结果来预测实际评分与推荐值之间的差值以及平均绝对偏差,推荐算法的准确性用MAE作为评... 

【文章来源】:沈阳工业大学辽宁省

【文章页数】:60 页

【学位级别】:硕士

【部分图文】:

基于Hadoop的协同过滤推荐算法研究


Hadoop生态系统组件Fig.2.1HadoopEcosystemComponents

架构图,文件系统,高可用性,节点


沈阳工业大学硕士学位论文8图2.2Hadoop分布式文件系统架构图Fig.2.2HadoopDistributedFileSystemArchitectureDiagramHDFS由一个名称节点(NameNode)[14]和多个数据节点(DataNode)[15]组成,在集群中,NameNode是主节点,主要承担的是对客户端的请求进行响应、对元数据进行管理的功能。DataNode是从节点,它承担的是对文件块数据存放、通过心跳机制向主节点按期进行报告的任务。NameNode节点的角色相当于集群的管理者,主要管理HDFS文件系统、数据块(Block)、处理客户端请求等。DataNode的角色相当于集群的工作者,当客户端发出命令时,DataNode负责执行。SecondaryNameNode起到监控作用,设置检查点帮助NameNode工作。当NameNode挂起时,集群并不能够立刻替换NameNode,这时SecondaryNameNode就会准时将元数据的映像文件进行同步操作,随后将修改日志发送给NameNode。HDFS提供多副本策略[16],这样可以使数据存储时更加可靠。高可用性(HA,HighAvailability)也是HDFS的特征之一,高可用性在集群中设置有两个NameNode。这样的部署允许处于集群中的计算机在故障的时候,能够向另一个NameNode快速转移。一个具有高可用性的集群,集群内的节点分别处于活跃和待机状态。活跃状态的NameNode节点,处理集群中客户端的具体操作,待命状态的NameNode对Active状态NameNode数据的进行数据同步工作,当活跃的节点故障时以便进行状态的转换工作。如图2.3所示。

架构图,高可用性,主节点,状态


第2章Hadoop相关技术9图2.3HDFS高可用性架构图Fig.2.3HDFShighavailabilityarchitecturediagram集群启动之后,其中的一个NameNode通过选举处于活跃状态,负责处理客户端与数据节点之间的请求,另一个NameNode处于待机状态,以便提供快速的故障转移。为了实现StandbyNameNode在ActiveNameNode挂掉之后,能迅速的再提供服务,需要数据节点不仅需要向活跃状态的NameNode汇报,同时还要向待机状态的NameNode汇报,这样就能保证数据块在数据节点上的位置信息保存在待机的NameNode上。FailoverController负责通过心跳这一方式与ZK保持时刻通信,通过ZK来选举活跃状态的NameNode,一旦处于活跃状态的主节点处于挂起状态,就会选择待机状态的节点来作为新的主节点,转换成活跃状态,这样能够使系统正常运行得到良好的保障。ZookeeperFailoverController故障切换控制器时刻监控主节点状态的,向ZK定期发送心跳,以便进行故障节点的切换。当自己被选为主节点(Active)的时候,就会通过RPC使相应NameNode转变成为Active状态。基于此种特性,所以当集群中某个单节点发生故障的时候,允许集群中的处于活跃状态的主节点快速转移到另一个NameNode,这样就能够保障系统的正常运行。HDFS的高可用性特性使集群在某个节点发生故障时仍能够正常运行,更好地保障了系统的运行。2.3分布式编程模型MapReduceMapReduce编程模型是将程序运行在分布式系统上,并行计算大规模数据集从而进行数据处理。MapReduce是map思想和reduce的思想因而得名。MapReduce应用到

【参考文献】:
期刊论文
[1]基于知识图谱和协同过滤的电影推荐算法研究[J]. 袁泉,成振华,江洋.  计算机工程与科学. 2020(04)
[2]基于时间权重和用户兴趣变化的协同过滤算法[J]. 王娜娜.  皖西学院学报. 2020(02)
[3]大数据安全技术研究进展[J]. 陈性元,高元照,唐慧林,杜学绘.  中国科学:信息科学. 2020(01)
[4]基于内容和协同过滤的科技文献个性化推荐[J]. 杨凯,王利,周志平,赵卫东.  信息技术. 2019(12)
[5]协同过滤算法在推荐系统中的应用[J]. 柳宇,蔡欣华,申小玲,梁琨,刘松.  信息与电脑(理论版). 2019(21)
[6]基于Pearson系数的计算机科学与技术专业课程体系相关性研究[J]. 王晓莉,石刚,杨晴雯,张铭阅.  无线互联科技. 2019(21)
[7]分布式计算框架下的大数据机器学习[J]. 田彬.  电子技术与软件工程. 2019(20)
[8]基于惩罚因子的协同过滤算法的改进与研究[J]. 徐立民,李涵.  物联网技术. 2019(10)
[9]基于专家信任的协同过滤推荐算法改进研究[J]. 刘国丽,白晓霞,廉孟杰,张斌.  计算机工程与科学. 2019(10)
[10]基于Hive的高可用双引擎数据仓库[J]. 李翀,张彤彤,杜伟静,刘学敏.  计算机系统应用. 2019(09)



本文编号:3613591

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/shengwushengchang/3613591.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户e34ca***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com