【论文笔记】Answering Billion-Scale Label-Constrained Reachability Queries within Microsecond

在本文中,我们提出了新的标签约束二跳索引技术和新的修剪规则和排序策略。结果表明,最坏的查询时间可以由in-out索引项的大小来限定。综合实验表明,我们提出的方法在查询响应时间(最高5个数量级的加速)、索引大小和索引构建时间方面都明显优于现有技术。特别地,我们提出的方法可以在一台机器上以微秒级的速度回答十亿级图形的LCR查询。

本文研究了标签约束可达性(LCR)查询问题。给定图G的源顶点s、目标顶点t和所有边标签ζ集L的子集L,LCR查询将检查是否有从s到t的路径,仅使用L中带有标签的边。
社交网络。在社交网络[20,18,19,49,47,48,35,56,39,57,38,10]中,顶点代表一个实体(例如用户、海报、组织),如果两个实体相关,则存在一个边缘。当然,这些关系可以是不同的类型,例如“friendOf”、“Supervedby”、“parentOf”、“Like”、“Follow”。社交网络中LCR查询的典型用法是检查两个人是否通过某种类型的关系建立关系。
生物网络。如[29]所示,系统生物学中最基本的问题之一是了解细胞系统中代谢连锁反应是如何发生的。生物学家广泛使用的网络是代谢网络,其中顶点代表一种化合物,边缘表示一种化合物,通过某种化学反应可以转化为另一种化合物。边上的标签指示控制反应的酶的类型(即边缘)。通过使用LCR查询,代谢网络分析仪可以通过特定类型的酶快速检查两种化合物之间是否存在路径(即相互作用链),
知识图表。在知识图中,正则路径查询得到了深入的研究(如[4,5,6,51]),并得到了sparql1.1、PGQL[44]和openCypher等实用图形查询语言的支持。LCR查询是正则路径查询语言中最重要的运算之一。特别是,LCR查询可以用正则表达式(l1∪l2∪。。。∪lk)对于约束标签集L={l1,…,lk}。

Challenges.
LCR是一个被广泛研究的问题,以往的工作在处理十亿尺度图时面临着很大的挑战。虽然有大量的论文研究了2跳标记和LCR查询,但据我们所知,这是第一次将这种技术应用到LCR查询中。当在LCR查询中采用2跳标记思想时,关键的挑战来自于标签的大量可能组合。作为对LCR查询的2跳索引的直接扩展,我们需要构造2L个索引来考虑每个可能的查询标签约束,其中l是标签的数量。这是不可行的,即使是非常小的l值,也有巨大的索引大小。
Novelty.
为了在保持二跳索引查询效率的同时显著减小索引大小,我们提出了高效的剪枝规则和访问顺序策略来构造新的标签约束(LC)二跳索引P2H和P2H+。在P2H+中,P2H+具有健全性、正确性和最小性三个优良特性,使得查询处理和索引构造非常高效。
Our Contributions.
1.我们提出了支持LCR查询的基于2跳索引技术的三个重要特性。基于三种剪枝规则和高效的构造算法,提出了一种标签约束的二跳索引技术P2H。
2.通过设计一种改进的BFS搜索顺序和顶点索引项构造顺序,进一步提高了性能。得到的索引名为P2H+,它满足标签约束的2跳索引的所有三个良好属性。
3.我们的综合实验表明,我们提出的方法在查询响应时间(高达5个数量级的加速)、索引大小和索引构造时间方面明显优于最新技术LI+。据我们所知,这是第一个能够在一台机器上在微秒内回答十亿级图形的LCR查询的工作。
Roadmap
论文的其余部分安排如下。第二节调查重要的相关工作。第3节正式定义了问题,并描述了基线解决方案。第四节设计了一个基于剪枝的2跳索引。第五节提出了两种基于BFS搜索顺序和顶点顺序的优化方法,并在第六节进行了实证研究。第七节结束论文。

3.PRELIMINARY
在这里插入图片描述

定义1。标签支配:给定源顶点s和目标顶点t,如果L2(真子集)L1,我们称带标签集合L1的s-t L1-path被另一个带标签集合L2的 s-t L2- p a t h 支配
在这里插入图片描述

定义2。最小路径:给定一个s-t L-path P,如果没有任何s-t path P’,满足其中P是由P’支配的标签,我们说P是最小路径。也就是说,我们找不到任何s-t path P’,带标签集L’L。
在这里插入图片描述
在这里插入图片描述

3.2 The State-of-the-Art
Landmark Index(LI+)
文献[43]提出了最新的基于索引的算法。其核心思想是从一个地标到一个地标,用BFS建立一个局部地标索引。当尝试插入一个新的索引项时,它将与现有的索引项进行比较,只保留最小的索引项。在处理LCR查询时,它用使用landmarks索引的剪枝BFS来回答查询。他们还提出了扩展索引技术来加速查询,例如索引非地标,修剪以加速错误查询。在本文中,我们使用他们的地标索引和所有技术作为基线。

