System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于动态加权图的Top-k密集子图匹配方法和系统技术方案_技高网
当前位置: 首页 > 专利查询>湖南大学专利>正文

一种基于动态加权图的Top-k密集子图匹配方法和系统技术方案

技术编号:40363755 阅读:8 留言:0更新日期:2024-02-09 14:51
本发明专利技术公开了一种基于局部索引MWstar的Top‑k连续子图匹配方法,在保证常数时间的索引更新代价的同时提高查询效率,特别适用于处理大规模动态数据集。本发明专利技术能够解决现有的连续子图匹配方法并没有考虑加权图或Top‑k机制,通常只返回满足拓扑约束的所有匹配,而不考虑匹配的权重或优先级,导致需要对所有的子图按照密度降序排序的子图排序开销,以及子图搜索过程中无法提前剪枝导致的子图搜索开销的技术问题,以及现有基于静态场景下的Top‑k密集子图匹配方法存在巨大的索引维护开销的技术问题,以及上述两种方法由于都需要对数据图G’中的所有节点集合和边集合的范围内重新进行密集子图匹配的搜索,导致增加时间成本的技术问题。

【技术实现步骤摘要】

本专利技术属于图匹配和大数据,更具体地,涉及一种基于动态加权图的top-k密集子图匹配方法和系统。


技术介绍

1、连续子图匹配(continuous subgraph matching,简称csm)是动态图分析中的核心问题,广泛应用于检测现实世界动态图中的特定子图,如支付网络中的欺诈模式和通信网络中的攻击模式。在这些应用中,子图的优先级可能因其不同特性(如交易金额大小)而有所不同。例如,在支付网络的欺诈检测中,具有较大交易金额的欺诈行为需要更快地被检测出来,以便反欺诈人员能更迅速地做出响应。类似地,在通信网络中,具有高数据传输率的攻击模式应该得到更高的响应优先级。因此,这就需要在动态图的场景下,对于数据图的边引入权重属性,旨在搜索到即满足密度限制,又符合子图拓扑结果的子图集合,以保证分析人员能更加精准的定位问题。而基于动态加权图top-k密集子图匹配方法主要是在动态加权图中进行连续子图匹配,并报告与查询图匹配且密度最高的前k个子图。即给定一个查询图q,以及一个加权数据图g,以及更新流△。对于△中的某一更新操作ot,该方法旨在找到将更新操作ot应用于数据图g后,此时匹配查询图q且密度最大的的前k个子图。这一问题扩展了传统的连续子图匹配方法,不仅要求匹配查询图,还要求这些匹配在权重(如交易额、数据传输量)方面拥有最高的密度。

2、现有的子图匹配的方法主要有二种:第一种是连续子图匹配方法,该方法对于更新流中的某一更新操作ot,在数据图g中找到所有与查询图q中节点相匹配的所有子图,然后对于所有的匹配子图计算其密度,并按照密度降序排序,最后选取前k个作为最后的top-k密集子图集合。第二种基于静态场景下的top-k密集子图匹配方法,该方法主要通过在离线场景下构建索引,在数据图g中寻找与查询节点相匹配的密集子图过程中,使用索引来加速在数据图g中一次top-k密集子图匹配的过程。

3、然而,上述两种密集子图匹配方法均存在一些不可忽略的缺陷:

4、第一,现有的连续子图匹配方法并没有考虑加权图,通常只返回满足拓扑约束的所有匹配,而不考虑匹配的权重或优先级,因此这导致需要对所有的子图按照密度降序排序的子图排序开销,以及子图搜索过程中无法提前剪枝导致的子图搜索开销。

5、第二,现有基于静态场景下的top-k密集子图匹配方法,通过构建复杂的离线索引来加速top-k密集子图匹配的过程,其索引结构涉及多阶邻居,这种复杂的索引结构在动态场景下,对于每个更新操作ot,都会导致巨大的索引维护开销(其索引维护的开销是指数级的);

6、第三,上述两种密集子图匹配方法在动态场景下没有针对更新操作ot为删除操作而进行单独优化,因此在删除操作下,这两种方法都需要对数据图g’中的所有节点集合和边集合的范围内重新进行密集子图匹配的搜索,计算的时间成本高;

7、第四,现有的连续子图匹配方法没有考虑数据图g中的边的权重信息,而现有基于静态场景下的top-k密集子图匹配方法没有考虑在动态更新场景下索引的维护开销,因此这两种方法都不能很好的解决动态加权图的top-k密集子图匹配问题。


技术实现思路

