摘要

在大规模图数据上进行高效地查询、匹配是大数据分析处理的基础问题。从应用角度对图查询的图数据匹配技术的研究进展进行综述,根据图数据的不同特征以及应用的不同需求对图匹配问题分类进行介绍。同时,将重点介绍精确图匹配,包括无索引的匹配和基于索引的匹配,以及相关的关键技术、主要算法、性能评价等进行了介绍、测试和分析。最后对图匹配技术的应用现状和面临的问题进行了总结,并对该技术的未来趋势进行了展望。

相关背景

海量多源异构数据产生并累积。其存在关联性,问题在于如何对其有效地分析和挖掘。 
图适合刻画这种数据。 
图模式匹配技术作为实现图数据上高效查询重要手段,广泛应用。 
下面分别介绍,在社会关系分析和社交网络分析、社会安全领域、生物分析领域等,图匹配技术的应用。 
各大公司分提出了图数据处理的并行计算模型和系统,包括谷歌公司的大规模图数据处理系统Prege、微软研究院的大规模分布式图数据查询系统以及CMU Select实验室研发的GraphLab系统,这些系统采用分布式计算等技术支持大规模图数据上的高效匹配、查询等算法。 
面临问题: 
- 匹配问题复杂,判断图数据中是否包含用户搜索的模式图是一种子图同构问题,属于NP完全问题。 
- 数据规模巨大,传统的数据库技术无法有效地支持图数据管理和复杂的图查询操作,需要对图数据建立高效的索引机制。如何在数据中提取有效且精简的特征简历索引是大规模图匹配问题的难点之一。 
- 数据更新频繁,传统的基于静态图的匹配算法通常需要在所有数据上简历索引并进行匹配,缺乏增量机制,因而很难扩展到动态图的匹配问题并保证匹配的实时性。 
针对问题,研究方向: 
- 针对复杂的匹配问题,一方面设计更加高效的搜索算法,引入更多的图结构和语义信息,降低匹配问题复杂度;另一方面采用近似算法,允许匹配结果中存在一定概率的错误,保证算法达到多项式级的时间复杂度。 
- 针对大规模数据的缩阴问题,从用数据挖掘等技术提取途中的路径、树、子图等更加复杂且具有辨别力的结构作为索引特征,保证索引精度和匹配速度。 
- 针对数据更新频繁的问题,引入增量处理技术。 
子图同构是需要解决的基本问题。在实际应用中,由于图数据的形式、结构、规模以及包含信息不同,又产生了适合不同应用场景的扩展图匹配问题。 
本文首先介绍基本的子图同构问题,再根据不同应用背景下的分类方法,分别对不同类型的匹配问题进行问题描述和研究现状分析。因精确图匹配技术在不同领域的应用最广泛,本文重点对精确图匹配技术进行介绍。

1 图匹配问题定义

1.1 基本的图匹配问题与定义

定义三元组(V,E,L)表示一个图,其中V—节点集合,E—边集合,L—属性映射函数,将节点或边映射到一个或自足属性上。G—数据图、P—模式图、u—数据图节点,v—模式图节点。一个数据图与模式图的精确匹配问题成为子图同构,需要在数据图中搜索出与模式图在数据和节点与边属性上完全匹配的子图。 
定义 1精确子图匹配。已知一个数据图G=(V,E,L)G=(V,E,L)和一个模式图P=(Vp,EP,LP)P=(Vp,EP,LP),精确图匹配问题要求在模式图和数据子图Gsub=(Vsub,Esub,Lsub)(Gsub⊆G)Gsub=(Vsub,Esub,Lsub)(Gsub⊆G)之间建立一个双射函数f:

1)∀v∈VP,LP(v)=Lsub(f(v));2)∀(vi,vj)∈EP,(f(vi),f(vj))∈Esub,且LP(vi,vj)=Lsub(f(vi),f(vj))1)∀v∈VP,LP(v)=Lsub(f(v));2)∀(vi,vj)∈EP,(f(vi),f(vj))∈Esub,且LP(vi,vj)=Lsub(f(vi),f(vj))

1.2 扩展的图匹配问题

1) 结构匹配和语义匹配

图匹配问题按图数据是否在节点和边上包含语义信息分为语义匹配和结构匹配。 
结构匹配主要保证所匹配的节点周围具有相同的连通结构,代表性算法包括1976年最早提出的Ullman算法以及今年买了在该算法基础上改进的VF2,QuickSI,GraphQL,Spath等算法。 
语义匹配中,数据的节点和边带有丰富的语义信息,需要同时保证匹配结果在结构和语义信息上与模式图一致。目前的研究主要针对予以匹配问题,如典型的GraphGrep算法。 
语义匹配算法一方面可以在已有的结构匹配算法基础上引入对节点和边的语义约束改进而成,也可以如GraphGrep等算法通过设计基于语义信息的索引特征实现对语义图的快速匹配。