3.3 2-Hop Cover Framework

在这里插入图片描述

4. LABEL-CONSTRAINED 2-HOP INDEXING
在本节中,我们首先介绍了第4.1节中的两种朴素LabelConstraint(LC)2跳索引方法,其中一种将作为性能评估的基线。然后,我们在第4.2节中突出了lc2-hop索引的几个理想属性,用于LCR查询。第4.3节提出了基于lc2-hop索引的查询算法,该算法具有良好性和完整性。在第4.4节中,我们介绍了P2H索引的索引构造算法。在第4.5.1节中,我们展示了所提出算法的正确性和复杂性分析。

4.1 Baseline Solutions
二跳索引技术在无标签约束的可达性查询中得到了广泛的应用。在本小节中,我们将介绍两种简单的基于现有2跳索引技术扩展的LCR查询解决方案。
在这里插入图片描述

为了避免放大索引大小,一种可能的方法是为每个单独的标签构建2跳索引,即一个标签索引。如图1所示,图G有标签L1、L2、L3、L4。我们只构造了四个单标签索引{(L1),(L2),(L3),(L4)},而不是构造所有可能的标签子集(总共24=16)。特别地,对于一个标签,我们考虑所有的顶点和带有标记Li的边,称为图的一个标签划分。然后对图的每个单标签分区构造经典的2跳索引。
在这里插入图片描述

在本文中,我们称这些方法为面向BFS的方法,因为如果没有肯定的答案,它们需要继续探索邻里关系。在面向BFS的LCR查询算法中,我们可以在必要时像BFS一样简单地探索出出边,并在标签约束下测试每个访问的顶点是否达到t。然而,为了加快计算速度,我们提出了一种更有效的查询处理方法,如算法1所述,它可以探索BFS遍历中的单标签索引。特别是,从第4行到第12行的while循环遍历ζ0中的每个可能的标签。在Lout[l]中,我们用label l在一个标签索引中表示出边缘索引Lout中的顶点。注意,为了适应上述查询算法,我们需要在u和v中保持label Li的可达性条目(u,v)。

4.2 Properties of LC 2-Hop Index
Label-Constrained (LC) 2-Hop Index (L).
下面我们展示三个特性来指导构造一个好的LC 2-hop index L
在这里插入图片描述

根据定义,如果一个LC 2跳索引L不sound,则可能会导致false positive,即LCR查询(s,t,ζ0)为假,而2跳索引声称存在s-t ζ0-path。如果L不complete,则可能存在false negative;因此,即使我们无法根据Lout[s]a和Lin[t]中的现有索引项找到任何s-tζ0-path,我们也不能安全地声明。
很容易说,在第4.1节中提出的单标签2跳索引是sound的。因此,我们可以立即得出结论,如果索引得到了,。然而,索引不complete,,因此,如果不能确定,则必须探索s的邻域。假设一个LC 2跳索引同时满足soundness和completeness,我们可以根据Lout[s]和Lin[t]中的索引项得出。
minimal属性意味着索引不包括冗余的索引项,如果一个条目可以由其他索引项派生,那么它就是冗余的。最小属性可能导致索引大小较小,因此由于删除了冗余项,因此查询效率很高。在本文中,我们的目标是建立一个满足这三个性质的LC 2-hop index

4.3 Query Algorithm
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.4 Index Construction Algorithm
我们将介绍如何构造 LC 2-hop index,即 Pruned 2-hop index(简称P2H index)。
我们从v1,…,vn从向前向后两个方向对BFS进行剪枝,如第3行和第4行的算法3所示,其中Lk表示第k轮之后构造的P2H索引。Ln之后,在处理完所有顶点(轮)后定义为P2H索引。
在这里插入图片描述

算法4说明了如何从顶点vk开始进行剪枝。在第2部分,我们使用一个存储当前BFS前沿的数据。第4到14行是一个while循环,它继续BFS搜索。下面三个修剪规则应用于while循环中的第8、10和13行。
在这里插入图片描述

Rule 1.如果顶点v的索引条目已经被计算(即,已经在算法3中被处理),我们跳过顶点v。
Rule 2.如果索引项I可以从现有的索引项中得到,我们就跳过它;也就是说,由条目1表示的标签约束可达性(LCR)信息在当前索引Lk中已经可用。例如,基于当前P2H索引Lk,Lout(v)不需要条目(u,ζ0)如果LCR(v, u, ζ0) = true保持为真(即算法4中的第10行)
Rule 3.如算法5所示,我们可以删除由新索引条目支配的现有索引条目。
在这里插入图片描述

规则一 双向同时求出Lin和Lout,接下来就可以只对大的点进行更新,无需对小的点进行更新
在这里插入图片描述

规则二 对已有path进行比对,如果为现有label超集则无需加入,被剪枝
在这里插入图片描述

规则三 label为原有path的子集,进行第三步,更新索引,是label为最小子集
在这里插入图片描述
在这里插入图片描述

