北京大学 周雨奇
编者按
原文《Top-k Graph Pattern Matching over Large Graphs》由Jiefeng Cheng,Xianggang Zeng, Jeffrey Xu Yu 发表于ICDE 2013。
本文主要关注如何有效地找到图匹配的前k个评分最高的结果(top-k answers for a graph pattern query),尤其是在有环图中。
论文地址:
https://dl.acm.org/doi/10.1109/ICDE.2013.6544895
前言
在数据库领域里,图模式匹配Graph pattern matching(GPM)问题是一个经典问题。学界有两种研究潮流,第一种是寻找保留了查询图结构信息的匹配,另外一种基于图模拟,本文关心第一种。
本文关心寻找k个评分最高的结果的GPM问题(kGPM),该问题需要一个评分函数来评估匹配的分数。本文将查询图中两点之间的边做“连通性”解释,连通性的分数为数据图中对应点最短路径之长,本文基于匹配图中路径长之和作为该匹配的分数。
在树结构上解kGPM问题存在线性时间和空间的算法(Gang, G. , and R. Chirkova . "Efficient algorithms for exact ranked twig-pattern matching over graphs." Acm Sigmod International Conference on Management of Data ACM, 2008.)。而对于查询图是有环结构的情况,我们可以基于查询图的子树结构,利用该结构运行Gang, G.的算法,随后再把缺失的边补全。
这带来一个挑战,一个子树结构的前几个结果可能不能涵盖整个kGPM问题的最优解,因为当我们把缺失的边补入树答案之中后,边带来的分数会使得匹配的分数上升。因此采用单个子树的方法可能需要获得大量树上KGPM问题的匹配,为了解决这个问题,本文提出可以用多个子树结构来获得结果,但是子树本身也带来开销。本文提出了一个模型来解决找到最优的子树集的问题。
问题定义
kGPM问题在一个大的数据图(data graph)上查找给定的查询图(query graph.数据图的定义为一个点有标签的图,表示为四元组G_D= (V,E,∑,∧). 其中,V是节点的集合. E是无向边的集合. ∑ 是边标签的集合,边标签集合的大小通常远小于V的大小。∧是为每一个节点赋予一个标签的映射。本文设定E中的每一条边都带有一单位的权重,δ(u, v)定义为数据图中两点u,v间最短路径的长度。
查询图Q是一个带权无向连通图(V(Q),E(Q),),权重函数
(X, Y) 为每一条边(X, Y) ∈ E(Q)分配一个权重c(X,Y)。为了简便,本文中匹配的评分函数只考虑边权重,定义如下,
目标是寻找分数最小的k个匹配。
代价模型
空间嵌入
给定查询图Q的h个子树可以把一个匹配映射到一个h维空间,其中第i维是该匹配在
的分数,定义如下
其中n(A,D) 是边(A, D) 在出现的领域。所以一个匹配可以被映射为如下坐标,
容易看出,匹配的分数满足以下不等式,等号在涵盖了Q中所有边时取到。
把MAX定义为Q分数第k小的匹配的分数,这样之后,kGPM的解可以被限定在一个区域,表示如下:
解kGPM问题的过程,可以看做是在每个轴上移动超平面以缩小区域的过程。
子树集合的选取
在运行时,令作为
的答案列表t-list的最后一个答案,因为T_i的答案是按需取出的。函数
定义为 t-list中分数不大于α 的匹配的个数。把数据图中节点为标签A的点到节点为标签D的点的关系记为R(A,D),关系中的每一行中A和D的具体点对之间的距离小于等于h,那么这个关系的大小满足关系式
.
把定义为把所以关系求交之后的选取系数,那么
的大小可以估计为,
类似的,可以为查询图Q也定义一个类似的函数
这样,可以把MAX估计为
根据Gang, G.解树查询的kGPM算法中的推导,对于树T,解kGPM需要的空间和时间的代价为
该代价是针对获得第一个答案而言的,随后获得的每一个答案需要的时间都是常数的,在此基础上,在T上获得在不大于α的所有答案需要的代价为,
因此,整个查询计划的代价
把(|V(Q)-1|) 记为P,同时引入如下限制,
可以把式子简化为
用拉格朗日乘子法解得
因此算法的完整流程可以写为
该查询计划会在第i个树查询答案列表t-list中连续获取 π_i 个答案. 算法不停地在轮换查询,直到停止条件符合,
定义为
除以所有
的最大公约数。
目前没找到匹配分数的下界可以用所有中目前分数最大的匹配
来估计
效果
本文采取了如下4个查询,
在一个有100,000个点和114,823条边的生成数据集和一个构建于DBLP数据的840,688 个点和 3,078,263 条边的共同作者网络数据集上进行了实验,图中的四个算法如下
-
mtree: 本文提到的算法
-
tree*: 代价最小的只有一个子树的算法
-
mrandom1, mrandom2 : 随机选取子树集的算法
图[在生成数据集上的结果]
图[在真实数据集上的结果]
实验结果证明了本文提出优化方法的有效性。
相 / 关 / 链 / 接
论文导读 | 以关系感知的方法对数据库模式编码和链接的text-to-SQL模型
论文导读 | 滑动窗口模型下含重复边的图流上的三角形近似计数算法