推荐7篇关于交替最小二乘法的计算机专业论文

今天分享的是关于交替最小二乘法的7篇计算机毕业论文范文, 如果你的论文涉及到交替最小二乘法等主题,本文能够帮助到你 基于交替最小二乘协同过滤算法的推荐系统 这是一篇关于推荐系统

今天分享的是关于交替最小二乘法的7篇计算机毕业论文范文, 如果你的论文涉及到交替最小二乘法等主题,本文能够帮助到你

基于交替最小二乘协同过滤算法的推荐系统

这是一篇关于推荐系统,基于模型的协同过滤,矩阵分解,交替最小二乘法,Spark,HDFS的论文, 主要内容为在当今信息爆炸时代,Web是获取任何信息的最佳来源或就某件事做出决策的重要途径。人们在做出某项决定之前像购买任何产品,预订电影票等都或多或少受到来自Web推荐的影响。由此可见,在这种情况下,推荐系统发挥重要作用。推荐系统已经广泛运用在各个领域像电子商务,电影,音乐,搜索引擎和新闻网站等等。它的设计初衷就是基于用户的长期或短期喜好给它的所有注册用户和潜在用户推荐符合他们自己兴趣的产品,包括组合选择。而这些用户喜好可以分为显式信息和隐式信息。由于隐式信息过于隐晦,需要推荐系统本身自发去收集和挖掘,而这些隐式信息往往存在于用户过去的购买记录,用户过去的浏览网站,用户曾经点击的链接,浏览器cookies甚至地理位置信息。显式信息就比隐式信息体现用户的喜好显著的多。显式信息采用的是有效的反馈,比如说购买或使用过该项目后的一次用户评分。综上所述,我们就能将用户喜好数据化表示成用户评分记录,以用户-物品矩阵的形式存储。协同过滤是推荐系统中众所周知和最广泛的技术之一,不仅在学术界得到了深入的研究,而且在工业界也有广泛的应用。其基本思想是根据用户的偏好来预测用户感兴趣的项目。并且由于在电子商务中精准推荐的出色表现,该项技术已在该领域得到成熟的运用。协同过滤算法可以简单分为两类,一类是基于近邻的协同过滤算法,还有一类是基于模型的协同过滤算法。一、基于近邻的协同过滤算法。在这个算法中还需再细分,基于用户的协同过滤算法和基于物品的协同过滤算法。他们的基本思想都是需充分运用相似用户或相似物品构成的近邻组合,去挖掘他们近邻组合的信息来给近邻组合的本体-被推荐的对象来进行符合他的兴趣物品推荐。在基于物品的协同过滤算法中,关于近邻组合的定义是由不同用户打分产生的有着相同或相似分数的物品集合。然后系统推定用户喜欢和他以前喜欢的东西相似的东西—近邻集合,进行打分。在基于用户的协同过滤算法中,对于近邻组合的定义是一组对同一个物品打分相同或类似的用户集合。该算法的主要思想是为了将有着相同或相似的兴趣爱好的用户聚集在一起。因为对于一个物品,用户甲是存在潜在可能性喜欢在过去记录中有着相同或相似爱好的用户乙喜欢的商品。鉴于该算法必须对所有用户的所有商品的评分数据进行处理才能对单个用户进行预测推荐,所以该算法提出了严重的可扩展性问题。倘若存在海量的用户、海量的项目以及海量的用户对物品的评分记录,此法不适合实时推荐系统。此外该法比推荐系统中的基于模型的协同过滤的推荐算法更加敏感。二、基于模型的协同过滤算法。不同于基于近邻的协同过滤算法直接采用用户评分矩阵来学习预测模型进而产生推荐的方法,基于模型的协同过滤算法的模型建立过程是由不同的机器学习算法如贝叶斯网络,神经网络和奇异值分解进行学习预测模型进而给单个用户产生推荐结果。例如在线系统需要高效可用性和低时延的响应时间,因为它们必须协同合作并快速处理来自所有用户活动所产生的数据流,进而产生推荐结果。而所有这些过程都必须在用户等待几秒的时间里开始并结束。因为推荐算法会选择的最符合用户兴趣的物品,这当然必须在用户浏览网站时向用户显示。继而就有需要服务的用户数量越多,要推荐的商品越多,所产生的计算量继而会随之增大大,从而增加生成给每个用户建议所需的时间。为了解决这个问题,一些学者提出了一类快速简单的基于模型的协同过滤算法,称为潜在因子模型。他们试图确定解释观察到的用户评分的相关特征,也被称为潜在因素。这些功能或者说是潜在因素可以解释为用户的偏好和推荐的项目的特征。充分使用这些潜在因素,可以推断出用户的偏好,并为他或她推荐符合自己兴趣的物品。而成功对潜在因素建模的关键技术是矩阵分解。由于基于模型的协同过滤算法它们结合了可扩展性和预测准确性,因此它们已经在实时推荐系统中得到广泛运用。此外,基于模型的协同过滤算法它们对不同现实实际情况建模的灵活性提供了不同的建模方法。因为它们允许并入附加信息,如隐含反馈,时间效应和置信水平,这样使得会优于基于近邻的协同过滤算法产生推荐结果。可扩展性和高性能也是一个推荐系统的重要指标,因为计算的复杂度会随用户和物品的增多而有指数爆炸性增长。考虑到推荐算法的效率,Map-Reduce的编程模型在对于机器学习的算法上并没有体现出很好的优势,原因在于机器学习的算法需要Map-Reduce编程框架随着迭代的次数而不断进行在磁盘进行读写的I/O操作。基于上述的现状,Apache Spark提出了基于内存的处理大数据的快速通用引擎。Spark是在Map-Reduce上发展而来的,保留了分布式并行计算的特点并改进了 Map-Reduce的明显缺陷。Spark是将中间数据保存在了内存中,迭代运算效率大大提高;其次Spark提出弹性分布式数据集RDD的抽象,达到了提高了自身对数据的容错性;最后,Spark对于数据集的操作没有像Hadoop一样只提供了 Map和reduce的操作。大致可以分为两类,一类是转化(Transformations)操作,一类是执行(Actions)操作,对于使用者提供了很好的友好性。本文工作目标是能够充分运用Spark自带的机器学习库构建并实现基于最小二乘法的协同过滤系统。交替最小二乘算法(ALS)可以随着数据量规模的增大而对其进行并行和优化处理。在现实数据中,用户评分矩阵往往都是比较稀疏的,这给计算并推荐产生巨大的计算压力,但交替最小二乘算法能克服这点。在实验中,本文会比较部署在Linux单节点和部署在Linux集群的推荐效果。实验中使用的数据集是MovieLens。本论文的贡献如下:1)介绍了现有的基本推荐算法,比较了各个算法之间的优缺点以及适应的场景。结合自身工作的特点,本文选取了适合自己的工作场景的协同过滤算法。2)本文根据大数据平台Spark的实验要求,搭建了一个主节点,两个附节点的实验集群。各个节点安装的操作系统版本是Ubuntu 16.04 LTS.1,使用HDFS存储数据集并保存计算中的输出结果,其中Hadoop的安装版本是2.7.0,Spark快速通用大数据计算平台安装的版本是1.6.1.3)本文在Spark大数据处理平台上使用Scala编程语言实现交替最小二乘算法(ALS)。实验中的数据集是来自电影领域的公开发布的MovieLens数据集。首先,笔者了解了公开MovieLens数据集的相关资料并为其找到最适合的ALS模型,换句话说,就是本文使用不同参数值的组合在公开数据集MovieLens训练了交替最小二乘模型,进而发现在测试集上具有较低均方根误差(RMSE)的组合。充分使用训练出且优化的参数来得到交替最小二乘法(ALS)模型。本文采用的实验评价标准是根据测试集上的执行时间和精度结果呈现实验结果的好坏。实验结果表明,通过使用Spark的MLlib库实现的最佳匹配交替最小二乘模型展现了比较好的性能。该解决方案具有更好的性能。对于MovieLens数据集,测试集上的均方根误差(RMSE)为0.800689025。本文还继续在实验研究中增加了具有可扩展性实验,换句话说就是在搭建的三台机器的实验集群上运行训练好的最佳参数交替最小二乘模型。本文作者发现结果非常有利于Spark,因为最小二乘法(ALS)在大数据方面展现的计算加速能力十分可观,结果就是采用MovieLens数据集在搭建的三台机器的实验集群上的训练时间比在单节点上的训练时间上更快。一台单节点计算机上的实验推荐的准确度也令人满意。

