CN109377495B - 一种支持增量分割的大规模图分割方法 - Google Patents

一种支持增量分割的大规模图分割方法 Download PDF

Info

Publication number
CN109377495B
CN109377495B CN201811139785.5A CN201811139785A CN109377495B CN 109377495 B CN109377495 B CN 109377495B CN 201811139785 A CN201811139785 A CN 201811139785A CN 109377495 B CN109377495 B CN 109377495B
Authority
CN
China
Prior art keywords
graph
segmentation
algorithm
node
edge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201811139785.5A
Other languages
English (en)
Other versions
CN109377495A (zh
Inventor
邹嘉欣
郎波
宋昱材
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201811139785.5A priority Critical patent/CN109377495B/zh
Publication of CN109377495A publication Critical patent/CN109377495A/zh
Application granted granted Critical
Publication of CN109377495B publication Critical patent/CN109377495B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种支持增量分割的大规模图分割方法,该图分割方法对节点分割算法NE进行改造并融合了流式分割算法HDRF,对于初始分割阶段采用基于多层次框架的节点分割算法MNE,后续增量分割阶段采用流式分割算法HDRF。本发明在保证分隔质量的同时,也大大减少了图分割的时间,便于后续对大规模图进行分析和处理。

Description

一种支持增量分割的大规模图分割方法
技术领域
本发明涉及图分割的技术领域,具体涉及一种支持增量分割的大规模图分割方法。
背景技术
现实生活中,图被广泛应用于道路交通、社交网络、生物网络、电子商务等各个领域,构建起了人、商品、兴趣之间的各种关联。同时,图的规模也越来越大:谷歌收录的网页数量已经超过450亿,De Bruijn生物网络包含数十亿节点。图规模的增长带来了存储和处理两方面的问题:(1)单个机器很难存储下全图;(2)对于大图的分析处理十分耗时。为了解决以上问题,出现了许多分布式图处理系统,例如图计算框架Pregel【Malewicz G,AusternM H,Bik A J,et al.Pregel:a system for large-scale graph processing[C].Proceedings of the 2010 ACM SIGMOD International Conference on Management ofdata,2010:135-146】以及它的开源实现Apache Giraph,图数据库Titan和Trinity,图计算系统GraphLab,PowerGraph【Gonzalez J E,Low Y,Gu H,et al.PowerGraph:DistributedGraph-Parallel Computation on Natural Graphs[C].OSDI,2012:2】,GraphX【GonzalezJ E,Xin R S,Dave A,et al.GraphX:Graph Processing in a Distributed DataflowFramework[C].OSDI,2014:599-613】等。在对大图进行进一步的分析之前,需要利用图分割技术将大图分割为多个小图,分别加载到不同的机器上。图分割作为预处理步骤,对于降低复杂度,实现并行化以及减少通讯开销有着非常重要的作用。
图分割问题是NP-Hard问题【Bui T N,Jones C.Finding good approximatevertex and edge partitions is NP-hard[J].Information Processing Letters,1992,42(3):153-159】,目前广泛使用的是启发式算法。传统的图分割算法KL(Kerninghan-Lin)算法,以及基于它改进的FM(Fiduccia-Mattheyses)算法都属于局部搜索算法,它们利用启发式规则迭代地对节点进行交换,但由于时间和空间开销大,仅适用于处理内存中规模较小的图。为了处理规模更大的图,许多多层次分割算法(Multi-Level partitioningalgorithm)被提出。多层次分割包含粗化、对粗化后的图进行分割以及去粗化三个阶段,代表性算法有METIS【Karypis G,Kumar V.Afast and high quality multilevel schemefor partitioning irregular graphs[J].SIAM Journal on scientific Computing,1998,20(1):359-392】,Chaco,Scotch以及它们的一些并行化版本,如ParMetis,PT-Scotch。其中METIS算法因其分割质量高,被视作与新分割算法对比的标准。然而,由于粗化阶段采用的极大匹配算法非常耗时,并不适用于对超大规模的图进行分割。此外,它也无法有效适应图的增量变化。
流分割算法是为了解决大图的分割而提出的一种轻量级的启发式算法,由Stanton I等人于2012年首次提出【Stanton I,Kliot G.Streaming graph partitioningfor large distributed graphs[C].Proceedings of the 18th ACM SIGKDDinternational conference on Knowledge discovery and data mining,2012:1222-1230】。在流分割中,图元素以流的形式依次到达,通过预先定义的启发式规则将该节点直接分配给某个分隔。Fennel【Tsourakakis C,Gkantsidis C,Radunovic B,et al.Fennel:Streaming graph partitioning for massive scale graphs[C].Proceedings of the7th ACM international conference on Web search and data mining,2014:333-342】提出了一种通用的图分割框架,将“分配到邻居数量最多的分隔中”和“分配到非邻居数量最少的分隔中”两类启发式规则结合起来,提升了流分割的效果。流分割有着诸多优势,比如可以处理无法完全加载到内存中的大图,也可以有效处理图的增量变化,时间开销小,可扩展等。然而图元素一经到达需要立即分配,之后也无法更改,分割质量很难保证。
现实生活中的图是无标度的图,节点的度服从幂律分布,即数量很少的节点会连接图中大部分的边。由于这种度分布的偏斜性(skewness),针对幂律分布的图分割是比较有难度的【Leskovec J,Lang K J,Dasgupta A,et al.Community structure in largenetworks:Natural cluster sizes and the absence of large well-defined clusters[J].Internet Mathematics,2009,6(1):29-123】。而传统的分割方法是构建平衡化的边分割(Edge-cut),即把节点均分到k个分隔中,使得跨越不同分隔的边的数量最小化【AndreevK,Racke H.Balanced graph partitioning[J].Theory of Computing Systems,2006,39(6):929-939】。这类分割算法在幂律分布的图上的效果较差,并且需要额外存储两端节点位于不同分隔的边。PowerGraph为现实生活中的幂律图上的图分割问题提供了新的解决思路——节点分割(Vertex-cut),即将边分为互不相交的k个集合,分配到对应的k个分隔中,使得同步化节点副本所需的通讯量最小化。最近很多节点分割算法被提出,如Grid,PDS,DBH【Xie C,Yan L,Li W-J,et al.Distributed power-law graph computing:Theoretical and empirical analysis[C].Advances in Neural InformationProcessing Systems,2014:1673-1681】,Oblivious,HDRF【Petroni F,Querzoni L,Daudjee K,et al.Hdrf:Stream-based partitioning for power-law graphs[C].Proceedings of the 24th ACM International on Conference on Information andKnowledge Management,2015:243-252】,NE【Zhang C,Wei F,Liu Q,et al.Graph EdgePartitioning via Neighborhood Heuristic[C].Proceedings of the 23rd ACM SIGKDDInternational Conference on Knowledge Discovery and Data Mining,2017:605-614】等。PowerLyra则提出了对度不同的节点分别采取边分割和节点分割的混合分隔策略Hybrid-cut,并利用Fennel中的节点分配规则进一步提出了启发式算法Ginger。
此外,现实生活中的图通常会动态地增加节点或边,现有的策略一般分为两类:(1)在特定时间段之后,重新对全图执行静态分割算法。这种方案虽然可以沿用原有的静态分割策略,但是每次重新划分全图不仅会带来较大的计算开销,也无法保证实时性;(2)采用流式分割的思路,将新到达的图元素按照预先定义的启发式规则直接分配到分隔中。这种方案可以对图的结构变化做出实时性的响应,但是由于流式分割并未有效利用图的全局信息,分隔质量无法保证。
现实生活中的图通常是增长到一定规模才会有分布式的需求,因此如果可以对初始规模的图采取较高质量的分割方法,然后在后续的增量分割阶段有效利用初始的分割信息,不仅可以节省时间开销,也可以利用这部分信息指导后续的图元素的分配。
现有技术的缺点包括两方面:一个是无法兼顾分割质量和分割速度,这个对应于本发明的初始分割中提出的多层次分割算法MNE;另一个是对动态图的分割,这个对应于本文提出的这种支持增量分割的大规模图分割方法。
发明内容
本发明要解决的问题为:克服现有技术的不足,提供一种支持增量分割的大规模图分割方法,对节点分割算法NE进行改造并融合了流式分割算法HDRF,对于初始分割阶段采用基于多层次框架的节点分割算法MNE,后续增量分割节点采用流式分割算法HDRF。本发明在保证分隔质量的同时,也大大减少了图分割的时间,便于后续对大规模图进行分析和处理,能够有效地支持增量分割,既能平衡化地对图进行切分,也能最大程度地保留图的结构信息,从而有效地实现并行化,降低通信开销。
本发明采用的技术方案为:一种支持增量分割的大规模图分割方法,对图进行初始分割,在初始分割的基础上再进行增量分割;所述初始分割采用多层次分隔算法MNE进行多层次分割,所述增量分割采用流分割,采用MNE与流分割相融合方法实现支持增量分割的大规模图分割(大规模一般指边的规模达到百万级别以上的图)。该分割方法包括如下方面:
(1)初始分割采用多层次分割算法MNE
MNE(Multi-Level Neighbor Expansion),该算法包括三个阶段:粗化阶段、分割阶段以及去粗化阶段;
粗化阶段采取轻量级的标签传播算法将原始的大图不断粗化。标签传播算法一般用于社区探测,初始时每个节点都分配一个唯一的标签,后续不断进行迭代直至收敛。在每一轮迭代中,每个节点都将自己的标签发送给自己的邻居,并选取自己的邻居中出现最多的标签作为自己的新标签;
在分割及去粗化阶段,本发明采用的是NE算法。NE算法属于节点分割算法,它会迭代地将图分割为p个部分。一共迭代p轮,每一轮产生一个子集Ei;由于原始的NE算法是针对无权重的图,而粗化后的图可视为“超图”,节点和边都是带有权重的,因此本文进行了两处改进:扩展节点的启发式规则考虑权重,分割时同时考虑节点和边包含的内部边。
(2)多层次分割与流分割相融合,建立一种支持增量分割的大规模分割方法
现实生活中的图通常会不断地增加节点或边,对于这种增量改变的图的分割,本发明采取的思路是利用MNE算法作为初始分割方式,对于后续的增量分割则采取流式分割HDRF。
本发明具体实现如下:一种支持增量分割的大规模图分割方法,对图进行初始分割,在初始分割的基础上再进行增量分割;所述初始分割采用多层次分割算法MNE进行多层次分割,所述增量分割采用流分割,采用MNE与流分割相融合的方法实现支持增量分割的大规模图分割。
所述多层次分割算法MNE包括三个阶段:粗化阶段、分割阶段以及去粗化阶段;
粗化阶段采取轻量级的标签传播算法将原始的大图不断粗化,得到粗化后的图,即原图中的某些节点会聚合为一个超节点,原图中的某些边会聚合为一条超边,粗化后的图视作一个超图,超图的节点和边的规模比原始图小;
分割阶段,采用NE算法,对粗化阶段得到的粗化后的图进行分割,得到每条边(即指粗化后的图中的超边)应该被分配到哪个机器,这个阶段的功能和目的是在粗化后的小图上进行分割,得到分隔结果,即每条边所对应的分隔;
去粗化阶段将分割后的图的分隔结果映射回原来的大图,即如果某条超边被分配到机器k,则将这条超边对应的原始图中的边也分配到机器k。
所述轻量级的标签传播算法具体实现如下:
(1)将图中的每个节点都赋予一个唯一的初始标签,即把节点id作为初始标签;
(2)每个节点都将自己的标签发送给邻居节点,并选取自己的邻居中出现最多的标签作为自己的新标签;
(3)检测图中节点的标签有没有发生改变,如果改变了则转到步骤(2),否则算法结束,最终图中的每个节点都会属于某个标签,根据所述结果,把相同标签的节点聚合为一个超节点,即得到粗化后的图。
所述NE算法具体实现如下:
(1)根据图中的边的数量和分隔数量,计算得到每个分隔上应该分配的边的数量,即分隔阈值;
(2)在图中按照启发式规则选取一条边进行遍历,并将已经遍历的边的数量加1;
(3)检查已经遍历的边的数量是否达到步骤(1)中计算出的阈值,如果未达到则继续按照步骤(2)进行遍历,否则将已经遍历过的边集作为一个分隔的结果,并在剩下的图中按照步骤(2)进行遍历。
所述流分割具体实现如下:
(1)对于新到达的边e=(vi,vj),计算复用项
Figure BDA0001815523130000051
和平衡项
Figure BDA0001815523130000052
的得分,具体公式如下:
Figure BDA0001815523130000053
Figure BDA0001815523130000054
Figure BDA0001815523130000055
Figure BDA0001815523130000056
其中vi,vj分别为新到达的边e的两端节点,参数λ控制了分隔的平衡性的重要程度(0<λ<10),参数ε>0是为了防止出现分母为0的情况出现,一般非常小,0<ε<0.1,maxsize和minsize分别是最大的分隔和最小的分隔所对应的分隔大小,|p|为当前分隔p的大小,即该分隔中已经分配的边的数量,δ(vi)和δ(vj)分别是节点vi、vj所对应的节点的度;
(2)根据步骤(1)中得到的复用项
Figure BDA0001815523130000057
和平衡项
Figure BDA0001815523130000058
的得分,为每个分隔p计算一个得分CHDRF(vi,vj,p),得分函数
Figure BDA0001815523130000059
Figure BDA00018155231300000510
(3)将边e分配给得分最高的分隔。
本发明与现有技术相比的优点在于:
(1)本发明提出了一种多层次分割算法MNE,其在NE算法的基础上进行了改进,在保证图分割质量的同时大大提升了图分割的速度;
(2)本发明将多层次分割与流分割相融合,建立一种支持增量分割的大规模分割方法,其分割质量比现有最好的流分割算法更好。
附图说明
图1为MNE算法总体框架图;
图2为不同图分割算法在各个数据集上的分割时间,其中横坐标代表不同的数据集,纵坐标代表分割时间,每条曲线均代表某种特定图分割算法在不同数据集上的分割时间(已将算法名称标注在对应的曲线旁边)。在各个数据集上的分隔数量均为30;
图3为粗化轮数对于复用率、平衡率和分割时间的影响,其中(a)是粗化轮数对于复用率的影响,(b)为粗化轮数对于平衡率的影响,(c)为粗化轮数对于分割时间的影响;
图4为超节点内部边的阈值|E|/t对于复用率、平衡率和分割时间的影响,其中(a)是超节点内部边的阈值对于复用率的影响,(b)为超节点内部边的阈值对于平衡率的影响,(c)为超节点内部边的阈值对于分割时间的影响;
图5为三种图应用的运行时间图,其中(a)PageRank运行时长,(b)TriangleCount运行时长,(c)Connected Components运行时长;
图6为在LJ数据集上的增量分割策略实验结果;
图7为在Orkut数据集上的增量分割策略实验结果。
具体实施方式
下面参考附图,对本发明提出的支持增量分割的大规模图分割算法进行详细说明。首先对初始分割阶段的MNE算法进行介绍,然后对增量分割策略进行说明。最后对提出的图分割算法进行实验评估。
一、MNE算法
对于初始分割阶段,本发明提出了一种基于多层次分割框架的节点分割算法MNE(Multi-Level Neighbor Expansion)。多层次分割一般包括三个阶段:(1)粗化:将原始的大图粗化为小图;(2)分割:在粗化后的小图上进行分割(3)去粗化:将小图上的分隔结果映射到原始的大图中。由于许多多层次分割算法在粗化阶段采取的“极大匹配”算法非常耗时,本文采用的是轻量级的标签传播算法作为粗化方式。为了保证分隔质量,在后续的分割和去粗化阶段,本发明是采取NE(Neighbor Expansion)算法。与流式分割算法相比,NE算法在分隔质量(如复用率)方面有较大的优势,而分割速度却比较慢。将NE算法与多层次分割框架结合,不仅可以有效利用NE的优势保证最终的分隔质量,也可以通过粗化的方式缩小原始图的规模,提升分割的速度。
1.粗化阶段
MNE算法采取轻量级的标签传播算法作为粗化方式。标签传播算法一般用于社区探测,初始时每个节点都分配一个唯一的标签,后续不断进行迭代直至收敛。在每一轮迭代中,每个节点都将自己的标签发送给自己的邻居,并选取自己的邻居中出现最多的标签作为自己的新标签。
(1)对图中所有节点的标签进行初始化:对于给定的节点x,Cx(0)=x
(2)t=1
(3)以随机顺序访问图中的节点,并将访问的节点依次加入集合X
(4)For x∈X,令
Figure BDA0001815523130000071
其中f返回邻居节点中出现次数最多的标签。此处采取的是异步更新方式,xi1,…,xim,xi(m+1),…,xik是节点x的邻居节点,其中xi1,…,xim在当前迭代中已经被更新过,xi(m+1),…,xik还未被更新过。
(5)如果每个节点的标签都是其所有邻居节点中出现次数最多的标签,则算法终止;否则t=t+1,并转到第3步。
为了将标签传播算法和多层次分割算法有效地结合,本发明在两个方面进行了改进:1)限制迭代次数。原始的标签传播算法需不断迭代直至收敛,如果不对迭代次数加以限制,也许会导致粗化阶段用时过长,影响后续分割的进行;2)限定相同标签的节点之间的内部边数量。在粗化阶段,标签相同的节点会聚合为一个“超节点”,若这个“超节点”包含的内部边的数量太大,会导致最后的分隔结果的平衡性很差。
2.分割及去粗化阶段
在分割及去粗化阶段,本文采用的是NE算法。NE算法属于节点分割算法,它会迭代地将图分割为p个部分。一共迭代p轮,每一轮产生一个子集Ei。下面是该算法的伪代码描述:
Figure BDA0001815523130000072
算法1:产生一个边集
(1)将三个集合C,S,Ek都初始化为空集;
(2)如果S\C为空,则从V\C中随机选取一个节点,否则利用启发式规则
Figure BDA0001815523130000073
Figure BDA0001815523130000074
选取节点进行扩展;
(3)根据第二步中选择的节点,依次遍历该节点的未访问过的边;
(4)检查访问过的边的数量是否已经达到给定阈值,如果未达到,则转到第二步继续执行,否则结束,直接输出已经访问过的边集即可。
在第i轮迭代中,从当前图Gi中选取边的子集Ei,其中Gi是包含当前所有未分配的边的图,即Gi=(V,E\∪j<iEj).每个Ei起始都是空集,然后不断扩展直至|Ei|>α|E|/p.每次扩展都会根据“邻居扩展”(neighbor expansion)这个启发式规则选取待扩展的核心节点,其中用到了两个集合:核心集合C以及边界集合S。核心集合C永远被包含在边界集合S中。如果
Figure BDA0001815523130000083
Figure BDA0001815523130000084
则从V\C中任意选取一个节点x.否则按照以下规则选取:
Figure BDA0001815523130000081
其中|N(v)\S|是将要被分配到机器i的节点个数。如果v被选取作为核心节点,则它的邻边将添加至Ei。这条启发式规则的目标就是使得添加到边界集合S中的节点尽可能少,也就使得复用率尽可能少。
在选取扩展的核心节点之后,需要调用ALLOCEDGES过程对所选取的节点的邻边进行分配。该过程的伪代码描述如下:
Figure BDA0001815523130000082
算法2:为核心节点x分配边
(1)将节点x加入集合S和C中
(2)遍历x的邻居节点y,如果y不在集合S中,则将y加入集合S,并遍历y的在集合S中的邻接边;
(3)检查已经遍历的边的数量是否达到给定阈值,如果没有就按照第二步继续遍历,否则直接返回已经遍历的边集。
在对原始的图进行粗化后,得到是规模较小的图,每个节点可能对应着原始图中的多个节点,每条边可能对应着原始图中的多条边。由于原始的NE算法是针对无权重的图,而粗化后的图可视为“超图”,节点和边都是带有权重的,因此本发明对NE算法进行了如下改进:
(1)扩展节点的启发式规则考虑权重
原始的NE算法是针对无权重的图,在选取节点进行扩展时考虑的是邻居节点的数量,而本文则进一步考察了邻接边的权重信息。将扩展节点的启发式规则改为:
Figure BDA0001815523130000091
其中w(u,v)是边(u,v)的权重,x为待扩展的节点,C为核心集合,S为边界集合。N(v)代表节点v的邻居节点的集合,w(u,v)为节点u与节点v之间的邻接边的权重。
(2)分割时同时考虑节点和边包含的内部边
由于粗化后的图中的节点和边都可能包含着原始图中的多条边,因此在进行分割时要考虑这些超边和超节点的内部边,以保证最终的分隔的平衡性。
进行改进后的算法伪代码如下所示:
Figure BDA0001815523130000092
算法1:产生一个边集
(1)将三个集合C,S,Ek都初始化为空集;
(2)如果S\C为空,则从V\C中随机选取一个节点,否则利用启发式规则
Figure BDA0001815523130000093
Figure BDA0001815523130000094
选取节点进行扩展;
其中C为核心集合,S为边界集合,Ek为当前已经遍历过的边的集合。N(v)代表节点v的邻居节点的集合,w(u,v)为节点u与节点v之间的邻接边的权重;
(3)根据第二步中选择的节点,依次遍历该节点的未访问过的边;
(4)检查访问过的边的数量是否已经达到给定阈值,如果未达到,则转到第二步继续执行,否则结束,直接输出已经访问过的边集即可。
Figure BDA0001815523130000095
Figure BDA0001815523130000101
算法2:为核心节点x分配边
(1)将节点x加入集合S和C中,并分配节点x的内部边;
(2)遍历x的邻居节点y,如果y不在集合S中,则将y加入集合S,并遍历y的在集合S中的邻边,并进一步分配该邻边的内部边;
(3)检查已经遍历的边的数量是否达到给定阈值,如果没有就按照第二步继续遍历,否则直接返回已经遍历的边集。
Figure BDA0001815523130000102
算法3:分配节点x的内部边
(1)依次遍历节点x的内部边;
(2)检查该内部边是否已经分配给其他分隔,是则直接跳过,否则将该内部边加入结果集合,并标记为已访问;
(3)检查节点x的内部边是否全部处理完毕,没有则转到第二步继续处理,否则结束。
二、增量分割策略
现实生活中的图通常会不断地增加节点或边,对于这种增量改变的图的分割,本发明采取的思路是利用MNE算法作为初始分割方式,对于后续的增量分割则采取流式分割。
流式分割采用的启发式规则来源于HDRF算法。HDRF代表High Degree(are)Replicated First,即度大的节点优先被分割。对于新到达的边e=(vi,vj),为每个分隔p∈P计算一个得分CHDRF(vi,vj,p),然后将边e分配给得分最高的分隔。得分函数CHDRF(vi,vj,p)=
Figure BDA0001815523130000111
其中
Figure BDA0001815523130000112
Figure BDA0001815523130000113
的定义如下:
Figure BDA0001815523130000114
Figure BDA0001815523130000115
Figure BDA0001815523130000116
Figure BDA0001815523130000117
其中vi,vj分别为新到达的边e的两端节点,参数λ控制了分隔的平衡性的重要程度(0<λ<10),参数ε>0是为了防止出现分母为0的情况出现,一般非常小,0<ε<0.1,maxsize和minsize分别是最大的分隔和最小的分隔所对应的分隔大小,|p|为当前分隔p的大小,即该分隔中已经分配的边的数量,δ(vi)和δ(vj)分别是节点vi、vj所对应的节点的度。
三、实验评估
为了评估大规模图分割算法MNE和增量分割策略的实用性和有效性,本发明在多个数据集上进行了实验,并与其它的节点分割算法进行了对比。评价指标包括复用率、分割时间以及平衡率。各个数据集的具体规模如下表1所示。
表1数据集
Figure BDA0001815523130000118
Figure BDA0001815523130000121
对比算法
本发明将MNE算法与另外7种图分割算法进行了对比,包括Random、Grid、DBH、Oblivious、HDRF、NE以及METIS。其中METIS是经典的边分割算法,按照NE里的转化方式将它转变为节点分割方法:首先利用METIS产生分隔结果,然后对于每条边,随机地将它分配到任意邻接节点所在的分隔中。对于Grid、DBH、Oblivious、HDRF等算法,采取的是随机流顺序。
实验环境
本发明的所有对比实验均在PC机上完成,处理器为
Figure BDA0001815523130000122
CPU E5-4620 0@2.20GHz,内存为96GB,操作系统为64位的windows sever.MNE算法及其对比算法均通过java语言编程实现,在eclipse中运行。
(1)对MNE算法的实验评估
MNE算法与其他对比算法在各个数据集上的复用率和分割时间分别如下表2和图2所示。需要特别说明的是,为了保证算法的平衡性,本发明对Oblivious算法做了分隔大小的限制,并且将HDRF算法中的控制平衡性的参数λ设定为2.在最后的实验结果中,除了Grid算法的平衡率在3.3-3.7,其余算法的平衡率均在1.01以内,因此平衡率的实验结果就不进行具体展示。
表2各个数据集上的复用率(分隔数量p=30)
Random Grid DBH Oblivious HDRF NE MNE METIS
Amazon 4.79 3.26 3.21 1.69 2.75 1.24 1.51 1.46
dblp 5.20 3.11 3.45 1.86 2.7 1.26 1.61 1.84
Youtube 3.13 2.04 2.14 1.81 1.91 1.25 1.62 2.06
Stanford 7.49 4.03 3.55 1.63 1.9 1.14 1.27 1.44
google 6.66 3.64 3.77 1.58 1.98 1.15 1.50 1.59
Berkstan 9.44 4.24 4.21 1.94 2.21 1.17 1.32 1.65
LJ 8.91 3.88 5.36 4.51 4.62 1.76 2.57 4.47
Orkut 20.93 6.26 12.63 10.5 11.03 3.01 4.56 MLE
注:MLE代表Memory Limit Exceeded,即超出机器内存
从表2可以看出,虽然MNE的复用率比NE要高,但是与其他图分割算法相比,复用率还是比较低的。而从图2可以看出,MNE的分割时间远比NE的分割时间少。因此MNE是在分隔质量和分割时间之间进行了权衡,虽然在分隔质量上有所降低,但提升了分割速度。
A.粗化轮数和超节点内部边的阈值对于实验结果的影响
在粗化阶段,本发明实现的标签传播算法包括3个超参数:粗化轮数β(用于控制最终粗化后的图的规模)、每次粗化的迭代次数d以及超节点内部边的阈值|E|/t。Raghavan等人已经证明在5轮迭代之后,95%的节点都已经收敛到它所在的社区中,因此本发明将每次粗化的迭代次数设定为5,并通过控制变量的方式研究了粗化轮数和超节点内部边阈值对于平衡性、分割时间和复用率的影响,实验结果如图3和图4所示。
从图3可以看出,随着粗化轮数变多,复用率是先下降后上升,平衡率是不断增大后面有缓慢的下降,对于分割时间没有明显的影响,这可能是因为前期粗化时间变长,而粗化后的图变小了导致分割和细化的时间变短,而分割时间包括这两部分的时间,因此没有明显的增减趋势。
从图4可以看出,随着t变大,即超节点内部边的阈值越来越小,复用率不断增大,平衡率不断下降,而分割时间不断变长。当内部边的数量越来越小时,可能约束了粗化过程的收敛性,导致没有完全地保留原图的有效信息,因此复用率会增大,而由于限制了“超大节点”的出现,平衡率是不断接近于1的。而分割时间上升可能是由于内部边的阈值减小限制了图的粗化程度。
B.分隔质量对图分析应用的运行时间的影响
为了进一步验证分隔质量对于图分析应用的运行时间的影响,本发明在sparkGraphX平台上测量了三种不同图分析应用的运行时间,具体包括PageRank、TriangleCount以及Connected Component。spark运行环境为windows sever上安装的四台虚拟机,每台虚拟机的配置均为80GB硬盘、12GB内存以及8核处理器。本发明选用其中一台作为master,其余三台作为slaves。运行应用的方式是利用spark–submit命令调用jar包。下图5中的(a)(b)(c)展示了在数据集LJ上利用不同算法分割后运行这三种图应用的运行时长,其中分隔数量p=4,粗化轮数为4轮,代次数为5,超节点内部边的阈值为|E|/(p*p)。
从表2可知,NE、MNE、Oblivious、DBH、HDRF、Random在LJ数据集上的复用率是依次增大的,而图5中三种图应用的运行时长的总体趋势也是不断增大,进一步验证了较低的复用率可以保证更好的分隔效果,从而减小图应用的运行时间。
(2)对增量分割策略的实验评估
本发明在两个数据集LJ和Orkut上测试了增量分割策略的实验效果,其中数据集的前20%用MNE算法进行分割,后续的则采用流式分割算法HDRF进行分割,本发明采用的这种增量分割策略即简写为MNE+HDRF。对比算法包括NE+HDRF(同样也是前20%采用NE分割,后续采用HDRF算法分割)、HDRF以及DBH。实验结果分别如图6和图7所示。
从图6和图7可以看出,虽然增量分割只是在前20%采用了MNE算法,但随着更多的图元素的到来,MNE+HDRF最终的复用率比HDRF更低。值得一提的是虽然NE+HDRF的最终的复用率也较低,但耗时比MNE+HDRF更长。
总之,本发明的一种支持增量分割的大规模图分割方法,对节点分割算法NE进行了改进并融合了流式分割算法HDRF。在初始分割阶段,设计了一种基于多层次框架的节点分割算法MNE,它利用标签传播算法将大图粗化为小图,并利用改进后的NE算法对小图进行分割,最后将分隔结果映射回原图。在后续的增量分割阶段,采取流分割算法HDRF。实验表明本发明提出的MNE算法在分隔质量上要优于大多数现有算法,同时在分割时间上比NE算法减少了一半左右。增量分割策略最终的分隔质量也比现有最好的流分割算法更好。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。