2) 精确匹配和近似匹配

精确匹配指匹配的结果和模式图的结构及属性完全一致,这种匹配方式主要应用于对匹配结果的准确率要求较高的领域。(前面的结构匹配和语义匹配都属于此类) 
近似匹配是可以容忍结果中存在噪声和错误的匹配算法。代表性的近似匹配算法包括SUBDUE,LAW等,主要通过定义编辑距离,最大公共子图,最小公共超图等方法衡量两个图的相似程度。

3) 静态图匹配和动态图匹配

静态图匹配要求所有的数据图不随着时间推移而变化,匹配算法通常会对所有数据图进行分析挖掘,根据数据特点提取有效特征建立索引,从而提高匹配效率。典型算法GIndex,Tree+Delta,FG-Index。 
动态图匹配主要采用增量处理基础,仅对更新的数据图进行分析,选择简单且有辨别力的特征简历索引,并采用近似算法提高匹配速度,目前还处于起步阶段。

4) 最优算法和近似算法

最优算法保证匹配结果完全精确。 
近似算法不同于近似匹配,通常基于概率统计等数学模型,优点是具有多项式级的时间复杂度,非常适合动态图匹配等对算法实时性要求高且只需满足一定准确率的匹配问题。 

2 精确图匹配技术

应用于对精确度比较高的问题,从算法设计的角度,分为无索引的匹配技术和基于索引的匹配技术。 
无索引的匹配技术主要采用搜索策略,通过分析节点属性以及节点邻居结构对数据图中的所有节点依次匹配,适合小规模数据图的精确匹配。典型算法,Ullmann,VF2,GraphQL,GADDI,Spath等。 
基于索引的匹配技术,首先需要对全部数据进行分析或挖掘,选择有效的特征建立索引,在进行匹配时通过建立索引和精确匹配两步完成,适合大规模图匹配问题

2.1 无索引的匹配技术

精确图匹配是一种NP完全问题,算法设计时利用图中的结构和语义信息可以有效提高图匹配的性能。 
Ullmann算法采用深度优先搜索策略,在数据图G中枚举出与模式图P中节点一一匹配的子图。复杂度会随着数据图的规模的增加呈指数增长。 
为减小搜索空间,Ullmann提出了3中剪枝规则: 
规则 1 节点度约束。如果P中的节点vivi的度大于G中的节点ujuj的度,那么ujuj不可能是vjvj的对应节点,将ujuj及其子树分支从搜索树中删除。 
规则 2 一对一的映射关系。在一次匹配搜索中,确定节点vjvj与节点ujuj的映射关系后,不允许将vjvj在映射到G中的其他节点,同样也不允许将P中多个节点映射到G中同一个节点。 
规则 3 节点邻接关系的一致性。 
Ullmann算法首先根据规则 1 获得模式图P在数据图G中的备选节点集合,然后根据规则 2 和 3 进行筛选。一般匹配顺序是根据图中节点度递减顺序。 
VF2算法改进Ullmann算法 
1)在匹配顺序方面,与Ullmann不同,VF2选择已匹配节点的相邻节点进行下一次匹配;2)在剪枝策略上,VF2删除与已匹配节点不相邻的备选节点,同时引入了已匹配和带匹配节点共同作用的约束关系,大幅度降低了搜索次数。(这里不太懂哎) 
Ullmann算法和VF2仅利用了带匹配节点与邻接节点的结构和语义约束缩小匹配范围,适合小规模的图匹配问题。近年来许多改进算法考虑了节点周围更加复杂的路径和自图结构特征对搜索过程进行减值,进一步降低了搜索复杂度,适合更大规模的匹配问题。 
GADDI算法定义了邻近辨别子结构(neighboring discriminating substructure,NDS)距离,表示两个节点及橡林街店构成的子图中频繁子图的数量,通过约束模式图种的节点的NDS距离不小于数据图中的节点的NDS距离来过滤备选节点。 
GraphQL算法定义了以模式图节点和备选图节点为根节点的深度优先搜索生成树TvTv和TuTu,过滤掉不满足TvTv包含于TuTu的所有备选节点。 
Spath算法定义了以节点为中心采用层次遍历的三元组表示方法(d,l,c),其中c表示遍历的层次范围内包含标签为l的节点数量,d表示包含标签l的节点与中心节点的最近距离,Spath算法在筛选备选节点时,要求数据图中备选节点的三元组(dc,lc,cc)(dc,lc,cc)与模式图节点的三元组(dp,lp,cp)(dp,lp,cp)满足关系:lc=lp,dc≤dp,cc≥cplc=lp,dc≤dp,cc≥cp,即通过增加更丰富的结构和语义信息约束,提高了筛选备选节点的准确率。 
GADDI,GraphQL,Spath比Ullmann和VF2效果好,图数据规模越大,效果越好。

