论文阅读13---Keys for Graphs

                                        Keys for Graphs

 摘要

         图的键旨在唯一标识图中顶点表示的实体。我们提出了一类根据图模式递归定义的键,并用子图同构进行解释。这些键扩展了关系和 XML 的传统键,可在对象识别、知识融合和社交网络协调中找到应用。作为一个应用,我们研究实体匹配问题,给定图 G 和一组键 Σ,找到 G 中由 Σ 中的键标识的所有实体(顶点)对。我们证明这个问题很棘手,并且不能在对数轮次中并行化。尽管如此,我们还是在 MapReduce 和以顶点为中心的异步模型中提供了两种用于实体匹配的并行可扩展算法。使用现实生活和合成数据,我们通过实验验证了算法的有效性和可扩展性。

介绍

      由于键对于关系和 XML 至关重要,因此图也需要键。当关系被表示为图时,以及引用图结构的“数字对象”时,这种需求是显而易见的。它们对于知识融合和知识库扩展等新兴应用也很重要,以消除重复实体并融合来自引用同一实体的不同来源的信息。另一个应用是社交网络协调,用于协调多个社交网络上的用户帐户。然而,图表的键比传统的键更具挑战性。

示例 1:我们通过使用知识库中各个领域的示例来说明图的键。

             

Music:考虑一个由三元组(s,p,o)组成的知识库G1,分别表示主语,谓语和宾语;例如,(专辑,由艺术家录制)表示专辑是由艺术家录制的。它被建模为一个图,其中 s 和 o 是节点,通过从 s 到 o 标记为 p 的边连接。

人们可能会认为名字是专辑的关键。然而,这种情况并非如此。例如,Freebase 中就有披头士乐队和 John Farnham 录制的不同同名专辑“Anthology 2”。事实上,专辑 x 的名称仅在同一艺术家录制的所有专辑中唯一标识 x。或者,可以通过专辑名称和首次发行年份来识别专辑。这些产生专辑的两个键: 专辑可以通过以下方式唯一标识:

                 

出于同样的原因,艺术家可能无法通过其名字来识别。事实上,有6位艺术家或乐队名为“Everest”。尽管如此,可以通过合并艺术家录制的专辑之一来给出艺术家的键。

            

这些键分别被描绘为图1中的图形模式Q1(x)、Q2(x)和Q3(x),其中x表示要识别的特定类型的实体。直观上,Q1(x)表示如果两个专辑实体x1和x2具有相同的名称并且由同一艺术家录制,则x1和x2一定是同一个专辑; Q2(x) 和 Q3(x) 类似。

与关系和 XML 的键相比,图的键使用图模式指定拓扑约束。这样的键(a)不仅可以考虑基于属性值绑定的值相等,例如Q1中的名称,还可以考虑节点身份,例如Q1中艺术家节点的身份; (b)可以递归地定义,例如,为了识别专辑实体x,我们可能需要识别其主要艺术家y,而为了识别艺术家实体y,我们需要识别其专辑x之一。

Business:再举一个例子,考虑企业的域名。通常,我们可以通过名称和总部地点来识别美国公司。然而,经常会出现商业合并和分立的情况,很常见的是,子公司可能会使用与母公司相同的名称,但总部不会迁移(例如,AT&T 和 SBC 于 2005 年合并,新公司使用 AT&T 的名称)。为了区分本例中的母公司和子公司,我们需要在键中对父子关系进行编码。这就引出了以下两个键来识别知识库G2中的公司,前者用于合并情况,后者用于分立情况。 

                

                 

这些键展示了与传统键的另一个不同之处:(a)Q4和Q5是有向无环图(DAG),如图1所示; (b) 它们包括不同实体的属性,例如公司的 Q4(x) 包含公司名称及其母公司名称。

 Address:要识别英国的街道,可以使用: Q6:英国的街道可以通过邮政编码来识别。此键不适用于美国等地区的街道。如图1所示,以常量为条件指定Q6。这是与传统按键的另一个不同之处。

图的键与传统的键不同。为了实际使用这些密钥,必须回答几个问题。我们应该如何定义图的键,从语法到语义?用键识别实体的复杂性是多少?是否有任何可扩展的算法来识别大图中具有键的实体?

贡献:本文研究了图的键,从规范和语义到应用。

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

