Keys for graphs阅读笔记

1、我们提出了一类图的键,我们根据图形模式定义键,以指定识别实体所需的拓扑约束和值绑定。此外,关键字可以递归定义:为了识别一对实体,我们可能需要决定是否能够识别其他一些实体,如所示。我们通过子图同构的图模式匹配来解释关键字。这使得这样的键比我们熟悉的关系和XML键更具表现力。

2、我们研究实体匹配,这是图的键的应用。给定一个图G和图的一组键Σ,实体匹配就是寻找G中所有可以被Σ中的键识别的实体(顶点)对。我们通过修正经典依赖理论中研究的chase [3]来形式化这个问题。当实体匹配对于关系和具有传统关键字的XML是多项式时间的时候,我们证明了它的决策问题对于图是NP完全的。更糟糕的是,递归定义的键带来了新的挑战。我们证明了实体匹配不具有多项式条纹性质(PFP)。并且不能在对数并行计算回合中解决。尽管如此,我们通过提供并行可扩展算法,表明实体匹配在实践中是可行的。

3、我们开发了一个用于实体匹配的MapReduce算法。与子图同构相反,使用递归定义的关键字进行实体匹配需要定点计算,并且在每一轮中,对每个实体对进行多重同构检查。我们证明了该算法是并行可扩展的,即它的最坏情况时间复杂度为,其中t(,)是|G|和|Σ|中的函数,p是使用的处理器数量。随着p的增加,它保证花费的时间成比例地减少,这是许多并行算法所不保证的。我们还开发了优化方法来处理递归定义的键

4、我们在[31]的顶点中心异步模型中给出了另一种算法。该算法不仅并行检查不同的实体对,而且在检查每个实体对时,通过异步消息传递并行检查不同的映射。它减少了MapReduce的输入/输出界限和同步策略(“阻挡”掉队者)固有的不必要的成本。我们证明了该算法也是可并行扩展的。此外,我们还提出了减少消息传递的优化技术。

5、使用现实生活和合成数据,我们通过实验评估我们的算法。尽管难以并行化,但我们发现我们的MapReduce和以顶点为中心的算法确实是可并行扩展的:当处理器数量从4个增加到20个时,它们的平均速度分别是4.8倍和4.9倍。它们相当有效:在具有6亿个节点和边的图上,对于500个递归定义的键,它们分别用20个处理器平均花费27秒和1.5秒。此外,我们针对这两者的优化技术是有效的,分别将性能提高了200%和50%。我们还发现以顶点为中心的方法降低了MapReduce的固有成本,并且性能更好。

1、首先介绍本文的各个符号

1.1图:

实体集合;值集合;谓词(标签)集合;类型集合Θ;中的每个实体e都有唯一的ID和Θ中的一个类型. 图G是一个三元组t = (s, p, o),其中主体s是中的一个实体;p是中的一个谓词或标签;客体o要么是中的实体,要么是中的值.同样能表示为一个有向边-标记图(V,E),V是有t(s,p,o)中的s和o组成的节点集合,E是从s到o的被标记为p的边。

在图上考虑两个相等问题:

上的节点标识:e1⇔e2,若e1和e2有相同的ID则说他们指的是同一个实体

上的值表示:d1=d2,如果它们是相同的值

若e1⇔e2或d1=d2则G中e1和e2表示相同的节点

例1、上图G1和G2是两个图的例子,G1和G2都是三元组集合。如三元组(art1, name_of, “The Beatles”)是与(s,p,o)一一对应的,可以写成句子art1 is name of the Beatles.其中subject art1是类型为artist的实体,object “The Beatles”是一个值,他们俩都被表示为G1中的一个节点,而谓词name_of则表示为边。同样可以写出(alb1,release_year,”1996”)对应alb1’s release year 1996.(alb1,recorded_by,art1)对应alb1 is recorded by art1.

1.2、图形模式

图模型Q(x)的一个三元组,若两个变量y相等则使用⇔表示其关系,若两个y*值相等则使用=表示其关系

可以是: 1、实体变量y,对应一个实体; 2、值变量y*,对应一个值; 3、通配符_y,对应一个实体;

可以是:1、实体变量y,对应一个实体; 2、值变量y*,对应一个值; 3、通配符_y,对应一个实体;4、值d;

中的一个谓词。Q(x)中的x也是表示一个实体;实体变量和通配符都带有一个类型,如G1中alb1 类型是album,art1类型是artist.

