CN116680451A - 一种基于图相似度进行合并的方法、装置及存储介质 - Google Patents
一种基于图相似度进行合并的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN116680451A CN116680451A CN202310668510.5A CN202310668510A CN116680451A CN 116680451 A CN116680451 A CN 116680451A CN 202310668510 A CN202310668510 A CN 202310668510A CN 116680451 A CN116680451 A CN 116680451A
- Authority
- CN
- China
- Prior art keywords
- pattern
- graph
- tree
- node
- similarity
- 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
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 238000010276 construction Methods 0.000 claims abstract description 6
- 238000010586 diagram Methods 0.000 claims description 58
- 230000008569 process Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 10
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 claims description 3
- 238000000691 measurement method Methods 0.000 abstract 1
- 238000004422 calculation algorithm Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 5
- 102000004169 proteins and genes Human genes 0.000 description 4
- 108090000623 proteins and genes Proteins 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102000004190 Enzymes Human genes 0.000 description 1
- 108090000790 Enzymes Proteins 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于图相似度进行合并的方法、装置及存储介质,图相似度适用于衡量两张图之间相似程度的一种度量方法。基于图相似度进行合并的方法主要分为以下四个部分:图的序列集合和相似度定义、图之间相似度的计算、不同图的合并、对于合并图进行索引构建。本发明提出的方法可以通过计算不同图之间的相似度并进行合并不同图得到合并的图,因此可以保证在匹配该方法得到的合并图时依旧能毫秒级的返回结果,节省大量的存储空间,并加快多张图同时进行查询的速度。
Description
技术领域
本发明涉及图模式匹配领域,尤其涉及一种基于图相似度进行合并的方法、装置及存储介质。
背景技术
图模式匹配技术解决的问题是:给定一张模式图,要求在一张数据图中找出所有能够满足模式图约束的子图。早期的图模式匹配算法仅能够用在静态数据图上,即数据图的结构和内容都不会随时间发生改变。
然而,随着信息科技的快速发展,涉及日常生活各方面的移动应用层出不穷,这些应用持续产生大量的数据。随着时间流逝,使用这些数据构造的图在不断发生变化。在当前一些应用领域中,图模式匹配算法为了保证图匹配结果的实时性和有效性,需要在图的结构和内容都不断变化的同时,快速给出匹配结果。如何处理不断变化的图,并且在较低延时内给出准确匹配结果,是当前研究热点。
动态图模式匹配技术是当前用于分析动态图变化的重要技术,它解决如下问题:给定一张模式图,在一张动态变化的数据图中,对每一次数据图插入,能实时找出和模式图匹配的新增子图;对每一次数据图删除,能实时找出和模式图匹配的被删除子图。相比于传统方法,动态图模式匹配技术更适用于对实时性要求较高的场景。在生物分析领域中,蛋白质在和酶结合后,它的结构会发生改变,动态图匹配算法可以识别变化过程中的蛋白质是否和某一种蛋白质在结构上相吻合;在金融领域中,当有一条新的信用卡申请或用户转账事件时,算法要能快速识别出当前事件是否和金融诈骗相关,从而快速判断当前操作是否被允许。此外,在工业界中,一些大型企业也推出了自己的分布式并行图处理系统来解决大型动态图匹配问题。在网络安全检测领域中,面对不断新增的访问请求,算法要能快速且准确地识别出一条新请求是否可能是恶意攻击,从而快速判断是否需要拦截访问。此外,在工业界中,一些大型企业也推出了自己的分布式并行图处理系统来解决大型动态图匹配问题。
在网络安全APT攻击模式识别里,一些传统经典的攻击模式会首先被抽象建模成模式图的形式,然后针对线上实时接收网络数据包数据进行解析,从而进行实时的动态图模式匹配。
当前,许多动态图模式匹配算法通过构建索引保存中间结果。通过构建索引,当数据图结构或内容更新时,算法可以不需要在全图上执行静态图模式匹配算法,极大加快了动态图模式匹配的速度。但是,在实际使用场景中,通常存在多张模式图,现有算法需要为每一张模式图单独构建索引并进行匹配。如果模式图之间存在较大的公共部分,算法会存在时空开销都过大的问题。因此,当前需要一种能够解决上述问题的动态图模式匹配技术,能有效匹配多模式图,解决动态图模式匹配算法在实际使用过程中可能出现的问题。
发明内容
本发明的目的在于针对现有的多模式图匹配技术的不足,提出一种应用于流式大数据处理的基于图相似度进行合并的方法、装置及存储介质。该方法可以让用户可以同时查询多个查询图在数据图中对应的结果,并且提供了合理且有效的索引构建和结果匹配方法。
本发明可以通过计算图之间的相似度来合并不同的查询图得到更大的查询图。当使用合并后的查询图进行匹配时,可以同时对多张查询图构建索引和执行匹配,大大减少了冗余索引的构建和重复匹配的过程。
本发明的目的是通过以下技术方案来实现的:第一方面,本发明提供了一种基于图相似度进行合并的方法,该方法包括如下步骤:
(1)图序列集合的计算
给定一张图G=(V,E,L),对节点进行两跳遍历,得到遍历过程中的两条边e1,e2,将由这两条边组成的序列记为Seq(e1,e2)=(L(v1),L(e1),L(v2),L(e2),L(v3)),其中v1,v2,v3是e1,e2上的端点,v2是e1,e2共用的一个节点,L(v1)、L(v2)、L(v3)分别是v1,v2,v3对应的标签;依次遍历图G中所有节点,将这些节点能构成的边序列的集合称为图的边序列,记为Seq(G);对于一张图,将其所有图的边序列所组成的集合称为图序列集合;
(2)图之间相似度的计算
给定两张模式图Q1和Q2,这两张模式图之间的相似度定义如下:
其中Same()函数用于计算两个图的边序列中相同的序列,Size()函数用于计数;
(3)根据相似度合并不同模式图
初始化一个模式树集合,从初始模式图集合中取出一张模式图,计算当前模式图和剩下模式图之间的相似度,将相似度最高的两张模式图转换为模式树后合并在一起,并统计当前模式树中点的数量,如果模式树中点的数量大于预设阈值,则停止合并,将合并得到的模式树放入模式树集合中;重复此步骤,直到初始模式图集合中的模式图均已经被处理;
(4)为合并后模式图构建索引并进行匹配
在DCG中构建索引,包含当前索引对应原模式图的编号,以及每条边对应原模式图中索引的状态,在每条边上记录原本对应的模式图,并分别为这些模式图记录索引类型;索引构建完毕后,根据索引匹配结果。
进一步地,步骤(2)中,Q1是一张普通的模式图或者是合并后的模式图,Q2是一张普通的模式图。
进一步地,步骤(3)中,确定需要合并的两张模式图后进行朴素合并,对于每一条合并后的模式边,均包含一个集合S,该集合S中记录了部分未合并前的模式图的编号,这些模式图包含和当前模式边相同的边。
进一步地,模式图转换为模式树的具体过程包含两个步骤,第一步是选择模式图的一个点作为模式树的根节点,第二步是使用该根节点对模式图进行广度遍历,在遍历过程中根据访问顺序来构建模式树。
进一步地,步骤(4)中,匹配顺序需要根据DCG中索引构建情况来确定;具体为:首先要为每个合并前的模式树单独确定匹配顺序,在得到每个模式树的匹配顺序后,给出在实际匹配过程中遇到多个模式树相交处时,应该选择哪一个模式节点。
进一步地,遇到多个模式树相交处时,应该选择哪一个模式节点的方法具体为:遍历每个模式树的编号,对每个模式树,找到它的下一个匹配节点tempVertex;如果tempVertex为空,说明该节点是当前模式树中最后一个节点,匹配已经完成;如果不为空,则计算以该节点为子节点的显式边边数量,并进行统计;最后,从其中选出数量最少的模式节点作为下一个查询节点。
第二方面,本发明还提供了一种基于图相似度进行合并的装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述处理器执行所述可执行代码时,实现所述的一种基于图相似度进行合并的方法。
第三方面,本发明还提供了一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时,实现所述的一种基于图相似度进行合并的方法。
本发明的有益效果为:
1)相似度可以较好的衡量不同图之间拓扑关系的相似程度,以此来避免无效的合并查询图的过程,降低方法执行时间。
2)得到合并后的查询图之后,可以为该查询图构建索引和匹配结果。因此可以避免在系统中存储许多不同的查询图以及冗余的索引和中间结果,降低了管理查询图和索引的难度。通过使用合并后的查询图匹配结果也能提供更快的查询速度,提高了算法在时间和空间上的效率。
3)满足时空局部性要求。在实际应用场景中,最新的数据往往最常被访问,因此构建索引时需要将索引置于先访问的位置。旧一点的数据对于精确度要求不高,因此可以构建在匹配过程中最后的步骤中并根据当前的空间使用情况进行过期操作。
4)对于不同粒度的索引和查询图,可以将其存储在不同的存储介质上。根据时间局部性,最新的数据最常被访问,因此可以将其存储在内存中,对于不常用的索引可以将其存储在磁盘上。这种方法进一步提高了系统存储的指标数据容量上限。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1为一个合并不同模式图并在数据图中构建DCG的实例。
图2是本发明一种基于图相似度进行合并的装置的结构图。
具体实施方式
下面结合附图对本发明具体实施方式作进一步详细说明。
本发明提供的一种基于图相似度进行合并的方法,面向的是网络安全APT攻击模式识别场景,本发明可以根据当前的图匹配情况来合并不同的查询图,例如用户希望在一个图中进行多次查询,那么本发明就能将这些查询所使用的查询图进行合并,并使用合并的图进行查询。本发明提供一种计算不同图之间的相似度并根据该相似度对已有的查询图进行合并、构建索引和执行匹配的方法,使得用户能够根据已有多张的查询图合并得到一张大的查询图,减少重复查询的次数。本发明当前应用场景下的对应抽象算法模型中具有实际意义,其中点表示网络环境中的主机节点,点的ID就是该网络环境下的唯一主机标识。节点与节点之间的有向边代表了两者之间存在攻击且边的方向代表了攻击的方向。算法模型接入的数据流是由网络传感器检测到的网络数据包,从中可以解析出一个个元素事件,代表了主机A向主机B发起了一条攻击路径,抽象为算法描述中的一条有向边。至于点和边上的标签信息用于进一步描述相应的属性信息,比如边上的是具体的攻击形式,点上的是机器的IP、Mac地址等。后续为描述方便仍然采用原始的点边,不再赘述。
本发明方法包括以下步骤:
(1)图序列集合的计算:
用户需要根据当前业务来确定抽象图序列集合的过程中使用几跳的子结构来进行计算,通常使用两条构成的子结构。具体为:给定一张图G=(V,E,L),遍历图中的每一个点v,从该点开始进行两跳遍历,得到遍历过程中的两条边e1,e2,将由这两条边组成的序列记为Seq(e1,e2)=(L(v1),L(e1),L(v2),L(e2),L(v3)),其中v1,v2,v3是e1,e2上的端点,v2是e1,e2共用的一个节点,L(v1)、L(v2)、L(v3)分别是v1,v2,v3对应的标签。遍历图G中所有点,将这些点能构成的边序列的集合称为图的边序列,记为Seq(G)。对于一张图,将其所有图的边序列所组成的集合称为图序列集合。
(2)图之间相似度的计算:
用户得到所有查询图的边序列集合后,可以根据本方法给出的公式计算得到图之间的相似度,对每个查询图,将剩余查询图按相似度由高到低进行排序。给定两张模式图Q1和Q2,其中Q1可以是普通的模式图也可以是合并后的模式图,Q2是一张普通的模式图。这两张模式图之间的相似度定义如下:
其中Same()函数用于计算两个图的边序列中相同的序列,Size()函数用于计数。
(3)根据相似度合并不同查询图:
计算出不同查询图之间的相似度后,使用朴素的方法进行合并,得到合并后的查询图,并在后续使用该查询图构建索引和执行匹配。具体为:从初始模式图集合中取出一张模式图,计算当前模式图和剩下模式图之间的相似度,将相似度最高的两张模式图转换为模式树后合并在一起,首先选择一个点作为模式树的根节点,然后使用该根节点对模式图进行广度遍历,在遍历过程中根据访问顺序来构建模式树。本方法中模式图生成模式树包含两个步骤,第一步是选择一个点作为模式树的根节点,第二步是使用该根节点对模式图进行广度遍历,在遍历过程中根据访问顺序来构建模式树。通常根节点需要选择一个和数据图中匹配数量最少且度最低的点,这能保证搜索树的分支尽可能少。在构建出的模式树中,为每条边设置一个反向标记。将构建出的模式树看作有向图,对于其中边的实际指向和树中父子关系相反的边,将设置其对应标记为真,表示和实际方向相反。对于模式图中存在而模式树中不存在的边,记为当前模式树对应的非树边。这样就能将一个有向模式图转换得到单个模式树。
统计当前模式树中点的数量,如果模式树中点的数量大于预设阈值,停止合并,将得到的模式树放入合并后模式树集合中,因为过大的模式树可能会导致算法匹配速度下降,因此不把所有模式树都合并到一颗大的模式树中。重复上述步骤,直到原来的模式图都已经被合并,每次都选取相似度最高的进行合并,如果不相似即计算的相似度为0是不合并的,最终返回的是一个合并的模式图集合,不一定只剩一个。合并模式图是一个将两张模式图的最大公共子图合并的过程,该问题是一个NP完全问题,求解的过程非常耗时。因此,通过估计两张图最大公共子图大小的方法,如果两张图的最大公共子图中点边数量较少,能有效避免合并这两张图。合并可能包含多种方法,本方法中确定需要合并的两张图后进行朴素的合并尝试。对于每一条合并后的模式边,都包含一个集合S,该集合S中记录了部分未合并前的模式图的编号,这些模式图包含和当前模式边相同的边。合并后模式图的边除了记录本身标签以外,还需要包含这个信息。
(4)为合并后查询图构建索引:
不同的图模式匹配算法有不同的索引构建过程,此处以在DCG中构建索引为例。相比于原始DCG中存储的索引,本方法构建的索引除了包含当前索引对应原模式图的编号,还要包含每条边对应原模式图中索引的状态。本方法的索引不同于DCG中每条边仅包含单一类型,而是在每条边上记录它原本对应哪些模式图,并分别为这些模式图记录索引类型。构建的索引中,每条边上会记录两个信息,一是原模式图编号,二是在原模式图中当前边对应的索引类型。索引构建使用合并后查询图在数据图中构建索引,能够一次为多个查询图同时构建索引,大大加快了索引构建的过程,且减少了重复索引的空间占用。图1展示了合并三个不同的查询图并在最左侧的数据图中构建索引的过程,下面详细介绍使用合并后查询图构建索引的过程。
a)构建和更新索引是一个递归的过程,对于一颗查询图中某一条查询边和数据图中的匹配边。使用当前查询边和数据边组合成DCG中一条边的键,在DCG中查找该边是否存在,如果不存在,需要构建出这个索引并把当前边对应原查询图边的类型设为隐性。判断当前索引的类型是否存在显性,如果存在,则认为当前数据边的子节点在当前查询边的子节点处的索引已经构建完毕,不需要再构建,直接结束;如果不存在,则需要判断DCG中以数据边子节点为子节点且以查询边子节点作为标签的边的数量。如果边的数量不为1,则说明数据边子节点已经以查询边子节点构建过索引,不需要重复构建;如果边的数量为1,则说明数据边子节点是第一次使用查询边子节点构建索引,接下来遍历查询边子节点所有子边,对于能和当前边相匹配的数据边子节点子边,调用构建索引的函数,尝试继续构建索引。
b)尝试完所有情况后,通过之前构建的索引来判断以查询边子节点为根节点的子模式树是否能在数据图中找到一个子图和其完全匹配。如果存在匹配,则可以将索引对应的隐性类型更新为显性类型,用来表示从数据边子节点开始,数据图中存在子图能和模式树中的子树完全匹配。
该过程的伪代码如下所示:
(5)使用索引为合并后查询图匹配结果的过程:
构建完索引之后,需要使用当前索引在图中进行结果匹配。本方法的匹配顺序需要根据数据图中索引构建情况来确定。不同匹配顺序会严重影响算法性能,因为算法的匹配过程本质上是在数据图上进行深度搜索,一个好的匹配顺序能减少大量无效递归函数的调用次数,从而加快图操作的处理速度。首先要为每个合并前的模式树单独确定匹配顺序。因为在合并后的模式树中,对于其中每一颗合并前模式树,其根节点可能处于树中不同的位置。如果直接为合并后的模式树确定匹配顺序,多数节点在实际匹配过程中可能无法用到。在得到每个模式树的匹配顺序后,给出在实际匹配过程中遇到多个模式树相交处时,应该选择哪一个模式节点的方法。该方法会遍历每个模式树的编号,对每个模式树,找到它的下一个匹配节点tempVertex。如果tempVertex为空,说明该节点是当前模式树中最后一个节点,匹配已经完成。如果不为空,则计算以该节点为子节点的显示边数量,并进行统计。最后,从其中选出数量最少的模式节点作为下一个查询节点。
DCG中边类型的定义:给定一张数据图G、一张模式图Q和一张数据中心图D,在模式图转换为一颗树之后,将该模式树的根节点记为us,将数据图中能和us相匹配的节点记为vs。对于D中的一条边e=(v,v`,ID(u`)),判断以下两个条件:
(1)该路径能够匹配和模式图中的一条路径us→Parent(u).u`相匹配;
(2)要求/>且subtree能和subtree`完全匹配;
对于上述两个条件,如果能同时满足,则称该条边为显式边(explicit edge)。如果仅能满足第一个,则称该条边为隐式边(implicit edge)。如果都不满足,则表示不需要在D中建立这条边,称为空边(null edge)。
下面详细介绍匹配结果的过程。
a)判断是否为和查询树根节点匹配的节点,如果是则需要进行一些初始化的操作。
b)判断当前查询节点是否已经存在匹配,如果已经存在,则需要判断非树边是否能够进行匹配。如果可以匹配则继续向下匹配,如果无法匹配则结束。如果不存在匹配,则搜索当前数据节点的子节点和查询节点进行匹配,找到匹配后继续向下匹配。
该过程的伪代码如下所示:
与前述一种基于图相似度进行合并的方法的实施例相对应,本发明还提供了一种基于图相似度进行合并的装置的实施例。
参见图2,本发明实施例提供的一种基于图相似度进行合并的装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,用于实现上述实施例中的一种基于图相似度进行合并的方法。
本发明提供的一种基于图相似度进行合并的装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本发明提供的一种基于图相似度进行合并的装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种基于图相似度进行合并的方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。
Claims (8)
1.一种基于图相似度进行合并的方法,其特征在于,该方法包括如下步骤:
(1)图序列集合的计算
给定一张图G=(V,E,L),对节点进行两跳遍历,得到遍历过程中的两条边e1,e2,将由这两条边组成的序列记为Seq(e1,e2)=(L(v1),L(e1),L(v2),L(e2),L(v3)),其中v1,v2,v3是e1,e2上的端点,v2是e1,e2共用的一个节点,L(v1)、L(v2)、L(v3)分别是v1,v2,v3对应的标签;依次遍历图G中所有节点,将这些节点能构成的边序列的集合称为图的边序列,记为Seq(G);对于一张图,将其所有图的边序列所组成的集合称为图序列集合;
(2)图之间相似度的计算
给定两张模式图Q1和Q2,这两张模式图之间的相似度定义如下:
其中Same()函数用于计算两个图的边序列中相同的序列,Size()函数用于计数;
(3)根据相似度合并不同模式图
初始化一个模式树集合,从初始模式图集合中取出一张模式图,计算当前模式图和剩下模式图之间的相似度,将相似度最高的两张模式图转换为模式树后合并在一起,并统计当前模式树中点的数量,如果模式树中点的数量大于预设阈值,则停止合并,将合并得到的模式树放入模式树集合中;重复此步骤,直到初始模式图集合中的模式图均已经被处理;
(4)为合并后模式图构建索引并进行匹配
在DCG中构建索引,包含当前索引对应原模式图的编号,以及每条边对应原模式图中索引的状态,在每条边上记录原本对应的模式图,并分别为这些模式图记录索引类型;索引构建完毕后,根据索引匹配结果。
2.根据权利要求1所述的一种基于图相似度进行合并的方法,其特征在于,步骤(2)中,Q1是一张普通的模式图或者是合并后的模式图,Q2是一张普通的模式图。
3.根据权利要求1所述的一种基于图相似度进行合并的方法,其特征在于,步骤(3)中,确定需要合并的两张模式图后进行朴素合并,对于每一条合并后的模式边,均包含一个集合S,该集合S中记录了部分未合并前的模式图的编号,这些模式图包含和当前模式边相同的边。
4.根据权利要求1所述的一种基于图相似度进行合并的方法,其特征在于,模式图转换为模式树的具体过程包含两个步骤,第一步是选择模式图的一个点作为模式树的根节点,第二步是使用该根节点对模式图进行广度遍历,在遍历过程中根据访问顺序来构建模式树。
5.根据权利要求1所述的一种基于图相似度进行合并的方法,其特征在于,步骤(4)中,匹配顺序需要根据DCG中索引构建情况来确定;具体为:首先要为每个合并前的模式树单独确定匹配顺序,在得到每个模式树的匹配顺序后,给出在实际匹配过程中遇到多个模式树相交处时,应该选择哪一个模式节点。
6.根据权利要求4所述的一种基于图相似度进行合并的方法,其特征在于,遇到多个模式树相交处时,应该选择哪一个模式节点的方法具体为:遍历每个模式树的编号,对每个模式树,找到它的下一个匹配节点tempVertex;如果tempVertex为空,说明该节点是当前模式树中最后一个节点,匹配已经完成;如果不为空,则计算以该节点为子节点的显式边数量,并进行统计;最后,从其中选出数量最少的模式节点作为下一个查询节点。
7.一种基于图相似度进行合并的装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述处理器执行所述可执行代码时,实现如权利要求1-6中任一项所述的一种基于图相似度进行合并的方法。
8.一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时,实现如权利要求1-6中任一项所述的一种基于图相似度进行合并的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310668510.5A CN116680451B (zh) | 2023-06-07 | 2023-06-07 | 一种基于图相似度进行合并的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310668510.5A CN116680451B (zh) | 2023-06-07 | 2023-06-07 | 一种基于图相似度进行合并的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116680451A true CN116680451A (zh) | 2023-09-01 |
CN116680451B CN116680451B (zh) | 2024-06-11 |
Family
ID=87783271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310668510.5A Active CN116680451B (zh) | 2023-06-07 | 2023-06-07 | 一种基于图相似度进行合并的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116680451B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080215520A1 (en) * | 2007-03-02 | 2008-09-04 | Xiaohui Gu | Method and system for indexing and serializing data |
CN104392010A (zh) * | 2014-12-23 | 2015-03-04 | 北京理工大学 | 一种子图匹配的查询方法 |
US20180329958A1 (en) * | 2017-05-12 | 2018-11-15 | Battelle Memorial Institute | Performance and usability enhancements for continuous subgraph matching queries on graph-structured data |
US20200134076A1 (en) * | 2018-10-25 | 2020-04-30 | Bank Of America Corporation | Methods and apparatus for a multi-graph search and merge engine |
US20200372020A1 (en) * | 2019-05-20 | 2020-11-26 | Looker Data Sciences, Inc. | Retroreflective join graph generation for relational database queries |
CN112395462A (zh) * | 2019-08-12 | 2021-02-23 | 中移(苏州)软件技术有限公司 | 在图数据流中查找匹配子图方法及装置、设备、存储介质 |
CN114915501A (zh) * | 2022-07-15 | 2022-08-16 | 北京微步在线科技有限公司 | 基于进程行为图的入侵事件检测方法、装置及电子设备 |
US20230089148A1 (en) * | 2021-09-17 | 2023-03-23 | Robert Bosch Gmbh | Systems and methods for interactive image scene graph pattern search and analysis |
CN116128525A (zh) * | 2022-10-31 | 2023-05-16 | 浙江邦盛科技股份有限公司 | 一种基于模式前缀共享的多模式图匹配查询方法及装置 |
CN116204532A (zh) * | 2023-03-27 | 2023-06-02 | 浙江邦盛科技股份有限公司 | 一种基于dcg的图索引迁移方法及装置 |
-
2023
- 2023-06-07 CN CN202310668510.5A patent/CN116680451B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080215520A1 (en) * | 2007-03-02 | 2008-09-04 | Xiaohui Gu | Method and system for indexing and serializing data |
CN104392010A (zh) * | 2014-12-23 | 2015-03-04 | 北京理工大学 | 一种子图匹配的查询方法 |
US20180329958A1 (en) * | 2017-05-12 | 2018-11-15 | Battelle Memorial Institute | Performance and usability enhancements for continuous subgraph matching queries on graph-structured data |
US20200134076A1 (en) * | 2018-10-25 | 2020-04-30 | Bank Of America Corporation | Methods and apparatus for a multi-graph search and merge engine |
US20200372020A1 (en) * | 2019-05-20 | 2020-11-26 | Looker Data Sciences, Inc. | Retroreflective join graph generation for relational database queries |
CN112395462A (zh) * | 2019-08-12 | 2021-02-23 | 中移(苏州)软件技术有限公司 | 在图数据流中查找匹配子图方法及装置、设备、存储介质 |
US20230089148A1 (en) * | 2021-09-17 | 2023-03-23 | Robert Bosch Gmbh | Systems and methods for interactive image scene graph pattern search and analysis |
CN114915501A (zh) * | 2022-07-15 | 2022-08-16 | 北京微步在线科技有限公司 | 基于进程行为图的入侵事件检测方法、装置及电子设备 |
CN116128525A (zh) * | 2022-10-31 | 2023-05-16 | 浙江邦盛科技股份有限公司 | 一种基于模式前缀共享的多模式图匹配查询方法及装置 |
CN116204532A (zh) * | 2023-03-27 | 2023-06-02 | 浙江邦盛科技股份有限公司 | 一种基于dcg的图索引迁移方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116680451B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10810257B2 (en) | Fast processing of path-finding queries in large graph databases | |
CN112287182B (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
US10521473B2 (en) | Shortest path computation in large networks | |
US7739269B2 (en) | Incremental repair of query plans | |
JP4814570B2 (ja) | あいまいな重複に強い検出器 | |
Leung et al. | Frequent pattern mining from time-fading streams of uncertain data | |
CN108959370B (zh) | 一种基于知识图谱中实体相似度的社区发现方法及装置 | |
US20150310644A1 (en) | Efficient representations of graphs with multiple edge types | |
KR20150076227A (ko) | 위치 정보를 가진 데이터 프로파일링 | |
CN110069431B (zh) | 基于RDMA和HTM的弹性Key-Value键值对数据存储方法 | |
Hao et al. | Distributed hop-constrained st simple path enumeration at billion scale | |
US20230056760A1 (en) | Method and apparatus for processing graph data, device, storage medium, and program product | |
US20110179013A1 (en) | Search Log Online Analytic Processing | |
CN108763536A (zh) | 数据库访问方法及装置 | |
Zhou et al. | Leveraging history for faster sampling of online social networks | |
US11875199B2 (en) | Real-time multi-pattern detection over event streams | |
CN106844736B (zh) | 基于时空网络的时空同现模式挖掘方法 | |
CN115905630A (zh) | 一种图数据库查询方法、装置、设备及存储介质 | |
CN115935020A (zh) | 一种图数据存储方法和装置 | |
CN116204532A (zh) | 一种基于dcg的图索引迁移方法及装置 | |
CN116680451B (zh) | 一种基于图相似度进行合并的方法、装置及存储介质 | |
CN111736774A (zh) | 冗余数据的处理方法、装置、服务器及存储介质 | |
CN116089487A (zh) | 查询流水线执行的调度 | |
CN112906824A (zh) | 车辆聚类方法、系统、设备及存储介质 | |
CN113407576A (zh) | 基于降维算法的数据关联方法及系统 |
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 |