一种面向大型异构信息网络的子图检索方法技术

技术编号:36823500 阅读:12 留言:0更新日期:2023-03-12 01:11
本发明专利技术公开了一种面向大型异构信息网络的子图检索方法,所述方法包括如下步骤:步骤一、索引构建;步骤二、设计Ψ

【技术实现步骤摘要】
一种面向大型异构信息网络的子图检索方法


[0001]本专利技术涉及一种子图检索方法,具体涉及一种面向星型模式异构信息网络的子图查询方法。

技术介绍

[0002]异构信息网络(也称为异质图)是一种由不同类型的实体(节点)和不同类型的关系(边)组成的网络,这里的不同类型的边同时也代表着不同的语义关系。一个异构信息网络是一个有向图并且有一个节点类型映射函数和一个边类型映射函数其中每个节点v∈V都属于一个节点类型且每条边e∈E都属于一个边类型(也称为关系)同时满足给定一个异构信息网络以及相应的映射和它的模式是一个定义在节点类型和边类型(也称为关系)上的有向图,也就是说,
[0003]一条元路径是一条定义在异构信息网络模式上的一条路径,它被形式化表示为或者(A1A2…
A
L+1
),这里是的长度,且
[0004]给定一个异构信息网络和一个正整数k,的一个是一个最大的相连的节点集合使得其满足这里中节点的类型为连接的类型。给定一个异构信息网络一个顶点v∈V以及一条元路径该节点的core number(表示为),是存在一个且包含v的最大的k。
[0005]有一种典型的异质图叫做星型模式异质图,星型模式通常有一个基本类型和几个属性类型,分别作为中心节点和尾部节点。相应地,异质图中基本类型的节点扮演了枢纽节点的角色,并且与属性类型节点相连。子图检索问题已经被研究了很长时间。目前主要有两类网络子图检索问题,分别是子图检测和子图搜索。
[0006]早期的子图检测工作主要通过基于链接的分析来检测这些子图。然而,这些工作大部分都只针对拥有相同类型节点的同质图。最近的一些工作专注于在异质图上生成聚类或者子图,这些工作根据子图中节点的类型可以被大致分成两类。第一类致力于检测聚类,这些聚类都包含多种类型的对象。第二类则致力于生成包含某种特定类型对象的聚类。
[0007]子图搜索致力于找到包含一个或者多个查询节点的紧密相连的子图。为了度量一个子图的结构聚合度,人们通常使用一些紧密子图模型,比如k

core模型、k

truss模型、k

clique模型以及k

edge connected component模型。尽管子图搜索问题已经被广泛地研究,大部分现有的工作只关注于传统的同质图,很少有工作关注于异质图上的子图查询。为了在异质图上制定有效的子图查询模型,研究者将子图查询的模型扩展到异质图上。然而,目前所有的这些现有工作都存在一些限制,比如,它们要么需要用户指定一条元路径,或者
需要用户给出关系约束,这对于不熟悉异质图的用户来说是一个巨大的挑战。因此,如何在异质图上不指定这些约束并有效地进行子图查询,是一个开放的问题。

技术实现思路

[0008]为了克服现有的异质图上子图搜索工作的局限性,本专利技术提供了一种面向大型异构信息网络的子图检索方法。该方法研究星型模式异质图上的子图问题,而不要求用户指定一条元路径或者给出关系约束,提供了一种高效的在线和基于索引的解决方案。
[0009]本专利技术的目的是通过以下技术方案实现的:
[0010]一种面向大型异构信息网络的子图检索方法,包括如下步骤:
[0011]步骤一、索引构建
[0012]先在异质图的模式图上根据元路径的嵌套关系构建一颗元路径树,之后从元路径树的根节点出发,按照深度优先的顺序构建所有MC

tree的顶点,具体步骤如下:
[0013]步骤一一、获得所有有效元路径的集合其中:为异构信息网络模式上的一条元路径,为节点类型,为边类型;
[0014]步骤一二、从中选择最短的元路径并且通过调用BuildMetaPathTree从开始构建元路径树,其中,在BuildMetaPathTree中,按照下述的深度优先顺序构建元路径树:每次BuildMetaPathTree的调用中,遍历去查找元路径使得并且对于每一条建立一个新的索引顶点将添加到索引顶点的孩子列表中,让成为的父亲顶点并且递归地建立的孩子顶点;
[0015]步骤一三、通过调用BuildCMnode根据深度优先的顺序构建CM

tree的每一个顶点,其中,在BuildCMnode中,按照下述的深度优先顺序从元路径树的根出发构建每一个CM

tree的顶点:对于每个顶点,首先获取P

graph然后使用线性时间复杂度的算法进行k

core分解得到所有节点的core number接下来,遍历中的所有节点并且将根据节点v的core number将其加入到哈希表中去,对于的键中的每一个core number k,还需要删除一些节点,这些节点在的并集中,这里以此来避免冗余存储,建完后,遍历当前顶点的孩子列表并且调用BuildCMnode来递归建立孩子顶点。
[0016]步骤二、设计Ψ