Claims (2)

1.一种支持增量分割的大规模图分割方法,其特征在于:对图进行初始分割,在初始分割的基础上再进行增量分割;所述初始分割采用多层次分割算法MNE进行多层次分割,所述增量分割采用流分割,采用MNE与流分割相融合的方法实现支持增量分割的大规模图分割;
所述多层次分割算法MNE包括三个阶段:粗化阶段、分割阶段以及去粗化阶段;
粗化阶段采取轻量级的标签传播算法将原始的大图不断粗化,得到粗化后的图,即原图中的某些节点会聚合为一个超节点,原图中的某些边会聚合为一条超边,粗化后的图视作一个超图,超图的节点和边的规模比原始图小;
分割阶段,采用NE算法,对粗化阶段得到的粗化后的图进行分割,得到每条边即指粗化后的图中的超边,应该被分配到哪个机器,这个阶段的功能和目的是在粗化后的小图上进行分割,得到分隔结果,即每条边所对应的分隔;
去粗化阶段将分割后的图的分割结果映射回原来的大图,即如果某条超边被分配到机器k,则将这条超边对应的原始图中的边也分配到机器k;
所述轻量级的标签传播算法具体实现如下:
(1)将图中的每个节点都赋予一个唯一的初始标签,即把节点id作为初始标签;
(2)每个节点都将自己的标签发送给邻居节点,并选取自己的邻居中出现最多的标签作为自己的新标签;
(3)检测图中节点的标签有没有发生改变,如果改变了则转到步骤(2),否则算法结束,最终图中的每个节点都会属于某个标签,根据所述结果,把相同标签的节点聚合为一个超节点,即得到粗化后的图;
所述NE算法具体实现如下:
(1)根据图中的边的数量和分隔数量,计算得到每个分隔上应该分配的边的数量,即分隔阈值;
(2)在图中按照启发式规则选取一条边进行遍历,并将已经遍历的边的数量加1;
(3)检查已经遍历的边的数量是否达到步骤(1)中计算出的阈值,如果未达到则继续按照步骤(2)进行遍历,否则将已经遍历过的边集作为一个分隔的结果,并在剩下的图中按照步骤(2)进行遍历。
2.根据权利要求1所述的支持增量分割的大规模图分割方法,其特征在于:所述流分割具体实现如下:
(1)对于新到达的边e=(vi,vj),计算复用项
Figure FDA0003215575570000021
和平衡项
Figure FDA0003215575570000022
的得分,具体公式如下:
Figure FDA0003215575570000023
Figure FDA0003215575570000024
Figure FDA0003215575570000025
Figure FDA0003215575570000026
其中vi,vj分别为新到达的边e的两端节点,参数λ控制了分隔的平衡性的重要程度,0<λ<10,参数ε>0是为了防止出现分母为0的情况出现,0<ε<0.1,maxsize和minsize分别是最大的分隔和最小的分隔所对应的分隔大小,|p|为当前分隔p的大小,即该分隔中已经分配的边的数量,δ(vi)和δ(vj)分别是节点vi、vj所对应的节点的度;
(2)根据步骤(1)中得到的复用项
Figure FDA0003215575570000027
和平衡项
Figure FDA0003215575570000028
的得分,为每个分隔p计算一个得分CHDRF(vi,vj,p),得分函数
Figure FDA0003215575570000029
(3)将边e分配给得分最高的分隔。
CN201811139785.5A 2018-09-28 2018-09-28 一种支持增量分割的大规模图分割方法 Expired - Fee Related CN109377495B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811139785.5A CN109377495B (zh) 2018-09-28 2018-09-28 一种支持增量分割的大规模图分割方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811139785.5A CN109377495B (zh) 2018-09-28 2018-09-28 一种支持增量分割的大规模图分割方法

