基于图神经网络的电影推荐系统设计与实现

发布时间:2022-07-08 23:36:01 论文编辑:vicky

本文是一篇计算机论文研究,笔者认为以当前的形式来看,数据量的增加是呈指数级上升的,因此,我认为推荐系统的发展前途一片光明,它不仅仅可以用在电影推荐,目前,推荐系统以及在各个领域都有了相当大规模的应用。比如电商推荐、音乐推荐、短视频推荐等等,不仅仅在工业界,学术界对于推荐系统的研究热情也是日益高涨,学者们都希望以各种方法来提升推荐系统的效果。

第一章  绪论

1.1 研究背景及意义

由于互联网的飞速发展,如今的我们所要面对的信息是以往需要面对信息的几倍,甚至几百倍。在这样的一个环境下,许许多多的信息就变成了无用的信息,他给我们带来的不是获取信息的愉悦感,而是被各种信息裹胁下的焦虑,人们需要在其有限的时间内处理无限的信息,这对于每个人来说都是一种负担。因此,如何处理这些冗余的信息成为了我们所需要面对的问题。为了解决这种问题的出现,推荐系统就此诞生,在可见的未来里,信息的增长量级将会越来越快,在此基础上,推荐系统是一个非常具有现实意义的研究方向。

至 2020 年以来,新冠疫情肆虐全球,疫情的爆发对各行各业都带来了极大的影响。尤其是电影行业,由于电影院的特点,会导致人流较为拥挤,因此电影院是第一批被关停的实体产业。因此,在线下影院萎靡的情况下,线上观影成为了人们一个更好的选择。在 2019 年之后,互联网发行了一系列的网络电影,在后疫情时代,网络电影作为线上新型消费的重要形式。根据 2020 年的中国网络电影行业报告指出,中国在 2020 年累计上线电影 1089 部[1]  。在如此多的电影中,尤其是受线上观影化的趋势和电影的表现形式所限,观众想要从中选出自己所喜爱的电影也是一种难事。由于观众需要在观影前进行付费,因此对双方而言,观众不知道自己是否能看到自己所想看到的电影,但是一经付费后又无法退款,如果每次都让观众败兴而归,会极大的打击观众对于线下平台的信任度。所以,一个能符合观众需求的推荐系统就显得极为重要。

推荐系统经过几十年的发展,在学者们的不断研究下,留下了众多的经典算法可以供人使用[2][3][4]。推荐算法一直与新时代的技术互相融合,在现在这个时间点,当下最流行的技术莫过于深度学习了。因此,将深度学习融入推荐算法也是一个研究要点,早在 2016 年,国外最大的视频网站 YouTube 就开始使用深度学习来应对日益增长的视频推荐需求。经过不断的实验以及事实证明,推荐系统和深度学习之间有着相当不错的兼容性,将推荐系统和各类深度学习的方法相结合,得到了非常不错的效果。

1.2 国内外研究现状

上世纪 90 年代,由明尼苏达大学的主导的 GroupLens 团队设计实现了首个自动化的推荐系统,这就是推荐系统的第一次亮相。该系统的核心是协同过滤推荐算法,这是世界上首个自动化的协同过滤推荐系统[5]。但在当时推荐系统还只是学校里的一项研究,一直到了 1997 年由 Resnick 等人首次提出了推荐系统(Recommender System)一词[6],人们才发现推荐系统在工业界的价值。之后,1998 年,亚马逊为自己的用户提供了一种基于物品的协同过滤算法推荐服务[7]。此时标志着推荐系统正式进入工业界,在多年的发展来,亚马逊也凭借着优质的推荐服务逐渐成为了业界巨头。

随着网络的逐渐发展,信息量与日俱增,推荐系统也一直稳步发展。2003 年,淘宝成立后,淘宝网成为国内首个应用推荐系统至大规模电商的网站,阿里巴巴通过对用户购买过的物品和浏览历史纪录进行分析,构建模型来对用户喜欢的商品进行预测,这一行为使得用户的购买率大大增加,让阿里巴巴一跃成为国内电商巨头。阿里巴巴曾透露过用户就算不买东西,也喜欢在淘宝上进行浏览发掘自己的兴趣,因此,一个好的推荐系统可以大大的提高用户粘性[8][9]。