2.2 基于索引的匹配技术

基于索引的图匹配技术的基本思想主要包括两个方面: 
1)索引建立。通过预先选择数据图中有效的特征建立倒排索引,使得模式匹配时可以根据索引快速缩小搜索空间,在对小规模的备选图进行精确匹配,达到加速匹配的目的。提取的特征包括多种形式,例如节点或边的标签、标签路径、子图结构、树结构等。 
2)模式匹配。过程分为两部分,a. 筛选备选图。提取P中特征,根据特征在倒排索引表里选择备选图GP=⋂f∈FGf(f⊆P)GP=⋂f∈FGf(f⊆P),每个备选图包含P中提取的所有特征。b.精确匹配。根据P的结构和语义信息,对所有备选图进行精确匹配。

2.2.1 非数据挖掘的索引技术

非数据挖掘的索引算法在建立索引的过程中利用路径、节点信息或节点周围结构作为索引特征,不需要对数据图进行数据挖掘等复杂操作。 
Shasha等人提出的GraphGrep算法是一种典型的基于路径的索引算法,也是非数据挖掘索引技术的代表性算法,主要应用于节点含标签的多图匹配问题中。GraphGrep在简历路径索引的特征提取过程中,通过枚举图数据中所有长度不超过预设阈值MaxL的路径,将路径上的节点按搜索顺序排列得到标签路径特征。对于数据图中的每个节点,采用深度优先搜索,枚举出由该节点出发长度为1至固定值MaxL的所有路径。算法将构成相同标签路径的节点序列放在相同集合中。之后采用Hash表存储每个数据图与标签路径的对应关系。该Hash表被称作数据图对应的指纹。 

在模式匹配过程中,首先依据模式图与Hash表筛选备选图(备选图包含模式图所有的Hash值,且不小于对应标签路径的数量);在精确匹配阶段,需要对备选图中的所有标签路径进行合并,对于每一个备选图,该算法选择H对应的所有节点序列,删除序列中重复节点后获得与模式图匹配的子图(谁来救救我,又不懂了=-=) 
He等人提出了一种基于树结构的索引算法C-tree,该算法可以同时支持精确匹配和近似匹配,采用多级聚类的方法将数据图聚合为具有层次关系的树结构,书中每个节点别是一个聚合结果,同时每个节点还包含了其后稷街店的重要特征,能够非常高效地筛选备选图。 
GCoding算法采用节点周围的结构信息简历索引。该算法根据每个节点周围的结构为每个节点设定相应签名,并定义了一种谱图编码方式将每个图中所有节点的签名组合后表示为该编码值,最后基于这些编码简历的索引对带匹配的图进行筛选。 
非数据挖掘索引技术的优点 
1)采用简单的路径、树以及其他简单的结构对图数据中每个节点进行编码描述,从而快速简历索引。 
2)当图数据动态变化时能够高效地对索引进行调整,非常适合动态图数据对匹配的实时性需求。 
3)索引的规模还可以通过选择娥姐店周围编码结构的规模进行调整,满足不同应用的需求。 
非数据挖掘索引技术的缺点 
1)将数据图和模式图拆分成大量以节点为重点的简单子结构,这种方式破坏了图的原始结构,在简历索引和匹配的过程中丢失了重要的结构信息,导师筛选结果中存在大量错误的备选图。 
2)提取索引特征的单位是数据图中的每个节点,且对所提取的特征不进行或只进行简单的筛选,导致索引规模随着数据图的规模的增大迅速增大,严重影响访问速度和存储空间。

2.2.2 基于数据挖掘的索引技术

针对非数据挖掘的索引就忽略了图数据结构信息的问题,典型的改进方法是采用图的子图结构代替以节点为中心的路径、树以及其他简单结构作为索引特征。然而子图结构数量太多,需要挖掘出具有较强辨别力的子图作为特征。 
Yan等人提出的GIndex算法首次提取了图中具有强辨别力的频繁子图(discriminative frequent structure,DFS)作为特征,并基于该特征对大规模多图数据简历索引,是代表性的基于数据挖掘的索引算法,在备选图的筛选能力及扩展性方面均优于GraphGrep算法。 
1)索引建立。首先在数据图中挖掘具有辨别力的频繁子图作为索引特征。

