基于注意力机制的知识图谱关系预测 ACL 2019

基于注意力机制的知识图谱关系预测 ACL 2019
论文链接:https://arxiv.org/pdf/1906.01195.pdf
代码链接:https://github.com/deepakn97/relationPrediction
论文来源:ACL 2019

摘要

背景:近年来知识图谱(KGs)的激增,再加上实体之间缺少关系(链接)形式的不完整或部分信息,引发了大量关于知识库补全(也称为关系预测)的研究。最近研究表明,基于CNN的模型能够生成更丰富、更有表现力的特征嵌入,在关系预测方面也有很好的表现。

问题:然而,我们观察到这些KG嵌入独立地处理三元组,因此不能覆盖在三元组周围的本地邻居中固有的隐含的复杂和隐藏的信息。

本文:提出了一种新的基于注意的特征嵌入方法,该方法能同时捕获任意给定实体邻域内的实体特征和关系特征。此外,我们还在模型中封装了关系集群和多跳关系。

1、引言

知识图谱(KGs)将知识库(KBs)表示为一个有向图,其节点和边分别表示实体和实体之间的关系。例如,在图1中,triple (London, capital of, United Kingdom)表示为两个实体:London和United Kingdom,以及连接它们的关系(capital of)。
基于注意力机制的知识图谱关系预测 ACL 2019

KGs被广泛应用于语义搜索等领域,对话生成和问题回答等等。

问题:然而,KGs通常会丢失关系。这个问题引发了知识库补全的任务(也称为关系预测),它需要预测给定的三元组是否有效。

目前最先进的关系预测方法主要是基于知识嵌入的模型。它们被广泛地归类为翻译模型和基于CNN的模型。虽然翻译模型使用简单的操作和有限的参数来学习嵌入,但是它们产生的嵌入质量很低。相比之下,基于CNN的模型由于其参数效率和对复杂关系的考虑,学习到更具表达性的嵌入。

问题:然而,翻译和基于CNN的模型都独立地处理每个三元组,因此未能封装给定实体附近固有的和丰富潜在的语义关系到知识图谱中。

基于上述观察结果,我们提出了一种基于广义注意力的关系预测图嵌入方法。对于节点分类,图注意力网络(graph attention networks, GATs) (Velickovi c et al., 2018)被证明关注于图中最相关的部分,即1跳邻域内的节点特征。

在给定一个KG和关系预测任务的情况下,我们的模型通过对给定实体/节点的多跳邻域中的实体(节点)和关系(边缘)特征进行引导,对注意机制进行了概括和扩展。

我们的想法是:

  1. 捕获围绕给定节点的多跳关系
  2. 封装实体在各种关系中所扮演角色的多样性
  3. 巩固现有的知识在语义上相似的关系集群

我们的模型通过给邻居中的节点分配不同的权重(注意力),并通过分层迭代的方式传播注意力来实现这些目标。

然而,随着模型深度的增加,远处实体的贡献呈指数递减。为了解决这个问题,我们使用了(Lin et al., 2015)提出的关系组合来引入n-hop邻居之间的辅助边,这样就实现了实体之间的知识流动。

我们的架构是一个编码器-解码器模型,其中我们的广义图注意模型和ConvKB (Nguyen et al., 2018)分别扮演编码器和解码器的角色。

此外,该方法可以扩展为学习文本嵌入图的有效嵌入(KOTLERMAN et al., 2015),其中全局学习在过去已经被(Berant et al., 2015)和(Berant et al., 2010)证明是有效的。

2、相关工作

近年来,人们提出了几种不同的KG嵌入量来进行关系预测。大致可以分为:
(i) 基于成分的,
(ii)基于翻译的,
(iii)基于CNN的,
(iv)基于图的模型。

RESCAL 、NTN和全息嵌入模型(HOLE)是基于成分模型的例子。RESCAL和NTN都使用张量积来捕获丰富的相互作用,但是需要大量的参数来建模关系,因此计算起来很麻烦。为了克服这些缺点,HOLE使用实体嵌入的循环关联来创建更高效和可伸缩的组合表示。

相比之下,TransE 、DISTMULT和ComplEx等翻译模型提出了可能更简单的模型。TransE将头尾实体之间的转换操作视为关系。DISTMULT使用双线性对角模型学习嵌入,这是NTN和TransE中使用双线性目标的一个特例。DISTMULT使用加权元素点积来建模实体关系。ComplEx通过使用复杂的嵌入和厄米点积来概括DISTMULT。这些翻译模型速度更快,需要的参数更少,而且相对容易训练,但导致表达性较差的KG嵌入。