1、针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于动态加权图的top-k密集子图匹配方法和系统。其目的在于,解决现有的连续子图匹配方法并没有考虑加权图或top-k机制,通常只返回满足拓扑约束的所有匹配,而不考虑匹配的权重或优先级,导致需要对所有的子图按照密度降序排序的子图排序开销,以及子图搜索过程中无法提前剪枝导致的子图搜索开销的技术问题,以及现有基于静态场景下的top-k密集子图匹配方法存在巨大的索引维护开销的技术问题,以及上述两种方法由于都需要对数据图g’中的所有节点集合和边集合的范围内重新进行密集子图匹配的搜索,导致增加时间成本的技术问题,以及上述两种方法都不能很好的解决动态加权图的top-k密集子图匹配问题的技术问题。

2、为实现上述目的,按照本专利技术的一个方面,提供了一种动态加权图的top-k密集子图匹配方法,包括以下步骤:

3、(1)获取数据图g、更新流△、以及密集子图匹配的查询结果数量k,并根据获取的数据图g构建查询图q,其中更新流△中包括多个更新操作ot的集合,k为任意自然数;

4、(2)根据步骤(1)中得到的查询图q创建|e(q)|个匹配序列,其中|e(q)|表示查询图q所包括的边集合e’中边的总数;

5、(3)使用邻居标签频率nlf方法对步骤(1)获取的数据图g进行压缩,以获取压缩后的数据图g’;

6、(4)根据步骤(2)获取的|e(q)|个匹配序列从步骤(3)压缩后的数据图g’中获取多个索引mwstar,并从中获取密度最大的索引;

7、(5)利用连续子图匹配(continuous subgraph matching,简称csm)方法对步骤(3)压缩后的数据图g’进行子图匹配处理,以获取对应于查询图q的多个top-k密集子图所组成的top-k密集子图集合top_k_set;

8、(6)将步骤(5)获得的top-k密集子图集合top_k_set中的所有密集子图按照其密度进行降序排列,保留前k个排列结果,即top_k_set=<g1,g2,...gk>,gk表示top-k密集子图集合top_k_set中降序排列后的第k个密集子图;

9、(7)设置计数器cnt1=1;

10、(8)判断cnt1是否小于等于更新流δ中的更新操作的总数,如果是则转入步骤(9),否则进入步骤(26);

11、(9)从步骤(1)中获取第cnt1条更新操作ocnt1=(op,<v1(cnt1),v2(cnt1)>),判断该更新ocnt1是插入操作还是删除操作,如果是插入操作则转入步骤(10),如果是删除操作则进入步骤(15);

12、(10)在压缩后的数据图g’中对边<v1(cnt1),v2(cnt1)>也进行插入操作,以获取更新后的数据图g’;

13、(11)在步骤(10)得到的更新后的g’中,使用与步骤(4)相同的方式重新获取多个mwstar索引的密度中的最大值;

14、(12)判断在查询图q中是否存在一条边,使得形成该边的一个节点的标签与节点v1(cnt1)的标签相同,另一个节点的标签与节点v2(cnt1)的标签相同,如果存在,则设置部分匹配g={v1(cnt1),v2(cnt1)},并进入步骤(13),否则进入步骤(25);

15、(13)从步骤(2)得到的|e(q)|个匹配序列中获取以步骤(12)中得到的查询图q的边为起始边的匹配序列φc1=<u1(c1),u2(c1),...un(c1)>,其中c1表示以该边为起始边的匹配序列在步骤(2)得到的|e(q)个匹配序列中的序号;

16、(14)根据步骤(13)得到的匹配序列φc1以及步骤(11)获取到的mwstar索引的最大值进行本文档来自技高网...

【技术保护点】

1.一种动态加权图的Top-k密集子图匹配方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的动态加权图的Top-k密集子图匹配方法,其特征在于,步骤(1)具体为,先从SNAP数据集官网获取现实世界的真实数据集作为数据图G,且有G=(V,E,W,L),其中V表示节点集合,E表示节点集合V中所有两两相邻节点连接而成的边所构成的边集合,W表示所有边对应的权值集合(使用计算边的权值,其中v1表示形成该边的其中一个节点,v2表示形成该边的另一个节点,N(v1)表示数据图中节点v1的所有邻居节点的集合),L表示所有节点对应的标签集合;随后,从数据图G所包括的节点集合V中随机抽取多个节点构成新的节点集合V’,将抽取的所有两两相邻节点连接而成的边构成的边集合E’,获取所有节点的标签集合L’,并将三者组合成查询图Q=(V’,E’,L’);并从SNAP数据集官网获取数据图G的更新流△,其为多个更新操作ot的集合,每个更新操作ot=(op,<vo1,vo2>),op表示更新操作的类型,即插入边或者删除边,<vo1,vo2>表示数据图G中需要进行更新操作的边,其是由vo1和vo2两个节点组成。