例2、Q4(x)是(x,name_of, name*),( company,name_of, name*), ( company,parent_of, x)和(company, parent_of, x)的结合。x是指定的变量;name*是一个值变量company是一个实体变量;_company是一个company类型的通配符。

三元组集合S中Q(x)的valuation是一个映射v,这个映射从Q(x)映射到S,保存了D中的值和P中的谓词,并且映射变量y和_y到相同类型的实体。Q(x)中每个三元组都能在S中找到对应的三元组(s,p,o)有或者直接写成,其中

1、

2、若是变量_y或y则o是实体,若是值d则o=d,若是y*则o是值;

3、实体s和有相同的类型;类似的若是y或_y则o和有相同的类型,明显若是y*,则不存在类型这么一说。

1.3图模式匹配:

存在一个图G和G中的一个实体e,若G中存在一个三元组S且S中有一个Q(x)的映射v使得v(x)=e则我们说G匹配Q(x),并且v是一个在Q(x)和S之间的双射。我们称S为ν下e处G中Q(x)的匹配。当三元组S和Q(x)被描绘为图的时候,它俩同构。

              

例3、如上图所示,一个是图模式Q4(x),一个图G4,红线部分表示一个与Q4(x)匹配的子图S1,绿线表示另一个与Q4(x)匹配的子图S2。可以看出不管是绿线部分还是红线部分都与Q4(x)是同构的,而图模式匹配就是要在图(G)中找到与模式(Q(x))同构的那些子图。

S1中v1(com4)=x ; v1(com1)=_company ; v1(com3)=company ; v1(“AT&T”)=name*.

S2中v2(com5)=x ; v2(com2)=_company ; v2(com3)=company ; v2(“AT&T”)=name*.

1.4、图的键:

τ类型实体的一个key是图形模式Q(x),其中x是τ类型的指定实体变量。

若S1和S2之间的双射µ可以由ν1和ν2导出且保持节点身份和值相等,则我们称S1与S2重合,记作:。且对于满足:

  1. 是一个y,但不是x,则s1⇔s2,也类似。
  2. 是一个y*,则o1=o2

很明显,上述例3中S1和S2不是重合的。

若存在匹配S1和匹配S2有,可推出e1⇔e2,则我们说G满足Q(x)表示为G |= Q(x)。

可以看出例3中G不满足Q(x),S1为红线部分,S2位绿线部分,再看:

S1中v1(com4)=x ; v1(com1)=_company ; v1(com3)=company ; v1(“AT&T”)=name*.

S2中v2(com5)=x ; v2(com2)=_company ; v2(com3)=company ; v2(“AT&T”)=name*.

可以看出com1跟com2身份相同,但是他俩不是同一个节点。Com4和com5身份也相同,但是他俩也不是同一个节点。也就是说若G要想满足Q(x),G中只能存在一个子图S使得S是匹配Q(x)。像例3这种存在两个子图匹配了Q(x),G就不满足Q(x)了。如果一个键Q(x)除x以外只包含了y*,则Q(x)是基于值定义的,否则是基于递归定义的

可以看出键Q1,Q2,Q4,Q5是基于递归的,Q2,Q6是基于值的

还会使用|G|表示G中三元组的数量,用|Q|表示Q(x)中三元组的数量。

表示所有Q(x)中三元组的数量总和,||Σ||表示Q(x)的数量,d(Q, x)表示将Q(x)看成无向图时,x到节点的最远距离。

2、实体匹配问题

2.1、实体匹配问题是通过输入一个keys的集合Σ跟一个图G,得到输出chase(G,Σ)。

在递归定义的关键字存在的情况下,实体匹配很难并行化。

例3中com4和com5很明显是相同的节点,毕竟其名字,母公司都相同,但是在1.4节中却,所以在本章以后修改了之前的 chase

S1中v1(com4)=x ; v1(com1)=_company ; v1(com3)=company ; v1(“AT&T”)=name*.

S2中v2(com5)=x ; v2(com2)=_company ; v2(com3)=company ; v2(“AT&T”)=name*.

我们将满足以下条件的实体对放入Eq中,Eq0中存放相同实体对如(s1,s1)和(s2,s2), 修改之后的chase为:

1、若是一个y,但不是x,则(s1, s2) ∈ Eq(而不是s1⇔ s2),也类似。也就是说放松了条件,之前没有Eq时只能有一个子图满足图形模式,现在可以有多个,例3中的(s1,s2)就属于Eq,且s1,s2都满足图形模式。

2、若是一个y*,则o1=o2

我们在等式中用Σ定义了一个G的chase step ,其中(e1, e2) 是G中不属于Eq的一对实体,并且在Q(x)中存在匹配S1和S2使得,且Eq’等价于Eq U {(e1,e2)}则存在一个追逐序列 使得

命题1:对于任意keys集合Σ和图G,不管keys是如何应用的,使用Σ的G中所有终端追踪序列都有有限且有相同的结果,若则可表示为

使用chase(G,Σ)表示使用Σ的G中的终端追踪结果 

Σ2包含了Q5(x)跟Q4(x),这个序列可以解释为从Eq0开始,因为G2满足Q4所以Eq0加入(com1,com1),(com2,com2),因为G2要满足G5(x),所以加入(com4,com4),(com5,com5),Eq0={(com1,com1),(com2,com2),(com4,com4),(com5,com5)},即Eq0是由相同的com对组成的,然后每次往里面加一个(comi,comj),要求这两个com需要是由Q4(x)导出的且不属于之前的那个Eq(即Eq0),即下次因为就加入(com4,com5)得到Eq1={(com4,com4),(com5,com5), (com4,com5)},同理蓝线跟橙线部分满足Q5(x),则Eq2=Eq1 U (com1,com2),所以Eq2={(com4,com4),(com5,com5),(com1,com2),(com4,com5)}

2.2实体匹配的复杂性

定理2:实体匹配是NP-complete

引理3: 即使Σ由单个基于值的key Q(x)组成,并且当图G是DAG(有向无环图)时,实体匹配问题仍然是NP-hard的。

2.3递归和并行化

如果所有真实事实都有一个证明树,使得它的叶数在数据大小中是多项式的,那么数据日志程序具有多项式边缘属性(PFP)。

定理4:实体匹配(1)没有PFP,(2)不能在对数轮中并行化,即使是在树上

命题5:在树上,实体匹配在PTIME中

3、实体匹配算法

3.1、MapReduce算法和并行可扩展性

定理6:MapReduce中存在一个并行可测量的算法用于实体匹配

本节介绍一个名为的算法,以图G和一个keys集合为输入,得到chase(G,Σ)。算法的具体流程如下所示:

传递闭包:通俗的讲就是如果a->b,b->c,那么我们就建立一条a->c的边。将所有能间接相连的点直接相连。 Floyd能在O(n3) 求出一个图的传递闭包。

实体e的d-邻图:设d是Σ中键Q(x)定义于e的最大半径;是从e开始再图G中附近的d跳个节点;通过e的d跳可以得到一个G的子图,且有Q(x)小于等于子图,子图小于等于图G.

 

算法结合同构检查和传递闭包计算到相同的MapReduce过程。

以使用一个Eq和一个候选集合L开始,Eq中包含了所有的实体组成的实体对如:(e1,e1);候选集合L中包含了所有的实体对(e1,e2),其中e1和e2有相同的类型,且在上面定义了Σ中的一个键Q(x)。

只要Σ中有一个键可以识别(e1, e2),就可以说

算法将检查时检查的图G分别替换成对应的两个子图的并集,即,而满足的等式变为

如果成立,且之前不在Eq里面,则将添加到Eq里面,每添加这么一个实体对,就要计算Eq内的传递闭包(TC),如:若都在Eq中,则可以直接添加到Eq中。

每一轮检查Σ中的一个键,直到Eq不再增长,则停止迭代。

 

算法在MapReduce上的工作方式:

1、使用一个non-MapReduce驱动器,这个驱动器首先识别候选集L中的的实体e,通过广度优先算法给所有的实体e找到其对应的d-近邻图,再将这些d-近邻图和键集合Σ 存到磁盘空间里面,以便共享内存,在MapReduce里面Eq是一个全局变量,方便各个Mapper更改。使用键值对((e1, e2),(Flag))来触发Mapper上的MapEM

2、MapEM的工作过程:MapEM接受到键值对((e1, e2),(Flag)),并使用程序  来检查(e1, e2)是否属于Eq或,如果满足其中一条,则将(e1, (e1, e2,True))和(e2, (e1, e2,True)) 发出作为结果并计算传递闭包,若不满足则只是 (e1,(e1, e2,False))作为结果。 