(2) 我们研究实体匹配,即图键的应用(第 3 节)。给定图 G 和图的键集合 Σ,实体匹配就是找到 G 中可以由 Σ 中的键识别的所有实体(顶点)对。我们通过修改经典依赖理论中研究的chase [3]来形式化该问题。虽然关系和具有传统键的 XML 的实体匹配是在 PTIME(多项式时间)中,但我们表明其决策问题对于图来说是 NP完全问题。更糟糕的是,递归定义的键带来了新的挑战。我们证明实体匹配不具有多项式边缘属性(PFP),并且不能在对数并行计算轮次中解决。尽管如此,我们通过提供并行可扩展算法表明实体匹配在实践中是可以实现的。

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

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

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

我们认为这些键为图结构数据提供了传统键的类比。与关系键和 XML 键一样,它们指定数据的语义,并且无论数据如何更改都保持不变。它们不仅对于传统的键使用很重要,而且对于一些新兴应用也很重要。此外,实体匹配允许并行可扩展算法,并且在大图中是可行的。我们在本文中重点关注键的定义和应用,并将通过路径识别[29]或通信理论[23]等方式对键发现的研究推迟到另一篇出版物。

相关工作:关系键是根据一组属性在关系模式上定义的。在没有模式的情况下,XML 键是根据路径表达式指定的。

与传统的键相比, 图的键(a)是根据图模式定义的,在没有模式的情况下指定对拓扑结构和值绑定的约束; (b) 它们基于图模式匹配进行解释,具有值相等和节点标识; (c) 它们可以递归定义。除了传统用途之外,这些键在新兴应用程序中也很有用。

据我们所知,关于图键的唯一先前工作是[33],它根据通过 OWL 本体定义的对象属性和数据属性的组合来指定 RDF 数据的键。此类键与本工作的键不同,因为它们(a)不能递归定义,(b)不强制图模式施加的拓扑约束,以及(c)通过 URI 采用唯一名称假设,这对于实体匹配。

Entity resolution:实体解析(又名实体匹配、记录链接等)是为了识别引用同一现实世界实体的记录。在迭代聚类 [7,32]、基于学习的 [27, 36]、基于规则的方法 [6, 17] 之后,已经有大量关于该主题的工作(有关调查,请参阅 [12, 20])

图的键产生一种声明性和确定性的方法,以在顶点和它们所代表的现实世界实体之间提供不变的连接,并且属于基于规则的方法。先前基于规则的方法主要关注关系数据;这项工作是定义图约束的主要形式,即键。尽管键可以帮助我们减少误报,但键识别的匹配质量很大程度上取决于发现和使用的键。我们将键发现的主题推迟到另一篇论文,并主要关注应用此类约束的效率。

实体解析的一个分支,称为集体实体解析,是联合确定同时出现的引用的实体并传播实体的相似性。类似于数据记录规则,图的键通过提供基于图模式匹配的递归定义的规则来扩展此方法。这项工作通过在数据“更多关联”时定位图表,以及为“更大的数据集”提供并行可扩展算法,解决了[20]中强调的一些新出现的挑战。

最后,我们指出,实体解析只是图键的应用之一,还有数字引用[11]和知识库扩展[15]之外。

并行算法。已经针对子图同构[22,26,35,38]和实体解析[7,25,27,32,36]开发了并行算法。如前所述,[7,27,32,36]关系中的目标记录匹配; [25]处理图,但采用关系记录匹配方法。

我们的算法与以前的算法的不同之处如下。 (a)实体匹配比传统的子图同构更有趣,并且现有算法[22,26,35,38]不能应用于实体匹配。 (b)出于同样的原因,实体匹配比[7,27,32,36]的记录匹配更复杂地识别关系中的元组,并且比[25]的任务在匹配过程中不强制拓扑约束。 (c) 我们提出了以前没有研究过的优化策略。

指定图的键模式

   在本节中,我们正式定义图的键。

 2.1 图和图模式匹配

 Graphs.假设一组实体 E、一组值 D、一组谓词(标签)P 和一组类型 θ。 E 中的每个实体 e 都有一个唯一的 ID 和 θ 中的类型。

图 G 是一组三元组 t = (s, p, o),其中主语 s 是 E 中的实体,p 是 P 中的谓词,对象 o 是 E 中的实体或 D 中的值 d。它可以表示为有向边标记图 (V, E),也用 G 表示,这样 (a) V 是每个三元组 t = (s, p, o) 的由 s 和 o 组成的节点集; (b) 对于每个三元组 t = (s, p, o),E 中有一条从 s 到 o 标记为 p 的边。

