本文是一篇计算机论文,本文使用的数据集MovieLens种类比较单一,我们可以在条件允许的情况下收集不同行业的更多类型数据,例如当前大量使用推荐技术且人们使用频率较高的抖音、微博、小红书等电商平台数据,以便能在改进推荐技术的同时带来实际收益。
第一章绪论
第一节研究背景及意义
互联网科技高度发达,将我们带入一个信息爆炸时代,大数据的发展无疑能给我们带来很多机遇和好处,例如,大数据能给我们的日常生活带来便利,它能给我们带来的个性化推荐是其他技术难以企及的。比如网上购物,影视推荐,软件推荐等等,全新的浏览、购物、通讯和观影方式使人民的生活更加便捷。在国家为人民解决温饱问题以及重视教育后,人民也更加注重精神素质方面的培养和需求,更愿意向他人分享自己的经历和日常以及通过网络获知时事信息。但有时候用户很难把需求、意图变成关键词,更别说用户偷懒了,更多情况下不想打字了,而推荐系统并没有要求用户提出明确的需求,而是由用户历史行为与基本数据,构建了相关模型,对用户兴趣与需求进行了挖掘,从而在此基础上,从大量信息中选择用户关心的信息。这使得依靠推荐系统运行的抖音、快手、微博等应用程序一跃成为热门软件。由于生活经历和爱好的不同,使得人们对完全相同的物品有着不同的偏好,对于信息消费者来说,优秀的推荐系统能够在更短的时间更准确获取感兴趣的信息,使用户的体验感更好。对于商家来说,用户始终是一切商业价值的保障和核心,推荐系统能够在广告变现,电商变现,增值业务变现,用户开发,成本节省和效率提升等五个维度上提高商业价值。而海量数据的存在一方面使得用户要耗费大量时间精力去寻找自己需要的信息,另一方面也使得大部分冷门信息被更加的边缘化,无法为用户做出多样化推荐。在这个流量至上的时代,唯有充分挖掘、精准预测用户的喜好,向用户进行合理推荐,才能抓住用户眼球,最大限度留存用户,为公司创造经济价值。因此,无论是从用户角度,还是从企业角度,不断改进推荐系统现存问题,大力推进推荐系统更好发展都符合时代发展需求,推动社会发展向前。
....................................
第二节国内外研究现状
一、推荐算法的研究现状
推荐系统作为当今非常流行的研究方向,已有约29年历史。在过去几十年里,随着人工智能技术的快速进步,推荐系统已经从理论探讨走向实际应用阶段,并取得了一定的成绩和进展。最早的自动化协同过滤系统可上溯至1994年,由美国明苏尼达大学GroupLens研究组推出的GroupLens系统[12],说明推荐系统已经成为了一个较为独立的科研方向。此后的十年中,推荐系统一直处于快速发展期并取得巨大成果。这一体系主要具有两个方面的贡献:第一次将协同过滤(Collaborative Filtering,CF)[13]作为一种有效的推荐任务思想引入到实践中,为解决推荐问题构建了一种形式化的模型。与此同时,研究组随后建立了一个MovieLens的建议网站,为学术研究提供推荐引擎,它所收录的数据集,是目前推荐领域中被引次数最多的数据集。在这些研究成果的基础上,该研究小组又进一步将协同过滤推荐技术扩展到了其他方面。1997年,Resnick等人首次提出“推荐系统[14]等专业概念并被学术研究行业广泛应用,从而奠定推荐系统不可撼动的科研领域。2003年,Item-to-Item CF[15]的出现,让互联网领域开始初步了解推荐技术,还使得协同过滤算法成为那个时代的主流推荐技术。从2005年开始,“互联网+”热席卷整个网络。人们逐渐认识到,一个崭新的时代来临了。而且Netflix这一新兴的媒体技术得到了快速兴起。是当前世界上最大的免费视频网站,也是最受欢迎的在线音乐平台。在过去几十年里,随着人工智能技术的快速进步,推荐系统已经从理论探讨走向实际应用阶段,并取得了一定的成绩和进展。2006年,Netflix将为第一位能够大幅提升现有推荐算法准确度超过10%的参赛者提供100万美元的奖励。这项大赛一经宣布,立即吸引了大批高质量参赛队伍逐鹿中原。同年,Simon Funk写了一个性能更优的矩阵分解算法,后人把它命名为FunkSVD[16],这也使得基于矩阵分解的协同过滤技术在未来近十年内受到人们的极大关注与重视,成了协同过滤中的一种主流范式。随着协同过滤推荐算法的发展,其它的推荐技术也在迅速改善,以满足日益增长的需求如排序学习,基于话题模型、借助于情感分析的文本推荐等。基于传统推荐算法需要人工进行特征提取,提取能力有限,且耗时耗力的困扰,2007年,大名鼎鼎的Hinton提出了RBCF[19]算法,该算法首次将深度学习技术和推荐技术结合起来。深度学习技术在推荐系统领域的起势于2016年,深度学习是科研工作者使用的,是一种非常高效的技术手段,例如,借鉴于NLP领域Word2vec思想,item2vec算法[20]把用户的行为序列当做句子进行表示学习,能自动整理并抽象出句子深层次的数据特征。2019年,深度学习技术在推荐领域的开辟如火如荼地进行着,越来越多的学者及科研人员开始思考如何全面利用深度学习技术更快挖掘到更有价值的推荐信息。
...............................
第二章相关概念与技术基础
第一节Spark平台概述
一、Spark生态系统
Spark[35]是时下大数据领域最为活跃和炙手可热的一个、效率最高的大规模数据处理技术,它是一种实现速度快,支持使用Scala,Java等技术的通用型集群计算平台、Python和R语言进行编程。
最早由美国的加州大学伯克利分校(UC Berkeley)的AMP实验室于2009年开发,提出了大规模数据并行架构,这种架构是基于内存计算的,可以进行大规模的建设、数据采用低延迟分析。Spark拥有一个强大的生态系统,其中Spark Core是最重要的部分,负责执行各种任务,控制内存使用,处理异常,并且可以与存储系统进行协作。Spark SQL[36]:是一个用于处理复杂数据的模块,它提供了一种编程抽象的方法,可以用于分布式查询,能对多种结构化数据操作,从而提高数据处理的效率和准确性。Spark Streaming[37]:能对实时数据进行流式处理的组件。它能在多个线程上并行执行任务和计算。提供一个API来运行数据流。Spark MLlib:[38]提供了一个通用的程序库,以实现机器学习的特性(ML)。该程序通过在每个节点上执行一个计算任务而产生结果,并将计算结果返回给用户。其中有分类,回归,聚类等方法协同过滤,并给出了评价模型的方法、数据导入和其他附加支持功能。在推荐系统中,用户对物品的兴趣程度可以用一些属性来描述,例如价格、时间等等。所有这一切均建立在图计算技术之上。通过使用图计算来构建用户模型以及在该模型基础上对其做出分析和评价,可以提高系统的性能,同时也为用户选择合适的商品提供依据。GraphX(图计算)[39]:Spark中图计算用API,取得了很好成绩,它功能丰富,运算符也非常多,能自如地运行海量数据下的复杂图算法。它通过在一个大框架下实现多种算法来处理复杂问题,并将结果以图形化方式展现出来,从而使用户能够快速地找到所需信息和结论。Spark生态圈如图2.1所示:
计算机论文怎么写
...................................
第二节推荐技术概述
一、传统推荐算法
推荐系统分为用户行为信息记录,推荐对象信息建模,推荐算法3个模块,其中最重要且能够分辨出推荐系统好坏的是推荐算法模块。根据是否研究社交网络可分为:对于互关注关系和订阅关系的推荐。以用户为中心,以互关注关系为导向,在社交网络群中精准定位目标用户,根据他们的兴趣爱好,为他们提供最佳的推荐服务。面向订阅关系的推荐,以用户——物品为单位的信息可以划分为:
以内容为单位、以协同过滤为单位和以混合为单位。以内容为主线进行推荐,其基本思路如下,将与其以往感兴趣的物品类似的物品推荐给目标用户。这种推荐算法是根据用户所关心的物品来进行推荐,首先,抽取待推荐物品的多个属性特征,将其和用户关心的物品进行相似度对比,根据比较结果的高低进行相似度推荐。该种推荐算法的优点是:当目标用户有明确的感兴趣的项目时,不需要借助其他用户的评分信息可以避免推荐系统评分稀疏性问题。当目标用户为新用户时,可以根据该新用户选择的感兴趣标签进行基于内容的推荐,可以避免新用户冷启动问题。同时由于推荐系统使用的数据基本上是从各种网站,如wordNet,Cyc与OpenCyc,知网等网站提取的结构化或者半结构化数据,能够在进行属性特征比较时减少数据计算量,从而减少运行时间,能够提高运算效率。该种推荐算法的缺点是:由于只基于目标用户过去感兴趣的项目特征,无法挖掘用户的潜在兴趣,使推荐项目没有新鲜性和意外性。同时由于一个人的兴趣爱好不是永远一成不变的,若仅仅依靠历史记录作为推荐依据,就无法有效地应对用户的偏好发生变化的情况。
协同过滤算法(Collaborative Filtering)被广泛应用于各种复杂的环境中,并且被认为是一种非常有效的选择算法。该推荐算法基于的设想为:在社会生活中,兴趣爱好相似的人群之间的信息是可以互通互享的。基于项目的协同过滤基本原理为:根据用户—项目评分中各项目的评分比较各项目的评分相似度,然后按照项目相似度排名高低,将前个N个未被目标用户评分的用户推荐给目标用户。该算法基于的设想为:如果同一用户对不同项目的评分相似度越高,则这两个项目的相似度可能越大。基于项目的协同过滤中相对于基于用户的推荐算法来说项目的相似度稳定性更高,基于用户的协同过滤算法中,算法设计中认为兴趣爱好相同的用户会对同类型质量产品产生相同的评分。
................................
第三章融合注意力协同动态自动编码器算法.......................25
第一节引言...............................25
第二节ADCAE的整体结构.............................27
第四章基于Spark平台的协同过滤推荐算法研究..............................44
第一节推荐系统架构及推荐流程设计.............................44
一、推荐架构设计.......................................44
二、推荐流程设计.................................46
第五章总结与展望.......................60
第一节总结.............................................60
第二节展望...................................61
第四章基于Spark平台的协同过滤推荐算法研究
第一节推荐系统架构及推荐流程设计
一、推荐架构设计
所谓系统架构,其主要任务就是通过分析系统属性来设计系统结构。本研究的系统整体架构设计主要分为3层,分别为数据层、模型层、推荐业务层,如图4.1所示。
计算机论文参考
(1)基础数据层
基础数据层由业务数据与用户行为日志数据组成。业务数据中主要包括用户数据与项目数据,用户数据是用户进行注册的基本数据,项目数据是自媒体平台上上传项目基本情况。用户行为日志数据取自前端埋点的业务,批量保存于HDFS中作为离线分析,实时日志的数据流向Kafka,以用来实时计算。
(2)数据采集层
数据采集层分为离线数据采集和实时数据采集。离线部分用户日志采集,通过Flume在Hadoop服务器HDFS上采集业务数据服务器日志。实时部分进行实时分析时,我们要在Kafka中采集用户在使用系统的每一个瞬间所生成的行为数据。
(3)数据存储层
系统使用HDFS、Hive、MySQL数据库等进行数据存储,包括用户和项目的相关信息。
(4)数据处理部分
数据处理层为对输入数据进行基础计算,其主要工作为基于日记数据和业务数据,对数据进行清洗、缺失值处理以及合并处理等操作,在HDFS集群上(HIVE)计算成用户画像、项目画像、特征服务。在进行基础数据处理后,分别对用户进行离线推荐与实时推荐。
....................................
第五章总结与展望
第一节总结
推荐系统在互联网发展进程中发挥着越来越大的作用,而随着信息过载的出现,很多场景中的用户会产生大量的信息过载,如视频网站的视频过多;电子商务类APP经常会有商品库存和优惠券等信息;新闻类网站上读者过多而新闻来源不稳定等等。信息过载的问题已经成为当今社会难以回避的一个难题,不仅会给用户带来极大压力,也使得推荐系统本身的处理能力受到了极大限制。传统的基于内容和基于模型的推荐方法难以解决这一问题,因此研究具有分布式处理特点和资源分配机制的新型推荐方法就显得十分重要。本文研究调查了推荐系统在学术界以及工业界的国内外发展现状,为了缓解系统进行推荐时数据稀疏性和冷启动时出现的问题,对推荐模型进行了改进。同时为了提升推荐系统的可靠性和可扩展性,为推荐提供更高的系统容量,实现数据资源共享,本文将推荐系统部署在基于Spark的分布式工作平台上。本文的主要研究工作包含以下几个方面:
首先,本文阐述了推荐技术背景、意义以及国内外发展与研究现状。然后介绍了Spark技术的生态圈、技术框架、运行流程以及优势,分析了本文要用到的推荐技术的理论要点。其次针对如何在有限的用户行为数据里更好挖掘用户偏好问题,我们选择堆栈自动编码器神经网络作为推荐算法的基础结构,来克服传统矩阵分解算法中未能提取非线性特征的不足。在给商品做用户评分预测时,我们运用了影响用户评分的时间权重模块来处理用户兴趣随时间可能产生变化的问题。以及采取了注意力策略模块解决了基础神经网络推荐方法无法提取评分数据中用户可能重点关注局部某些项目的问题。在提出了一个新的以堆栈自编码器为基础的新的神经网络后,我们在权威数据集上开展了大量对比实验,以此证实改进模型的性能有提升。最后针对单机推荐系统处理海量数据能力有限问题,本文合理利用Spark分布式引擎的大数据处理方面的优势,在Spark平台上设计并实现电影推荐系统,该系统根据用户需求拥有一些不同的功能模块,包括数据模块、推荐模块、以及系统业务模块等。
参考文献(略)