在此之后,国外的视频服务提供商 Netflix  组织了一场比赛,其目的是提高自家推荐系统的性能,只要能够将 Netflix 自己的电影推荐算法准确率提升 10%以上就可以获得丰厚的奖励。因此这场比赛吸引了一大批优秀的竞争者来参与这场比赛,期间涌现出非常的多的推荐算法,促进了推荐系统的发展[10]。在此之后,推荐系统的研究方向扩展的非常之宽。对于传统推荐算法,基于内容的推荐和基于邻域的推荐应用到了各个地方,为用户的个性化需求提供了非常大的帮助。基于邻域的推荐算法也就是协同过滤算法,该算法一种是依据物品进行推荐,另一种是依据用户进行推荐,两种算法各有其优点和相应的应用范围。基于物品的推荐大多应用于物品较多的推荐领域,如电商推荐,音乐推荐等等;而基于用户的推荐则更依赖于用户之间的交互,如电影推荐,游戏推荐等等。它们的计算方式都是类似的,通过计算不同物品/用户之间的相似度,为其推荐相似物品/用户的推荐列表来完成推荐[11]。但是单一的推荐始终是无法满足所有人的要求的,因此随着推荐系统的发展,现在用到最多的是混合推荐。通过将不同的推荐算法进行混合[12]以及融入更多其他的特征,如社交网络,地理位置等等来提升推荐效果,也取得了不错的商业成绩。

第二章  相关技术与理论基础

2.1 推荐算法介绍

自推荐系统诞生以来,一代代人就在推荐算法上不断的进行迭代更新,在此期间很多优秀的推荐算法被科研人员们提出。这些经典的算法之所以经典,是因为它们针对推荐算法最底层的诉求所开发的。这些算法至今还活跃在工业界,被众多公司所采用。下面本文将对这些算法进行一一介绍。

2.1.1 基于人口统计学的推荐算法

基于人口统计学的推荐算法大致上可以分为两个大类:一是对于用户所给资料进行推荐,依赖于用户给予算法真实的用户信息[17],第二种就是基于用户关系的推荐算法,此类算法较依赖于用户的真实关系[18],从描述就能看出,该算法是一个比较基础但是极度依赖用户信息的算法。

基于人口资料的推荐算法也可以说是基于人物信息的推荐算法。这一算法的首要步骤是需要先收集用户的各项资料,比如说年龄、性别、地址信息等等用户的详细信息。然后通过用户画像和一些距离计算公式来对用户之间的相似度进行一个计算(如余弦相似度,雅可比相似度等),当你需要做出一个推荐的抉择的时候,你就可以通过之前计算出的相似度来寻早与之相似的其他用户,然后读取他们的推荐列表,将这些列表中的物品推荐给这个用户即可。

以本文研究的电影推荐系统为例,如图 2-1 所示,用户 A 为年龄 16 岁的重庆女性,她喜欢的是电影 1。用户 B 是年龄 30 的广东男性,他喜欢的电影是电影 2 和电影 3。而我们需要进行推荐的用户 C 是一位年龄 20 的四川女性,那么我们可以很明显的看出用户 C 和用户 A 更为相似,那么她们俩的兴趣爱好可能有更大概率的相同。因此,我们可以将电影 1 推荐给用户 C,以此达到我们的推荐效果。

计算机论文怎么写

2.2 分布式计算框架

Spark Spark 是一个开源的并行数据处理框架,它的主要功能是用以帮助用户进行一些简单的处理,就能够得到一个统一的大数据应用。它可以对数据进行多种操作,包括协程处理,流式处理,交互式分析等等,都可以通过 Spark 进行实现,在大数据处理方面有着不可撼动的地位。

2.2.1 Spark 生态圈