基于Spark的混合模式电影推荐系统研究与实现

这是一篇关于混合推荐,并行化,Spark,联合聚类,交替最小二乘法的论文, 主要内容为推荐系统帮助人们在海量数据中获取感兴趣的信息,但传统推荐系统所采用的推荐算法在使用上都存在一定的缺陷,因此,在实际推荐系统中,大多是采用多种推荐算法结合的混合推荐技术,在推荐效果上要比单一推荐算法表现好。但随着互联网发展,数据规模急剧增长,单机推荐系统的性能越来越差,推荐系统迫切需要寻找新的解决方案来使其在数据量爆发式增长的环境下仍能维持良好的表现。同时,信息的发达使得人们有了更多的选择,推荐系统需要在不同应用场景下选择最适合的混合推荐技术,以提高推荐系统的推荐质量。针对上述问题,本文设计并实现了基于Spark的混合模式电影推荐系统,推荐引擎采用的是基于内容和基于联合聚类的交替最小二乘法(Alternating Least Squares,ALS)两个模式相结合的混合推荐技术,并将其在Spark平台上实现,使推荐系统在处理海量数据时仍能拥有良好的用户体验。本文的主要工作有:(1)对推荐系统、Spark平台、基于协同过滤算法、基于内容推荐算法、推荐性能评价指标等相关技术进行分析,提出本文推荐系统的设计思路。(2)针对传统推荐算法存在的冷启动、数据稀疏等问题,提出了一种基于内容推荐算法和基于联合聚类的ALS模型算法相结合的混合模式推荐算法。该混合推荐算法所支持的推荐引擎在面对系统新用户或新项目时采用的是基于内容推荐,能缓解协同过滤算法存在的系统冷启动问题。对于有一定数据量的用户,本系统采用基于联合聚类的ALS模型算法,该算法对解决数据稀疏问题能起到一定作用。该混合算法同时利用显示反馈和隐式反馈信息,可以更好的模拟用户兴趣,向用户进行推荐。(3)通过在MovieLens数据集上进行仿真模拟实验,利用对比试验对本文所提出的混合模式推荐算法的推荐效果进行测试,验证该混合模式推荐算法的有效性和可用性。实验结果表明,该混合模式推荐算法在推荐性能和推荐效果上均表现的较为理想。(4)根据本文所提出的混合模式推荐算法,提出基于Spark平台电影推荐系统的设计与实现方案,对系统的功能、流程和框架进行了详细设计与说明。该系统是基于Web服务的网页系统,用户在网站中浏览电影信息,系统根据用户分类对其进行推荐,根据用户评分更新数据,从而更新推荐列表,同时也对系统的主要界面进行展示。

