当前位置: 首页 > 专利查询>云南大学专利>正文

基于Spark的大规模图数据的多样性图排序方法技术

技术编号:14509864 阅读:127 留言:0更新日期:2017-02-01 02:28
本发明专利技术公开了一种基于Spark的大规模图数据的多样性图排序方法,以大规模图数据的多样性图排序为目标,以图数据中结点间距离度量方法为基础,结合经典的个性化PageRank算法和基于距离的多样化度量方法进行图数据多样性图排序,具有可扩展性、更为高效等优点,且满足了海量图数据多样性图排序的数据存储和计算的要求,为海量图数据分析处理和挖掘等亟待解决的关键问题提供了有力的技术支持。

【技术实现步骤摘要】

本专利技术属于数据挖掘及信息检索
,更为具体地讲,涉及一种基于Spark的大规模图数据的多样性图排序方法
技术介绍
排序(Ranking)是信息检索、数据挖掘以及社会网络分析的基础工作之一。在信息检索系统中,较好的排序方法可以保证在有限的显示空间中呈现与用户查询相关性较高、信息冗余度较低的挖掘结果,从而最小化用户的查询放弃率,对于提高用户的信息检索服务体验意义重大。由大量结点和表示结点之间关系的边组成的图数据,由于图中缺少显式的序,使得图排序在图数据分析和应用过程中显得尤为关键。已有的图数据排序方法,例如著名的PageRank,以及个性化的PageRank算法(PersonalizedPageRank,简称PPR),主要关注排序结果的全局重要性以及用户查询的相关性(Relevance)。然而,只强调排序结果的重要性或相关性,不一定总能满足用户的数据排序需求。例如,在信息检索系统中,用户的查询条件往往具有简单性和多义性的特点,现有的排序方法往往只能给出与某一主题相关的排序结果,忽略了查询结果的“多样性和非冗余性”的要求。多样性图排序(DiversifiedRankingonGraph)是提升图排序质量的有效途径,其主要目的是:在保证排序相关性的前提下,提高排序靠前的对象之间的多样性,希望能够在排序结果的相关性和多样性之间达到尽可能好的折中,从而有效提升图排序结果质量。程学旗等(<中国科学院院刊>,2015,30(2):248-256)分析了多样性图排序的现状和挑战;韩晓等(<计算机学报>,2015,38(2):365-373)针对科学文献图数据,提出了一种面向权威度和多样性的两阶段图排序模型。该模型融合权威度和差异性两个因素,对论文和作者排序,最终得到权威度高、覆盖面广的调研结果;杜攀(<中国科学院研究生院博士论文>,2011)将图数据的多样化排序问题形式化为一个带边界条件的热传导问题。借助热传导边界条件中的汇点,在排序中自然地揭示出了数据之间的差异性。最终实现了一种融合多样性的多目标排序方法;李靖(<天津大学硕士论文>,2012)基于随机游走模型,有效降低检索结果之间的冗余性,实现图像搜索的多样性重排序方法;陈飞等(<山东大学学报(理学版)>,2011,5(10):1897-1906)基于HITS算法计算查询结果多样性程度,基于此对结果列表进行重排序,实现搜索结果多样性。当前,随着在线社交网络和社会媒体应用的快速发展,累积了海量图数据。这些图数据包括千万级规模的结点,亿级规模的边,单台机器已无法有效存储和处理大规模图数据。公知的多样性图排序方法均假设图数据能够存储在单机上,图排序算法在单机上执行。显然,已有技术方法无法有效处理大规模图数据的多样性图排序问题。ApacheSpark是一种基于内存的,面向海量数据分析与处理的并行、分布式计算平台。GraphX是Spark的并行、分布式图计算组件,能够有效应对大规模图数据的分析和处理。Spark的核心数据结构是弹性分布式数据集(ResilientDistributedDatasets,简写为RDD)。RDD是分布式内存的一个抽象概念,一个Spark应用程序通过创建RDD,并在RDD上施加相应的变换(Transform,例如map,join等)或操作(Action,例如reduce,sort等)行为实现计算逻辑,完成数据的分析和处理。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于Spark的大规模图数据的多样性图排序方法,克服了已有的多样性图排序技术无法有效处理大规模图数据的缺陷和不足,为大规模图数据的多样性图排序及其应用提供技术支撑。为实现上述专利技术目的,本专利技术基于Spark的大规模图数据的多样性图排序方法,其特征在于,包括以下步骤:(1)、获取个性化PageRank的查询相关结点集(1.1)、通过GraphX中的GraphLoader.edgeListFile函数读入边表文件,生成图G,并缓存在内存中;其中,边表文件的格式为(v.id,u.id),v.id和u.id分别表示边e(v,u)两个端点v、u的标识号;(1.2)、给定用户输入的查询结点q,调用GraphX中的personalizedPageRank函数,获取个性化PageRank的查询相关结点集,标记为pprRDD;其中,pprRDD的格式为(v.id,v.ppr),v.ppr表示结点v的个性化PageRank值;(2)、收集每一个结点的邻居结点集(2.1)、利用结点映射函数mapVertices对图G进行处理,得到图NbrsG;(2.2)、根据用户需求,设置最大邻居步数l;(2.3)、调用GraphX中的消息聚集函数aggregateMessages收集图NbrsG上每个结点的邻居结点,再通过结点连接操作joinVertices和集合并集运算union对收集的所有邻居结点进行合并,得到1步邻居结点集;再次调用aggregateMessages收集图NbrsG上每个结点的邻居结点,通过joinVertices和union运算对收集的所有邻居结点进行合并后再与1步邻居结点集求并集,得到1、2步邻居结点集;依次类推,循环到第l次,最终得到每一个结点的1、2、…、l步邻居结点集;(2.4)、调用GraphX中的结点值映射函数mapValues对邻居结点集进行处理,得到集合l_NbrsRDD;其中,l_NbrsRDD的格式为(v.id,v.l_Nbrs),v.l_Nbrs是结点v的1、2、…、l步邻居结点集;(3)、集成结点的ppr值和邻居结点信息调用GraphX中的内连接函数innerJoin对集合pprRDD和l_NbrsRDD进行处理,得到带有结点ppr值和1、2、…、l步邻居结点集的并集vsWithNbrsRDD;其中,vsWithNbrsRDD的格式为(v.id,v.ppr,v.l_Nbrs);(4)、基于结点间的带权距离的top-k多样性图排序(4.1)、定义一解集S并初始化为空;设置top-k多样性图排序的k值;(4.2)、定义一带权距离和集合disSumRDD,用于存储解集S外的每一个结点与当前解集S中所有结点的带权距离和,disSumRDD的格式为:(u.id,disSum),其中,u.id是解集S外任一结点u的id,disSum是结点u到当前解集S中所有结点的带权距离和,即disSum(u)=∑v∈Sd′(v,u),d′(v,u)为结点u和结点v的ppr带权距离值,disSum的初始值为0;(4.3)、在图G中,任意选择一个结点u加入到解集S中,并将u标记为u*;(4.4)、将集合vsWithNbrsRDD与其自身做笛卡尔积cartesian运算,基于u*.id对笛卡尔积的结果进行过滤filter操作,得到一个u*与解集S外其余结点的RDD;其中,RDD的格式为((u*.id,u*.l_Nbrs),(v.id,v.l_Nbrs)),v.id是解集S外任一结点v的id,v.l_Nbrs是v的1、2、…、l步邻居结点集;对RDD做并行化映射操作,得到u*与解集S外每一个结点v的1、2、…、l步邻居结本文档来自技高网
...

