基于IRGAN模型和Hadoop的电影推荐系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Vol. 36 No. 5
May 2019
第36卷第5期
2019年5月
计算机应用与软件
Computer Applications and Software
基于IRGAN 模型和Hadoop 的电影推荐系统的设计
赵桂升潘善亮
(宁波大学信息科学与工程学院 浙江宁波315211)
摘要 随着近几年人工智能技术的飞速发展,深度学习技术在推荐系统领域中的应用也已经成为研究热点
之一。尤其是生成对抗网络(GAN )作为无监督学习中最具前景的方法之一,在图像处理和自然语言等领域取得
突破性进展。针对目前存在的电影市场规模扩大、观影用户数量增长过快以及电影资源更新频繁等带来的数据
利用率低、系统压力大、实时性差等弊端,结合Hadoop 、Spark 和Kafka 等大数据处理技术,设计基于IRGAN 算法 模型的离线推荐模块和基于在线用户行为数据收集处理的在线推荐模块。实现了基于IRGAN 模型和Hadoop 的 电影推荐系统。测试表明,该系统具有良好的推荐准确性、稳定性和实时性。关键词 IRGAN Hadoop Spark Kafka 电影推荐系统
中图分类号 TP391 文献标识码 A D01:10.3969/j. issn. 1000-386x. 2019. 05. 009
DESIGN OF FILM RECOMMENDATION SYSTEM
BASED ON IRGAN MODEL AND HADOOP
Zhao Guisheng Pan Shanliang
(Faculty of Electrical Engineering and Computer Science , Ningbo University^ Ningbo 315211, Zhejiang , China )
Abstract With the rapid development of artificial intelligence technology in recent years , the application of deep
learning in the field of recommendation systems has become one of the research hotspots. Especially generative adversarial networks ( GAN ) , as one of the most promising methods in unsupervised learning , has also made
breakthroughs in the field of image processing and natural language. The disadvantages of low data utilization , high
system pressure and poor real-time performance are caused by the expansion of the film market , the rapid growth of the number of movie-watching users and the frequent update of film resources. In order to solve the above problems ,
combining Hadoop , Spark and Kafka and other big data processing technologies , we designed the offline recommendation module based on IRGAN algorithm model and the online recommendation module based on online user behavior data
collection and processing. And the film recommendation system based on IRGAN model and Hadoop was realized. The test shows that the system has good recommendation accuracy , stability and real ・time.
Keywords IRGAN Hadoop Spark Kafka Film recommendation system
0引言
随着网络的迅速发展,互联网上的各类资源都呈 现出爆炸式的增长趋势,而信息量的剧增也导致了 “信息过载”问题。针对此问题,一个有效的解决方法 就是推荐系统。经过学术界和工业界多年的探索和研
究,推荐算法的发展也是经历了从传统的协同过滤算
法到如今的结合深度学习技术的推荐算法的历
程,例如目前YouTube 的视频推荐、Google Play 的App 推荐以及Yahoo News 的新闻推荐等,都取得了不
错的效果。
根据中国互联网络信息中心2018年7月发布的
第42次《中国互联网络发展状况统计报告》⑷显示,
收稿口期=2018 -11 -30;浙江省公益性技术应用研究计划项目(2017C33001)。赵桂升.硕士生,主研领域:推荐系统,信息检 索’潘善亮,教授
44计算机应用与软件2019年
截止2018年6月,我国网民规模达8.02亿,其中网络
视频用户规模达6.09亿,占网民总体的76%。由上
述报告可知,国内各类视频资源数量增长迅速,尤其是
电影资源,而且视频用户的数量呈现逐年增长态势。
针对目前国内视频和用户快速发展的趋势,鉴于目前
一些电影推荐系统研究门勺中存在的数据利用率低、
系统压力大、实时性差等弊端,本文系统决定采用深度
学习中的IRGAN模型〔问作为主要的推荐算法,设计
实现了基于IRGAN算法模型的离线推荐模块和基于
在线用户行为数据收集处理的在线推荐模块。采用二
者联合推荐的方式,并针对未来可能存在的海量电影
数据和用户的产生,以及模型本身存在的大量计算,借
助大数据处理框架Hadoop、Spark和kafka等技术进行
处理,保证系统的实时性、高效性和稳定性。
1系统设计
11系统架构设计
针对上述问题,并且为了提高系统的可维护性和
可扩展性,本文系统采用平台化结构设计。通过分层
设计,使得系统整体逻辑更加清晰,降低了层与层之间
的耦合度,具体的系统总体架构设计如图1所示。
用户层1游客11普通用户II管理员1
表现层电彫推荐系统页面HTML5+BootStra p+Jquery+JSP
业务层1用户管理11电影管理11电彫推荐11历史记录査询1Spring+Struts+
Hibernate
算法层基于IRGAN的离线
推荐模块
基于在线用户实时行为
数据的在线推荐模块
Spark+Flume+Ka
fka+TensorFlou
數据层HDFS 1===,
MySQL MySQL+HDFS
图1系统总体架构设计图
由图1可知,系统分为数据层、算法层、业务层、表现层和用户层五个层次,最右侧为各层次的主要技术选型,各层次详细内容具体如下:
(1)用户层:针对不同的用户,根据用户的权限进行不同的功能展示,主要分为游客、普通用户和管理员,用户可以通过浏览器访问表现层来进行交互。
(2)表现层:主要是电影推荐系统的界面设计,通过良好的布局和图表等形式,合理地呈现数据资源,与用户友好地进行交互。
(3)业务层:主要是具体的模块功能逻辑的实现,主要包括用户管理、电影管理、电影推荐、历史记录等功能。
(4)算法层:主要是依托大数据处理框架,采用在线推荐和离线推荐相结合的形式,最终进行联合推荐。对于离线推荐模块,根据数据层提供的历史数据,采用IRGAN模型对于每一个用户的历史评分数据进行计算,并存储到HDFS中去;对于在线推荐模块,通过结合Flume和kafka得到的实时的用户行为数据,根据不同的权重分配,对于离线推荐模块生成的推荐列表进行重新计算,然后将结果保存到HDFS中,实现电影推荐功能。
(5)数据层:该层主要是包含了HDFS和MySQL 数据库,为业务层和算法层提供相应的数据支持。
12系统功能设计
系统的功能模块设计主要是通过对业务层的需求分析,将其需求划分成不同的功能模块,模块间功能相互独立,降低耦合度,便于后续功能的维护和扩展。其具体的功能模块结构如图2所示。
gflRGANM型时电够推SR8E
图2系统功能模块结构图
1 2.1用户管理模块
系统主要涉及游客、普通用户和管理员三种角色,用户管理模块也是根据不同的角色划分而制定的。通过对角色的分级管理,赋予不同的角色不同的操作权限。其中,管理员拥有最高权限,主要负责管理所有的用户和电影信息,可以随时更新电影资讯,维护用户权限列表;普通用户主要是系统的注册用户,可以维护自己的相关信息,收藏自己喜爱的电影,查阅相关电影资讯,为自己喜爱的电影进行评分、点赞等,并且可以获取系统专门为用户推荐的电影列表;游客只能登录查看电影资讯,查看目前的热门电影排行榜等一系列榜单,不会专门对游客进行推荐电影。
12.2电影管理模块
系统的电影管理模块主要使用者是管理员和普通用户。对于管理员,可以通过电影管理模块管理数据库中的所有电影,随时添加近期的最新电影,维护电影资源库和用户信息库;对于普通用户,可以通过电影管理模块收藏自己喜爱的电影,为自己喜爱的电影进行评分操作,管理和维护自己收藏的电影库,但是不能对