Research and Implementation of Movie Recommendation System Based on Spark

这是一篇关于协同过滤,电影推荐,Spark,交替最小二乘法,隐语义模型的论文, 主要内容为近年来,激增的互联网用户群体促进了网络应用与内容创作的高速发展。然而,庞杂的网络信息也带来了新的问题——“信息过载”。针对“信息过载”的问题,学者们提出了推荐系统的概念,它可以学习人们的偏好并将其与相关的信息实体建立潜在的兴趣关联,从而推荐他们可能感兴趣的信息。目前,推荐系统在众多互联网平台上都已得到了部署并产生了积极的效果。根据在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级的数据对系统进行相关的测试。因此,在未来需要将系统置于更加真实的环境中进行仿真模拟。因此,在未来的工作中,可以根据这些改进方向对本文的研究进行优化与提升。

Research and Implementation of Movie Recommendation System Based on Spark

这是一篇关于协同过滤,电影推荐,Spark,交替最小二乘法,隐语义模型的论文, 主要内容为近年来,激增的互联网用户群体促进了网络应用与内容创作的高速发展。然而,庞杂的网络信息也带来了新的问题——“信息过载”。针对“信息过载”的问题,学者们提出了推荐系统的概念,它可以学习人们的偏好并将其与相关的信息实体建立潜在的兴趣关联,从而推荐他们可能感兴趣的信息。目前,推荐系统在众多互联网平台上都已得到了部署并产生了积极的效果。根据在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级的数据对系统进行相关的测试。因此,在未来需要将系统置于更加真实的环境中进行仿真模拟。因此,在未来的工作中,可以根据这些改进方向对本文的研究进行优化与提升。

Research and Implementation of Movie Recommendation System Based on Spark

这是一篇关于协同过滤,电影推荐,Spark,交替最小二乘法,隐语义模型的论文, 主要内容为近年来,激增的互联网用户群体促进了网络应用与内容创作的高速发展。然而,庞杂的网络信息也带来了新的问题——“信息过载”。针对“信息过载”的问题,学者们提出了推荐系统的概念,它可以学习人们的偏好并将其与相关的信息实体建立潜在的兴趣关联,从而推荐他们可能感兴趣的信息。目前,推荐系统在众多互联网平台上都已得到了部署并产生了积极的效果。根据在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级的数据对系统进行相关的测试。因此,在未来需要将系统置于更加真实的环境中进行仿真模拟。因此,在未来的工作中,可以根据这些改进方向对本文的研究进行优化与提升。

面向众核平台交替最小二乘法的实现与性能优化

