买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于Spark的电影推荐系统及方法_广东工业大学_201910798202.8 

申请/专利权人:广东工业大学

申请日:2019-08-27

公开(公告)日:2023-04-28

公开(公告)号:CN110717093B

主分类号:G06F16/9535

分类号:G06F16/9535;H04N21/25

优先权:

专利状态码:有效-授权

法律状态:2023.04.28#授权;2020.02.21#实质审查的生效;2020.01.21#公开

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

主权项:1.一种基于Spark的电影推荐系统,其特征在于,包括数据采集部分、数据存储部分、离线推荐部分和实时推荐部分,其中:所述数据采集部分:通过Web端实时监控用户数据变化,Flume从Web端运行日志中读取日志更新,获取用户对电影的评分情况,将日志信息实时发送Kafka集群,使用Kafka作为流式数据的缓存组件接受来自Flume的数据采集请求,并将数据推送到实时推荐部分;所述数据存储部分:业务数据库采用文档数据库MongoDB作为主数据库,主要负责平台业务逻辑数据的存储;采用ElasticSearchES作为模糊检索服务器,通过利用ES强大的匹配查询能力实现基于内容的推荐服务;采用Redis作为缓存数据库,用来支撑实时推荐部分对于数据的高速获取需求,存储按照时间从大到小的顺序存入用户的最近评分队列中;所述离线推荐部分:通过Azkaban实现对于离线统计服务和离线推荐服务的调度,通过设定运行时间完成对任务的触发执行,定期处理统计的数据;离线统计服务批处理统计采用SparkCore+SparkSQL进行实现,实现对指标类数据的统计任务,并将数据加载到MongoDB和ES中;离线推荐服务采用SparkCore+SparkMLlib进行实现,采用ALS算法进行实现,并将处理的数据加载到MongoDB;所述实时推荐部分:采用SparkStreaming作为实时推荐部分,通过接收Kafka中缓存的数据,基于模型的实时推荐以实现对实时推荐的数据处理,并将处理好的实时推荐结果合并更新到MongoDB数据库;所述实时推荐部分的具体算法为:首先,获取用户u按时间顺序最近的K个评分,记为RK;获取电影p的最相似的K个电影集合,记为S;然后,对于每个电影q∈S,计算其推荐优先级Euq,计算公式如下: 其中:Rr表示用户u对电影r的评分;simq,r表示电影q与电影r的相似度,设定最小相似度为0.6,当电影q和电影r相似度低于0.6的阈值,则视为两者不相关并忽略;sim_sum表示q与RK中电影相似度大于最小阈值的个数;incount表示RK中与电影q相似的、且本身评分大于等于3的电影个数;recount表示RK中与电影q相似的、且本身评分小于3的电影个数;在计算完每个候选电影q的Euq后,将生成一组电影q的ID,q的推荐优先级的列表updatedList;而在本次为用户u实时推荐之前的上一次实时推荐结果Rec也是一组电影m,m的推荐优先级的列表,其大小也为K: 接下来,将updatedList与本次为u实时推荐之前的上一次实时推荐结果Rec进行基于合并、替换形成新的推荐结果NewRec:NewRec=topKi∈Rec∪updatedList,cmp=Eui其中,i表示updatedList与Rec的电影集合中的每个电影,topK是一个函数,表示从Rec∪updatedList中选择出最大的K个电影,cmp=Eui表示topK函数将推荐优先级Eui值最大的K个电影选出来;最终,NewRec即为经过用户u对电影p评分后触发的实时推荐得到的最新推荐结果。

全文数据:

权利要求:

百度查询: 广东工业大学 一种基于Spark的电影推荐系统及方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。