当前位置:首页 » 机器学习精品文章 » 正文

基于Spark 的电影推荐系统

3068 人参与  2019年01月29日 09:58  分类 : 机器学习精品文章  评论

基于大数据的电影推荐系统主要分为两部分:基于历史数据的离线处理和基于实时流的实时处理。离线处理是基于历史数据,实时处理是结合历史数据和实时采集的数据,运用协同过滤算法训练推荐模型,预测各个用户未看电影的评分,为用户推荐评分最高的前10部。系统流程图如图所示:

image.png 

图1 基于大数据的电影推荐系统流程图

首先在网上下载推荐引擎数据集MovieLens,保存在Hbase中,在Hbase数据库中包含了用户表(6040个用户),电影表(3853部电影)以及评分表(用户对电影的百万条数据)。 推荐引擎会读取Hbase中的评分数据 ,并使用基于模型的协同过滤算法-ALS对其进行训练,得到初始的模型,使用这个模型对Hbase中所有用户进行图书推荐(取 top10),并将推荐结果保存在Hbase中,以上阶段为系统初始化阶段。

实时流数据将通过一个程序向kafka推送数据,模拟用户当前在网站上的实时评分行为,在最后使用用户进行观察测试时,程序将会只模拟这个用户的评分行为以便观察推荐系统的实时性。

在系统初始化完成之后,开启实时推荐引擎 ,Spark Streaming对接kafka不断生成的用户行为数据,并和Hbase中的原始数据混合,训练出新的模型,产生推荐结果保存 ,不断地进行流数据的读取、训练和保存推荐结果,直至系统关闭或者无流数据产生 。

将上面的流程代码打包成一个.jar包,在集群平台运行和检测运行结果。首先进入集群平台的Task Scheduler,在任务调度模块执行.jar包, .jar包主要分两部分,一部分是向kafka推送数据,另一部分是结合数据训练推荐模型,产生推荐结果。通过流程定义,上传.jar包,指明要运行的类名,分别运行.jar包的两个程序。

然后进入查询分析器模块,建立Hbase中用户表的hive外部表,通过Hql语句,执行mapreduce任务查询hive外部表来查看hbase中的数据,验证实时推荐结果。

源码下载链接请扫描网站二维码进群免费获取。

image.png

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1215

百面机器学习  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!