这是一篇关于交替最小二乘法,跨平台,细粒度任务并行,数据重用,数据重排的论文, 主要内容为推荐系统的任务是通过联系用户和产品,帮助用户发现对自己有价值的信息。优秀的推荐算法可以使得推荐系统的效率大大提高,增强推荐结果的正确性,满足海量用户的需求。异构众核体系结构的发展为高性能计算技术与推荐系统的结合带来了新的发展契机。本论文面向当前主流的多核与众核处理器实现并优化一种推荐系统领域极具代表性的算法:交替最小二乘法(ALS),旨在从不同角度最大化该推荐算法的性能。本文的主要工作和创新点包含以下三点:1.使用OpenCL实现了ALS算法,使其具备跨平台可移植特性;针对不同平台实施不同的优化技巧,组合不同优化技巧产生多个代码变体,从而方便研究者针对不同平台选择最优的优化方法。实验结果表明,相对于基准实现,在Intel E5-2670平台上优化后的ALS的执行速度提高为原来的5.5倍,在NVIDIA K20C平台上的性能提高了21.2倍;该实现在多个数据集上的性能均优于cuMF。2.在分析ALS算法热点和剖析已有ALS实现所存在问题的基础上,进一步提出了一种基于细粒度分块并行策略的ALS实现。该实现通过细粒度的任务划分与合理的线程配置实现了该算法性能上的大幅提升。实验数据表明,与基准实现相比,该实现在NVIDIA K20C平台上实现了多达88倍的性能加速,在AMD gfx803平台上实现了多达98倍的性能加速。此外,该实现在不同平台和不同特征维数上的性能均超越了cuMF。3.根据推荐系统数据集的特点,提出了一种基于数据重用策略的ALS实现。该实现是基于一种新的稀疏矩阵压缩分块存储格式以及数据重用/重排两种优化策略。数据重用策略降低了不同存储层次之间的数据传输次数,从而减少了访问全局存储的压力。数据重排策略通过重新组织稀疏矩阵的行列,最大化数据重用的收益。实验数据表明,相对于领域内最快的Gates实现,本文提出的实现在K20C平台上达到约2.08倍的加速比,在TITAN X平台上能够取得约3.72倍的加速比。据笔者所知,这是目前领域内最快的基于ALS算法的矩阵分解实现。本文结合了交替最小二乘算法、推荐系统数据集与异构众核体系结构的特点,合理地将任务映射到处理器的计算核心,运用了多种面向体系结构的优化技巧,从而能够充分地利用硬件架构的资源,实现在不同平台上矩阵分解性能的大幅度提升。本文所提出的ALS实现能够被直接地融入到当前主流地大数据处理框架中。

基于Spark的混合模式电影推荐系统研究与实现

这是一篇关于混合推荐,并行化,Spark,联合聚类,交替最小二乘法的论文, 主要内容为推荐系统帮助人们在海量数据中获取感兴趣的信息,但传统推荐系统所采用的推荐算法在使用上都存在一定的缺陷,因此,在实际推荐系统中,大多是采用多种推荐算法结合的混合推荐技术,在推荐效果上要比单一推荐算法表现好。但随着互联网发展,数据规模急剧增长,单机推荐系统的性能越来越差,推荐系统迫切需要寻找新的解决方案来使其在数据量爆发式增长的环境下仍能维持良好的表现。同时,信息的发达使得人们有了更多的选择,推荐系统需要在不同应用场景下选择最适合的混合推荐技术,以提高推荐系统的推荐质量。针对上述问题,本文设计并实现了基于Spark的混合模式电影推荐系统,推荐引擎采用的是基于内容和基于联合聚类的交替最小二乘法(Alternating Least Squares,ALS)两个模式相结合的混合推荐技术,并将其在Spark平台上实现,使推荐系统在处理海量数据时仍能拥有良好的用户体验。本文的主要工作有:(1)对推荐系统、Spark平台、基于协同过滤算法、基于内容推荐算法、推荐性能评价指标等相关技术进行分析,提出本文推荐系统的设计思路。(2)针对传统推荐算法存在的冷启动、数据稀疏等问题,提出了一种基于内容推荐算法和基于联合聚类的ALS模型算法相结合的混合模式推荐算法。该混合推荐算法所支持的推荐引擎在面对系统新用户或新项目时采用的是基于内容推荐,能缓解协同过滤算法存在的系统冷启动问题。对于有一定数据量的用户,本系统采用基于联合聚类的ALS模型算法,该算法对解决数据稀疏问题能起到一定作用。该混合算法同时利用显示反馈和隐式反馈信息,可以更好的模拟用户兴趣,向用户进行推荐。(3)通过在MovieLens数据集上进行仿真模拟实验,利用对比试验对本文所提出的混合模式推荐算法的推荐效果进行测试,验证该混合模式推荐算法的有效性和可用性。实验结果表明,该混合模式推荐算法在推荐性能和推荐效果上均表现的较为理想。(4)根据本文所提出的混合模式推荐算法,提出基于Spark平台电影推荐系统的设计与实现方案,对系统的功能、流程和框架进行了详细设计与说明。该系统是基于Web服务的网页系统,用户在网站中浏览电影信息,系统根据用户分类对其进行推荐,根据用户评分更新数据,从而更新推荐列表,同时也对系统的主要界面进行展示。

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设小屋 ,原文地址:https://m.bishedaima.com/lunwen/54818.html

相关推荐

发表回复

登录后才能评论