CN109614520A - 一种面向多模式图匹配的并行加速方法 - Google Patents
一种面向多模式图匹配的并行加速方法 Download PDFInfo
- Publication number
- CN109614520A CN109614520A CN201811228936.4A CN201811228936A CN109614520A CN 109614520 A CN109614520 A CN 109614520A CN 201811228936 A CN201811228936 A CN 201811228936A CN 109614520 A CN109614520 A CN 109614520A
- Authority
- CN
- China
- Prior art keywords
- ideograph
- mode
- matching
- layer
- picture
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向多模式图匹配的并行加速方法。本方法为:1)生成目标领域的模式图集的多模式图索引;2)对所述多模式图索引采用逐层分组策略,即对所述多模式图索引中每一层出现的模式图进行评估,得到该层中每个模式图的匹配代价,然后根据匹配代价对该层的模式图进行分组;3)对不同分组分别分配一线程同时进行匹配计算。本发明通过采用PatternTree索引构建算法挖掘模式图间存在的结构相关性,对于结构相关性较弱的模式图设计并行匹配策略进一步提升匹配性能。
Description
技术领域
本发明提出一种面向多模式图匹配的并行加速方法,属于计算机软件技术领域。
背景技术
在大数据时代,数据规模不断扩大,数据结构日益复杂,数据间的关联更加紧密,这些特点给大数据分析带来巨大挑战。图作为一种广泛应用的数据结构,可以有效刻画紧密关联的数据,众多领域的实际问题都可以转化为图上的计算问题,例如图像分析、生物数据分析、社交网络分析、隐私保护等。图模式匹配技术(Graph Pattern MatchingTechnology)通过对大规模图数据上关联关系的高效查询,是解决上述复杂图数据分析和挖掘问题的重要手段,它已成为近年来学术界和工业界广泛关注的问题之一。
子图同构(Subgraph Isomorphism)是图模式匹配的一类基础问题,对于给定的数据图和模式图,子图同构算法实现在数据图中查找与模式图的结构和属性完全一致的所有子图。该问题属于NP完全问题,众多启发式算法通过优化匹配顺序、剪枝策略不断提高匹配性能。近年来,随着数据规模的扩大和硬件水平的提高,利用并行计算、GPU等方式优化匹配性能的技术方兴未艾。而现有算法主要针对单模式图匹配进行性能提升,将待匹配的模式图看作独立的目标实现匹配优化和性能评估。
然而在实际应用中,存在许多应用场景需要批量处理模式图,例如,在网络安全领域中,网络可以按照以IP地址为结点,通信关系为边,转换为图数据结构,将网络中的各类攻击事件抽象为模式图,通过在通信网络中实时匹配这些模式图实现对网络攻击事件的监测;在社交网络分析中,以用户为结点,用户间的好友关系、粉丝关系为边构建社交关系网络,关注的社团和人物可以用其所在的关系子网络表示,通过图模式匹配实现社团推荐、人物推荐等任务;在生物科学领域中,蛋白质结构本身就是一种图结构,对于各类未知特性的蛋白质,研究者可以在已知功能特性的数据库中搜索与其相似的结构,来推测其功能和特性。在上述应用中,需要同时匹配多个模式图,这些模式图间通常存在重复结构,而现有图模式匹配算法主要针对单一模式图进行处理,在处理批量模式图匹配问题上,采用串行匹配策略,忽略了模式图之间的结构相关性,造成了匹配过程中的大量冗余计算。
现有的图模式匹配加速技术主要包括三个方面:基于数据图索引的匹配加速技术、基于数据图并行的匹配加速技术、基于GPU的匹配加速技术。基于数据图索引的匹配加速技术主要通过挖掘数据图中有辨别力的特征建立倒排索引,在匹配过程中首先通过索引快速缩小搜索空间,再对小规模的备选集合进行精确匹配,从而达到加速匹配的目的。基于数据图并行的匹配加速技术,通过将数据图划分为若干子图,采用多个计算节点对每部分数据子图进行匹配计算,最后合并每个子图的匹配结果,这类算法主要面临两个技术挑战:一是如何均衡划分数据图,二是如何对匹配结果进行高效合并。基于GPU的匹配加速技术,充分发挥GPU的并行处理能力,将匹配计算量较大搜索剪枝部分由CPU迁移到GPU以提升整体匹配性能。
综上所述,目前的图匹配加速技术主要针对单一模式图匹配问题从构建数据图索引、划分数据图进行分布式计算、借助高性能GPU完成密集计算等角度实现匹配加速。然而,在处理多个模式图时,现有算法仍将每个模式图视为独立个体采用串行策略进行匹配,其中存在不同程度的冗余计算。针对单个模式图串行匹配存在冗余计算的问题,多模式图匹配技术应运而生,该类技术的核心思想是基于模式图间存在的结构关联,挖掘存在于模式图中的重复结构(子结构),从而定义基于重复结构(子结构)的最优匹配策略,通过降低对相同结构的重复匹配提升匹配性能。但是现存多模式图匹配技术还不够成熟,对于结构相关性较弱的模式图没有高效的并行处理方式,多模式图匹配技术的性能还有待提高。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种面向多模式图匹配的并行加速方法。本发明采用PatternTree索引构建算法挖掘模式图间存在的结构相关性,对于结构相关性较弱的模式图设计并行匹配策略进一步提升匹配性能。
本发明的技术方案为:
一种面向多模式图匹配的并行加速方法,其步骤包括:
1)生成目标领域的模式图集的多模式图索引;
2)对所述多模式图索引采用逐层分组策略,即对所述多模式图索引中每一层出现的模式图进行评估,得到该层中每个模式图的匹配代价,然后根据匹配代价对该层的模式图进行分组;
3)对不同分组分别分配一线程同时进行匹配计算。
进一步的,生成所述多模式图索引的方法为:首先生成所述模式图集的模式关联图;所述模式关联图是一个由模式图为结点、模式图间同构关系为边的有向无环图,记录模式图集中所有的子图同构关系;然后基于所述模式关联图构建的确定根结点情况下的最小生成树作为所述多模式图索引。
进一步的,对于所述模式关联图中,如果一个节点具有多个父节点,则保留该节点与其多个父节点的所有有向边中权重最小的边,其余的边删除,形成所述最小生成树。
进一步的,模式图Pi与Pj之间的有向边Eij的权重为Score(j,i)=|Vj|-|Vi|+|Ej|-|Ei|;其中,|Vi|代表模式图Pi的结点数,|Ei|代表模式图Pi的边数,|Vj|代表模式图Pj的结点数,|Ej|代表模式图Pj的边数。
进一步的,得到每个模式图的匹配代价的方法为:首先根据模式图是否存在同构子图将模式图分为基础模式图和扩展模式图;其中,所述基础模式图是指在模式图集P={P1,P2,…,Pn}中,如果Pi∈P并且Pi的任意子图不属于P,那么Pi称为基础模式图,P为模式图Pi所在层的模式图集合;所述扩展模式图是指在模式图集P={P1,P2,…,Pn}中,如果Pi∈P并且存在Pi的某一子图属于P,那么Pi称为扩展模式图;然后对于基础模式图,其匹配代价为Cost(pi)=|Ni|*(|Vi|+|Ei|),其中,Ni表示模式图Pi待匹配的数据规模,Vi和Ei分别表示模式图Pi中结点和边的集合;对于扩展模式图,其匹配代价为Cost(pj)=|IF(j)|*Score(j,F(j)),其中,F(j)代表模式图pj的父模式图,IF(j)表示F(j)在模式图pj所在层的上一层的匹配结果,Score(j,F(j))表示模式图pj与模式图F(j)在所述多模式图索引中所对应边的权重。
进一步的,根据匹配代价对同一层的模式图进行分组的方法为:基于模式图的匹配代价,采用分割问题中的完全贪心算法实现模式图的分组:首先根据模式图的匹配代价计算模式图的权重,将同一层中的模式图分为权重之和相差最小的若干组。
进一步的,根据模式图的权重对模式图进行降序排列,选择前k个模式图作为初始分组结果,对剩余的每个模式图选择当前权重之和最小的组加入,直到所有模式图被划分到各个组。
进一步的,所述步骤3)中,对于每组内的模式图,采用基于模式图索引的串行匹配策略进行匹配计算,其方法为:对于每一个模式图p,首先判断该模式图p是否存在父模式图,如果不存在父模式图,则按照传统子图同构方式在数据图中进行匹配;如果存在父模式图,则基于父模式图的匹配结果,仅对模式图p去除同构的父模式图的部分进行匹配。
进一步的,所述步骤3)中,设置一阈值l,当匹配层数不超过该阈值l时,对同一层内的各组采用并行匹配计算方式;当匹配层数大于该阈值l时,对同一层内的各组采用串行匹配计算方式。
进一步的,所述阈值l=2,同一层内的并行线程数为4。
进一步的,所述目标领域包括但不限于网络安全领域、社交网络领域、生物科学领域。
本发明提出一种多模式图匹配算法ParaPatternTreeISO,算法的框架图如图1所示,首先根据输入的模式图集,构建多模式图索引,根据索引结构进行广度优先遍历,对于遍历得到的每一层模式图集进行并行匹配,下层模式图的匹配结果依赖于上层模式图的匹配结果。
在并行匹配阶段,本发明设计了启发式分组算法,保证划分的每组模式图间的计算负载均衡。同时,针对随着匹配索引层数加深,总匹配时间迅速降低而分组计算代价不断增加的问题,本发明提出一种“并行+串行”匹配优化策略,在并行匹配达到某一深度后采用串行匹配,从而达到整体匹配性能最优。本发明关键技术包括:
1、在并行匹配阶段,本发明设计了启发式分组算法,保证划分的每组模式图间的计算负载均衡。
2、本发明提出一种“并行+串行”匹配优化策略,在并行匹配达到某一深度后采用串行匹配,从而达到整体匹配性能最优。
3、本发明提出一套完整的多模式图匹配算法ParaPatternTreeISO,算法的匹配性能明显提高。
本申请提案的一种面向多模式图匹配的并行加速方法,解决了已有多模式图匹配算法中存在的两大技术挑战,提升了算法的匹配效率,具体优点如下:
1、在并行匹配阶段,本发明设计了启发式分组算法,保证划分的每组模式图间的计算负载均衡,从而充分利用了并行资源,提升了算法的效率。
2、本发明提出的“并行+串行”匹配优化策略,在并行匹配达到某一深度后采用串行匹配,从而达到整体匹配性能最优。
3、本发明针对多模式图匹配方法,研究整个匹配过程,为每个过程选择最优的操作方式,设计出一套完整的多模式图匹配算法ParaPatternTreeISO,使得算法的性能明显提高。
附图说明
图1为多模式图并行匹配框架图;
图2为多模式图索引Pattern Tree构建过程图;
图3为多模式图匹配过程示意图;
图4为AIDS数据集上分组算法分析实验结果;
图5为Synthetic数据集上分组算法分析实验结果;
图6为AIDS数据集上分层参数分析实验结果;
图7为Synthetic数据集上分层参数分析实验结果;
图8为AIDS数据集上不同并行数下的并行匹配总时间;
图9为Synthetic数据集上不同并行数下的并行匹配总时间;
图10为AIDS数据集上不同并行数下的匹配加速比;
图11为Synthetic数据集上不同并行数下的匹配加速比;
图12为不同算法在AIDS数据集上的总匹配时间;
图13为不同算法在Synthetic数据集上的总匹配时间。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术核心作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提出的并行匹配算法主要包括四个关键过程:多模式图索引构建、模式图启发式分组、模式图并行匹配、“并行+串行”匹配优化策略,下面将分别从这四部分对算法进行详细介绍。
过程一:多模式图索引构建
构建了一种基于多模式图结构相关性的树型索引结构Pattern Tree,其主要构建过程为构建模式关联图与构建多模式图索引。模式关联图是一个由模式图为结点、模式图间同构关系为边的有向无环图,它记录了模式图集中所有的子图同构关系。针对模式图集中任意两个模式图,进行子图同构计算,子图同构的定义如下:
首先定义四元组(V,E,L,l)来表示无向无环图,其中V表示图中的结点集合,E表示图中边的集合,L表示属性集合,l表示属性映射函数,将结点和边映射到属性L的一个或一组属性中。
给定一个数据图D=(V,E,L,l)和一个模式图P=(V′,E′,L′,l′),如果P与D的任一子图满足双射函数f:
(1)
(2)
那么P与D间存在子图同构关系。
若两个模式图之间存在子图同构关系,则在模式关联图中用一条有向边表示,边的方向从规模小的模式图指向规模大的模式图,边上的权重值由两个模式图结点个数和边个数的差值计算得到。生成的模式关联图如图2所示,模式关联图中的根结点是虚拟结点。多模式图索引是一个基于上述模式关联图构建的确定根结点情况下的最小生成树。具体操作方法是在模式关联图中,每个节点与其多个父节点的所有有向边中,保留权重最小的边,其余的边删除,形成最小生成树。构建的模式图索引Pattern Tree如图2所示。多模式图索引的定义如下:
给定一个模式图集P={P1,P2,…,Pn},构建的多模式图索引是用于表示模式图之间结构相关性的树结构,索引中每个结点表示一个模式图。如果Pi∈P,Pj∈P,并且Pi是Pj的同构子图,那么在索引中存在有向边Eij,由Pi对应结点指向Pj对应结点,称Pi是Pj的父模式图,Pj是Pi的子模式图。其中有向边Eij的权重Score(j,i)根据以下公式计算:
Score(j,i)=|Vj|-|Vi|+|Ej|-|Ei|
其中,|Vi|,|Vj|分别代表模式图Pi和Pj的结点数,|Ei|,|Ej|分别代表模式图Pi和Pj的边数。
过程二:模式图启发式分组
基于多模式图索引的启发式分组算法的核心思想是对多模式图索引采用逐层分组策略,如图3所示,针对索引中每一层出现的模式图,通过评估每个模式图的匹配代价进行分组,保证组间的匹配代价相差最小,这里的层是按照当前节点与根节点的距离来划分的,将与根节点距离相同的节点属于同一层。分组结束后对该层进行并行匹配计算(图3中每层不同边框线型表示不同分组),当上层模式图全部匹配结束后,再开始下层模式图的计算。
对模式图匹配代价的评估将综合考虑待匹配数据规模和模式图自身规模。首先根据模式图是否存在同构子图将模式图分为基础模式图和扩展模式图,其定义如下:
基础模式图:在模式图集P={P1,P2,…,Pn}中,如果Pi∈P并且Pi的任意子图不属于P,那么Pi被称为基础模式图。
扩展模式图:在模式图集P={P1,P2,…,Pn}中,如果Pi∈P并且存在Pi的某一子图属于P,那么Pi被称为扩展模式图。
基础模式图和扩展模式图采用不同的匹配代价评估方法。基础模式图在多模式图索引中都处于第一层,所以将在待匹配数据集上直接采用子图同构算法进行匹配,其代价计算公式为:Cost(pi)=|Ni|*(|Vi|+|Ei|),其中,Ni表示模式图Pi待匹配的数据规模,定义为Pi包含的所有结点中,在待匹配数据集中备选结点数最少的数量(例如:Pi中包含标签为a的节点,也包含标签为b的节点,在待匹配节点中,有100个标签为a的节点,有50个标签为b的节点,则|Ni|取值为50。),Vi和Ei分别表示模式图Pi中结点和边的集合。扩展模式图匹配过程将基于其父模式图的匹配结果,因此,本发明定义其父模式图的匹配结果数量为扩展模式图待匹配数据的规模,其中,父模式图的匹配结果数量指上一层得到的匹配个数。其相对父模式图的剩余图规模作为扩展模式图在每个待匹配图上的匹配代价。因此每个扩展模式图的总匹配代价计算公式为:Cost(pj)=|IF(j)|*Score(j,F(j)),其中,F(j)代表扩展模式图pj的父模式图;IF(j)表示F(j)在上一层的匹配结果,Score(j,F(j))表示模式图pj与F(j)在模式图索引中对应边的权重(即模式图pj与F(j)之间的边的权重)。
基于模式图的匹配代价,采用分割问题(Partition Problem)中的完全贪心算法(Complete Greedy Algorithm,CGA)(Korf R E.Multi-Way Number Partitioning.[C]//Proceedings of the,International Joint Conference on Artificial Intelligence,Pasadena,California,Usa,July.DBLP,2009:538-543.)实现模式图的分组。算法1描述了针对模式图索引树每层进行启发式分组的算法,输入是模式图集P,模式图在索引中所处深度的统计结果PatternLis,索引树深度i、分组数k,输出为该层模式图分组结果groupRes。算法首先根据匹配代价公式计算所有模式图的权重,将模式图及其对应权重值保存在PatternWeight中(行1),在分组算法中,将模式图分为权重之和相差最小的若干组。为了降低时间复杂度,首先将patternWeight进行降序排列(行2),选择前k个模式图作为初始分组结果,对剩余的每个模式图选择当前权重之和最小的组加入,直到所有模式图被划分到各个组(行3-6)。
算法1:Algorithm 1:heuristicGroupMethod(P,PatternList,I,k)
Input:pattern graph set P,pattern depth info PatternList,depth num i,split num k;
Output:grouping results groupRes;
1:PatternWeight=computePatternWeight(P,PatternList,i)
2:sort PatternWeight from largest to smallest by the weight ofpattern
3:select kth patterns as the first element of each group
4:for the last patterns do
5:adding it to which group has smallest weight sum.
6:end for。
过程三:模式图并行匹配
在每一层的模式图分组完成后,各组间的模式图相互独立,进行并行匹配。对于每组内的模式图,采用基于模式图索引的串行匹配策略,下面详细介绍串行匹配过程。对于每一个模式图p,首先根据过程一中构建的模式图索引判断该模式图p是否存在父模式图,如果不存在父模式图,则按照传统子图同构方式在数据图中进行匹配;如果存在父模式图,则基于父模式图的匹配结果,仅对剩余图部分进行匹配(即仅对模式图p去除同构的父模式图的部分进行匹配)。
算法2给出了上述模式图匹配过程的伪代码,算法首先初始化父模式图ID为-1(行1,将当前处理的模式图P的父模式图ID初始化为-1)。根据模式图同构关系表和当前模式图ID,查找模式图对应的父模式图(行2)。如果父模式图ID为初始值,则说明该模式图,可以接入现有模式图匹配算法(如VF2)进行计算并保存结果(行3-5)。如果父模式图ID不为初始值,说明该模式图为扩展模式图,算法首先抽取出当前模式图相对于父模式图的剩余图(行7)、从匹配结构中取出父模式图的匹配结果(行8)、从同构模式图结点对应表中得到父-子模式图结点对应关系(行9),将以上结果作为输入计算扩展模式图的匹配结果(行10),最后更新总匹配结果(行11)。
算法2:Algorithm 2:computePatternMatching(P,D,Parent_Child,patternId,Rel,Res)
Input:pattern graph set P,data graph set D,pattern relationshipParent_Child,pattern graph id patternId,pattern vertex map Rel,matching resRes;
Output:matching res Res;
1:Initialize parentId=-1
2:parentId=getParentId(Parent_Child,patternId)
3:if parentId is-1do
4:compute use any graph matching algorithm and save the results inRes
5:else
6:ResidualGraph=computeResidualGraph(P,patternId,parentId)
7:parentRes=getParentRes(Res,parentId)
8:vertexMap=getVertexMap(Rel,patternId,parentId)
9:computeExtendPattern(ResidualGraph,parentRes,vertexMap,D,Res)
10:end if
11:update Res。
过程四:“并行+串行”匹配优化策略
通过实验分析发现,当匹配层数加深时,对每层模式图的并行匹配总时间逐渐增加,甚至超过串行匹配总时间。实验结果表明,随着匹配层数增加待匹配的模式图相应的备选数据图规模显著减小,总匹配时间迅速降低。基于这一问题,本发明设计了“并行+串行”的匹配优化方案。如图3所示,在进行模式图匹配过程中,引入阈值l,当匹配层数不超过l时,采用并行计算方式,当深度大于l时,采用串行计算方式。l的设置对匹配性能的影响将在实验部分进行分析。
积极效果
为验证本发明提出的多模式图并行匹配算法ParaPatternTreeISO在多模式图匹配问题上的性能,本节进行了多组实验分析:(1)对比启发式分组和随机分组对多模式图匹配性能的影响,评估启发式分组算法的效果;(2)分析“并行+串行”优化策略中并行和串行分界层数的变化对多模式图匹配性能的影响;(3)分析设置不同并行数对多模式图匹配性能的影响;(4)对比并行匹配算法与现有图模式匹配算法的性能,包括目前性能领先的多模式图匹配算法PatternTreeISO以及应用最广泛的单模式图匹配算法VF2(Cordella L P,Foggia P,Sansone C,et al.A(Sub)Graph Isomorphism Algorithm for Matching LargeGraphs[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2004,26(10):1367-1372.)。为与现有算法进行公平比较,本算法中采用与PatternTreeISO相同的子图同构算法。本节实验所对比的三种算法是针对多模式图匹配任务,基于同一种典型子图同构算法的三种不同实现方式:串行处理(VF2)、考虑结构相关性的批量处理(PatternTreeISO)、考虑结构相关性和并行计算的批量处理(ParaPatternTreeISO)。本发明的算法同样可以与其他子图同构算法结合。
所有实验的硬件环境为3.60GHz CPU、32GB内存、4核服务器,操作系统为64位Linux系统。实验部分对匹配性能的评价指标是总匹配时间。本发明提出的多模式图并行匹配算法包括索引构建和匹配计算两个过程,它的总匹配时间指完成上述两个过程的时间之和。实验中单模式图匹配算法的总匹配时间指每个模式图单独完成匹配所用的时间之和。
实验将在AIDS和Synthetic两个数据集上进行测试。AIDS数据集来源于生物科学数据,包含10,000个结构稀疏的无向图,其中每个无向图表示一种化学物质的原子结构,且数据图结构一般为链条状。Synthetic数据集是由图生成工具GraphGen生成,GraphGen可以生成一系列有属性的连通图,结点度数服从正态分布。该生成数据集包含30,000个数据图,平均每个图包含的边数为30,每个图的密度为0.3,不同的结点/边的属性数目为50。
本文采用论文(Zhou M Z,Yu J,Liu Y B,et al,PatternTreeISO:A PatternGraph Correlation Framework for AcceleratingSubgraph Isomorphism over LargeGraphs[C],ACM CIKM 2016Workshops:the 1stworkshop on Big Network Analytics(BigNet'16),2016;Ren X,Wang J.Multi-query optimization for subgraphisomorphism search[J].Proceedings of the VLDB Endowment,2016,10(3):121-132.)等使用的子图生成方法生成模式图集,为保证测试更符合真实情况,模式图集由规模大小不同的模式图组成。首先根据边规模从4到24(4,8,12,16,20,24),生成6组不同规模的模式图集,每组模式图的个数为1000,然后从不同规模的模式图集中抽选模式图组成测试所需模式图集。例如规模为600的模式图集中,包括边数为4、8、12、16、20、24的模式图各100个。对于每一个数据集,最终生成了规模为600、1800、3000的三种模式图集用于实验测试。
四组实验的实验结果及分析如下:
(1)分组算法影响分析
实验首先按照本发明提出的启发式分组算法,将模式图索引各层模式图集分为n个子集,测试模式图集的整体总匹配时间,然后将启发式分组算法由随机分组算法代替测试整体总匹配时间,这里随机分组算法采用的是按照模式图个数进行均分。由于测试环境为4核服务器,设置n=4。同时为了验证算法的可扩展性,实验针对三种不同规模模式图(600,1800,3000)进行测试。
图4-图5所示的分别是在AIDS和Synthetic两个不同数据集上进行启发式分组测试的实验结果,横坐标表示模式图规模,纵坐标表示模式图集的总匹配时间,图中每个模式图规模对应两个总匹配时间,分别为采用启发式分组算法和采用随机分组算法的总匹配时间。从实验结果来看,总匹配时间随着模式图集规模变化,在两个数据集上表现出了相同的上升趋势,并且采用启发式分组算法的匹配时间在任何规模数据集上均优于随机分组。在AIDS数据集上,采用启发式分组算法的总匹配时间是随机分组算法的71.4%~90.4%,在Synthetic数据集上,采用启发式分组算法的总匹配时间是随机分组算法的75%-84.9%。相比于启发式分组算法,随机分组算法的匹配性能不稳定,从整体趋势上看,模式图规模越大,两者的差距越明显,启发式分组算法的优势越明显。
(2)分层参数影响分析
根据预先统计发现,模式图索引层数一般为6层或6层以上,因此,实验中我们设定并行和串行匹配分界层数l的值由1变化到6,统计不同l对应的总匹配时间,观察阈值对实验结果的影响。
图6-图7展示了AIDS和Synthetic数据集上的测试结果,横坐标表示模式图集规模,纵坐标表示总匹配时间,每个模式图集规模对应6个总匹配时间,分别为l=1至6时的总匹配时间。实验结果证明,随着l值的增长,总匹配时间首先呈下降趋势,从某一值开始,总匹配时间又呈现上升趋势。在AIDS数据集上,l=2时,整体匹配时间最低。在Syntehtic数据集上,当数据规模小于1800且l=2和l=3时,总匹配时间最低,当模式图规模扩大到3000时,l=2时,总匹配时间最短。从总体上看,l=2时在两个数据集上获得最佳匹配性能。这是由多模式图索引结构造成的,基于Pattern Tree算法生成的多模式图索引,第一层为基础模式图,第二层为最小的扩展模式图,经过两层的过滤之后,待匹配的数据集规模迅速降低。因此在匹配过程中,计算量主要集中在前两层,第三层开始候选待匹配数据集的规模迅速下降,总匹配时间也迅速下降,这时采用串行匹配策略,避免并行匹配额外产生的模式图分组和并发开销,可以有效提升整体匹配性能。
(3)并行数影响分析
本节通过实验分析并行数对多模式图匹配性能的影响。根据实验(2)的最佳匹配结果,本节设置并行匹配算法中并行和串行匹配分界层数l=2,在1~32范围内变化并行数,计算总体匹配时间,分析并行数对并行算法匹配性能的影响。
图8-图9展示了AIDS和Synthetic数据集上,总匹配时间和并行数的折线图,横坐标表示并行数,纵坐标表示总匹配时间,实验中仍然选择3组不同规模的模式图集进行实验。实验结果表明,在不同规模数据集上,总匹配时间随着并行数变化的趋势是一致的。当并行数为4时,总匹配时间达到稳定,之后并行数增加,总匹配时间没有明显下降趋势,反而在Synthetic数据集上表现出轻微的上升趋势。
图10-图11所示的是AIDS和Synthetic数据集上,加速比(并行总匹配时间与串行总匹配时间比值)和并行数的关系,该柱状图更好的展示了折线图所表现的变化趋势,说明,在并行数为4时,整体匹配性能最优,此时,总匹配时间提升了2.31~3.03倍。根据实验结果,我们也发现并行数的选择与实验环境也存在依赖关系,因此,在选择并行数时应根据环境进行配置。
(4)多模式图匹配算法性能对比
本节将并行匹配算法与现有图模式匹配算法的性能进行对比,包括目前性能领先的多模式图匹配算法PatternTreeISO以及应用最广泛的单模式图匹配算法VF2。设置并行和串行匹配分界层数l=2,并行数为4。
图12-图13所示的是不同匹配算法分别在AIDS和Synthetic数据集上的匹配总时间对比,随着模式图集规模的扩大,多模式图匹配算法ParaPatternTreeISO、PatternTreeISO的匹配性能均显著优于串行匹配算法VF2,ParaPatternTreeISO的总匹配时间与VF2相比,在Synthetic数据集上提高了2.28~2.71倍,而在数据图结构较复杂的数据集AIDS上,匹配性能提高了9.60~16.09倍,表现出了更明显的优势。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体,但并不能因此理解为对本发明专利范围的限制。应当指出,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应当以所附权利要求为准。
Claims (10)
1.一种面向多模式图匹配的并行加速方法,其步骤包括:
1)生成目标领域的模式图集的多模式图索引;
2)对所述多模式图索引采用逐层分组策略,即对所述多模式图索引中每一层出现的模式图进行评估,得到该层中每个模式图的匹配代价,然后根据匹配代价对该层的模式图进行分组;
3)对不同分组分别分配一线程同时进行匹配计算。
2.如权利要求1所述的方法,其特征在于,生成所述多模式图索引的方法为:首先生成所述模式图集的模式关联图;所述模式关联图是一个由模式图为结点、模式图间同构关系为边的有向无环图,记录模式图集中所有的子图同构关系;然后基于所述模式关联图构建的确定根结点情况下的最小生成树作为所述多模式图索引。
3.如权利要求2所述的方法,其特征在于,对于所述模式关联图中,如果一个节点具有多个父节点,则保留该节点与其多个父节点的所有有向边中权重最小的边,其余的边删除,形成所述最小生成树。
4.如权利要求3所述的方法,其特征在于,模式图Pi与Pj之间的有向边Eij的权重为Score(j,i)=|Vj|-|Vi|+|Ej|-|Ei|;其中,|Vi|代表模式图Pi的结点数,|Ei|代表模式图Pi的边数,|Vj|代表模式图Pj的结点数,|Ej|代表模式图Pj的边数。
5.如权利要求1所述的方法,其特征在于,得到每个模式图的匹配代价的方法为:首先根据模式图是否存在同构子图将模式图分为基础模式图和扩展模式图;其中,所述基础模式图是指在模式图集P={P1,P2,…,Pn}中,如果Pi∈P并且Pi的任意子图不属于P,那么Pi称为基础模式图,P为模式图Pi所在层的模式图集合;所述扩展模式图是指在模式图集P={P1,P2,…,Pn}中,如果Pi∈P并且存在Pi的某一子图属于P,那么Pi称为扩展模式图;
然后对于基础模式图,其匹配代价为Cost(pi)=|Ni|*(|Vi|+|Ei|),其中,Ni表示模式图Pi待匹配的数据规模,Vi和Ei分别表示模式图Pi中结点和边的集合;对于扩展模式图,其匹配代价为Cost(pj)=|IF(j)|*Score(j,F(j)),其中,F(j)代表模式图pj的父模式图,IF(j)表示F(j)在模式图pj所在层的上一层的匹配结果,Score(j,F(j))表示模式图pj与模式图F(j)在所述多模式图索引中所对应边的权重。
6.如权利要求1所述的方法,其特征在于,根据匹配代价对同一层的模式图进行分组的方法为:基于模式图的匹配代价,采用分割问题中的完全贪心算法实现模式图的分组:首先根据模式图的匹配代价计算模式图的权重,将同一层中的模式图分为权重之和相差最小的若干组。
7.如权利要求6所述的方法,其特征在于,根据模式图的权重对模式图进行降序排列,选择前k个模式图作为初始分组结果,对剩余的每个模式图选择当前权重之和最小的组加入,直到所有模式图被划分到各个组。
8.如权利要求1所述的方法,其特征在于,所述步骤3)中,对于每组内的模式图,采用基于模式图索引的串行匹配策略进行匹配计算,其方法为:对于每一个模式图p,首先判断该模式图p是否存在父模式图,如果不存在父模式图,则按照传统子图同构方式在数据图中进行匹配;如果存在父模式图,则基于父模式图的匹配结果,仅对模式图p去除同构的父模式图的部分进行匹配。
9.如权利要求1所述的方法,其特征在于,所述步骤3)中,设置一阈值l,当匹配层数不超过该阈值l时,对同一层内的各组采用并行匹配计算方式;当匹配层数大于该阈值l时,对同一层内的各组采用串行匹配计算方式。
10.如权利要求9所述的方法,其特征在于,所述阈值l=2,同一层内的并行线程数为4;所述目标领域包括但不限于网络安全领域、社交网络领域、生物科学领域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811228936.4A CN109614520B (zh) | 2018-10-22 | 2018-10-22 | 一种面向多模式图匹配的并行加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811228936.4A CN109614520B (zh) | 2018-10-22 | 2018-10-22 | 一种面向多模式图匹配的并行加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614520A true CN109614520A (zh) | 2019-04-12 |
CN109614520B CN109614520B (zh) | 2021-06-04 |
Family
ID=66002476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811228936.4A Active CN109614520B (zh) | 2018-10-22 | 2018-10-22 | 一种面向多模式图匹配的并行加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614520B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510454A (zh) * | 2020-04-15 | 2020-08-07 | 中国人民解放军国防科技大学 | 一种面向模式图变化的连续子图匹配方法、系统及设备 |
CN111737538A (zh) * | 2020-06-11 | 2020-10-02 | 浙江邦盛科技有限公司 | 一种基于事件驱动的图模式逆向实时匹配方法 |
CN112559807A (zh) * | 2020-12-03 | 2021-03-26 | 浙江邦盛科技有限公司 | 一种基于多源点并行探索的图模式匹配方法 |
CN114220479A (zh) * | 2021-12-10 | 2022-03-22 | 苏州浪潮智能科技有限公司 | 一种蛋白质结构预测方法、蛋白质结构预测装置及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521332A (zh) * | 2011-12-06 | 2012-06-27 | 北京航空航天大学 | 基于强模拟的图模式匹配方法、装置及系统 |
KR101719714B1 (ko) * | 2015-12-04 | 2017-03-24 | 경희대학교 산학협력단 | 동적 환경 소셜 네트워크 그래프에서 다중 제약 조건 그래프 패턴 매칭을 위한 효율적인 인덱스 갱신 방법 및 장치 |
US20170169133A1 (en) * | 2015-12-15 | 2017-06-15 | Oracle International Corporation | Efficient method for subgraph pattern matching |
CN107885797A (zh) * | 2017-10-27 | 2018-04-06 | 中国科学院信息工程研究所 | 一种基于结构相关性的多模式图匹配方法 |
-
2018
- 2018-10-22 CN CN201811228936.4A patent/CN109614520B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521332A (zh) * | 2011-12-06 | 2012-06-27 | 北京航空航天大学 | 基于强模拟的图模式匹配方法、装置及系统 |
KR101719714B1 (ko) * | 2015-12-04 | 2017-03-24 | 경희대학교 산학협력단 | 동적 환경 소셜 네트워크 그래프에서 다중 제약 조건 그래프 패턴 매칭을 위한 효율적인 인덱스 갱신 방법 및 장치 |
US20170169133A1 (en) * | 2015-12-15 | 2017-06-15 | Oracle International Corporation | Efficient method for subgraph pattern matching |
CN107885797A (zh) * | 2017-10-27 | 2018-04-06 | 中国科学院信息工程研究所 | 一种基于结构相关性的多模式图匹配方法 |
Non-Patent Citations (2)
Title |
---|
KAZUNORI SUGAWARA等: "A Hybrid Approach of Subgraph", 《DEXA 2018: DATABASE AND EXPERT SYSTEMS APPLICATIONS》 * |
WEI JIN等: "A Flexible Graph Pattern Matching Framework via Indexing", 《SSDBM 2011: SCIENTIFIC AND STATISTICAL DATABASE MANAGEMENT》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510454A (zh) * | 2020-04-15 | 2020-08-07 | 中国人民解放军国防科技大学 | 一种面向模式图变化的连续子图匹配方法、系统及设备 |
CN111510454B (zh) * | 2020-04-15 | 2022-03-15 | 中国人民解放军国防科技大学 | 一种面向模式图变化的连续子图匹配方法、系统及设备 |
CN111737538A (zh) * | 2020-06-11 | 2020-10-02 | 浙江邦盛科技有限公司 | 一种基于事件驱动的图模式逆向实时匹配方法 |
CN111737538B (zh) * | 2020-06-11 | 2023-12-26 | 浙江邦盛科技股份有限公司 | 一种基于事件驱动的图模式逆向实时匹配方法 |
CN112559807A (zh) * | 2020-12-03 | 2021-03-26 | 浙江邦盛科技有限公司 | 一种基于多源点并行探索的图模式匹配方法 |
CN112559807B (zh) * | 2020-12-03 | 2022-06-21 | 浙江邦盛科技股份有限公司 | 一种基于多源点并行探索的图模式匹配方法 |
CN114220479A (zh) * | 2021-12-10 | 2022-03-22 | 苏州浪潮智能科技有限公司 | 一种蛋白质结构预测方法、蛋白质结构预测装置及介质 |
CN114220479B (zh) * | 2021-12-10 | 2023-09-19 | 苏州浪潮智能科技有限公司 | 一种蛋白质结构预测方法、蛋白质结构预测装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109614520B (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614520A (zh) | 一种面向多模式图匹配的并行加速方法 | |
Li et al. | Quantitative function for community detection | |
Bortner et al. | Progressive clustering of networks using structure-connected order of traversal | |
CN104268629B (zh) | 一种基于先验信息和网络固有信息的复杂网络社区检测方法 | |
Kanawati | Licod: Leaders identification for community detection in complex networks | |
CN109615550A (zh) | 一种基于相似性的局部社团检测方法 | |
CN105868791A (zh) | 基于模糊聚类的多分辨率社区发现方法 | |
Liang et al. | Detecting community structure using label propagation with consensus weight in complex network | |
Hu et al. | A new algorithm CNM-Centrality of detecting communities based on node centrality | |
Wang et al. | Community discovery algorithm of complex network attention model | |
Zhang et al. | A hypothesis testing framework for modularity based network community detection | |
Priya et al. | Community Detection in Networks: A Comparative study | |
Yang et al. | Detecting community structure in networks via consensus dynamics and spatial transformation | |
Zardi et al. | A multi-agent homophily-based approach for community detection in social networks | |
CN107885797A (zh) | 一种基于结构相关性的多模式图匹配方法 | |
Hu et al. | An algorithm Walktrap-SPM for detecting overlapping community structure | |
Jin et al. | A center-based community detection method in weighted networks | |
CN108717551A (zh) | 一种基于最大隶属度的模糊层次聚类方法 | |
Wang et al. | Community detection based on minimum-cut graph partitioning | |
Bíró et al. | Political parties on facebook | |
Ferdowsi et al. | Generating high-quality synthetic graphs for community detection in social networks | |
Pei et al. | Survey of Community Structure Segmentation in Complex Networks. | |
Noveiri et al. | Community detection in social networks using ant colony algorithm and fuzzy clustering | |
Song et al. | Label propagation algorithm based on node similarity driven by local information | |
Chen et al. | Detecting overlapping community in complex network based on node similarity |
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 |