Spark 于 2009 年诞生于加州大学伯克利分校 AMP Lab,2010 年开源,2013年 6 月成为 Apache 孵化项目,2014 年 2 月成为 Apache 顶级项目[28]。目前的Spark 拥有众多的子项目,如图 2-4 所示,它包含了 Spark SQL、Spark Streaming、GraphX、Mllib 等子项目。Spark 是基于内存进行计算的计算框架,因此,它的速度非常之快,但是内存是一个较为稀缺的资源,因此 Spark 允许用户将多个廉价设备连接起来形成集群,将 Spark 分别部署在每一个集群上,以此达到高速计算的一个目的,因此 Spark 被大多数企业所使用。

那么接下来我会对 Spark 的运行方式做一个解释,Spark 的应用架构以一个简单的方式来说明就是它将一个应用分解为多个 job,然后每一个 job 又有属于自己的一个 stage,每一个 stage 则包含着不同的 task,这就是一个 Spark 应用的整体架构。拆分到 Spark 中每一个角色进行一个执行的话可以分为以下步骤:

(1)构建 Spark 应用的运行环境,启动 SparkContext 然后向资源管理器注册并且给 Executor 申请资源,如 Standalone,Mesos 等。

(2)注册并且申请好资源之后,将资源分配给 Executor。

(3)SparkContext 根据所给的 RDD 构建无向图,然后通过无向图拆分任务,首先拆为 stage,然后从每一个 stage 中拆解为 task,此时需要将这部分的操作上报给主集群,然后根据主集群会将任务下方给各个集群进行作业任务。

(4)每个集群点完成自己的作业并且释放资源。

第三章  基于改进图神经网络的推荐算法设计 .................................... 16

3.1 基于图神经协同过滤的推荐算法的改进和优化 ....................................... 16

3.1.1 基于图神经协同过滤的推荐算法介绍 ............................................ 16

3.1.2 基于图神经协同过滤的推荐算法的改进 ......................................... 19

第四章  电影推荐系统的需求分析与设计 ............................................ 27

4.1 电影推荐系统的需求分析 ...................... 27

4.1.1 功能性分析 ...................................... 27

4.1.2 非功能性分析 .................................. 29

第五章  电影推荐系统的系统实现与测试 ........................ 42

5.1 系统开发以及环境部署 ..................................... 42

5.2 系统搭建以及服务运行 .................................. 42

第五章  电影推荐系统的系统实现与测试

5.1 系统开发以及环境部署

本系统在个人笔记本电脑上开发完成,开发中使用到的开发工具及对应版本如表 5-1 所示。

计算机论文参考

第六章  总结与展望

6.1 总结

现在这个时代不同于以往,现在人们对于信息的把握相比以前来说途径多了太多,而且信息的膨胀量也是一天天剧增,现在一年的信息也许能抵上非信息时代的一百年的信息量。在这样量级的数据冲击下,人们对于如何寻找到自己所需要的信息越来越难,因此,在这样的需求下,推荐系统和搜索引擎作为两种解决信息过载的手段,需要不断的提升性能,搜索引擎通过主动的方式为人们谋取信息,推荐系统则是通过被动的方式,将信息分析量化,将其呈现给用户。

本文通过分析目前主流的几种推荐算法的算法原理和优缺点以及电影推荐数据集中的数据结构特征,将改进的图神经协同过滤算法应用到了电影推荐这一领域中,并且通过实验,发现这种推荐算法确实推荐效果好了不少。

其次,为了能使用户在系统中的行为的到反馈,也为了提升对用户的推荐体验,设计了一种融合电影拍摄时间的实时推荐算法,并且以当前主流大数据处理框架对应用的日志进行抓取和分析,实现了该算法。

最后,以当前主流的应用搭建框架,配合推荐算法的实现,构建了一套对用户友好的电影推荐系统,其中包含数据加载,离线推荐,实时推荐等模块。在搭建好之后对其进行了严密的测试,保证了系统的可用性。

参考文献(略)

提交代写需求

如果您有论文代写需求,可以通过下面的方式联系我们。