admin 管理员组文章数量: 1086019
2024年3月12日发(作者:万网建站教程)
ISSN1009-3044
Computer
Knowledge
Knowledge
and
and
Technology
Technology
电脑知识
电脑知识
与技术
Computer
与技术
Vol.17,No.5
February
2021
E-mail:*************.cn
第17卷第5期(2021年2月)
http://
Tel:+86-551-6569
基于Spark和微服务架构的电影推荐系统设计与实现
史爱武,李险贵
(武汉纺织大学云计算与大数据研究中心,湖北武汉430200)
摘要:推荐系统广泛应用于人们生活的多个领域,日常生活中常见的有电商、电影、音乐和新闻推荐等。推荐系统根据用
户的历史偏好主动推送相关的信息,节约了用户的时间,极大地提升了用户的体验。随着大数据技术的发展成熟,数据处
理的速度变得更快。该文选取MovieLens电影数据集,并基于大数据分布式处理框架Spark和交替最小二乘法ALS等算法
搭建数据处理平台,然后再结合SpringBoot和SpringCloud等搭建电影后台服务,实现一个基于微服务架构的电影推荐
系统。
关键词:推荐系统;Spark;ALS;微服务架构
中图分类号:TP311.52文献标识码:A
开放科学(资源服务)标识码(OSID):
文章编号:1009-3044(2021)05-0078-03
DesignandImplementationofMovieRecommendationSystemBasedonSparkandMicroserviceArchitecture
SHIAi-wu,LIXian-gui
(CloudComputingandBigDataResearchCenterofWuhanTextileUniversity,Wuhan430200,China)
Abstract:Recommendationsystemiswidelyusedinmanyfieldsofpeople'slife,suchase-commerce,movies,musicandnewsrec⁃
endationsystemactivelypushesrelevantinformationaccordingtotheuser'shistoricalpreference,
whichsavestheuser'stimeandgreatlyimprovestheuser'edevelopmentandmaturityofbigdatatechnology,
perselectsmovielensmoviedataset,buildsadataprocessingplatformbased
onbigdatadistributedprocessingframeworkSparkandalternatingleastsquaresalgorithmALS,andthenbuildsmoviebackground
servicecombinedwithSpringBootandSpringCloudtorealizeamovierecommendationsystembasedonmicroservicearchitecture.
Keywords:recommendationsystem;Spark;ALS;microservicearchitecture
1背景
大数据时代用户面临信息过载的问题,为了从海量数据中
找到用户可能感兴趣的信息,由此产生了推荐系统。日常生活
中常见的有电商、电影、音乐和新闻推荐等
[1]
。随着大数据技术
如Spark、Flink等的发展成熟,其计算速度更快,可以更好地为
广大群众服务。本文将基于Spark和微服务架构设计并实现一
个简易的电影推荐系统。
似的物品。基于协同过滤的推荐,即根据用户评分矩阵,用户
和物品协同作战。协同过滤推荐可分为基于内存的协同过滤
Memory-basedCF和基于模型的协同过滤Model-basedCF。
Memory-based可分为基于用户的协同过滤User-basedCF和基
于物品的协同过滤Item-basedCF
[3]
。混合推荐,即多种算法按
照不同的策略进行混合后再推荐,常见的混合推荐有加权、切
换、分区、分层、瀑布式混合、特征组合和特征增强等
[4]
。
2.2Spark介绍
2相关技术
2.1推荐策略
推荐系统的实质是对用户或者物品的本身属性即基本信
息,或者是对用户的行为数据进行分析,通过特定的算法模型
从海量数据中找到相关性,从而产生推荐的结果。常见的推荐
策略有基于内容的推荐、协同过滤推荐和混合推荐等
[2]
。
基于内容的推荐,即根据物品自身的属性特征计算物品间
的相关性或相似性,再基于用户的历史偏好记录为用户推荐相
Spark作为大数据并行计算框架,由于支持内存计算,减少
了IO开销,带来了更高的迭代计算效率,同时Spark也支持批
处理和实时流数据处理等。Spark包含的组件主要有Spark
Core、SparkSQL、SparkStreaming、StructuredStreaming、MLlib和
[5]
GraphX等
。
2.3微服务架构
微服务架构将单一应用细分为多个微服务,可以独立开发
收稿日期:2020-10-28
作者简介:史爱武(1972—),男,湖北人,副教授,研究方向为云计算与大数据;李险贵(1994—),男,湖北人,硕士,研究方向为云计
算与大数据。
78
软件设计开发
本栏目责任编辑:谢媛媛
第17卷第5期(2021年2月)
和部署每个微服务,便于开发和维护。多个微服务之间互相协
调、互相配合。常见的微服务架构有SpringCloud和Dubbo等
等。微服务架构体系包含服务注册与发现、服务调用、服务降
级、服务网关、服务配置和服务总线等
[6]
,对应的组件如表1
所示。
表1微服务架构相关组件
微服务架构组件
服务注册与发现
Eureka、Zookeeper、Consul、Nacos等
服务调用
Ribbon、LoadBalancer、Feign、OpenFeign等
服务降级
Hystrix、Resilience4j、Sentinel等
服务网关
Zuul、Gateway等
服务配置
Config、Nacos等
服务总线
Bus、Nacos等
3系统设计
3.1架构设计
本系统采用微服务架构,并基于前后端分离设计理念。系
统架构设计如下图1,首先选取MovieLens电影数据集ml-1m,
并基于Spark进行数据处理,将结果存入到MongoDB中;然后基
于SpringBoot搭建电影后台微服务,同时将服务注册到Nacos
中;前端基于Vue等进行开发,通过服务网关Gateway访问不同
的服务,并由Feign调用具体的微服务
[7]
。
图1系统架构设计
3.2功能模块
本系统主要分为数据处理部分和电影后台微服务部分。
如图2其中数据处理主要包括离线统计模块和离线推荐模块,
离线统计模块包含最新电影推荐和热门电影推荐功能;离线推
荐模块包含基于交替最小二乘法ALS的协同过滤推荐、基于物
品的协同过滤推荐和基于内容的推荐;电影后台服务包含电影
模块和用户模块等。
图2系统功能模块
本栏目责任编辑:谢媛媛
ComputerKnowledgeandTechnology
电脑知识
与技术
4系统实现
4.1开发工具和开发环境
IntelliJ
实现一个简易的基于微服务架构的电影推荐系统,
下表2。
IDEA和VisualStudioCode为开发工具,开发环
选取
境如
表2开发环境
JDK1.8
Scala2.11
Spark2.1.1
1
SpringCloudAlibaba2.1.0
SpringBoot2.2.2
Vue2.5
MongoDB3.2
Mysql5.6
4.2热门电影推荐实现
热门电影推荐考虑最近每周内每部电影的评分次数,评分
次数越多说明该电影的热度越高。具体流程如下。
1
2
)
)
加载数据集。
统计最近每周电影的评分次数并进行降序排序。
4.3基于
3)将结果存入到
ALS的协同过滤推荐实现
MongoDB中。
交替最小二乘法ALS其实是将一个稀疏的用户评分矩阵
通过降维得到用户隐特征矩阵和电影隐特征矩阵的过程
[8]
,推
荐流程如下。
1
和正则化系数
2
)
)
加载数据集并随机切分为训练集和测试集。
多次调整
lambda
ALS的参数如迭代次数
等对模型进行训练。
iteration、隐特征个数k
的均方根误差
3)计算每种参数组合下测试集预测评分与实际评分之间
RMSE。
组合。
4)选取RMSE最小时的参数组合作为ALS的最优参数
5)通过训练
进行降序排序。
6)计算两两电影隐特征向量的余弦相似度并按照相似度
ALS模型得到电影隐特征矩阵。
4.4基于物品的协同过滤推荐实现
7)将结果存入到MongoDB中。
基于物品的协同过滤是根据用户的行为数据如评分、点
击、收藏等计算出两物品间的相似度,即两物品间有相同的受
众,表示两物品间有相关性。以用户评分记录为例,具体流程
如下。
1
2
)加载数据集。
3
)统计每部电影的评分个数,并根据电影ID进行组合。
4
)
)
统计两两电影被同一用户评过分的次数。
计算两两电影间的同现相似度并按相似度降序排序。
4.5电影后台服务实现
5)将结果存入到MongoDB中。
电影后台服务基于SpringBoot和SpringCloud等实现,主
软件设计开发
79
ComputerKnowledgeandTechnology
电脑知识
与技术
第17卷第5期(2021年2月)
要功能是读取MongoDB中的数据,并对外提供用户模块和电影
模块的访问接口。为了让每种算法推荐的效果更加明显,基于
Vue搭建前端项目,最终前端页面的推荐效果如图3,其中上半
部分展示电影的详细信息,中间部分展示各种推荐算法推荐的
电影ID列表和是否有交集及交集个数,下半部分展示不同算
法推荐的电影列表及相似度。
推荐算法的具体流程,本系统暂时包含最新电影推荐、热门电
影推荐、基于ALS的协同过滤推荐、基于物品的协同过滤推荐、
基于内容的推荐、用户注册登录和电影展示等功能。未来的研
究工作将结合kmeans和深度学习等模型进行推荐,提高推荐
的多样性和准确率,同时也可考虑进行实时推荐。
参考文献:
[1]项亮.推荐系统实践[M].北京:人民邮电出版社,2012.
[2]ZhangS,YaoLN,SunAX,arningbasedrecom⁃
mendersystem:asurveyandnewperspectives[EB/OL].[2020-
03-02]./abs/1707.07435.
[3]ZhangYF,nablerecommendation:asurveyand
newperspectives[J].FoundationsandTrends®inInformation
Retrieval,2020,14(1):1-101.
[4]张志威.个性化推荐算法研究综述[J].信息与电脑(理论版),
2018(17):27-29.
[5]林子雨.大数据技术原理与应用:概念、存储、处理、分析与应
用[M].2版.北京:人民邮电出版社,2017.
[6]冯志勇,徐砚伟,薛霄,等.微服务技术发展的现状与展望[J].
计算机研究与发展,2020,57(5):1103-1122.
[7]熊其昌.基于微服务架构的学习系统设计与实现[D].武汉:华
中师范大学,2020.
[8]侯敬儒,吴晟,李英娜.基于Spark的并行ALS协同过滤算法研
究[J].计算机与数字工程,2017,45(11):2197-2201.
【通联编辑:谢媛媛】
图3推荐效果图
5结束语
通过设计并实现一个简易的电影推荐系统,对Spark进行
数据处理和微服务架构等有更深入的了解,同时也了解了不同
(上接第77页)
求方面,还是在满足校园业务与信息动态发展方面,均得到了
明显加强。可以说,混合模式的跨平台移动校园系统的推广应
用无疑是为高校管理工作的顺利实施提供了良好的内在保障。
但是需要注意的是,混合模式的跨平台移动校园系统尚未达到
成熟推广应用阶段,在部分应用层面上仍旧存在亟待解决的问
题。针对此,建议在未来的开发设计过程中,研究人员可以从
细化用户角色类型、功能模块与时俱进以及数据挖掘等方面加
强对混合模式跨平台移动校园系统的研究,以期可以更好地满
足师生用户需求。
参考文献:
[1]王慧.移动校园系统数据传输关键技术研究与实现[D].青
岛:中国海洋大学,2014.
[2]李国才.基于Android平台的智慧校园移动App设计与实现
[J].电脑编程技巧与维护,2019(12):76-77,82.
[3]崔瑶.互联网技术在智慧校园建设中的应用研究[J].信息记
录材料,2019,20(11):185-186.
[4]赵英,程良.基于OSGi和RESTful技术的移动校园数据中间
件的设计[J].华中科技大学学报(自然科学版),2013,41(S2):
127-130.
[5]邓春红,任海鹏,潘涛.基于移动终端的智慧校园系统设计
[J].绥化学院学报,2017,37(5):158-160.
[6]王振.基于Android平台的移动智慧校园系统的构建分析[J].
山西能源学院学报,2017,30(2):133-135.
[7]张敏.移动智慧校园客户端的开发与应用[J].湖南工业职业
技术学院学报,2016,16(1):11-13+39.
[8]李引,陈敏锋.基于移动端的智慧校园服务平台研究与实现
[J].科技传播,2018,10(24):92-93.
【通联编辑:唐一东】
80
软件设计开发
本栏目责任编辑:谢媛媛
版权声明:本文标题:基于Spark和微服务架构的电影推荐系统设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710224775a563289.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论