【技术保护点】
一种基于Spark的大规模图数据的多样性图排序方法,其特征在于,包括以下步骤:(1)、获取个性化PageRank的查询相关结点集(1.1)、通过GraphX中的GraphLoader.edgeListFile函数读入边表文件,生成图G,并缓存在内存中;其中,边表文件的格式为(v.id,u.id),v.id和u.id分别表示边e(v,u)两个端点v、u的标识号;(1.2)、给定用户输入的查询结点q,调用GraphX中的personalizedPageRank函数,获取个性化PageRank的查询相关结点集,标记为pprRDD;其中,pprRDD的格式为(v.id,v.ppr),v.ppr表示结点v的个性化PageRank值;(2)、收集每一个结点的邻居结点集(2.1)、利用结点映射函数mapVertices对图G进行处理,得到图NbrsG;(2.2)、根据用户需求,设置最大邻居步数l;(2.3)、调用GraphX中的消息聚集函数aggregateMessages收集图NbrsG上每个结点的邻居结点,再通过结点连接操作joinVertices和集合并集运算union对收集的所有邻居结点进行合并,得到1步邻居结点集;再次调用aggregateMessages收集图NbrsG上每个结点的邻居结点,通过joinVertices和union运算对收集的所有邻居结点进行合并后再与1步邻居结点集求并集,得到1、2步邻居结点集;依次类推,循环到第l次,最终得到每一个结点的1、2、…、l步邻居结点集;(2.4)、调用GraphX中的结点值映射函数mapValues对邻居结点集进行处理,得到集合l_NbrsRDD;其中,l_NbrsRDD的格式为(v.id,v.l_Nbrs),v.l_Nbrs是结点v的1、2、…、l步邻居结点集;(3)、集成结点的ppr值和邻居结点信息调用GraphX中的内连接函数innerJoin对集合pprRDD和l_NbrsRDD进行处理,得到带有结点ppr值和1、2、…、l步邻居结点集的并集vsWithNbrsRDD;其中,vsWithNbrsRDD的格式为(v.id,v.ppr,v.l_Nbrs);(4)、基于结点间的带权距离的top‑k多样性图排序(4.1)、定义一解集S并初始化为空;设置top‑k多样性图排序的k值;(4.2)、定义一带权距离和集合disSumRDD,用于存储解集S外的每一个结点与当前解集S中所有结点的带权距离和,disSumRDD的格式为:(u.id,disSum),其中,u.id是解集S外任一结点u的id,disSum是结点u到当前解集S中所有结点的带权距离和,即disSum(u)=∑v∈Sd′(v,u),d′(v,u)为结点u和结点v的ppr带权距离值,disSum的初始值为0;(4.3)、在图G中,任意选择一个结点u加入到解集S中,并将u标记为u*;(4.4)、将集合vsWithNbrsRDD与其自身做笛卡尔积cartesian运算,基于u*.id对笛卡尔积的结果进行过滤filter操作,得到一个u*与解集S外其余结点的RDD;其中,RDD的格式为((u*.id,u*.l_Nbrs),(v.id,v.l_Nbrs)),v.id是集S外任一结点v的id,v.l_Nbrs是v的1、2、…、l步邻居结点集;对RDD做并行化映射操作,得到u*与解集S外每一个结点v的1、2、…、l步邻居结点集的对称差;(4.5)、设v.ppr和u.ppr分别为结点v和u的个性化PageRank值,定义一个函数dis_reduceFunc(v,u,A),该函数按照v.ppr+u.ppr+λ(|A|/|V|)来计算v和u之间的带权距离值,其中,|A|表示结点v和u的1、2、…、l步邻居结点集的对称差元素个数,|V|表示图G中的结点总数;将dis_reduceFunc(v,u,A)作为reduce操作的参数,对步骤(4.4)中的RDD执行reduce操作,计算出v和u之间的带权距离值,得到带权距离值集合disRDD;其中,disRDD的格式为(v.id,u.id,dis),dis表示结点v和u之间的带权距离值;(4.6)、通过join操作连接带权距离和集合disSumRDD和带权距离值集合disRDD,按照disSum←disSum+dis方式更新disSumRDD,得到本次迭代后的带权距离多样性图排序结果;(4.7)、通过一个max操作,选择disSumRDD中距离和值最大的结点作为u*加入到解集S;(4.8)、重复步骤(4.4)~(4.7),进行下一轮迭代,当迭代次数到达多样性图排序的最大排序次k时,迭代停止,得到top‑k多样性图排序结果。...

