学位专题

目录>
<

基于Flink的分布式推荐系统研究与应用

郑江文
河北工程大学
引用
随着互联网和网络技术的飞速发展,用户享受着越来越便捷的网络服务。但同时,“信息过载”问题也很快地暴露在人们的面前,有效的筛选信息从而提高效率的能力就显得尤为重要,推荐系统就能很好满足了人们的需求。面对着巨大且不断高速增长的数据量,传统推荐系统面临着计算效率低、实时推荐效果不佳、推荐方式单一等问题。具有分布式并行化计算能力的推荐系统就成了越来越迫切的需求。针对上述问题,本文使用新一代流式计算引擎ApacheFlink作为多种推荐服务的计算平台,结合Hadoop、Hive、Flume、Redis、ZooKeeper和Kafka等大数据开源技术构建分布式推荐系统。  首先,在推荐算法上,对实时推荐算法进行改进和优化,在计算推荐优先级时融入时间衰减函数,反应用户喜好随时间的变化,考虑到一次评分中消极评分和极低评分的影响,融入用户近期评分,生成多个备选物品列表,在列表间加上时间衰减函数,生成最终的列表。在相似推荐中,通过电影的类型信息计算电影之间的相似度,融入TF-IDF加权算法对热门类型的权重进行调整。离线推荐选择使用基于交替最小二乘法(AlternatingLeastSquare,ALS)的协同过滤算法,使用基于Flink的通用算法平台Alink,提升离线推荐算法在分布式场景下计算效率。数值实验的结果表明,使用基于隐含特征向量去计算相似度相较于使用基于特征属性的方式,在改进后的实时推荐算法的推荐效果上有明显的提升。改进后的实时推荐算法相较于原算法在准确率、召回率和归一化折损累计增益NDCG都有一定的提升,时间衰减系数?为0.4时,准确率和召回率有较好的表现,而时间衰减系数?为0.5时,归一化折损累计增益NDCG有较好的表现。  其次,对分布式推荐系统的整体架构进行设计,利用MovieLens开源数据构建电影推荐系统,包含了存储层、数据处理层、应用层和展示层。存储层以Hadoop为核心做分布式的存储;数据处理层使用Flink集群作为不同推荐服务的计算引擎;应用层包含了离线推荐服务、实时推荐服务、统计推荐服务和相似推荐服务,相应的推荐列表会被存入MySQL;展示层包含前端和后端两部分,并采用了AngularJS技术进行了实施,后端的业务系统则基本上完成了JavaEE层面完整的服务逻辑,并利用Spring完成搭建。最终实现多种推荐服务相互补充的混合电影推荐系统。

推荐系统;时间衰减函数;ApacheFlink;Hadoop

河北工程大学

硕士

计算机技术

赵超;郝东亮

2022

中文

TP391.3

2023-08-22(万方平台首次上网日期,不代表论文的发表时间)

相关文献
评论
相关作者
相关机构
打开万方数据APP,体验更流畅