3、ReduceEM的工作过程:ReduceEM接受到键值对, 首先对Eq(e)和L(e)进行初始化为∅ ,遍历键值对,将(e1, e2,True) 都并入Eq(e)中,将(e1, e2,False)都并入L(e)中,最终将Eq与Eq(e)合并得到新的Eq,最终遍历Eq,计算出其传递闭包,看传递闭包是否属于Eq,若不属于则发射((e1,e2),(True)),且将(e1,e2)并入Eq中。

例4、如上图所示,设keys集合Σ包含了Q2(x)和Q3(x),是Q(x)中的实体,s1,s2是子图中的实体

第一轮先通过Q2(x)来识别alb1,abl2,alb3. 识别规则为1、为y,则(s1, s2) ∈ Eq; 2、若为y*,则s1=s2;3、若为_y,则s1和s2具有相同的类型;4、若是d,则s1=s2=d。

明显(G,Σ)|(alb1,alb2),则ReduceEM将(alb1,alb2)并入Eq中,其余不满足的留到下一轮。

第二轮通过Q3(x)来识别art1,art2,art3. 明显(G,Σ)|(art1,art2),则ReduceEM将(art1,art2)并入Eq中,而当Eq停止更新时,则返回最终的结果 chase(G1,Σ1)

 

3.2、一种顶点为中心的算法

定理10: 在[31]的顶点中心模型中存在用于实体匹配的并行可伸缩算法。

为什么已经有了MapReduce算法还要提出这个算法:1、维护全局变量Eq花费太高。2、每一轮中的掉队者,其可以支撑实体对链的过程,递归定义的键对该链施加依赖性

因此提出了此算法,名为,以图G跟一个keys集合Σ作为输入,输出chase(G,Σ),算法的步骤如下图所示:

对于所有的(e1, e2) ∈L,我们检查是否(G,Σ) |= (e1, e2) ,如果满足,则将(e1,e2)添加到Eq中。

但是使用异步消息传递(asynchronous message passing),对于(e1,e2)上定义的所有键,它用多个消息并行检查键中节点的不同实例,以此决定是否(G,Σ) |= (e1, e2)。

当(G,Σ) |= (e1, e2) 时, 通过发消息的方式通知属于L且定义在(e1, e2)上的(s1, s2) 。

Eq的传递闭包同时通过消息传播来计算,该过程继续进行,直到没有消息处于活动状态,并且不能再更改Eq。

背后的关键思想包括验证(G,Σ)| =(e1,e2)的引导搜索和基于实体依赖的TC扩展,两者都是通过异步消息传递实现的。

提出产品图(Product graph)的概念:图G除了三元组的表达方式还可以写成 ,其中V包含了三元组中的s和p,E内则是从s到o的所有带标签p的边的集合。

给定图G和keys集合Σ,得到产品图,其中Vp中的每个节点是(a)可以配对的一对(o1,o2)实体或值;或者(b)只有当e与Vp中的另一个实体配对时,才是一对(e,e)实体。

Ep则存放边((s1, s2), p, (o1, o2)),表示从(s1, s2) 到(o1, o2) 若(a) (s1, p, o1)和(s2, p, o2)都是在G中的;或者(b) (o1, o2)依赖(s1, s2),这里p是一个特殊的标签dep;或者(c)o1⇔ o2和o1⇔s1或o1⇔ s2,在这种情况下,p标记为tc

 

4、优化策略

算法的性能主要被L的长度、d-近邻的大小以及MapReduce的计算复杂度所支配。我们可以从L的长度和MapReduce的计算复杂度入手来优化整个算法。

4.1.1 从L的长度入手

引入一个新概念,三元关系,设有键Q(x),两个实体e1,e2以及他们对应的G中的子图

若满足以下条件:

(1)

(2)对于中的每一个三元组,都有:

(2.1)若 是y或_y,则s1和s2有相同的类型;若是y*,则s1 = s2;若是d,则s1=s2=d

(2.2)对于Q(x)中的每个三元组,在两个子图中分别存在三元组使得 、并且

则我们称为Q在(e1,e2)的配对关系

 命题9:对于任意对(e1,e2):

(1)若e1和e2不能通过Σ中的键配对,则

(2)若(e1,e2)能通过Q(x)配对,则在(e1,e2)中存在一个唯一最大配对关系Q(x)的,并且 能够在内计算出来

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值