我们考虑两种类型的相等性:

(a)E上的节点身份:e1⇔e2,如果实体e1和e2具有相同的ID,即它们引用相同的实体;

  (b) D 上的值相等:如果它们是相同的值,则 d1 = d2。在G中,如果e1 ⇔ e2,则e1和e2表示为同一节点;如果 d1 = d2,则对于值 d1 和 d2 也是如此。

                  

示例2:图2中显示了两个图G1和G2。

(1)图G1表示由艺术家及其专辑组成的知识库的片段。例如,在三元组(art1,name of ,“The Beatles”)中,主题 art1 是类型为 Artist 的实体,对象“The Beatles”是一个值;在 G1 中,两者都表示为节点,并且三元组表示为标记名称从 art1 到“The Beatles”的边。

(2) 图 G2 描述了公司的一组三元组。它告诉我们,例如,“AT&T”(com4 类型公司)的母公司为“AT&T”(com1)和“SBC”(com3)。

图模式:

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

图模式匹配:考虑图 G 和 G 中的实体 e。如果 G 中存在三元组集合 S,并且 S 中 Q(x) 的估值 ν 使得 ν(x) = e,ν 是 Q(x) 和 S 之间的双射。我们将 S 称为 G 中 Q(x) 在 ν 下 e 处的匹配。当三元组S和Q(x)被描绘为图的时候,它俩同构。

示例4:如上图所示,一个是图模式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*.

2.2 Keys for Graphs

    基于图模式,我们接下来定义图的键。

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

     直观地说,在图 G 中,对于类型 τ 的实体 e,Q(x) 中指定的条件唯一标识 e。例如,示例1的Q1和Q2是专辑的键,Q3是艺术家的键,Q4和Q5是公司的键。

     为了给出键的语义,我们使用以下概念。

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

     (a) 如果 sQ 是与 x 不同的变量 y,则 s1 ⇔ s2; oQ 也类似;

     (b) 如果 oQ 是变量 y*,则 o1 = o2。

     当sQ是通配符y时,我们不要求s1⇔s2,即s1和s2可以是不同的实体; oQ 也类似。

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

     如图3所示,键是如果存在S1和S2分别验证e1和e2满足Q(x)的条件,并且如果S1(e1)∼=Q S2(e2),则e1和e2 必须具有相同的 ID,即它们是同一实体。

     

    可以看出例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)是基于值定义的,否则是基于递归定义的。
如果键 Q(x) 包含除 x 之外的一些变量 y,则我们说它是递归定义的,否则是基于值的。直观上,当 Q(x) 是递归的时,e1 ⇔ e2 取决于其他一些实体 e 和 e' 的 e ⇔ e' 是否可以通过变量 y 来标识,这涉及使用(可能是其他)键确定的节点身份。相反,当 Q(x) 是基于值的时,它简单地基于 S1 和 S2 中相关三元组的值相等来决定是否 e1 ⇔ e2。

图1中描绘的键Q1、Q3、Q4和Q5都是递归的,而Q2和Q6是基于值的。

Remark: (1) 为简单起见,我们关注根据值相等和节点身份定义的键。尽管如此,当相似谓词与值相等一样使用时,本文的结果仍然完好无损。 (2) 关系键[3]和XML键[10]可以很容易地表示为具有树形式模式的基于值的键。

        我们还将使用以下符号: (1) |G| (resp. |Q|) 表示 G 中三元组的数量 (resp. Q(x)); (2) 对于一组 Σ 键,|Σ| =  Q(x)∈Σ |Q|和 ||Σ||是它的基数; (3) Q(x) 的半​​径,记为 d(Q, x),是当 Q(x) 被视为无向图(忽略边)时 x 与 Q(x) 中的任何节点之间的最长距离方向。本文的符号总结于表1中。

         

 3. 实体匹配问题

      在本文的其余部分中,我们将重点关注实体匹配,这是键的一个重要应用。我们将问题形式化(第 3.1 节)并确定其复杂性(第 3.2 节)。此外,我们表明,在存在递归定义的键的情况下,实体匹配很难并行化(第 3.3 节)。