Publications (2)

Publication Number Publication Date
CN109377495A CN109377495A (zh) 2019-02-22
CN109377495B true CN109377495B (zh) 2021-11-12

Family

ID=65402292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811139785.5A Expired - Fee Related CN109377495B (zh) 2018-09-28 2018-09-28 一种支持增量分割的大规模图分割方法

Country Status (1)

Country Link
CN (1) CN109377495B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110058945A (zh) * 2019-04-22 2019-07-26 河南工业大学 基于割点分割机制的大规模图并行计算最大流的加速算法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699606A (zh) * 2013-12-16 2014-04-02 华中科技大学 一种基于顶点切割与社区聚集的大规模图划分方法
CN104679966A (zh) * 2015-03-26 2015-06-03 孙凌宇 基于多层次方法和离散粒子群的赋权超图优化划分方法
CN105117488A (zh) * 2015-09-19 2015-12-02 大连理工大学 一种基于混合层次聚类的rdf数据平衡分割算法
CN108319698A (zh) * 2018-02-02 2018-07-24 华中科技大学 一种基于博弈的流图划分方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699606A (zh) * 2013-12-16 2014-04-02 华中科技大学 一种基于顶点切割与社区聚集的大规模图划分方法
CN104679966A (zh) * 2015-03-26 2015-06-03 孙凌宇 基于多层次方法和离散粒子群的赋权超图优化划分方法
CN105117488A (zh) * 2015-09-19 2015-12-02 大连理工大学 一种基于混合层次聚类的rdf数据平衡分割算法
CN108319698A (zh) * 2018-02-02 2018-07-24 华中科技大学 一种基于博弈的流图划分方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Graph Edge Partitioning via Neighborhood Heuristic;Chenzi Zhang,et al.;《Association for Computing Machinery》;20170804;全文 *
HDRF: Stream-Based Partitioning for Power-Law Graphs;Fabio Petroni,et al.;《Association for Computing Machinery》;20151017;全文 *
双目标优化的RDF图分割算法;陈志奎等;《计算机工程与应用》;20171101;第53卷(第21期);正文第1-6节 *

