一种基于Spark的推荐系统技术方案

技术编号:24091810 阅读:57 留言:0更新日期:2020-05-09 08:25
本发明专利技术公开一种基于Spark的推荐系统,通过分析用户的基本数据、行为数据,智能的向用户展示他们可能需要的东西,通过融入Spark编程模型,充分使用集群机器内存,基于内存高效迭代计算,大幅减少离线、在线计算时间。实现了一种混合推荐模型,该模型可统一多种推荐引擎的结果,根据用户的选择动态调整各个推荐引擎的权重,从而使得推荐结果更加个性化。选用HDFS及Parquet方式实现数据仓库的高性能,基于SparkSQL对数据进行查询,能够满足海量数据。

A recommendation system based on spark

【技术实现步骤摘要】
一种基于Spark的推荐系统
本专利技术涉及一种推荐系统,具体涉及一种基于Spark的推荐系统。
技术介绍
随着互联网日新月异的发展,如今步入了数据大爆炸时代,动辄就有PB级数据量的产生,在海量的数据中人们往往对数据的选择无所适从,在这样的前提下我们急需一种能够智能、主动筛选数据的系统,帮助用户得到他们想要的东西,挖掘到他们可能感兴趣的需求数据。目前的系统大多基于传统的MapReduce技术实现,这种实现方式在Mapper输出和Reducer输入之间的数据混洗过程需要频繁的读写磁盘,这个过程非常耗时,直接制约了系统的整体性能;而且该种编程模型只提供map和reduce两种算子,编写引擎效率较低。海量数据存储基于普通文本文件,存储空间大、扫描和分析效率低。常用的推荐形式包括基于人口统计学推荐、基于SVD推荐、基于内容推荐,很多推荐系统只采取了其中的单一算法,推荐形式单一,无法通用。
技术实现思路
针对上述问题,本专利技术采用的技术方案是,一种基于Spark的推荐系统,包括以下步骤:步骤1:收集用户数据;所述收集数据可以是用户的键盘输入,也可以是用户产生的历史性数据、日志等,还有一类数据是用户的反馈信息,该类信息主要用于分析对引擎的改进;步骤2:对收集到的数据进行加工预处理;系统尽可能的对收集到的无效数据加以过滤,以降低后期离线、在线处理的时间消耗;步骤3:对加工数据进行持久化;所述持久化数据可能是刚收集的预处理后的数据,也可能是离线处理后的结果数据;<br>步骤4:评估模块分析数据,确定参与计算的引擎及其权重;步骤5:推荐引擎计算得出数据结果;所述数据结果有两种走向,一是直接返回给用户展示,二是作为中间结果存入数据仓库。所述推荐引擎来源于引擎维护模块,可以便捷的加入、移除。与现有技术相比,本专利技术的有益效果在于:本专利技术提供了一种基于Spark的推荐系统,通过对计算模型的改进突破了MapReduce基于磁盘读写的性能瓶颈,系统整体性能得到了极大提高。结合了多种引擎算法,灵活匹配相应的策略使推荐结果更加精准、多样化;Parquet基于列式存储,大大减小扫描的数据量,结合Snappy压缩,既节省了存储空间又提升了传输效率。具体实施方式本专利技术一种基于Spark的推荐系统,其特征主要体现在高性能数据仓库的实现以及推荐引擎的实现。数据仓库实现总的来说包含了如下特征:本专利技术从逻辑上,将数据分层了两个层次,分别为原始数据层、离线数据层。顾名思义原始数据层是直接面向用户或第三方接收得到的数据,进一步加工的产物,离线数据层是推荐引擎对数据进行分析提取得到的中间产物。分层治理削减了数据扫描的范围,提高了整体性能。数据仓库搭建于HDFS之上,结合Parquet文件类型,并加以压缩,采用SparkSQL作为查询。基于上述因素系统的数据仓库极具高效性,远超当前主流的Hive。尤为重要的是它们能够与Spark编程模型无缝集成,完全兼容推荐引擎在线计算。由于使用了Parquet文件作为存储,它与大数据处理框架无关,具有通用性,因此对系统的扩展也是很有意义的。对于推荐引擎,需要按类别逐个描述其对于特征。基于内容推荐,以获取物体间的相似度为目标,将获得的相似度数据形成表,存于数据仓库,如果用于评分预测,那么系统会根据相似度表与原始数据进行比较,获得原始表中与相似度表中相近的物体列表,然后根据该列表的打分情况,根据一定的策略或规则,判断出用户对目标物体的打分,如果用于Top-N推荐,则系统会首先取出该用户近期关注的物体信息列表,然后再在相似度表中查找与目标物体相似的物体,并最终输出。根据用户信息,首先对用户间的距离进行离线计算,以获得相异度表。如果用于Top-N推荐,系统会获得最小距离用户组,然后再与原始数据进行比较,根据原始数据中相似用户喜欢的物体,得出这些物体也可能是目标用户所喜欢的。如果用于评分预测,类似的情况,系统会计算出距离最近的用户列表,然后根据与原始的比较得出相似用户对物体的打分情况,进而可用推测出目标用户对该物体的打分情况。将评分矩阵进行SVD分解,选取适当的奇异值进行低阶近似。计算时将相关的评分向量映射到新的空间,最后在新的空间中与降维后的矩阵进行相似度计算。以上简述了每种引擎的特征,系统更深层次的特征是将这三者按照一定的规则、场景动态的选择其中的一个或多个引擎参与相似度计算,利用权重加以平衡不同因素对结果产生的影响。本文档来自技高网...

【技术保护点】
1.一种基于Spark的推荐系统,特征在于,所述系统包括以下步骤:/n步骤1:收集用户数据;所述收集数据可以是用户的键盘输入,也可以是用户产生的历史性数据、日志等,还有一类数据是用户的反馈信息,该类信息主要用于分析对引擎的改进;/n步骤2:对收集到的数据进行加工预处理;系统尽可能的对收集到的无效数据加以过滤,以降低后期离线、在线处理的时间消耗;/n步骤3:对加工数据进行持久化;所述持久化数据可能是刚收集的预处理后的数据,也可能是离线处理后的结果数据;/n步骤4:评估模块分析数据,确定参与计算的引擎及其权重;/n步骤5:推荐引擎计算得出数据结果;所述数据结果有两种走向,一是直接返回给用户展示,二是作为中间结果存入数据仓库;所述推荐引擎来源于引擎维护模块,可以便捷的加入、移除。/n

【技术特征摘要】
1.一种基于Spark的推荐系统,特征在于,所述系统包括以下步骤:
步骤1:收集用户数据;所述收集数据可以是用户的键盘输入,也可以是用户产生的历史性数据、日志等,还有一类数据是用户的反馈信息,该类信息主要用于分析对引擎的改进;
步骤2:对收集到的数据进行加工预处理;系统尽可能的对收集到的无效数据加以过滤,以降低后期离线、在线处理的时间消...

【专利技术属性】
技术研发人员:傅涛胡燕郑秩王力王路路徐杰
申请(专利权)人:博智安全科技股份有限公司
类型:发明
国别省市:江苏;32

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

1