"景先生毕设|www.jxszl.com

大数据实时计算案例推荐系统的研究与实现(附件)

2021-01-11 17:40编辑: www.jxszl.com景先生毕设
摘 要在这个物质和资源极度丰富的时代,对于普通人来说,面对众多让人头昏眼花的歌曲,该选择听哪一首了?于是,向用户推荐音乐起到了关键作用,而这些音乐推荐的背后就是推荐系统。为了解决信息爆炸信息过载和用户不知道自己想听的什么样的音乐,猜用户想听的歌曲,是个性化推荐系统需要解决的问题。在信息技术和互联网的高速发展的今天,早已经不是以前音乐资源匮乏的时代人们已经走入了音乐资源过载的时代 。生活在这个时代,不论是普通听众还是音乐服务商都遇到了很棘手的问题,对于普通听众,从大量歌曲库中找到自己感兴趣的歌曲是一件非常困难的事情;对于音乐服务商,让自己音乐服务脱颖而出,受到广大听众的关注,也是一件非常困难的事情。推荐系统就是解决问题的强兵利器。本文旨在实现向用户个性化推荐歌曲,提出基于分布式开源计算框架Hadoop的解决方案,利用分布式并行计算的方式进行推荐算法的计算,以协调过滤算法理论为基础最后设计完成了混合推荐的音乐推荐系统。
目 录
1 绪论 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 研究实现内容 2
2 相关技术概述 3
2.1 大数据相关技术概述 3
2.1.1 Spark分布式计算框架 3
2.1.2 Spark的运行逻辑 4
2.1.3 Spark与Hadoop对比 5
2.2 推荐系统概述 6
2.2.1 推荐系统的分类 6
2.2.2 常用的推荐算法 7
3 离线和实时推荐系统设计 9
3.1 系统分析 9
3.1.1 系统的需求分析 9
3.1.2 系统开发设计思想 9
3.1.3 系统的主要技术和开发平台 9
3.2 系统设计 10
3.2.1 系统流程 10
3.2.2 系统功能模块 11
3.2.3 数据仓库设计 13
4 混合推荐系统实现 17
4.1 离线批处理 17
4.1.1 数据收集 17
4.1.2  *景先生毕设|www.jxszl.com +Q: ^351916072
数据清洗 17
4.1.3 推荐引擎离线分析的实现 18
4.2 实时流式处理 18
4.2.1 用户特征向量 18
4.2.2 物品特征矩阵 18
4.2.3 推荐引擎实时分析的实现 19
4.3 前端展示实现 19
4.3.1 网站首页 19
4.3.2 线上测试环境音乐首页 20
4.3.3 用户登录 20
4.3.4 用户注册 21
4.3.5 歌曲评分评论 21
4.3.6 新用户注册用户偏好收集 22
4.3.7 歌曲推荐列表 22
4.3.8 任务调度系统 23
4.3.9 项目知识文档 23
4.4 服务端实现 24
4.4.1 Flask Web代码部分实现 24
5 部署与测试 26
5.1 推荐系统部署与测试软件环境 26
5.1.1 Nginx配置文件 26
5.1.2 Flask Web服务控制脚本 26
5.2 推荐系统部署与测试硬件环境 28
5.3 测试用例 28
5.4 测试结果 29
6 总结 30
6.1 总结 30
6.2 展望 30
参考文献 31
致 谢 32
附 录 33
1 绪论
1.1 课题背景
信息技术高速发展的今天我们已经步入数据爆炸时代,信息的获取和共享变得越来越容易。每时每刻有大量的音乐、Blog、视频在互联网分享。信息和资源的爆炸增长的速度超乎想象,因此用户要想找到他们需要的信息和资源将变得越来越难。[1]在早期解决信息过载的方法是搜索引擎,通过搜索简短的描述字段找到目标信息,一度被广泛的使用许多年,搜索引擎有很大弊端的并不能解决所有的问题,原因之一是用户要使用一个简短的描述字段去描述自己的搜索需求是有点难度的,很难描述自己的需求而且要用最恰当的描述字段,二是如果是基于描述字段的信息搜索描述字段必须很简短明确,但往往描述字段检索在很多情况下是不够的准确的搜索到人们的需求,例如搜索可能会喜欢的歌曲但是又没有听过。自从推荐引擎的出现后,人们获取信息资源的方式从以前简单的目标明确的描述字段的搜索转换到更符合人们使用习惯的基于用户行为分析的内容推荐的信息发现混合使用。
在此之前只有搜索引擎例如Yahoo,Google,Bing,Baidu的时候,它们是用户快速找到目标信息的最好途径。现在时间的推移技术的快速发展,推荐服务已经在互联网公司生根发芽成为必备服务如京东、淘宝、 和一些基于社区的站点如知乎、豆瓣等,基于内容的推荐如今日头条、一点资讯等都取得很大的成功。推荐服务的广泛使用进一步的说明了数据爆炸时代大环境下,在面对日益增长的海量的数据,普通用户更需要这种更加个性化的,千人千面的,更加了解他们需求、口味和偏好的信息发现机制。
1.2 国内外研究现状
推荐系统最早出现于二十年前。从那时起,科研人员不断地开发实现推荐引擎的新方法。今天我们中的大多数人已经习惯使用推荐系统的推荐服务,比如使用的淘宝的推荐引擎猜你喜欢的商品或亚马逊的为你推荐。[2] 在信息技术发展历史上,推荐系统由于应用了Artificial Intelligence和Information Filtering交叉领域的方法而广受关注,使用这些方法可以给Web站点推荐图书或对新闻进行推荐、过滤。其实这种过滤的技术的,思维源于上世纪的Expert System。但是当今技术的发展应用范围远远超乎想像,推荐技术输出的技术为不同领域提供不同的行业解决方案,比如互联网广告精准投放、电子商务个性化推荐、论坛社区电影推荐、电商书籍推荐、云音乐个性化推荐、新闻推送和Web站点等等。
2016刚刚结束这一年最大的发展就是整个人工智能产业生态圈的发展,不管是从数据规模、算法发展还是计算能力提升,特别是人们开始意识到人工智能的这个时代确实是要到来了,虽然人工智能从提出到现在已经60年了,但是可以说2016这一年是人工智能爆发发展的一年走向主流的元年。在人工智能领域,阿尔法围棋击败李世石、Master横扫围棋届60连胜,百度滴滴推出无人车,还有IBM Watson 、微软小冰、Facebook布局人工智能,都是一些很重要的事件。用一句话来总结就是:人工智能开始走向主流。推荐系统由于应用了AI和Information Filtering交叉领域的方法而广受关注,发展前景是不可限量的。
1.3 研究实现内容
基于 Spark 的实时计算和Hadoop离线批处理推荐系统的设计与实现。首先对离线批处理的推荐系统进行系统分析,包括三个关键模块:一是日志收集模块用户评分进行设计,包含数据的埋点、采集、数据的规范和数据收集的频率及数量等。二是推荐模块对基于 Spark Streaming 和mapreduce的实时计算和离线批处理进行设计,包含实时内存计算和一些关键性的功能的设计。三是基于 hadoop 对推荐引擎模块进行设计,包含模型的训练、模型的测试和推荐歌曲等。最后完成了实时计算的推荐系统的实现,主要实现在线音乐欣赏、用户评分、实时和离线批处理计算和推荐引擎三个主要功能。主要实现以下功能。

原文链接:http://www.jxszl.com/jsj/xxaq/42074.html