关系预测存在的问题

最新的关系预测方法主要是基于知识嵌入的模型,它们大致分为转化模型和卷积神经网络。转化模型使用简单的操作和有限的参数来学习嵌入,产生了低质量的嵌入。基于CNN的模型由于其大量的参数和复杂关系的考虑而学习了更好的表达性嵌入。但是,基于转化和基于CNN的模型都独立地处理每个三元组,因此无法封装KG中给定实体附近固有存在的丰富的潜在结构信息。

主要贡献

  1. 第一个使用图注意力机制学习针对知识图谱关系预测的嵌入表示;
  2. 扩展了图注意机制以捕获给定实体的多跳邻域中的实体和关系特征。

方法

知识图谱G(ε,R)G(\varepsilon,R)可以由实体集合和关系集合一同表示。一个三元组(es,r,eo)(e_s,r,e_o)由两个结点与之间的边表示。

图注意力网络

图卷积网络 (GCN) 从实体的邻域收集信息,所有邻居节点在信息传递中的贡献是等同的。因此,引入了 GAT。GAT 在每个节点的领域内,给节点分配不同的重要级,而不是如同 GCN 将所有节点视为同等重要。GAT可以表示为
eij=a(Wxi,Wxj)e_{ij} = a(W\vec{x_i},W\vec{x_j})其中eije_{ij}表示边(ei,ej)(e_i,e_j)的Attention值。
每条边的注意力值是对于主体实体 eie_i的该边特征的重要程度。此处,相对注意力值通过 softmax 函数在所有邻域的值中计算得来。
xi=σ(jNiaijWxj)\vec{x^{'}_i} =\sigma(\sum_{j∈N_i} a_{ij}W\vec{x_j})
然后将K头进行拼接操作
xi=k=1Kσ(jNiaijkWkxj)\vec{x^{'}_i} ={||}_{k=1}^K\sigma(\sum_{j∈N_i} a^k_{ij}W^k\vec{x_j})
最后使用均值合并
xi=σ(1Kk=1KjNiaijkWkxj)\vec{x^{'}_i} =\sigma(\frac{1}{K} \sum_{k=1}^K\sum_{j∈N_i} a^k_{ij}W^k\vec{x_j})

Learning Attention-based Embeddings for Relation Prediction in Knowledge Graphs阅读笔记
与GAT不同,模型的每一层的输入为两个嵌入矩阵–实体嵌入矩阵和关系嵌入矩阵。其中实体嵌入矩阵用 HRNe×TH \in R^{N_e \times T} 表示,其中第i行是实体 eie_i 的嵌入,NeN_e是实体的总数,T是每个实体嵌入的特征维。 关系嵌入矩阵用 GRNr×PG \in R^{N_r \times P} 表示,其中 NrN_r 是关系的数量, P为关系嵌入的特征维数。最终该层输出两个更新后的嵌入矩阵 HRNe×TH^{'} \in R^{N_e \times T^{'}}GRNr×PG^{'} \in R^{N_r \times P^{'}}

首先获得实体 eie_i 的新嵌入,需要学习与 eie_i 关联的每个三元组的表示。 通过对对应于特定三元组 tijk=(ei,rk,ej)t_{ij}^k = (e_i, r_k, e_j)的实体和关系特征向量的级联执行线性变换来学习这些嵌入,如下式
cijk=W1[hihjgk]\vec{c_{ijk}} = W_1[\vec{h_i}||\vec{h_j}||\vec{g_k}] 其中 cijk\vec{c_{ijk}} 是三元组 tijkt_{ij}^k 的一个向量表示。hi,hj,gk\vec{h_i},\vec{h_j},\vec{g_k} 分别为实体 ei,eje_i, e_j, 关系 rkr_k 的嵌入表示, W1W_1 为线性转化矩阵。

需要获取每一个三元组的重要程度,即注意力系数 bijkb_{ijk}。 我们先使用进行一个线性变换,再应用一个非线性的**函数得到 bijkb_{ijk},如下式
bijk=LeakyReLU(W2cijk)b_{ijk} = LeakyReLU(W_2c_{ijk})
把注意力系数进行归一化

aijk=softmaxjk(bijk)=exp(bijk)nNirRinexp(binr)a_{ijk} = softmax_{jk}(b_{ijk}) = \frac{exp(b_{ijk})}{\sum_{n\in N_i} \sum_{r\in R_{in}}exp(b_{inr})}
其中 NiN_i 表示所有与 eie_i 相邻的实体集合,RinR_{in} 表示连接实体 ei,ene_i, e_n 关系的集合。

得到归一化后的注意力系数,就可以计算新的嵌入向量了,加权计算公式如下
hi=σ(jNikRijaijkcijk)\vec{h_i^{'}} = \sigma(\sum_{j\in N_i} \sum_{k\in R_{ij}} a_{ijk}\vec{c_{ijk}})
同GAT,为了稳定学习过程,且获得更多的有关邻居节点的信息,采用多头注意力机制。
hi=m=1Mσ(jNikRijaijkmcijkm)\vec{h_i^{'}} = ||_{m=1}^M\sigma(\sum_{j\in N_i} \sum_{k\in R_{ij}} a_{ijk}^m\vec{c_{ijk}^m})
在最后一层采用平均值而不是concat
hi=σ(1Mm=1MjNikRijaijkmcijkm)\vec{h_i^{'}} = \sigma(\frac{1}{M}\sum_{m=1}^M\sum_{j\in N_i} \sum_{k\in R_{ij}} a_{ijk}^m\vec{c_{ijk}^m})

相关文章: