APP下载

基于Hadoop和MapReduce的商品推荐

2019-08-06陶冶

计算机时代 2019年7期
关键词:大数据

陶冶

摘  要: 电子商务网站、社交网站以及医疗、教育、公共平台等各种领域的应用等已深入人们的日常生活,海量信息带来便捷的同时也产生了无用信息的干扰,过滤信息进行智能推荐已成为一种需求。采用协同过滤算法对产品的用户评价数据进行分析,能够跨领域运作分析,具有很好的通用性。依据综合因素对算法进行改进后,利用MapReduce和Storm对提取的数据进行处理,得到数据过滤后的商品推荐列表,并通过实验验证了算法预测的准确度。

关键词: 大数据; 协同过滤算法; Hadoop; MapReduce

中图分类号:TP31          文献标志码:A     文章编号:1006-8228(2019)07-29-04

Abstract: E-commerce websites, social networking websites and applications in various fields such as medical, education, and public platforms have penetrated into people's daily life. Massive information brings convenience, but also produces interference of useless information. Filtering information for intelligent recommendation has become a demand. Collaborative filtering algorithm is used to analyze the user evaluation data of product, which can be used in cross-domain operation analysis and has good versatility. After improving the algorithm with comprehensive factors, the extracted data are processed by Mapreduce and Storm, and the recommended commodity list filtered by data is obtained. The accuracy of the prediction is verified by experiments.

Key words: big data; collaborative filtering algorithm; Hadoop; MapReduce

0 引言

对于大数据的并行处理分析,我们常利用各种推荐方法的优点和系统的组织结构,目前,并行计算的框架有很多种。谷歌公司的云计算技术和MapReduce的并行计算框架有较好的发展前景,软件借助Hadoop开源云计算平台开发实现。系统在结合推荐技术和云计算技术基础上,实现对实时采集并且进行整理过的数據通过推荐算法,进行分析,通过MapReduce的多次作业后生成一个推荐列表。

1 技术及主要内容

1.1 协同过滤算法

借助协同过滤算法对海量用户的历史交易数据进行分析,比如消费者对物品的评价信息,点击信息和购买信息等等,然后通过协同过滤方法对这些数据进行处理,最后生成比较准确的推荐列表。协同过滤方法非常受到一些大型购物网站的热爱。协同过滤方法分为基于物品和基于消费者两种方法[1]。前者的核心思想是通过消费者的行为历史数据的分析,求出物品之间的相似度,然后推荐相似的物品给消费者。后者的核心思想是,计算出相似的消费者,然后给目标消费者推荐相似的消费者购买过的物品。

1.2 主要内容

先介绍大数据处理方法框架和协同过滤方法,然后在Hadoop大数据处理平台上对以物品为中心的协同过滤算法进行实验,将消费者的历史数据,例如浏览,点击,收藏,购买等等这样的数据输入,最后生成推荐列表。

2 协同过滤推荐算法

2.1 推荐技术

2.1.1 基于物品内容属性的推荐

基于物品内容属性的推荐(CBF),是根据消费者的历史行为数据,对其进行矩阵的建模分析,经过多次的矩阵的操作,为消费者推荐与物品的属性比较相似的的物品,其核心在于对物品集合中所有的物品的特征进行提取,建模,找出物品之间的相关属性[2]。基于物品内容属性的推荐图如图1所示。

消费者B购买或浏览了衣服1,然后基于物品内容属性的推荐系统(CBF)就为其推送与衣服1属性相同或相似的衣服2,不推送与衣服1内容属性不同或者差异比较大的衣服3。通过分析消费者历史数据发现其消费爱好,这不依赖消费者之间任何关系的关系,它完全是根据物品之间的相似度或者说是物品的属类是否相同。

2.1.2 基于规则的推荐

基于规则的推荐方法,其实就是根据消费者的消费历史行为数据找出消费物品之间的相关性,总结出相关的规则,基于规则的推荐图如图2所示。

消费者A购买了三星手机,就可以为购买者推荐与该手机所相配的耳机或手机壳,这样的推荐是根据用户的实际需求,具有合理的推荐意义,能帮助消费者快速找到所需要的物品,这种推荐简单有效。分析此例,这种推荐方法是没有依赖消费者之间的关系的,只是根据物品之间的关联关系进行推荐的。所以这种关联关系是此算法的核心和关键。

2.1.3 协同过滤推荐

协同过滤算法从两个角度分析数据:一个是用户,另一个是物品。

下面对协同过滤算法做介绍:

⑴ 基于用户的协同过滤算法(UserCF):通过分析消费者对物品的评分来研究消费者的相似性,对相似的消费者做相同的推荐[3]。简单的说,如果消费者A和消费者B有着比较高的相似度,当消费者A对物品S有着比较大的兴趣爱好时,就可以对消费者B推荐物品S。基于用户的协同过滤示例图如图3所示。从图3可以看出,消费者C和消费者A有着比较高的相似度,所以,对消费者A可以推荐一下物品D。