Also Published As

Publication number Publication date
CN109377495A (zh) 2019-02-22

Similar Documents

Publication Publication Date Title
LaSalle et al. Multi-threaded graph partitioning
Sariyüce et al. Betweenness centrality on GPUs and heterogeneous architectures
Bahmani et al. Efficient distributed locality sensitive hashing
Meyerhenke et al. Partitioning complex networks via size-constrained clustering
LaSalle et al. Multi-threaded modularity based graph clustering using the multilevel paradigm
Hanai et al. Distributed edge partitioning for trillion-edge graphs
Hoang et al. Cusp: A customizable streaming edge partitioner for distributed graph analytics
JP5427640B2 (ja) 決定木生成装置、決定木生成方法、及びプログラム
Patwary et al. Window-based streaming graph partitioning algorithm
CN108052535B (zh) 基于多处理器平台的视觉特征并行快速匹配方法和系统
CN111538867A (zh) 一种有界增量图划分方法和系统
CN111209106B (zh) 一种基于缓存机制的流式图划分方法和系统
CN109377495B (zh) 一种支持增量分割的大规模图分割方法
Wheatman et al. Streaming sparse graphs using efficient dynamic sets
Ji et al. Local graph edge partitioning
Li et al. Group reassignment for dynamic edge partitioning
Gottesbüren et al. Deterministic parallel hypergraph partitioning
Vu et al. R*-grove: Balanced spatial partitioning for large-scale datasets
Li et al. A two-phase method to balance the result of distributed graph repartitioning
Behera et al. An efficient modularity based algorithm for community detection in social network
Ou et al. Parallel remapping algorithms for adaptive problems
CN108334532A (zh) 一种基于Spark的Eclat并行化方法、系统及装置
Ahmed et al. Web-scale multi-task feature selection for behavioral targeting
Bae et al. Label propagation-based parallel graph partitioning for large-scale graph data
Sakouhi et al. An overview of recent graph partitioning algorithms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20211112