Research and Implementation of Movie Recommendation System Based on Spark

来源 :华中师范大学 | 被引量 : 0次 | 上传用户:chenzhipengo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,激增的互联网用户群体促进了网络应用与内容创作的高速发展。然而,庞杂的网络信息也带来了新的问题——“信息过载”。针对“信息过载”的问题,学者们提出了推荐系统的概念,它可以学习人们的偏好并将其与相关的信息实体建立潜在的兴趣关联,从而推荐他们可能感兴趣的信息。目前,推荐系统在众多互联网平台上都已得到了部署并产生了积极的效果。根据在Amazon网站的数据,该网站35%的订单来自推荐系统;在YouTube网站中,用户观看的视频有60%来自于主页的推荐。可以说,在数据时代下,推荐系统已是有效解决“信息过载”问题的重要途径。然而,数据的复杂性、稀疏性和不确定性也给推荐算法带来了许多新的考验。同时,海量数据的冲击也对推荐系统的实时性、高可用性以及稳定性提出了更严格的要求。因此,本文将着眼于推荐算法和系统架构开发两个方面,以电影推荐作为实际需求,设计一个大数据背景下高效可用的推荐系统。在系统设计层面,考虑到海量数据下传统的单体服务系统无法满足离线推荐以及实时推荐的计算要求,因此选择Spark分布式平台作为推荐系统的基础。在系统的架构设计中,基于业务需求与分布式处理的考虑,设计了流批一体的系统架构。该架构分为三层:应用层、计算层以及数据层。应用层主要面向用户,提供人机交互服务以及可视化服务。计算层包含离线批处理与在线流处理,分别对应离线推荐引擎和实时推荐引擎,是系统的核心部分。数据层则作为系统的业务支撑,提供持久化、缓存以及数据检索服务。通过上述的架构,可以保证系统稳定可靠,边界清晰,每一层都承担相应的任务。而作为推荐系统核心的计算层,它综合了离线批处理和在线流处理的各自特点,错开了这两种处理方式的计算高峰,从而提升系统服务器的综合利用率。完成架构设计后,则是对基于Spark的电影推荐系统进行的需求进行具体分析,并针对这一系列的需求划分功能模块,分别是离线计算模块、实时推荐模块、系统业务模块和数据加载模块。整体的系统规划具有高内聚、低耦合的特点。在系统开发中,综合运用了多种开源工具,使得各功能模块能够协同运作,具体的设计方案如下:1.离线计算模块主要分为离线统计功能和推荐功能,主要通过Spark SQL,Spark MLlib进行实现。离线统计功能对推荐系统中的历史数据进行统计,按照优质电影、历史热门电影等不同类别进行计算。离线推荐功能则是通过隐语义模型来计算电影相似度矩阵以及用户的推荐列表。由于需要对全量数据进行计算,因此离线统计和离线推荐这两个功能会占用大量计算资源。为了使后台的离线计算与数据更新不对用户的正常访问产生影响,系统将在每天的零点通过Azkaban任务调度服务向Spark集群定时提交计算任务。2.在实时计算模块中,系统则使用日志采集服务组件Flume-ng获取用户的评分日志,并通过消息中间件Kafka将日志数据转换成数据流的格式,最后在Spark Streaming流式计算服务中对实时数据流进行接收、计算,实现实时推荐列表的更新。3.系统业务模块主要是向用户提供人机交互服务并完成系统业务处理,是整个电影推荐系统的重要支撑。前端部分采用AngularJS框架进行前端逻辑的处理。后台业务部分则使用目前主流的Spring Cloud构建微服务项目。相较于传统的单体项目,使用微服务框架可以将整体项目分拆成众多的微小服务单元,每个单元负责实现某一个具体的功能。通过这种架构,使得系统的复杂度可以自由控制,各项服务之间边界清晰。最终降低了耦合度,也利于问题定位和后期维护。4.在数据加载模块中,主要使用了 MongoDB、Redis以及Elasticsearch这三个组件。MongoDB用于存储系统的业务数据,Redis用于存储实时推荐中流式计算的缓存数据。而Elasticsearch则是用于搭建系统的搜索引擎,令用户可以通过关键词进行检索电影、演员等信息。该方案对系统的各类功能进行了合理的模块划分,不仅满足了用户浏览访问、互动评分、电影信息查看与搜索、离线与实时推荐等功能性需求,也符合系统在稳定性、高可用性以及易用性等方面的非功能性需求,在工程实践方面十分具有意义。在推荐算法层面,主要围绕推荐系统中离线推荐和实时推荐这两大核心模块,对相关的算法进行设计和优化。在离线推荐中,为了应对推荐系统数据稀疏性的问题,选择使用基于隐语义模型的协同过滤算法。该算法采用矩阵分解的方式将一个巨大的稀疏评分矩阵分解成更小的特征矩阵的乘积,然后通过学习隐含特征来构建用户与物品的关联。在算法求解上,常用的两种方法分别是随机梯度下降法(Stochastic Gradient Descent,简称 SGD)和交替最小二乘法(Alternating Least Squares,简称ALS)。与SGD相比,ALS在每次迭代时所有的用户、物品向量之间都没有相互依赖关系,可以很方便地进行并行计算,十分适合Spark这类分布式计算框架。因此,使用Spark对ALS算法的计算过程进行并行化处理,并利用Spark中弹性数据集的分区与缓存机制减少集群中各个计算节点之间的数据传输,降低了通信复杂度,提升离线推荐的计算速度。在模型参数调优上,为了提高实验效率,通过控制变量的方法对ALS模型的三个参数进行参数影响实验,并将影响程度最小的参数固定,从而只需对两个参数组合进行实验调优。在得到最优参数组合后,进一步采用对比实验的思路,比较Spark环境下基于ALS的矩阵分解算法改进前后的准确率和计算速度的差别。在实时推荐方面,则是基于以下的思路进行设计:(1)算法复杂度低,以此保证实时或者近实时的时间响应;(2)具有可解释性,能够根据用户的最近行为实时更新推荐结果。因此,通过利用离线推荐模块中预先训练好的电影相似度矩阵,设计了电影推荐优先级算法。该算法能够感知用户的评分行为,实现动态更新推荐列表。另外,用户对某一类别电影的兴趣可能发生改变,这可能是因为好友的推荐或者是个人的需求从而对某类之前从未观看过的电影产生兴趣。这就导致用户在某一段时间内对不同类别电影的偏好程度不同。因此本文还将时间信息融合进电影推荐优先级算法中,通过一段时间内用户对不同类别电影的评分比重来调整推荐的权重系数,使得推荐结果更加精准。最后,在离线推荐实验中,改进后的离线推荐算法在计算速度上相较于改进前有明显的提升;在准确率上,本系统所采用的离线推荐算法也好于其他的经典的协同过滤算法。在实时推荐实验中,融合时间因子的电影推荐优先级算法在预测准确率等指标上有不错的表现,同时在实时性的测试中也达到了系统设计要求。最终,在证实离线推荐与实时推荐算法的有效性后,将它们应用在推荐系统中并对整体的系统进行测试。测试结果表明本文设计的基于Spark的电影推荐系统满足了各项功能要求,同时在系统稳定性、高可用性以及易用性上也具有良好的表现。在未来,本文还存在的一些值得研究与改进的方向有:1.从算法角度来看,本文的研究为了便于系统实现,使用了较为传统的推荐算法并进行了改进与优化。这些算法虽然能够在一定程度上能够解决推荐系统存在的一些问题,但在推荐性能上仍与基于深度模型的方法存在差距。因此,未来的一个研究的方向就是利用当前的一些深度模型的方法来取得更好的推荐效果,增强推荐结果的多样性。2.从系统角度来看,本文虽然实现了一个较为完整的电影推荐系统,但是该电影推荐系统只是有具备电影系统的一些基本功能。为了满足用户的不同需求,使其受众更广,未来还需要对本系统引入一些特有的功能模块,从而吸引更多的用户。其次,本系统虽然是基于Spark的大数据系统,但是由于实验环境的限制,并没有使用TB甚至PB级的数据对系统进行相关的测试。因此,在未来需要将系统置于更加真实的环境中进行仿真模拟。因此,在未来的工作中,可以根据这些改进方向对本文的研究进行优化与提升。
其他文献
作为新型的储能装置,超级电容器具备循环寿命长、储能过程无污染、可支持大功率电器、能够快速充放电等特点,因而受到研究者的关注。过渡金属化合物作为超级电容器的一类电极材料,其储能机理主要为电极材料与电解液发生氧化还原反应,因而使得超级电容器具有高的理论比电容量。然而,该类电极材料存在导电性差以及结构不稳定的缺点,限制了它在超级电容器方面的应用。ZIF-67作为含钴有机框架化合物,具有多孔、热稳定好及易
上肢康复机器人技术是机器人技术与康复医学的结合,是最近几年迅速发展的新兴技术。利用康复机器人对运动功能障碍的患者进行康复训练可减轻治疗医师的负担及提高康复的效率,研究上肢康复机器人,对于康复医疗以及机器人技术起到了极大地推动作用。本文是针对被动训练模式下上肢康复机器人运动轨迹的研究,在5-DOF上肢康复机器人的实验平台上,提出了在康复训练过程中控制上肢康复机器人跟随人体健康上肢的运动轨迹带动患者患
近年来,随着科技的不断进步,多智能体系统的协调控制已经成为研究人员关注的热点问题。一致性问题是多智能体中的基础问题,也是最重要的问题。本文将多智能体系统状态分解出不一致向量状态,在此基础上本文章对多智能体系统分布式事件触发一致性控制进行了相关问题研究。其中,主要包括以下几个方面:一方面,我们对一阶分布式事件触发多智能体系统平均一致性进行了研究。将系统状态分离成平均一致状态与不一致状态向量矢量和的形
目前利用赤眼防治鳞翅目害虫已经在全国推广,应用赤眼蜂进行害虫防治具有安全、环保和使用方便等优点,在减轻害虫危害和农业可持续发展中起着重要作用。水稻生长的后期病虫害(如:稻瘟病、稻曲病、纹枯病和稻飞虱等)总是混合发生,且化学农药是主要的防治措施,此时释放赤眼蜂难免会与农药直接或间接接触。农药不仅对赤眼蜂有毒杀作用,还会降低赤眼蜂的羽化率、寄生力、雌性比例、寿命和搜寻能力,严重降低防治效果。生物防治与
研究表明,恶性疾病密切相关的生物活性分子主要通过表观遗传或转录等层面调控致病基因的表达。临床液体样品(尿样、血浆或细胞裂解液)中与恶性疾病相关的生物活性分子(微小RNA和DNA修复酶活性)的灵敏检测,对于研究疾病的发生机理、预防及药效监控有重要意义。然而这些物质在临床液体样品中丰度极低,经典探针检测灵敏度不够,如何开发高灵敏和高特异性的功能探针,是生物活性分子检测面临的瓶颈问题。DNA纳米编码技术
克氏原螯虾(Procambarus Clarkii)隶属于节肢动物门、甲壳纲、十足目、螯虾科、原螯虾属。在中国分布较广,是目前淡水养殖业中具有较好养殖前景的品种之一。自1970年起,我国克氏原螯虾开始进行人工养殖,但近年来,克氏原螯虾种质出现了退化,包括性早熟、规格变小、商品率低、抗病能力下降等极大的影响了克氏原螯虾养殖业的效益。要实现克氏原螯虾养殖业的可持续发展,迫切需要对克氏原螯虾进行资源保护
间苯二甲胺分别与4,4’-氧双邻苯二甲酸酐、3,3’,4,4’-二苯甲酮四甲酸二酐、3,3’,4,4’-联苯四羧酸二酐、4,4’-(六氟异丙烯)二酞酸酐和4,4’-(4,4’-异亚丙基二苯氧基)双(邻苯二甲酸酐)在间甲酚中通过一步法合成了5种聚酰亚胺(PI)。采用FTIR、1HNMR、DSC、TGA、UV-Vis对聚合物进行了表征。结果表明,所制备的PI特性黏数在0.36~1.44 dL/g,在酚
本文分别采用水热法和恒电位电沉积法制备了钴酸镍/氢氧化镍复合材料和石墨烯/氢氧化镍/氢氧化钴复合材料。利用红外光谱(FT-IR)、X射线粉末衍射(XRD)和X射线光电子能谱(XPS)技术对复合材料的结构进行了表征,采用扫描电子显微镜(SEM)观察了复合材料的形貌,并利用循环伏安(CV)、恒电流充放电(CP)、交流阻抗技术(EIS)研究了钴酸镍/氢氧化镍和石墨烯/氢氧化镍/氢氧化钴复合材料的电容性能
肿瘤标志物的灵敏检测对癌症的早期预警诊断、监测复发及判断预后均有重要临床意义。然而肿瘤标志物在临床液体样品(尿样、血浆或肿瘤细胞)中含量极少,如何开发具有高效输出信号强度的探针是肿瘤标志物检测面临的瓶颈问题。功能核酸纳米材料作为一种新兴的生物纳米材料,具有可编程性和携带多种功能单元分子的优势,在生物分析领域引起越来越多的重视。其中,基于“多价结合”策略构筑的功能核酸探针,可借助多倍单体重组的“整体
随着经济的快速发展和传统能源日益枯竭,光伏、风能等分布式清洁能源发电受到人们的广泛关注,而作为分布式发电主要载体的微电网成为主要研究方向。三相电压源型逆变器常作为微电网中衔接分布式发电单元重要组成部分,需要发展合适的控制方法对其调控以保证微电网的稳定可靠运行。在低压微电网孤岛运行模式下,电压、频率缺少大电网的支撑。因此,如何设计有效的控制方法保证分布式发电单元功率均衡分配,同时消除电压、频率偏差引