最近,提出了两种基于CNN的关系预测模型,分别是ConvE和ConvKB。ConvE使用了嵌入上的二维卷积来预测链接。它由卷积层、全连接投影层和内积层组成,用于最终的预测。使用多个filter生成不同的特征图来提取全局关系。这些特征映射的连接表示一个输入三元组。这些模型是参数有效的,但是独立地考虑每个三元组,而不考虑三元组之间的关系。

基于图的神经网络模型R-GCN是将图卷积网络(GCNs)应用于关系数据的扩展。它对每个实体的邻域进行卷积运算,并赋予它们相等的权重。这个基于图的模型并不优于基于CNN的模型。现有的方法要么只关注实体特征来学习KG嵌入,要么不相交地考虑实体特征和关系。相反,我们提出的图注意模型整体地捕获了KG中任意给定实体的n-hop邻居中的多跳和语义上类似的关系。

3、提出的方法

3.1、背景知识补充

知识图谱可以表示为 ζ=(ϵ,R)ζ=(ϵ,R),其中 ϵϵRR 分别表示集合中的实体(结点)和关系(边)。对于三元组(es,r,eo)(e_s,r,e_o)可以表示两个实体节点es,eoe_s,e_o之间存在边 rr。嵌入模型试图学习实体、关系以及得分函数的有效表示,以达到当给定一个三元组t=(es,r,eo)t=(e_s,r,e_o)作为输入时,得分函数 f(t)f(t) 可以给出 tt 是真实三元组的概率。

3.2、图注意力神经网络(GATs)

图注意力神经网络 (GANs)不同于图卷积神经网络(GCNs)将所有邻居实体的信息赋予相同权重的策略,而是采用了按照邻居实体结点对给定实体结点的不同重要程度分配不同权重的策略。x={x1,x2,,xN}x=\{\vec{x_1},\vec{x_2},\cdots,\vec{x_N}\}表示该神经网络中一层结点中的输入特征集合。该层生成的变换后的特征向量为x={x1,x2,,xN}x'=\{\vec{x_1}',\vec{x_2}',\cdots,\vec{x_N}'\},其中xi\vec{x_i}xi\vec{x_i}'分别表示实体eie_i的输入嵌入向量与输出嵌入向量,NN 表示实体(结点)的个数。单独的 GAT 层可以描述为下述公式:eij=a(Wxi,Wxj)(1)e_{ij}=a\left(W\vec{x_i},W\vec{x_j}\right) \tag{1}其中eije_{ij}表示知识图谱中边(ei,ej)(e_i,e_j)的注意力值,WW 是一个可以将输入特征映射到更高维的输出特征空间中的参数化的线性转化矩阵,aa 是所选择的注意力函数。

每个边的注意力值(ei,ej)(e_i,e_j)表示边的特征对源结点eie_i的重要程度。此处相对注意力值αij\alpha_{ij}通过对邻居集合中得出的所有注意力值进行 softmax 运算得出。公式(2)展示了一个输出层。xi=σ(jNiαijWxj)(2)\vec{x_i}'=\sigma\left(\sum_{j\in\mathcal{N}_i}\alpha_{ij}W\vec{x_j}\right) \tag{2}GAT 运用多头注意力来稳定学习过程。连接 KK 个注意头的多头注意力过程如公式(3)所示:xi=k=1Kσ(jNiαijkWkxj)(3)\vec{x_i}'=\Vert_{k=1}^K\sigma\left(\sum_{j\in\mathcal{N}_i}\alpha_{ij}^kW^k\vec{x_j}\right) \tag{3}其中 || 表示连结方式,σσ 表示任意的非线性函数,αijk\alpha_{ij}^k表示由第 kk 个注意力机制计算的边(ei,ej)(e_i,e_j)的归一化系数,WkW^k表示第 kk 个注意力机制对应的线性转化矩阵。为达到多头注意的目的,在最终层的输出嵌入向量是通过计算平均值得出的而不是采用连接操作得出的。如公式(4)所示:xi=σ(1Kk=1KjNiαijkWkxj)(4)\vec{x_i}'=\sigma\left(\frac{1}{K}\sum_{k=1}^K\sum_{j\in\mathcal{N}_i}\alpha_{ij}^kW^k\vec{x_j}\right) \tag{4}

3.3、关系很重要