【技术特征摘要】
1.一种基于Spark的大规模图数据的多样性图排序方法,其特征在于,包括以下步骤:(1)、获取个性化PageRank的查询相关结点集(1.1)、通过GraphX中的GraphLoader.edgeListFile函数读入边表文件,生成图G,并缓存在内存中;其中,边表文件的格式为(v.id,u.id),v.id和u.id分别表示边e(v,u)两个端点v、u的标识号;(1.2)、给定用户输入的查询结点q,调用GraphX中的personalizedPageRank函数,获取个性化PageRank的查询相关结点集,标记为pprRDD;其中,pprRDD的格式为(v.id,v.ppr),v.ppr表示结点v的个性化PageRank值;(2)、收集每一个结点的邻居结点集(2.1)、利用结点映射函数mapVertices对图G进行处理,得到图NbrsG;(2.2)、根据用户需求,设置最大邻居步数l;(2.3)、调用GraphX中的消息聚集函数aggregateMessages收集图NbrsG上每个结点的邻居结点,再通过结点连接操作joinVertices和集合并集运算union对收集的所有邻居结点进行合并,得到1步邻居结点集;再次调用aggregateMessages收集图NbrsG上每个结点的邻居结点,通过joinVertices和union运算对收集的所有邻居结点进行合并后再与1步邻居结点集求并集,得到1、2步邻居结点集;依次类推,循环到第l次,最终得到每一个结点的1、2、…、l步邻居结点集;(2.4)、调用GraphX中的结点值映射函数mapValues对邻居结点集进行处理,得到集合l_NbrsRDD;其中,l_NbrsRDD的格式为(v.id,v.l_Nbrs),v.l_Nbrs是结点v的1、2、…、l步邻居结点集;(3)、集成结点的ppr值和邻居结点信息调用GraphX中的内连接函数innerJoin对集合pprRDD和l_NbrsRDD进行处理,得到带有结点ppr值和1、2、…、l步邻居结点集的并集vsWithNbrsRDD;其中,vsWithNbrsRDD的格式为(v.id,v.ppr,v.l_Nbrs);(4)、基于结点间的带权距离的top-k多样性图排序(4.1)、定义一解集S并初始化为空;设置top-k多样性图排序的k值;(4.2)、定义一带权距离和集合disSumRDD,用于存储解集S外的每一个结点与当前解集S中所有结点的带权距离和,disSumRDD的格式为:(u.id,disSum),其中,u.id是解集S外任一结点u的id,disSum是结点u到当前解集S中所有结点的带权距离和,即disSum...

【专利技术属性】
技术研发人员:李劲岳昆胡矿王钰杰高仁尚
申请(专利权)人:云南大学
类型:发明
国别省市:云南;53

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

1