在构造了这些指数之后,给定一个查询 LCR(7,5,r g),即顶点7是否能达到5通过标签{r,g},我们可以在5的入口中找到(1,r g),在7的出口中找到(1,r )。因此这个问题的答案是正确的。
例子错误

5.BFS SEARCH ORDER AND VERTEX ORDER STRATEGIES
5.2 Breadth-First Search Order
在图3中,我们显示了算法4中的BFS搜索顺序可能会影响结果索引的大小。假设我们以当前边界{2,3,4,9}从顶点1开始BFS。如果我们首先访问边(9,5,r),那么从以下边{(4,5,g),(3,5,b),(2,5,w)}产生的索引条目将被修剪,因为顶点5的inentries中的索引条目(1,r)。然而,如果我们遵循另一个顺序,比如(4,5,g),(3,5,b),(2,5,w)和(9,5,r)。条目(1,r),(1,r w)和(1,r b)都将保留在林[5]中,根据定义,这不是最小的。

在这里插入图片描述

我们在算法4中提出了一种新的BFS搜索顺序,以确保一旦插入索引条目,它将不会被随后插入的索引条目修剪。然后,我们将展示这种高级排序策略将确保结果索引的最小属性。
当我们从顶点v进行修剪BFS时,我们只探索最小路径,然后构造的索引是最小的,因为任何索引条目不能被任何其他索引条目修剪,包括现有的和后来插入的索引条目。

不同之处在于,在算法6中,BFS中的一次迭代分为两部分。一个在第五行,它只使用BFS目前的标签。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如图3中的例子所示,如果我们从顶点1开始,当前边界是{(4,r),(3,r),(2,r),(9,r)},对(9,r),我们将只使用第5行标签为r的BFS。如果ζ = {r,g,b},那么在第6行将接触标签为ζ \ r = {g,b}的边。这意味着在这个例子中,算法7将只探索与当前条目相同的标签,例如r,因为(9,r)是当前条目。算法8将探索标签为ζ \ r = {g,b}的边。另外,主要区别在于算法7仅使用算法7第5行的当前标签,而算法8将包括算法8第4行的剩余可用标签。

5.3 Minimal Property
在这里插入图片描述

在这里插入图片描述

对于一个新插入的具有(s,t,ζi)的索引项,它不能被任何现有的索引项支配,因为我们的算法将检查这种支配。因此,我们只需要证明现有的索引条目不会被新插入的索引条目所支配,然后我们将得到一个最小的索引。
当一个新的索引条目(s, li) o r (t, li) 被加入到Lin[t] o r Lout[s]时。根据BFS搜索顺序,所有具有相同起始顶点的插入索引条目,我们表示为(s,l) o r (v,l)将满足条件|l| ≤ |li|。这意味着由于引理1,插入的索引条目将不会被新插入的索引条目支配。

在这里插入图片描述

定理2和定理3表明,由算法6构造的P2H+索引中的每个索引项都是必要的和最小的。因此,P2H+索引利用先进的BFS搜索策略,具有最小属性。P2H+索引也具有健全性和完整性,这是直接的,因为P2H+与P2H相比只是强制执行BFS访问顺序。

5.4 Vertex Ordering Strategies
在我们的索引构造算法中,我们按照特定的顺序为顶点建立索引条目。尽管这一顺序并不影响最终指数的三个属性,但它对实证研究中显示的指数最终表现至关重要。因此,除了算法4的每次BFS搜索中的访问顺序之外,我们进一步考虑算法3中顶点的访问顺序,即用于索引条目构建的顶点顺序。关键思想是优先考虑“中心”顶点,这可以在早期阶段覆盖更多的LCR信息。顶点排序是一个关键问题,在这个问题中,我们需要找到能够尽可能修剪LCR信息的“中心”顶点。与最短路径距离剪枝不同,LCR信息剪枝需要比较标签集的优势

DEGREE:在上面建立索引条目。这种策略背后的见解是,一个高度顶点可能与许多其他顶点有很强的联系。那么更有可能修剪更多的索引条目。当处理带边标记的图时,一个简单的修改是根据这种类型的边在所有边中的百分比给每个标签类型一个权重。在我们最初的实验中,这两种策略具有非常相似的性能,因为高度数的顶点似乎更有可能具有高权重的标签类型。因此,在本文中,我们只考虑经典度阶策略;也就是说,按照顶点度数的后代顺序为顶点建立索引条目。

SIGNIFICANT PATH:提出的节点顺序的原理是“在修剪宽度优先搜索期间自适应地积累节点重要性信息”。我们选择一个重要的顶点作为开始节点v(例如,具有最高度数的顶点),我们选择一个重要的顶点作为开始节点v(例如,具有最高度数的顶点),并构建以count计数数组为根的最小标签路径树,以记录在构建过程中顶点被达到的时间。注意这个数组只会在第一个顶点初始化,也就是说这个信息会在后面的阶段积累。含有高计数的顶点可能具有高介数值。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值