NMC算法
[0017]步骤二一、给定一个星型模式异质图中的一个同类型查询节点集合Q,一个正整数k,一条元路径以及元路径集合Ψ、Ψ1、Ψ2,利用存储在哈希表中的Ψ1‑
NMC和Ψ2‑
NMC求交集得到一个小的节点集合V用于定位Ψ

NMC;
[0018]步骤二二、检查节点集合是否包含查询节点,如果不包含,那么表明不存在一个符合要求的Ψ

NMC,对于每一条对于V中的每一个节点找到至多k个邻居,如果不能找到k个邻居,将该节点v加入候选集合S中等待删除,与此同时,关于不同的使用一个哈希表来记录每个节点的邻居集合Φ,得到一个不合格的待删除的节点集合S;
[0019]步骤二三、通过调用函数DeleteVertex删除S中的节点并且更新从V中删除S中的每一个节点,并且对于Ψ中的所有递增地为v的邻居找到新的邻居,如果对于v的
某些邻居无法找到k个邻居,将这些节点放入S中;
[0020]步骤二四、关于Ψ中的每一条可以得到一个V'作为包含Q的每一个连通分量的交集,V\V'中的节点被加入S中,并使用V'来更新V;
[0021]步骤二五、重复步骤二二~二四直到对于Ψ中的所有元路径而言,V是一个连通分量;
[0022]步骤三、基于索引的Ψ

NMC计算
[0023]步骤三一、对于Ψ中的每条调用函数IndexSingleCore得到具体步骤如下:
[0024]步骤三一一、初始化一个空集合V来存储core number大于或者等于kde节点;
[0025]步骤三一二、对于以及它的每一个被嵌套元路径将中的所有节点放入V中,这里k'大于或者等于k;
[0026]步骤三一三、如果查询节点集合Q不是V的一个子集,表示不存在一个同时函数返回空;
[0027]步骤三一是、在上计算连通分量并且得到上计算连通分量并且得到表示限制在节点集合V和相应的边集合上的异质图...

【技术保护点】

【技术特征摘要】
1.一种面向大型异构信息网络的子图检索方法,其特征在于所述方法包括如下步骤:步骤一、索引构建先在异质图的模式图上根据元路径的嵌套关系构建一颗元路径树,之后从元路径树的根节点出发,按照深度优先的顺序构建所有MC

tree的顶点;步骤二、设计Ψ

NMC算法步骤二一、给定一个星型模式异质图步骤二一、给定一个星型模式异质图中的一个同类型查询节点集合Q,一个正整数k,一条元路径以及元路径集合Ψ、Ψ1、Ψ2,利用存储在哈希表中的Ψ1‑
NMC和Ψ2‑
NMC求交集得到一个小的节点集合V用于定位Ψ

NMC;步骤二二、检查节点集合是否包含查询节点,如果不包含,那么表明不存在一个符合要求的Ψ

NMC,对于每一条对于V中的每一个节点找到至多k个邻居,如果不能找到k个邻居,将该节点v加入候选集合S中等待删除,与此同时,关于不同的使用一个哈希表来记录每个节点的邻居集合Φ,得到一个不合格的待删除的节点集合S;步骤二三、通过调用函数DeleteVertex删除S中的节点并且更新从V中删除S中的每一个节点,并且对于Ψ中的所有递增地为v的邻居找到新的邻居,如果对于v的某些邻居无法找到k个邻居,将这些节点放入S中;步骤二四、关于Ψ中的每一条可以得到一个V'作为包含Q的每一个连通分量的交集,V\V'中的节点被加入S中,并使用V'来更新V;步骤二五、重复步骤二二~二四直到对于Ψ中的所有元路径而言,V是一个连通分量;步骤三、基于索引的Ψ

NMC计算步骤三一、对于Ψ中的每条调用函数IndexSingleCore得到步骤三二、计算所有的交集并且计算Ψ

NMC;步骤四、子图查询步骤四一、生成元路径集合并且初始化c=1以及一个哈希表对每一个Ψ存储相应的子图,候选元路径集合也将被初始化,使得其中每个元路径集合包含一条来自的元路径,通过Ψ中所有元路径的长度之和对每一个进行升序排序;步骤四二、初始化一个集合存储有效的包含c条元路径的元路径集合,对于每一个存储有效的包含c条元路径的元路径集合,对于每一个通过函数IndexNMC验证Ψ

NMC的存在,对于每一条IndexNMC在CM

tree的帮助下得到一个计算所有的交集,并且调用函数FastNMC来计算Ψ

NMC,如果Ψ

NMC存在,使用来记录Ψ和它相应的子图,并且基于调用函数GenValidCan生成一系列有效的元路径集合以此降低需要计算的B

【专利技术属性】
技术研发人员:李春山杨玉帅初佃辉
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

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

1