3.根据权利要求1或2所述的动态加权图的Top-k密集子图匹配方法,其特征在于,步骤(2)具体为,首先获取查询图Q中边集合E’中的第一条边,获取形成该边的两个节点u1和u2,作为匹配序列中的起始节点,随后获取节点u1和u2节点在查询图Q中的多个共同邻居节点,从这些共同邻居节点中选择其邻居节点最多的共同邻居节点u3,并将共同邻居节点u3加入匹配序列中,然后,获取节点u1、u2、u3在查询图Q中的多个共同邻居节点,从这些共同邻居节点中选择其邻居节点最多的共同邻居节点u4,并将共同邻居节点u4加入匹配序列中,...以此类推,直到最终生成形式为<u1,u2,...un>、且与第一条边对应的匹配序列,n为查询图Q中的节点个数,随后,获取查询图Q中边集合E’中的第二条边,并重复以上步骤,以获取第二条边对应的匹配序列,...获取查询图Q中边集合E’中的第|E(Q)|条边,并重复以上过程,以获取第|E(Q)|条边对应的匹配序列。

4.根据权利要求1至3中任意一项所述的动态加权图的Top-k密集子图匹配方法,其特征在于,步骤(3)包括以下子步骤:

5.根据权利要求4所述的动态加权图的Top-k密集子图匹配方法,其特征在于,步骤(4)包括以下子步骤:

6.根据权利要求4所述的动态加权图的Top-k密集子图匹配方法,其特征在于,步骤(4-8)具体为,首先获取集合{v1_1,v1_2,...v1_n},随后设置Dstar(v1)的密度den(v1)为0,其后将其加上v1节点和v1_1节点构成的边的权值,然后再加上v1节点和v1_2节点构成的边的权值,...,最后加上v1节点和v1_n节点构成的边的权值,最终得到Dstar(v1)的密度den(v1)。

7.根据权利要求6所述的动态加权图的Top-k密集子图匹配方法,其特征在于,步骤(5)包括以下子步骤:

8.根据权利要求7所述的动态加权图的Top-k密集子图匹配方法,其特征在于,步骤(5-9)中相匹配的候选节点,指的是在压缩后的数据图G’中,与节点uy(cnt)的标签相同,并且在匹配序列Φt中位于uy(cnt)左侧、且与uy(cnt)是邻居关系的节点,在数据图中与节点uy(cnt)的标签相同的节点,在部分匹配g中,也与匹配序列Φt中位于uy(cnt)左侧、并且已经在数据图中找到其匹配的候选节点的节点保持邻居关系。

9.根据权利要求8所述的动态加权图的Top-k密集子图匹配方法,其特征在于,步骤(14)包括以下子步骤:

10.一种动态加权图的Top-k密集子图匹配系统,其特征在于,包括:

...

【技术特征摘要】

1.一种动态加权图的top-k密集子图匹配方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的动态加权图的top-k密集子图匹配方法,其特征在于,步骤(1)具体为,先从snap数据集官网获取现实世界的真实数据集作为数据图g,且有g=(v,e,w,l),其中v表示节点集合,e表示节点集合v中所有两两相邻节点连接而成的边所构成的边集合,w表示所有边对应的权值集合(使用计算边的权值,其中v1表示形成该边的其中一个节点,v2表示形成该边的另一个节点,n(v1)表示数据图中节点v1的所有邻居节点的集合),l表示所有节点对应的标签集合;随后,从数据图g所包括的节点集合v中随机抽取多个节点构成新的节点集合v’,将抽取的所有两两相邻节点连接而成的边构成的边集合e’,获取所有节点的标签集合l’,并将三者组合成查询图q=(v’,e’,l’);并从snap数据集官网获取数据图g的更新流△,其为多个更新操作ot的集合,每个更新操作ot=(op,<vo1,vo2>),op表示更新操作的类型,即插入边或者删除边,<vo1,vo2>表示数据图g中需要进行更新操作的边,其是由vo1和vo2两个节点组成。

3.根据权利要求1或2所述的动态加权图的top-k密集子图匹配方法,其特征在于,步骤(2)具体为,首先获取查询图q中边集合e’中的第一条边,获取形成该边的两个节点u1和u2,作为匹配序列中的起始节点,随后获取节点u1和u2节点在查询图q中的多个共同邻居节点,从这些共同邻居节点中选择其邻居节点最多的共同邻居节点u3,并将共同邻居节点u3加入匹配序列中,然后,获取节点u1、u2、u3在查询图q中的多个共同邻居节点,从这些共同邻居节点中选择其邻居节点最多的共同邻居节点u4,并将共同邻居节点u4加入匹配序列中,...以此类推,直到最终生成形式为<u1,u2,...un>、且与第一条边对应的匹...

【专利技术属性】
技术研发人员:周旭高楚楚杨志邦李友焕杨圣洪肖国庆李肯立
申请(专利权)人:湖南大学
类型:发明
国别省市:

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

1