3.1 Entity Matching with Keys

      是通过输入一个keys的集合Σ跟一个图G,得到输出chase(G,Σ)。

      例 5 表明 G2 不满足 Q4(x),因为 S1(com4) ∼=Q4 S2(com5) 但 com4 和 com5 不同。然而,键 Q4(x) 告诉我们 com4 和 com5 指的是同一实体,应该被识别。为了形式化这一点,我们通过使用键作为图中实体的规则来修改经典的chase[3]。

考虑一组键和图 G。我们使用 Eq 来表示 G 中相同类型的一组实体对 (e, e′) 的等价关系,这些实体已由 Σ 中的键标识,即 Eq是自反的、对称的和传递的。我们用 Eq0 表示节点身份关系 ⇔,即 G 中所有实体对 (e, e) 的集合。

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

直观上,当使用Σ中的密钥来识别e1和e2时,Eq通过包含(e1,e2)而扩展为Eq'。例如,在G1中,Eq0⇒(alb1,alb2)Eq1,其中Eq1是G1中节点识别关系⇔的扩展,包括了(alb1,alb2)。

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

命题1:

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

使用chase(G,Σ)表示使用Σ的G中的最终的chase结果 

Σ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)}

示例7:设图 1 中的 Σ1 = {Q1(x), Q2(x), Q3(x)},且 Σ2 = {Q4(x),Q5(x)}。然后在图2的G1中,通过应用Q2(x),(G1,Σ1)|=(alb1,alb2),因为alb1和alb2具有相同的名称“Anthology 2”并且最初发布于“1996”。随后通过将 Q3(x) 应用于实体 {art1, alb1} 和 {art2, alb2} 来得到 (G1, Σ1) |= (art1, art2)。请注意,在我们识别出 alb1 和 alb2 之后,才识别出 art1 和 art2。这是因为与 Q2(x) 相比,Q3(x) 是递归定义的:它有一个实体变量 album。也就是说,递归定义的键强加了对实体的依赖性。

3.2实体匹配的复杂性

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

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

3.3递归和并行化

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

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

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

4 实体匹配算法

   定理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中。

例8、如上图所示,设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)

过程评估:接下来我们将展示如何在 MapEM 中使用 Σ 中的关键 Q(x) 检查 (Gd 1 ∪ Gd 2, Eq, Σ) |= (e1, e2)。一种简单的方法是首先使用子图同构算法(例如,VF2 [13],TurboIso [24])枚举 Gd 1 中的 e1 和 Gd 2 中的 e2 处 Q(x) 的所有匹配,然后检查是否有这些匹配匹配一致(参见第 2 节)。这涉及对子图同构算法的两次调用,每次调用的成本都是指数级的。换句话说,使用任何现有的算法来进行检查是不切实际的。

为了降低计算成本,我们提出了算法 EvalMR,它将计算(同构)映射的两个进程合并为一个进程,并允许提前终止,即 EvalMR 在识别到 (e1, e2) 后立即终止。

EvalMR 进行由 Q(x) 引导的搜索,以使用 (Gd 1, Gd 2) 中的候选对 (s1, s2) 实例化 Q(x) 中的节点。我们使用向量 m 来记录实例化,将 Q(x) 的变量或值的映射 ν1 和 ν2 分别组合到 Gd 1 和 Gd 2 中的实体或值,并映射 µ 以使两者重合(参见第 2 节)。对于 Q(x) 中的每个节点 sQ,(a) 当 s1 = ν1(sQ)、s2 = ν2(sQ) 和 s1 = µ(s2) 时,m[sQ] = (s1, s2); (b) 或 m[sQ] = ⊥ 如果 sQ 尚未匹配。

(1)初始化。更具体地说,EvalMR 使用 m[x] = (e1, e2) 和 m[sQ] = ⊥ 初始化 m,其余的均如此。然后它一一实例化 m 个节点,如下所示。

 (2)可行性检查。为了使用 m[sQ] = (s1, s2) 扩展 m,它会检查以下可行性条件。

      (1) Injection:s1 和 s2 尚未出现在 m 中。

      (2) Equality: (a) 若 sQ 为 y,则 (s1, s2) ∈ Eq; (b) 如果 sQ 是 y*,则 s1 = s2(值); (c) 如果 sQ 为 y,则 s1 和 s2 是同一类型的实体; (d) 如果 sQ 为 d,则 s1 = s2 = d(值)。

      (3) Guided expansion:对于所有三元组 (sQ, pQ, oQ) ε Q(x),如果 oQ 已经实例化,即 m[oQ] = (o1, o2),则 (s1, pQ, o1) ε Gd 1 且 (s2, pQ, o2) ∈ Gd 2;对于 Q(x) 中的所有三元组 (s′ Q, pQ, sQ) 也是如此。

