吴荣 段宏涛
摘要:在大数据挖掘方面,基于Hadoop平台的Spark快数据推荐算法具有一定优势。基于这种认识,本文从平台算法组成和算法实现两个角度对该算法进行了解析,并对算法在图书推荐系统中的应用方法展开了探讨。从系统功能仿真分析结果来看,应用Spark快数据推荐算法进行图书推荐,能够使图书推荐系统推荐准确度得到提高,并且大幅度缩短图书推荐时间。
关键词:Hadoop平台;Spark快数据推荐算法;图书推荐系统
中图分类号:G250.74 文献标识码:A 文章编号:1007-9416(2020)06-0115-03
0 引言
面对海量图书资源,想要从中筛选出适合图书还要依赖信息技术支撑。而目前在图书推荐算法开发方面,采用传统算法难以满足数据实时处理需求。应用基于Hadoop平台的Spark快数据推荐算法,能够实现系统推荐性能优化,因此还应加强算法解析和运用,满足读者图书借阅需求。
1 基于Hadoop平台的Spark快数据推荐算法分析
1.1 平台算法分析
Spark快数据推荐算法实现需要依靠Hadoop基础平台,作为开源组织Apache开发的分布式架构,Hadoop能够完成Yarn搭建以实现平台资源管理,并搭建Mahout框架为机器学习算法实现提供支撑,利用MapReduce模型实现数据信息挖掘,借助Storm完成在线数据实时处理。在Hadoop平台上完成Spark框架的搭建,可以采用基于内存的编程模型实现数据快速挖掘,通过节省中间迭代过程提高程序执行速率。实际在框架建立过程中,需要完成四个数据处理单元设计,具体包含Spark SQL-RDD、MLlib、Sprak Streaming和Graphx,分别为数据执行单元、机器学习、实时处理和图计算单元,均属于RDD,因此能够保证各种应用场景编程一致,体现算法强大数据整合能力[1]。按照RDD数据处理机制,算法能够完成数据结构包装,通过机器学习ALS算法进行数据推荐,利用图计算PageRank算法进行排名,所以能够成为快数据推荐算法。应用该算法,需要先完成框架初始化,然后进行原始数据加载,在将数据转换为数据集后,可以进行机器学习训练,完成需要预测内容的提取。重复进行数据合并与预测,能够实现数据格式映射,将推荐内容排名显示出来。完成新数据接收后,算法可以进行数据集中数据更新,然后重新进行推荐排名。
1.2 算法实现原理
对Spark快数据推荐算法实现原理展开分析可以发现,该算法主要依靠机器学习算法和PageRank算法进行推荐排名。机器学习算法ALS实际就是交替最小二乘法,能够在上下文中通过交替最小二乘求解实现协同推荐,对观察到的全部内容进行打分,结合对用户喜好的推断进行相应内容的推荐[2]。如式(1)所示,为推荐打分算法模型,式中U和M分别为评分专家和推荐内容,U×M为打分矩阵,ui指的是第i个评分专家,mj指的是第j个推荐内容,rij指的是i专家对j内容的评分,T则为矩阵转置,λ为矩阵特征向量。采用Spark算法进行数据集训练,可以得到预测函数进行专业推荐。在数据更新后,可以重新训练,从而实现准确推荐。在算法应用过程中,还应完成初始数据、迭代次数及收敛值的设定,以便使算法能够在指定时间内完成训练。
由于算法统一利用弹性分布式数据集进行数据表示,RDD本身属于共享内存模型,能够对分区集合进行记录,并对确定转换操作进行执行,所以可以降低算法开销。
2 Spark快数据推荐算法在图书推荐系统中的应用
2.1 算法应用思路
设计图书推荐系统,可以结合读者借阅兴趣进行图书推荐。而以往在读者兴趣数据挖掘方面,系统多采用聚类分析等方法,需要在开源平台上实现数据并行处理,如采用Apriori算法,依靠关联规则进行数据挖掘,算法需要经过大量迭代运算,导致系统无法在短时间内迅速完成信息反馈,无法满足读者的图书借阅需求。针对这一问题,采用Spark快数据推荐算法能够利用开源集群计算框架完成读者个性化阅读信息的快速挖掘,从中提取阅读数据偏好,在分析读者借阅行为数据基础上实现图书推荐,因此能够使系统为读者提供个性化服务。
2.2 系统框架分析
实际应用算法可以将图书馆借阅数据当成是训练数据,使系统能够通过数据分析及时向借阅读者推荐感兴趣的图书。为保证系统能够迅速完成大数据挖掘,還要采用Hadoop云平台,利用分布式计算系统进行各种结构类型数据集合,提供分布式存储计算环境,保证系统在数据分析上具有一定优势。在该环境下,系统可以获得开放信息资源,利用平台进行数据上传下载管理,使大数据吞吐量问题得到解决,保证资源交互的流畅性。从系统平台框架上来看,主要包含Map Reduce和HDFS,可以满足分布式计算任务要求,将完整数据流拆分成多个作业流[3]。针对每个作业流,可以利用Job表示,构成相应DAG图,利用图中各边进行两个Job间关系表示。经过处理优化,能够使系统数据库连接次数得到减少,同时降低无用候选项集的生成概率,因此能够使图书推荐正确率得到提高。
2.3 图书推荐流程
在系统图书推荐功能实现上,需要利用Spark算法完成transformation和action操作程序调用,根据上次迭代结果进行迭代求解[4]。在算法并行化伪代码实现上,还要先进行数据输入,数据源路径为input path,得到的数据集为Dataset,可以在系统云平台上进行存储。系统算法操作过程中,还要由Master凭借算子完成事物集获取,并对数据源进行预处理扫描,在HDFS上进行存储,得到相应RDD。在系统初始化期间,还应完成最小支持度阈值和置信度的设置,分别为0.4和0.7。通过output path路径,可以进行频繁集的输出。由Worker利用count,能够对各项集合求取,将RDD分解为多个数据块,在m个worker节点上得到分配处理。根据节点项集Itermsets,可以得到局部K-项集subitemset,完成函数过滤。针对每行数据记录,应当进行分割,进行事物所有项候选项集的计算。在Key相同的情况下,可以将选项集归为同一组。针对同组,还应根据次数和规则完成置信度的计算。通过对无法达到置信度阈值的选项集,可以进行过滤删除,最终返回推荐列表。实际应用Spark算法,能够将数据库中各事物数据对多个子节点进行均衡分发,利用局部查找频繁项集进行全局操作的替代,以免对数据集进行实时排序。因此算法应用能够实现数据挖掘和生成的并行化,达到提高数据挖掘效率的目标。
2.4 系统功能仿真
为确定系统图书推荐功能实现情况,还要采用Matlab软件进行仿真,共完成图书馆2500位用户和15000本图书的数据收集和分析。仿真采用Intel Core i5 2.2GHz处理器,拥有400GB硬盘和6GB内存,软件采用Windows 10操作系统。为加强算法对比,还要采用传统Apriori算法对相同测试数据进行分析。从分析结果来看,在系统推荐书籍数量从1000提高至15000的过程中,采用Spark算法排序准确度能够从0.54提高至0.69,采用传统算法从0.51提高至0.61。由此可见,在系统推荐图书数量不断增加的过程中,算法的准确度都能得到提高。但相较于传统算法,采用Spark算法准确度提高幅度更大。从时间变化上来看,在推荐书籍数量提高过程中,采用Spark算法耗费的时间从35s逐步增加至500s,采用传统算法耗费时间从135s提高至2493s。由此可见,推荐图书数量的增加将导致系统数据处理时间增加,但采用Spark算法时间明显得到了缩短,由此可见算法拥有较强的数据处理能力,能够使系统获得良好图书推荐性能。
3 结论
综上所述,在海量数据分析和挖掘方面,采用基于Hadoop平台的Spark快数据推荐算法能够缩短数据处理时间,在一定程度上实现数据实时分析和有价值信息的提取。在图书推荐系统中应用该算法,能够在提高图书推荐准确度的同时,大幅度缩短图书推荐时间,因此能够使系统推荐功能得到较好实现。
参考文献
[1] 陈虹君,吴雪琴.基于Hadoop平台的Spark快数据推荐算法分析与应用[J].现代电子技术,2016(10):18-20.
[2] 高琪娟,刘锴,陈佳.面向Spark的图书借阅数据关联模型的研究[J].安徽农业大学学报,2018(4):768-771.
[3] 曹耀辉.基于Spark平台的电商推荐系统的设计分析[J].自动化与仪器仪表,2017(7):100-103.
[4] 贾旖旎,周新民,曹芳.基于HDFS+Spark的时空大数据存储与处理——以智慧无锡时空大数据为例[J].软件,2019,40(11):19-23.