大规模图数据匹配技术综述相关推荐

  1. 分布式数据流计算系统的数据缓存技术综述

    点击上方蓝字关注我们 分布式数据流计算系统的数据缓存技术综述 袁旭初, 付国, 毕继泽, 张岩峰, 聂铁铮, 谷峪, 鲍玉斌, 于戈 东北大学计算机科学与工程学院,辽宁 沈阳 110169 论文引用格 ...

  2. 磁盘泄密威胁和数据销毁技术综述

    磁盘泄密威胁和数据销毁技术综述 中软通用产品研发中心 陈尚义 内容摘要:政府部门的有关规定对涉密计算机的磁盘数据销毁做出了明确规定,个人隐私在网络化和信息化条件下逐渐成为挑战,商业机密和知识产权保护成 ...

  3. NLP中的数据增强技术综述

    NLP数据增强技术 1. 词汇替换 Lexical Substitution 基于词典的替换 Thesaurus-based substitution 基于词向量的替换 Word-Embeddings ...

  4. 【2016年第5期】面向大规模图数据的并行图布局算法

    程致远,鲍玉斌,冷芳玲 东北大学计算机科学系,辽宁  沈阳  110819

  5. 技术01期:大规模图计算【基础篇】

    导读 图计算就是研究如何高效计算.存储和管理大规模图数据.图是由顶点和边组成的,它可以对事物以及事物之间的关系建模,比如文章是点,文章与文章之间的超链接是边:或者顾客和商品是点,购买或者喜欢是边,购买 ...

  6. 开源开放 | 图数据交互可视化分析框架 InteractiveGraph v0.3 版本发布

    图数据交互可视化分析框架 InteractiveGraph 日前发布 v0.3 版本,下载地址:https://github.com/grapheco/InteractiveGraph/release ...

  7. 中秋邀请共赏图数据库-蚂蚁集团图数据TuGraph 正式开源

    目录 前言 1.五道口+蚂蚁集团的系统长什么样 2.性能拉满,能抗能打 优点: 缺点: 一.TuGraph,比关系数据库更懂关系 1.更懂关系的图数据TuGraph 2.图数据发展的三个阶段 2.1第 ...

  8. 开放数字世界中的复杂图数据挑战 —— 以教育与开源场景为例

    摘要:开源开放的数字世界开始成为时代的潮流,云原生.数据中台.智能PRA开始成为数字世界中的新一代中流砥柱.随着第四范式的普遍流行,各个行业中的数字化转型都会带了海量的具有无限关联的复杂图数据.本报告 ...

  9. [PPOPP 15] PoweSwitch: 基于同步异步切换的分布式大规模图处理系统 学习总结

    今天要讲的文章PPOPP 2015年的一篇文章,SYNC or ASYNC Time to Fuse for Distributed Graph-Parallel Computation.本文主要想解 ...

最新文章

  1. python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...
  2. 网站制作时应该如何更合理定位与策划
  3. python与人工智能编程-python学习(一)——python与人工智能
  4. JAVA三元运算符排序三个随机数
  5. Spring和Quartz配合实现定时任务
  6. Mysql-savepoint
  7. SpringCloud + RocketMQ实现可靠消息最终一致性事务
  8. vivado中bit文件怎么没有生成_【新手入门】ISE工程升级到Vivado及板级信号调试技术...
  9. 云计算与海量数据处理技术
  10. pythonrestapicctv_Python Web服务(15) 持续更新
  11. 深度学习之epoch
  12. 浅谈敏捷 - Scrum
  13. Win10 BIOS改AHCI蓝屏无法启动的 两个解决方法
  14. 以华为公司为例的我国业务流程管理实践研究
  15. Redis 设计与实现 读书笔记(菜鸟版)
  16. 淘宝app商品详情API接口(商品详情描述信息查询接口)
  17. 离群点(孤立点、异常值)检测方法
  18. 启动电脑时出现0xc000000f错误的解决办法
  19. bzoj2121 字符串游戏
  20. 前端开发:如何正确地跨端?

热门文章

  1. 考研计算机科学814,2017年西南科技大学计算机科学与技术学院814程序综合设计考研题库...
  2. 题目779-兰州烧饼
  3. 如何按国家标准分幅下载卫星地图
  4. android 剪贴板图文混编,Android剪贴板详解
  5. 2018美国RSA大会专题 | 宇宙最全中文议程
  6. 力扣学习计划——数据结构与算法基础笔记
  7. win10系统cf连接服务器失败,技术编辑帮您win10系统cf连接服务器失败的法子
  8. 知网道歉,能平息众怒吗?
  9. 2020年创新药行业双抗药物专题研究报告
  10. 记一次uniapp的踩坑经历