基于Hadoop和Mahout的ASUCF算法并行化研究

来源 :软件工程 | 被引量 : 0次 | 上传用户:hj0411
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:针对高效的协同过滤推荐技术处理大数据时的计算效率问题,提出了并行计算的ASUCF算法。该算法采用Hadoop平台的MapReduce并行编程模型,改善大数据环境下高效的CF算法在单机运行时的计算性能问题。最后在实验部分,结合Mahout,实现ASUCF算法的并行化,设计不同数据集上的加速比实验,验证算法并行化后在大数据环境中具有较好的计算性能。
  关键词:协同过滤;计算效率;加速比;Hadoop;Mahout
  中图分类号:TP391 文献标识码:A
  文章编号:2096-1472(2016)-06-17-04
  Abstract:Aiming to solve the CF’s (Collaborative Filtering) computing efficiency problem in big data processing,the paper proposes parallel ASUCF(Average Similarity of User-Item Collaborative Filtering) algorithm.It applies the MapReduce parallel-programming model in Hadoop platform,which improves the CF’s computational efficiency in big data processing on a single PC.Combined with Mahout,the parallelization of ASUCF is achieved.The paper designs speedup experiments on different data sets.The experiment results prove that the parallel algorithm brings out better computing performance in big data processing.
  Keywords:collaborative filtering;computing efficiency;speedup;Hadoop;Mahout
  1 引言(Introduction)
  互联网时代,网络资源纷杂,信息过载,个性化推荐成为缓解用户在网络中的信息迷茫问题的重要途径[1]。在多项目、多领域的推荐中,因不依赖用户或项目内容,具有较好通用性的协同过滤算法[2]成为较为成功的推荐技术,其改进因而也受到广泛关注。然而,改进的算法通常是以牺牲计算效率换取计算准确度的提升。随着大数据时代的来临,解决计算效率的问题也迫在眉睫。由于单机模式的计算能力有限,而分布式计算具有多资源、可扩展、高效计算等优势,所以用分布式计算实现高效的CF算法,既能提高推荐准确度,又能保证计算效率。目前主要使用云计算平台Hadoop实现算法的并行化,如文献[3—8]等是通过将算法移植至Hadoop,以得到高计算性能的算法。
  本文将基于平均相似度的协同过滤推荐算法(Average Similarity of User-Item Collaborative Filtering,简称ASUCF)与开源分布式平台Hadoop结合,改写Mahout中Item-based CF分布式实现,研究ASUCF算法的并行化,探索其MapReduce过程设计,并通过在不同规模的数据集上实验,比较单节点计算与多节点计算在计算效率上的差别,证明并行化后的ASUCF算法在计算效率上的优势,更能适应大数据环境。
  2 Hadoop平台及ASUCF算法并行化分析(Hadoop and analysis of ASUCF in parallel)
  2.1 ASUCF算法概述
  文献[9]详细描述了ASUCF算法,并通过实验证明推荐准确度的提高,在此对其简单描述,为后续的并行化分析作铺垫。ASUCF为避免矩阵预处理带来的偏差,改进的算法回归到最原始的评分矩阵,从用户行为分析、项目行为分析,引入平均相似度,将计算预测评分分解成用户角度的预测和项目角度的预测两部分,综合两部分后得到最终的用户对项目的预测评分。
  用户的项目平均相似度和项目的用户平均相似度计算分别如式(1)和式(2),和分别表示用户已评分项目的集合,对项目已评分的用户集合:
  综合用户、项目两方面,引入UAS、IAS,则目标用户对目标项目的预测评分如式(3)所示。
  2.2 Hadoop简介
  Hadoop起源于Apache公司的Lucene和Nutch项目[10],是谷歌云计算理论的Java语言实现。2006年,实现分布式文件系统和MapReduce的部分从Lucene和Nutch中分离出来,成为新项目Hadoop[11]。对应GFS实现的HDFS、并行计算模型MapReduce是Hadoop中最核心的部分。HDFS是Hadoop中的文件管理系统,采用主从结构,一个集群中包括一个主控服务器,即目录节点NameNode,用于索引DataNode、负责系统内文件命名空间操作、数据块和DataNode之间的映射关系等;以及多个块服务器,即数据节点DataNode,用于数据物理存储,文件通常被划分成若干个数据块,储存在不同的DataNode中[12]。MapReduce是一种可靠、高效的并行编程模型和计算框架,借助于HDFS等分布式技术,能够处理各类PB数量级的大数据[13],其构成部分主要有一个主控服务JobTracker,若干个从服务TaskTracker,分布式文件系统HDFS,以及客户端Client[14],它们的主要功能分别是:
  (1)JobTracker:将作业划分成若干个任务,分发给多个TaskTracker,管理任务的执行以及输出反馈。   (2)TaskTracker:完成若干个Map、Reduce任务,并向JobTracker实时反馈执行情况。
  (3)HDFS:数据、相关信息的保存及管理。
  (4)客户端Client:Map和Reduce程序的编写,作业的提交。
  MapReduce通过分解任务、合并结果的分而治之思想实现可分解、可并行处理大数据集上的并行计算。MapReduce的任务执行过程由Map和Reduce两阶段构成,每次Map和Reduce的输入和输出均是键值对的形式,通过对相同key键值对的若干次归类整理,调用用户自定义的Map和Reduce函数,得到最终输出结果。
  2.3 ASUCF算法分析
  要实现算法的并行性,首先需要分析出算法中的可并行计算部分,以及并行计算部分与串行计算之间的关系。为方便表述,设:
  通过对改进算法ASUCF的分析,将每次推荐的计算分解为:UAS、IAS、、,其中又可分解为两两用户的相似度计算和目标预测评分的计算;又可分解为目标区域内两两项目的相似度计算和目标预测评分的计算。UAS、IAS之间不存在计算依赖关系,两者之间是可并行的;相似度的计算和目标预测评分计算之间存在先后顺序,即目标预测评分须依赖于相似度的计算,两者之间必须是串行关系;UAS、IAS与、存在顺序性,两两之间分别是串行计算;而和之间无依赖关系,可并行计算;预测评分计算之间也是可并行的。上述计算过程关系如图1所示。需要说明的是:UAS和IAS虽然实质上也是相似度的计算,但是由于计算空间不同,所以不与和中的相似度计算部分混合,而是作为单独的过程进行计算。
  3 ASUCF算法并行化计算的过程及实现(Process and implementation of parallel ASUCF)
  3.1 UAS和IAS的计算
  UAS的计算实际是通过对当前用户已评分项目相似度的综合衡量,得到当前用户的兴趣跨度。变换评分矩阵输入成键值对形式,过程如图2所示,共包含三个MapReduce过程,每个过程都可并行运行。后续章节中的offset代表每条记录在评分表中的偏移量。
  输入:评分矩阵,当前用户id。
  输出:当前用户的UAS值。
  IAS的计算实际是通过对已给出当前项目评分的用户相似度的综合衡量,得到当前项目的适用用户分布度。变换评分矩阵输入成键值对形式,过程如图3所示,共包含三个MapReduce过程,每个过程都可并行运行。
  输入:评分矩阵,当前项目id。
  输出:当前项目的IAS值。
  用户相似度的并行计算过程参照文献[15],同理得出项目相似度的并行计算过程,在此不再赘述。
  3.2 预测评分及推荐的计算
  综合3.1内容及用户相似度、项目相似度并行化过程设计,分析如下:
  步骤一:将输入经过MapReduce输出为<用户,(项目,评分)>,生成用户向量矩阵user-vector matrix;将用户向量矩阵转置为<项目,(用户,评分)>,生成项目向量矩阵item-vector matrix。
  步骤二:用<(用户,用户),相似度>构成用户相似度矩阵user-similarity matrix;用<(项目,项目),相似度>构成项目相似度矩阵item-similarity matrix。
  步骤一和步骤二在文献[15]中已具体表述。
  步骤三:矩阵相乘,公式计算。
  (1)项目向量矩阵×用户相似度矩阵,根据式(4)计算,如图4所示。
  (2)用户向量矩阵×项目相似度矩阵,根据式(5)计算,如图5所示。
  关键4:根据(用户,项目)进行聚合,、推荐结果计算如图6所示。
  当目标用户需要推荐时,在Map阶段输入用户对项目的预测评分,在Reduce阶段根据预测分值排序,返回TOP-N推荐集。至此,推荐完成。
  在所有阶段的MapReduce过程设计没有改变算法的数学计算关系,所以对算法的计算结果没有影响,在Hadoop平台上运行与非并行模式下运行的推荐结果是一样的,但是,并行模式Hadoop下的算法,有高效的大数据集计算能力,可扩展性较高。
  3.3 基于Mahout的ASUCF并行化实现
  Mahout中的RecommenderJob实现了item-based CF全推荐过程的MapReduce编程,本文在此基础,改写RecommenderJob,实现ASUCF的并行化。结合上一章的分析,算法主要步骤如下[16]:
  (1)改写PreparePreferenceMatrixJob,将USER_VECTORS重命名为USER_RATING_MATRIX,原Item向量RATING_MATRIX重命名为Item_RATING_MATRIX。
  (2)以RowSimilarityJob的工作过程为模板,增加UserSimilarityJob,将输入改成USER_RATING_MATRIX,计算出用户的相似度。
  (3)以AggregateAndRecommend的工作过程为模板,增加asucfaggregateAndRecommend,改写AggregateAndRecommend中预测评分计算:
  PU(i,c)=sum(all n from N:(usersimilarity(i,n)-uas(i)*(Item_RATING_MATRIX(i,n)-Average(i))/sum(all n from N:abs(usersimilarity(i,n)-uas(i))
其他文献
波浪理论问世80年来,一直没有进一步的完善和发展。伴随着诸多争议,波浪理论陷入了“前有古人,后无来者”的尴尬境地。时至今日,投资界对波浪理论的正确性仍然存有疑虑,有的人甚至称其为“天才理论”。在多年的市场实践中,笔者对波浪理论本身还是持肯定态度的,艾略特对波浪理论所做的基本定义和大部分论述还是适用于资本市场的,这一点笔者深信不疑。然而,时移世易,我们不能再用一成不变的眼光看待一套理论,更应该以运动
摘 要:针对计算机教学现状和存在的问题,以C语言程序设计教学为例,提出一种以项目为支撑驱动计算机程序设计教学方法,并采用理实一体小班化教学模式,引入机考考核机制,对学员进行较为全面地、客观地评价其学习效果,从而提升教学质量。  关键词:项目;计算机教学;理实一体化  中图分类号:TP391 文献标识码:A  Abstract:To address the existing problems of
之后,我分别看了看天山股份(000877)、中泰化学(002092)和宁夏建材(600449)的走势图,发现这些品种基本属于近期的强势股,除此以外,还有一个较为特殊的现象,整个水泥板块中就
A股走势与外围股指之间历来有一种“逆小顺大”的特点。所谓逆小,就是在日线级别上往往会出现外围大涨,A股不动;而外围大跌,A股抗跌的特点。所谓顺大,就是在中线级别上呈现出全球同此凉热,A股很难走出所谓的独立行情。毕竟全球经济的一体化已使中国的经济独善其身的难度大大增加了。本周A股的走势再次验证了这一规律。   回顾A股市场年初以来的反弹走势,最大的推手无疑是有关部门的一系列政策组合拳。证监会推行分
本文在高温高压条件下,开展了辉长岩矿物反应与部分熔融实验,利用偏光显微镜与扫描电镜对实验样品微观结构观察,研究实验中的新生矿物与熔体的分布;通过电子探针分析熔体成分特征
基于对贺兰山及周边地区下古生界详细的野外地质调查,通过碎屑锆石年龄谱的物源分析、地层接触关系追踪、岩性岩相突变特征分析、残留地层分布、古生物组合及亲缘性分析,讨论
【正】2013年证券市场即将收官,今年的行情可能是历史上分化最严重的一年,分化不仅体现在指数之间,也体现在行业之间,一边是天堂一边是地狱,区别之大历史少见。我们用统计数
逢大赛A股没行情的魔咒再次应验,将在本周六开幕的“欧洲杯”成了A股的夺命符。周一,跳空大阴线棒杀多头,开启了“六绝”行情。中国石油盘中股价创上市以来最低价仿佛预示着蓝筹股一轮争创“下游”的表演开始。对于中石油此番表演并不出人意外,在5月中石油创下上市以来从未有过的十连阴之时,本专栏就曾指出“中石油目前的下跌还仅仅是在半山腰,离下跌的终点还早”。周一中石油也击破了2011年8月以来所形成的箱体底边,
滇西北衙斑岩金矿床是金沙江-哀牢山新生代富碱斑岩成矿带中规模最大的金多金属矿床,其已探明的金储量超过350t,伴生的铜、铅锌、铁、银、硫也达到大-中型规模,前人针对该矿
探讨血管内皮生长因子(VEGF)在星形细胞瘤中表达与星形细胞瘤组织学分级和患者年龄的关系。方法 应用免疫组化方法检测52例星形细胞瘤石蜡包埋病理切片。结果 VEGF在不同病理级别星形细