一种基于Spark的电影推荐系统及方法技术方案

技术编号:23161778 阅读:25 留言:0更新日期:2020-01-21 21:59
本发明专利技术公开了一种基于Spark的电影推荐系统,包括数据采集部分、数据存储部分、离线推荐部分和实时推荐部分,其中:所述数据采集部分:通过Web端实时监控用户数据变化,Flume从Web端运行日志中读取日志更新,获取用户对电影的评分情况,将日志信息实时发送Kafka集群,使用Kafka作为流式数据的缓存组件接受来自Flume的数据采集请求,并将数据推送到实时推荐部分;本发明专利技术通过使用MongoDB、ES、Redis作为数据存储部分,同时作为原始数据和离线、实时数据处理的数据存储,大大提高了实时和离线的计算效果。

A movie recommendation system and method based on spark

【技术实现步骤摘要】
一种基于Spark的电影推荐系统及方法
本专利技术涉及实时推荐系统
,具体涉及一种基于Spark的电影推荐系统及方法。
技术介绍
随着互联网的不断发展,网上各种各样的电影、音乐等推荐层出不穷,而一个好的推荐系统能够实时为用户推出想要的信息。推荐系统是信息过载所采用的措施,面对海量的数据信息,从中快速推荐出符合用户特点的物品,其所针对的是一些“选择恐惧症”、没有明确需求的人;其中信息消费者所面对的是如何从大量信息中找到自己感兴趣的信息,这是是一件很困难的事,而信息生产者所面对的是如何让自己生产的信息脱颖而出、受到大众的喜爱,这也是一件很困难的事情。现有技术中解决这些问题通常采用分类目录和搜索引擎,目前的网站都是这样操作,但是这有弊端:信息量小、不够个性化、必须有明确目标。推荐系统是自动化地通过分析用户的历史行为数据,完成用户的个性化建模,从而主动给用户推荐能够满足他们兴趣和需求的信息的软件系统。推荐引擎需要依赖用户的行为日志,因此一般都做为一个后台应用程序存在于网站中。通过截取网站提供大量用户行为日志,给用户提供不同的个性化本文档来自技高网...

【技术保护点】
1.一种基于Spark的电影推荐系统,其特征在于,包括数据采集部分、数据存储部分、离线推荐部分和实时推荐部分,其中:/n所述数据采集部分:通过Web端实时监控用户数据变化,Flume从Web端运行日志中读取日志更新,获取用户对电影的评分情况,将日志信息实时发送Kafka集群,使用Kafka作为流式数据的缓存组件接受来自Flume的数据采集请求,并将数据推送到实时推荐部分;/n所述数据存储部分:业务数据库采用文档数据库MongoDB作为主数据库,主要负责平台业务逻辑数据的存储;采用ElasticSearch(ES)作为模糊检索服务器,通过利用ES强大的匹配查询能力实现基于内容的推荐服务;采用Re...

【技术特征摘要】
1.一种基于Spark的电影推荐系统,其特征在于,包括数据采集部分、数据存储部分、离线推荐部分和实时推荐部分,其中:
所述数据采集部分:通过Web端实时监控用户数据变化,Flume从Web端运行日志中读取日志更新,获取用户对电影的评分情况,将日志信息实时发送Kafka集群,使用Kafka作为流式数据的缓存组件接受来自Flume的数据采集请求,并将数据推送到实时推荐部分;
所述数据存储部分:业务数据库采用文档数据库MongoDB作为主数据库,主要负责平台业务逻辑数据的存储;采用ElasticSearch(ES)作为模糊检索服务器,通过利用ES强大的匹配查询能力实现基于内容的推荐服务;采用Redis作为缓存数据库,用来支撑实时推荐部分对于数据的高速获取需求,存储按照时间从大到小的顺序存入用户的最近评分队列中;
所述离线推荐部分:通过Azkaban实现对于离线统计服务和离线推荐服务的调度,通过设定运行时间完成对任务的触发执行,定期处理统计的数据;离线统计服务批处理统计采用SparkCore+SparkSQL进行实现,实现对指标类数据的统计任务,并将数据加载到MongoDB和ES中;离线推荐服务采用SparkCore+SparkMLlib进行实现,采用ALS算法进行实现,并将处理的数据加载到MongoDB;
所述实时推荐部分:采用SparkStreaming作为实时推荐部分,通过接收Kafka中缓存的数据,基于模型的实时推荐以实现对实时推荐的数据处理,并将处理好的实时推荐结果合并更新到MongoDB数据库。


2.一种基于Spark的电影推荐方法,其特征在于,包括下述步骤:
(1)当用户打开Web客户端登录时,后台会根据用户是否首次登录为用户提供相应服务;如果用户是首次注册登录,系统会先让用户选择一些自己喜欢的电影类别(电影标签)以便为用户推荐相应类别的电影,解决冷启动问题;若用户是老用户,则会直接进入系统首页位置,系统会根据用户以往信息为用户推荐相应电影;
(2)数据采集部分为Flume+Kafka组合进行实时数据采集;当用户在Web端产生操作数据时,Flume通过读取日志更新,将日志信息推送给Kafka分布式集群进行处理,一方面将数据缓存到MongoDB、Redis,另一方面通过KafkaStream程序对日志进行过滤处理,获取用户评分数据流(UID|MID|SCORE|TIMESTAMP),并发送到...

【专利技术属性】
技术研发人员:刘祥熊晓明王艺航李辉
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1