⑵ 基于物品的协同过滤算法(ItemCF):基于物品的协同过滤算法,对不同的物品的评分来自于对历史数据进行大数据挖掘,从而根据物品之间的相似度推荐消费者喜欢的物品。基于物品的协同过滤示例图如图4所示。

2.1.4 混合推荐

协同过滤推荐、知识推荐、内容推荐、规则推荐,这几种推荐方法都有各自的优缺点,所以提出混合的推荐方法。混合推荐方法,就是组合这几种算法来消除各自的缺点,所以混合推荐的确有着比较高的准确性。

3 大数据分析的相关技术框架

3.1 离线计算Hadoop

Hadoop是Apache下面的一套开源的开发平台。Hadoop提供的主要功能有就是利用集群服务器,根据用户的业务逻辑,读数据进行分布式处理。Hadoop的核心组件有:MAPREDUCE(分布式运算编程框架),HDFS(分布式文件系统),YURN(运算资源调度系统)[4]。

3.1.1 HDFS工作机制的简单介绍

HDFS集群主要分为两大角色第一是NameNode,第二是DataNode。NameNode是负责全部管控元数据,DataNode 是负责全部管理文件数据块,每个文件被分成固定大小的块分布存储在多台datanode上,Datanode会按照一定的时间间隔向Namenode汇报它所保存的文件block的信息,内部的HDFS工作原理是客户端透明的,客户端通过向namenode申请来进行HDFS访问的。

3.1.2 分布式计算框架(MAPREDUCE)

Mapreduce采用分布式运算框架,被Hadoop数据分析的应用当做核心架构[5]。Mapreduce可以整合业务逻辑代码和自带默认的组件为分布式运算程序,并发的运行在一个Hadoop集群上。

3.1.3 apreduce框架结构及核心运行机制

apreduce程序有三类分布式实例进程:①MRAppMaster:完成过程调用和状态转换;②mapTask:负责map阶段的整个数据处理流程,也就是切片的过程[6];③ReduceTask:负责reduce阶段整个数据处理流程。

3.2 流式计算Storm

相对于离线计算,流式计算就是数据的产生、传输、计算以及展示都是实时的[7]。Storm是用来实时的处理数据,提供简单容易理解的接口,便于开发。

3.2.1 Storm核心组件

⑴ Nimbus:是负责资源分配和任务调度。

⑵ Supervisor:执行Nimbus的任务,控制和管理自己的Worker进程。

⑶ Worker:分为两种任务Spout和Bolt,是处理组件逻辑的运行进程。

⑷ Task:Worker中每一个Spout/Bolt线程称为一个Task。一个executor物理线程被多个Task共享[8]。

3.2.2 流式计算一般架构

Storm流式计算的顺序框架图如图5所示。

⑴ 其中flume用来获取数据。

⑵ Kafka用来临时保存数据。

⑶ Strom用来计算数据。

⑷ Redis是个内存数据库,用来保存数据。

4 实验以及实验结果的分析

4.1 实验简介

4.2 实验设计

实验输入的数据格式如图6所示。

4.3 实验结果以及总结

实验结果数据如图7所示,通过实验验证了基于Hadoop平台的优化协同过滤推荐算法,数据经过六次mapreduce并行化作业后的正确性和准确性,要得到最好的推荐效果,准确率和召回率各为80.6%,16.2%。该实验系统推荐商品的满意度为80.6%,网络商品推荐系统提高了用户的工作效率,能有效满足用户在网购系统中的需求,具有良好的可扩展性。

5 结束语

在数据推荐算法的前提下,通过案例分析了基于属性、规则、用户、物品、混合等推荐算法的原理特点,搭建了基于虚拟机、Linux下Hadoop环境、Eclipse开发环境的实验平台,使用Storm流式计算,将消费者的历史数据,例如浏览,点击,收藏,购买等等这样的数据输入,利用Mapreduce对类似于(item_id,user_id,action,vtime)的互联网上用户行为数据进行运算处理,最得到数据过滤后的商品推荐列表。使用该方法得到的推荐具有较高的准确性和社会效益,值得进一步研究和推广。

参考文献(References):

[1] (美)Benoy Antony等著.Hadoop大数据解决方案 [M].清华大学出版社,2017.

[2] 丁维龙等.Storm大数据流式计算及应用实践[M].电子工业出版社,2016.

[3] 李嵩,李书琴,刘斌.改进的协同过滤算法及其并行化实现[J].计算机工程与设计,2018.12:3853-3859

[4] 曹超.基于用户评论分析的推荐系统设计与实现[D].北京邮电大学硕士学位论文,2017.

[5] 胡波.B公司基于協同过滤算法的零售商品推荐系统研究[D].北京交通大学硕士学位论文,2018.

[6] 邓园园,吴美香,潘家辉.基于物品的改进协同过滤算法及应用[J].计算机系统应用,2019.1:182-187

[7] 陈军,谢卫红,陈扬森.国内外大数据推荐算法领域前沿动态研究[J].中国科技论坛,2018.1:173-181

[8] 孙竹.基于商品关系改进的协同过滤推荐算法[D].燕山大学硕士论文,2017.

猜你喜欢

大数据
基于大数据背景下的智慧城市建设研究