(3)验证。当 m 完全实例化时,即它不包含 ⊥,EvalMR 得出结论: (Gd 1 ∪ Gd 2, Eq, {Q(x)}) |= (e1, e2) 并返回 True。否则,错误。

示例 9:继续示例 8,在第 1 轮中通过 Q2(x) 识别 alb1 和 alb2 之后,EvalMR 在第 2 轮中用 Q3(x) 识别 art1 和 art2。它初始化 m[x] = (art1, art2),并在可行性检查后用 m[name*] = (“The Beatles”, “The Beatles”) 和 m[album] = (alb1, alb2) 扩展 m。当 m 完全实例化时,EvalMR 返回 True。

5 一种顶点为中心的算法

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

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

       为了降低成本,我们在[31]的以顶点为中心的模型中开发了一种实体匹配算法。与 MapReduce 不同,[31] 基于在每个顶点上并行执行的顶点程序,并通过异步消息传递与顶点的邻居进行交互。不需要全局变量 Eq,也不需要将计算同步到轮次中。

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

      

       该算法称为 EMVC,在给定图 G 和一组键 Σ 时计算chase(G, Σ)。对于所有 (e1, e2) ∈ L,它检查是否 (G, Σ) |= (e1, e2)。与 EMMR 类似,EMVC 一旦被 Σ 中的任意键识别,就会将 (e1, e2) 添加到 Eq 中。与 EMMR 相比,EMVC 遵循异步消息传递 [31]。为了确定是否 (G, Σ) |= (e1, e2),它针对 (e1, e2) 上定义的所有键,与多个消息并行检查键中节点的不同实例

       当(G,Σ) |= (e1, e2) 时, 通过发消息的方式通知属于L且定义在(e1, e2)上的(s1, s2) 。Eq的传递闭包同时通过消息传播来计算,该过程继续进行,直到没有消息处于活动状态,并且不能再更改Eq。

      EMVC 背后的关键思想包括验证 (G, Σ) |= (e1, e2) 的引导搜索和基于实体依赖性的 TC 扩展,两者均通过异步消息传递。为了促进消息传递,EMVC 使用以下内容。

      提出产品图(Product graph)的概念:图G除了三元组的表达方式还可以写成 ,其中V包含了三元组中的s和o,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

例10:我们展示了 EMVC 如何作用于示例 7 的 G1 和 Σ1。G1 的(部分)产品图 Gp1 如图 6 所示,其中 (art1, art2) 依赖于 (alb1, alb2)。

         

对于 Q2,PQ2 的顺序为 [t1, t2, t3, t4],其中 t1 和 t2 为 (x, name of, name*)+/-,t3 和 t4 为 (x, 发行年份, Year*)+ /−,分别;这里+和-分别表示向前和向后遍历。在 (alb1, alb2) 处,EvalVC 为 Q2(x) 构造初始消息 mQ2,其中 mQ2 [x] = (alb1, alb2),为其他节点构造 ⊥。如图 6 所示,它以 PQ2 为引导,按如下方式传播 m

              

      当mQ2被发送回(alb1,alb2)时,它被完全实例化,并且Flag(alb1,alb2)被设置为True。然后,EvalVC 通过标记为 dep 的边通知节点 (art1, art2),在那里触发 Q3(x) 的增量消息 mQ3,并沿着相同的线路识别 (art1, art2)。虽然其他一些节点通过跟随 tc 边来通知计算 TC,但不会派生出新的实体对。此时,没有消息正在传输,并且 EMVC 返回 Flag = True 的所有实体对。

5.2 优化策略

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

     引入一个新概念,三元关系,设有键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)的,并且 能够在内计算出来。

结论

     我们提出了一类图的键。我们已经证明实体与键的匹配是 NP 完全的并且难以并行化。尽管如此,我们还是提供了两种并行的可扩展算法,并且我们的实验结果验证了实体匹配在实践中是可行的。未来工作的主题之一是开发有效的算法来发现键。另一个主题是使键适应具有不同模式匹配语义的各种应用。  

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值