虽然 GAT 取得了成功,但是由于忽略了知识图谱构成中不可或缺的关系(边)上所具有的特征,所以 GATs 方法并不适用于知识图谱。在知识图谱中,实体依据与它们相连的关系在三元组中具有不同的作用。因此作者提出了一种将关系与相邻节点特征相结合的新型方法构建嵌入模型。据此,定义了一个单独的注意层,它是构成本文中提出的模型的构建单元。与 GAT 类似,本文中的框架对注意力机制的特定选择是不可知的。

本文提出的模型中的每一层都将两个嵌入矩阵作为输入。实体嵌入矩阵用矩阵HRNe×TH\in R^{N_e\times T}来表示,其中第 ii 行表示实体eie_i的嵌入向量,NeN_e表示实体总数,TT 表示每个实体嵌入向量的特征维数。用一个相同结构的矩阵GRNr×PG\in R^{N_r\times P}来表示关系的嵌入向量矩阵。然后该层输出两个对应的嵌入矩阵HRNe×TH'\in R^{N_e\times T'}GRNr×PG'\in R^{N_r\times P'}

为获得实体eie_i的新的嵌入向量,学习了一种与eie_i相连的每一个三元组的表示。如公式(5)所示,通过对实体和关系特征向量的连接进行线性变换来学习这些嵌入,这些特征向量对应于一个特定的三元组tijk=(ei,rk,ej)t_{ij}^k=(e_i,r_k,e_j)cijk=W1[hihjgk](5)\vec{c_{ijk}}=W_1\left[\vec{h_i}||\vec{h_j}||\vec{g_k}\right] \tag{5}其中cijk\vec{c_{ijk}}是一个三元组tijkt_{ij}^k的一个向量表示。向量hi\vec{h_i}hj\vec{h_j}gk\vec{g_k}分别是实体eie_ieje_j和关系rkr_k的嵌入向量。除此之外,W1W_1表示线性转化矩阵。该模型学习了每一个三元组tijkt_{ij}^k的重要程度,用bijkb_{ijk}表示。之后用一个权重矩阵W2W_2作为参数进行线性变换,然后应用 LeakyRelu 非线性变换得到三元组的绝对注意值(如公式(6))。bijk=LeakyReLU(W2cijk)(6)b_{ijk}=LeakyReLU\left(W_2\vec{c}_{ijk}\right) \tag{6}如公式(7)所示,为了获得相对注意力值,对所有bijkb_{ijk}进行 softmax 运算。图三展示了对于一个三元组相对注意力值αijk\alpha_{ijk}的计算过程:αijk=softmaxjk(bijk)=exp(bijk)nNirRinexp(binr)(7)\alpha_{ijk}=softmax_{jk}(b_{ijk})\\=\frac{exp(b_{ijk})}{\sum_{n\in\mathcal{N}_i}\sum_{r\in\mathcal{R}_{in}}exp(b_{inr})} \tag{7}
基于注意力机制的知识图谱关系预测 ACL 2019
其中Ni\mathcal{N}_i表示所有与实体eie_i相邻的实体的集合,Rij\mathcal{R}_{ij}表示连接实体eie_ieje_j的关系的集合。实体eie_i的新的嵌入向量是由对每一个三元组表示向量按注意力值进行加和得到的。如公式(8)所示:hi=σ(jNikRijαijkcijk)(8)\vec{h_i}'=\sigma\left(\sum_{j\in\mathcal{N}_i}\sum_{k\in\mathcal{R}_{ij}}\alpha_{ijk}\vec{c_{ijk}}\right) \tag{8}为了稳定学习过程,且压缩更多的有关邻居结点的信息,采用多头注意力机制。将 MM 个独立的注意力机制用来计算,将其连接,可以表示如下:hi=m=1Mσ(jNiαijkmcijkm)(9)\vec{h_i}'=\Vert_{m=1}^M\sigma\left(\sum_{j\in\mathcal{N}_i}\alpha_{ijk}^m\vec{c_{ijk}^m}\right) \tag{9}
基于注意力机制的知识图谱关系预测 ACL 2019
图四展示了图注意力层结构。如公式(10)所示,将一个权重矩阵WRRT×TW^R\in R^{T\times T'}作用于关系嵌入矩阵 GG 进行线性变换,其中 TT' 是输出的关系嵌入向量的维度。G=GWR(10)G'=GW^R \tag{10}在模型的最后一层作者采用对最终的实体的嵌入向量取平均的方式而不是像多头嵌入一样采用连接嵌入。具体公式如下:hi=σ(1Mm=1MjNikRijαijkmcijkm)(11)\vec{h_i}'=\sigma\left(\frac{1}{M}\sum_{m=1}^M\sum_{j\in\mathcal{N}_i}\sum_{k\in\mathcal{R}_{ij}}\alpha_{ijk}^m\vec{c_{ijk}^m}\right) \tag{11}但是当学习新的嵌入向量时,实体丢失了它们最初的嵌入向量信息。因此为了解决这个问题,作者通过用一个权重矩阵WERTi×TfW^E\in R^{T^i\times T^f}对进行线性变换得到HtH^t。其中HiH^i表示本文模型中作为输入的实体嵌入向量,HtH^t表示转化后的实体嵌入向量,TiT^i表示初始实体嵌入向量的维度,TfT^f表示最终实体嵌入向量的维度。作者将最初的实体嵌入向量的信息加到从模型最终注意力层获得的实体嵌入向量矩阵上,公式如下:H=WEHt+Hf(12)H''=W^EH^t+H^f \tag{12}在本文的架构中,作者通过将两个实体间存在的多跳关系作为辅助关系的方式将边的定义扩充为有向路径。这个辅助关系的嵌入是路径中所有关系的嵌入之和。本文的模型迭代地从一个实体的遥远邻居那里积累知识。

基于注意力机制的知识图谱关系预测 ACL 2019

如图 2 所述,在本文中模型的第一层,所有实体捕捉了与它们直接相连的邻居信息,在第二层中,U.S 结点从实体 BarackObama、EthanHorvath、Chevrolet 和 WashingtonD.C 结点聚集信息,这些节点中已经从之前层中获得了他们邻居节点 MichelleObama 和 SamuelL.Jackson 的信息。

总之,对于一个 n 层模型来说,传入的信息是根据 n 跳相邻的邻居计算得出的。学习新的实体嵌入向量的聚合过程和相邻多跳结点间的辅助边的引入在图二中都有所展示。对于每一个主要的迭代过程,在第一层之前,在每一个广义的 GAT 层之后,作者对实体的嵌入向量进行了规范化处理。

3.4、训练目标

作者提出的模型借鉴了平移得分函数的思想,使得在学习嵌入向量的过程中,假设给定一个真实的三元组tijk=(ei,rk,ej)t_{ij}^k=(e_i,r_k,e_j),有hi+gkhj\vec{h_i}+\vec{g_k}\approx\vec{h_j}。作者尝试学习实体和关系嵌入来最小化由dtij=hi+gkhjd_{t_{ij}}=||\vec{h_i}+\vec{g_k}-\vec{h_j}||给出的 L1 -范数不相似测度。并用 hinge 损失来训练本文中的模型,具体公式如下:L(Ω)=tijStijSmax{dtijdtij+γ,0}(13)L(\Omega)=\sum_{t_{ij}\in S}\sum_{t'_{ij}\in S'}max\{d_{t'_{ij}}-d_{t_{ij}}+\gamma,0\} \tag{13}其中 γ>0γ>0 是一个边缘超参数,SS 是正确的三元组集合,SS' 是不正确的三元组集合。SS'按照如下形式给出:S={tijkeiε\ei}replace head entity{tijkejε\ej}replace tail entity(14)S'=\underbrace{\{t^k_{i'j}|e'_i\in\mathcal{\varepsilon}\backslash e_i\}}_{\text{replace head entity}}\cup\underbrace{\{t^k_{ij'}|e'_j\in\mathcal{\varepsilon}\backslash e_j\}}_{\text{replace tail entity}} \tag{14}

3.5、解码器

本篇模型采用 ConvKB 作为解码器,卷积层的目的是分析三元组tijkt_{ij}^k各个维度上的全局嵌入特性,并归纳出模型中的转化特性。根据多个特征映射得到的得分函数可以写成如下形式:f(tijk)=(m=1ΩReLU([hi,gk,hj]wm))W(15)f(t^k_{ij})=\left(\Vert_{m=1}^{\Omega}ReLU\left(\left[\vec{h_i},\vec{g_k},\vec{h_j}\right]*w^m\right)\right)\cdot W \tag{15}其中wmw^m表示第 mm 个卷积过滤器,ΩΩ 是表示过滤器数量的超参数,* 是卷积运算符,WRΩk×1W\in R^{\Omega k\times 1}表示一个用于计算三元组最终得分的线性转化矩阵。模型用软边界损失函数来进行训练。L=tijk{SS}log(1+exp(ltijkf(tijk)))+λ2W22(16)\mathcal{L}=\sum_{t^k_{ij}\in\{S\cup S'\}}\log\left(1+exp\left(l_{t^k_{ij}}\cdot f\left(t^k_{ij}\right)\right)\right)+\frac{\lambda}{2}||W||_2^2 \tag{16}tijkSt^k_{ij}\in S时,ltijk=1l_{t^k_{ij}}=1;当tijkSt^k_{ij}\in S'时,ltijk=1l_{t^k_{ij}}=-1

4、实验

4.1、数据集

实验中所用到的数据集为:

  • WN18RR

  • FB15k-237

  • NELL-995

  • Unified Medical Language Systems(UMLS)

  • Alyawarra Kinship

具体信息如下:
基于注意力机制的知识图谱关系预测 ACL 2019

4.2、训练方法

通过每次随机用一个无效实体替换有效三元组的头实体或尾实体来产生两个无效三元组集合,并从这两个集合中随机抽取数目相等的无效三元组,以确保头尾实体检测的鲁棒性。用 TransE 方法获得的实体与关系的嵌入向量来初始化本模型。

本文采用一个两步过程来进行训练。首先训练广义 GAT 来编码关于图实体和关系的信息,然后训练诸如 ConvKB 模型作为解码器来进行关系预测任务。传统的 GAT 模型只根据一跳邻居的信息对公式 3 进行更新,但本文的泛化 GAT 则运用多跳邻居对公式 3 进行更新。并通过引入辅助关系来收集稀疏图中邻居的更多信息。采用 Adam 优化器,将其学习率设置为 0.001。最终层得到的实体、和关系的嵌入向量设置为 200 维。

4.3、评估方法

在关系预测任务中,通过用其他所有实体对有效三元组中的头实体或尾实体进行替换,并在产生一个(N-1)三元组集合,其中 1 为被替换之前的有效三元组,N 表示经过替换后产生的三元组。最后移除该三元组集合中所有经过替换产生的有效三元组,只保留由替换产生的无效三元组,与替换之前的唯一一个有效三元组组成一个三元组集合。对该集合中的所有三元组进行打分,并根据分数进行排序。用平均倒数排名(MRR),平均排名(MR)以及 [email protected](N = 1, 3, 10) 指标来对模型进行评估。

4.4、结果分析

4.4.1、实验结果

基于注意力机制的知识图谱关系预测 ACL 2019
基于注意力机制的知识图谱关系预测 ACL 2019
表 2 表 3 上展示了所有数据集上进行预测的结果。结果说明本文提出的模型在数据集 FB15k-237 上,五个指标均达到最好效果。在 WN18RR 数据集上,只有两个指标达到最好效果。

4.4.2、注意力值 VS 轮数

本文研究了一个特定节点的注意随轮数间隔增加的分布。图 5 展示了在数据集 FB15k-237 上,注意力值与轮数的关系分布。在学习过程的初始阶段,注意力值随机分布。随着训练过程地进行,并且本文的模型从邻居中获得更多的信息,更多的注意力集中于直接邻居,并且从较远的邻居中获得更少的信息。一旦模型收敛,它就学会从节点的 n-hop 邻居中收集多跳和聚类关系信息。
基于注意力机制的知识图谱关系预测 ACL 2019
基于注意力机制的知识图谱关系预测 ACL 2019

4.4.3、页面排序分析

本文假设,相对于稀疏图,在稠密图中更容易捕获实体之间复杂且隐藏的多跳关系。为了验证这个假设,本文采用了一个与 ConvE 相似的分析过程,研究了平均页面排名与相对于 Disrmult 中 MRR 的增长的关系,并发现当相关系数为 r=0.808 时具备极强的关联性。表 4 表明,当平均界面排名得到增长时,MRR 的值也同样会得到增长。并观察到 NELL-995 与 WN18RR 之间的相关性出现异常,并将其归因于 WN18RR 的高度稀疏和层次结构,这对本文的方法提出了挑战,因为本文的方法不能以自上而下的递归方式捕获信息。
基于注意力机制的知识图谱关系预测 ACL 2019

4.4.4、消融实验

基于注意力机制的知识图谱关系预测 ACL 2019
在这里分析了当移除路径信息时(-PG)MR 值的变化。如:移除关系信息和 n 跳信息(-relation)。根据图 7 可以得出当移除关系信息时会对模型产生巨大影响,并可得出关系信息在进行关系与测试至关重要的结论。

5、总结

本文的贡献:

  • 本文提出的模型学习了新的基于图注意的嵌入,专门用于知识图谱上的关系预测。

  • 本文推广和扩展了图注意机制,以捕获给定实体的多跳邻域中的实体和关系特征。

后续工作方向:

  • 改进本文中的模型以更好地处理层次结构图。

  • 尝试在图注意力模型中捕获实体之间的高阶关系。