基于卷积神经网络的分布式实时推荐系统技术方案

技术编号:23512858 阅读:26 留言:0更新日期:2020-03-18 00:08
本发明专利技术公开了一种基于卷积神经网络的分布式实时推荐系统,包括:用户交互模块,负责实现系统和用户的交互以及业务数据的展示;数据存储模块:负责平台业务逻辑数据的存储和支撑实时推荐系统部分对于在线数据的获取需求;离线推荐模块:使用神经协同过滤推荐算法对用户行为数据进行训练,生成离线推荐结果;在线推荐模块:从数据存储模块获取用户行为数据并使用实时推荐算法得到在线推荐结果。本发明专利技术采用计算框架Spark加速用户特征模型的训练过程,各模块之间的数据流通过Spark RDD的转换来实现,离线推荐模块使用神经协同过滤算法提高离线推荐结果的准确性,结合在线推荐算法能有效提高推荐结果的准确性和实时性。

Distributed real-time recommendation system based on convolutional neural network

【技术实现步骤摘要】
基于卷积神经网络的分布式实时推荐系统
本专利技术涉及机器学习、协同过滤算法和Spark分布式计算框架,具体涉及一种基于卷积神经网络的分布式实时推荐系统。
技术介绍
随着互联网技术的飞速发展,用户在面对互联网上海量信息时,难以迅速有效地找到自己想要的内容,这就形成了网络信息过载。面对海量的数据,传统的搜索引擎以难以满足用户的需求,在这样的背景下,推荐系统技术应运而生。推荐系统与传统搜索引擎最大不同之处在于,搜索引擎是用户去寻找信息,推荐系统的作用是让用户感兴趣的信息呈现在用户的面前。协同过滤推荐(CollaborativeFilteringrecommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。与传统文本过滤相比,协同过滤有下列优点:能够过滤难以进行机器自动基于内容分析的信息,如艺术品、音乐;能够基于一些复杂的,难以表达的概念(信息质量、品位)进行过滤;推荐的新颖性。缺点包括:用户对商品的评价非常稀疏,这样基于用户的评价所得到的用户间的相似性可能不准确(即稀疏性问题);随着用户和商品的增多,系统的性能会越来越低;如果从来没有用户对某一商品加以评价,则这个商品就不可能被推荐(即最初评价问题)。用户评分矩阵的数据稀疏会影响到生成的相似度矩阵的精确度,进而影响利用相似度矩阵进行在线推荐的推荐模块所产生的在线推荐结果的精度;在真实网络环境下,用户兴趣是不断变化的,如何根据变化的用户数据更新推荐结果,即在线处理流式数据是实时推荐系统不可避免的问题。卷积神经网络的概念最早出自19世纪60年代科学家提出的感受野(ReceptiveField37)。当时科学家通过对猫的视觉皮层细胞研究发现,每一个视觉神经元只会处理一小块区域的视觉图像,即感受野。卷积神经网络对数据的处理主要分为三大部分:卷积、池化、全连接。卷积层的作用是提取特征信息,不同的卷积核可以提取出不同的特征信息,又称为特征图。池化层的作用是对卷积层提取的特征信息进行特征压缩,去除冗余的特征信息,降低计算量的同时防止过拟合。全连接层的作用是对特征压缩后的特征信息进行整合,并映射到对应的标签。
技术实现思路
专利技术目的:针对现有技术存在的问题,本专利技术的目的是提供一种基于卷积神经网络的分布式实时推荐系统,用卷积神经网络来改进协同过滤算法,以缓解协同过滤算法的稀疏性问题,提升推荐精度,最后将其应用于框架中的离线推荐模块,以提升系统的离线和在线推荐精度。技术方案:一种基于卷积神经网络的分布式实时推荐系统,使用Spark平台构建基于神经协同过滤算法的分布式实时推荐系统框架,包括用户交互模块、数据存储模块、离线推荐模块和在线推荐模块,各模块之间的数据流通过SparkRDD的转换实现;所述用户交互模块包括用户可视化模块和综合业务服务模块;所述用户可视化模块用于实现系统和用户的交互以及业务数据的展示,采用AngularJS2实现,部署在Apache服务上;所述综合业务服务模块用于实现JavaEE层面整体的业务逻辑,通过Spring进行构建,对接业务需求,部署在Tomcat上;所述数据存储模块包括主数据库模块、缓存数据库模块和日志采集模块;所述主数据库模块用于负责平台业务逻辑数据的存储;所述缓存数据库模块用于支撑实时推荐系统部分对于数据的高速获取需求;所述日志采集模块用于获取用户的在线行为数据,并发送给在线推荐模块进行训练;所述离线推荐模块包括神经矩阵填充模块和离线推荐服务模块;所述神经矩阵填充模块用于对历史用户评分矩阵进行填充;所述离线推荐服务模块采用协同过滤算法,根据用户评分矩阵生成离线推荐表。所述在线推荐模块包括消息缓冲模块和实时推荐更新模块;所述消息缓冲模块用于负责接收处理收到的用户日志信息,获取用户评分数据流;所述实时推荐更新模块用于实时获取消息缓冲模块过滤出来的用户评分数据流,并提交给实时推荐算法,完成对用户新的推荐结果计算,计算完成之后,将新的推荐结果和主数据库中的推荐结果进行合并。进一步的,所述神经矩阵填充模块利用卷积神经网络CNN对图像进行特征提取,生成用户的有效隐式特征表达向量作为用户的视觉模型,并以此为依据,对原始数据评分矩阵中的评分缺失项进行预测填充。进一步的,所述主数据库模块采用MongDB作为主数据库。进一步的,所述缓存数据库模块采用Redis作为缓存数据库。进一步的,所述日志采集模块通过利用Flume对业务平台中用户对于商品的一次评分行为进行采集,实时发送到给消息缓冲模块。进一步的,所述平台业务逻辑数据包括商品相似性矩阵和用户商品推荐矩阵,所述离线推荐模块通过协同过滤算法将用户的历史行为数据生成商品相似性矩阵和用户商品推荐矩阵,并存储在数据存储模块中的主数据库模块中。进一步的,所述消息缓冲模块采用Kafka作为流式数据的缓存组件,接收来自Flume的数据,并将数据推送到实时推荐更新模块。进一步的,所述实时推荐更新模块采用SparkStreaming作为实时推荐系统,通过接收Kafka中缓存的数据,使用实时推荐算法对实时推荐的数据进行处理生成在线推荐更新结果,并将结果合并更新到MongoDB数据库。进一步的,所述实时推荐更新模块的实现方法如下:当用户u对商品p进行了评分,将触发一次对u的推荐结果的更新。由于用户u对商品p评分,用户u与p最相似的商品之间的推荐强度将发生变化,所以选取与商品p最相似的K个商品作为候选商品;每个候选商品按照“推荐优先级”这一权重作为衡量这个商品被推荐给用户u的优先级;这些商品将根据用户u最近的若干评分计算出各自对用户u的推荐优先级。和现有技术相比,本专利技术具有如下显著优点:本专利技术利用Spark生态系统中的各组件进行无缝对接,各模块之间的数据通过SparkRDD进行共享,极大降低了各模块间数据共享开销和系统研发与维护成本。离线推荐理模块中,使用CNN卷积神经网络学习用户的评分偏好,生成用户的视觉模型,对用户评分矩阵进行更加精确的预测填充,从而生成更加精准的相似性矩阵。经过试验测试,基于卷积神经网络的协同过滤算法的离线和在线推荐精准度比基于ALS算法和零比特填充算法的协同过滤算法的推荐准确度更高。附图说明图1是基于卷积神经网络的分布式实时推荐框架的结构框架示意图。图2是神经矩阵填充模块对用户空缺评分项填充过程示意图;图3是神经协同过滤算法(CNN-CF)与基于“零比特填充”和ALS的协同过滤算法的离线推荐准确度对比图,使用MAE作为度量标准;图4是神经协同过滤算法(CNN-CF)与基于“零比特填充”和ALS的协同过滤算法的在线推荐准确度对比图,使用RMSE作为度量标准。具体实施方式下面结合附图和具体实施例对本专利技术的技术方案做进一步说明。如图1所示为基于卷积本文档来自技高网
...

【技术保护点】
1.一种基于卷积神经网络的分布式实时推荐系统,其特征在于:使用Spark平台构建基于神经协同过滤算法的分布式实时推荐系统框架,包括用户交互模块、数据存储模块、离线推荐模块和在线推荐模块,各模块之间的数据流通过Spark RDD的转换实现;/n所述用户交互模块包括用户可视化模块和综合业务服务模块;所述用户可视化模块用于实现系统和用户的交互以及业务数据的展示,采用AngularJS2实现,部署在Apache服务上;所述综合业务服务模块用于实现JavaEE层面整体的业务逻辑,通过Spring进行构建,对接业务需求,部署在Tomcat上;/n所述数据存储模块包括主数据库模块、缓存数据库模块和日志采集模块;所述主数据库模块用于负责平台业务逻辑数据的存储;所述缓存数据库模块用于支撑实时推荐系统部分对于数据的高速获取需求;所述日志采集模块用于获取用户的在线行为数据,并发送给在线推荐模块进行训练;/n所述离线推荐模块包括神经矩阵填充模块和离线推荐服务模块;所述神经矩阵填充模块用于对历史用户评分矩阵进行填充;所述离线推荐服务模块采用协同过滤算法,根据用户评分矩阵生成离线推荐表;/n所述在线推荐模块包括消息缓冲模块和实时推荐更新模块;所述消息缓冲模块用于负责接收处理收到的用户日志信息,获取用户评分数据流;所述实时推荐更新模块用于实时获取消息缓冲模块过滤出来的用户评分数据流,并提交给实时推荐算法,完成对用户新的推荐结果计算,计算完成之后,将新的推荐结果和主数据库中的推荐结果进行合并。/n...

【技术特征摘要】
1.一种基于卷积神经网络的分布式实时推荐系统,其特征在于:使用Spark平台构建基于神经协同过滤算法的分布式实时推荐系统框架,包括用户交互模块、数据存储模块、离线推荐模块和在线推荐模块,各模块之间的数据流通过SparkRDD的转换实现;
所述用户交互模块包括用户可视化模块和综合业务服务模块;所述用户可视化模块用于实现系统和用户的交互以及业务数据的展示,采用AngularJS2实现,部署在Apache服务上;所述综合业务服务模块用于实现JavaEE层面整体的业务逻辑,通过Spring进行构建,对接业务需求,部署在Tomcat上;
所述数据存储模块包括主数据库模块、缓存数据库模块和日志采集模块;所述主数据库模块用于负责平台业务逻辑数据的存储;所述缓存数据库模块用于支撑实时推荐系统部分对于数据的高速获取需求;所述日志采集模块用于获取用户的在线行为数据,并发送给在线推荐模块进行训练;
所述离线推荐模块包括神经矩阵填充模块和离线推荐服务模块;所述神经矩阵填充模块用于对历史用户评分矩阵进行填充;所述离线推荐服务模块采用协同过滤算法,根据用户评分矩阵生成离线推荐表;
所述在线推荐模块包括消息缓冲模块和实时推荐更新模块;所述消息缓冲模块用于负责接收处理收到的用户日志信息,获取用户评分数据流;所述实时推荐更新模块用于实时获取消息缓冲模块过滤出来的用户评分数据流,并提交给实时推荐算法,完成对用户新的推荐结果计算,计算完成之后,将新的推荐结果和主数据库中的推荐结果进行合并。


2.根据权利要求1所述的基于卷积神经网络的分布式实时推荐系统,其特征在于:所述神经矩阵填充模块利用卷积神经网络CNN对图像进行特征提取,生成用户的有效隐式特征表达向量作为用户的视觉模型,并以此为依据,对原始数据评分矩阵中的评分缺失项进行预测填充。


3.根据权利要求1所述的基于卷积神经网络的分布式实时推荐系统...

【专利技术属性】
技术研发人员:顾岩曹晓梅
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏;32

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

1