Relational Graph Neural Network with Hierarchical Attention for Knowledge Graph Completion
原文下载
AAAI2020
摘 要 {\color{blue}摘要} 摘要
知识图谱的迅速发展改变了各种人工智能相关应用的模式。尽管其规模比较大,现在的知识图谱仍然存在不完整、不全面的问题。为了推断出知识图谱中不完整元组的缺失值,从而着手研究知识图谱的补全。然而,现存的知识图谱补全模型对于知识图谱的元组没有利用内在的和来自实体周围的邻居的有价值的信息。为此,本文提出了一个具有层次的关系图神经网络进行知识图谱补全的任务。提出的模型RGHAT具有两层注意力机制:1)第一层为关系层的注意力机制(不同的关系对实体表示有不同的权重) 2)第二层是实体层的注意力机制(能够使模型强调同一关系下不同邻居实体的重要性)
层次注意力机制使模型更有效的使用实体的邻居信息。
RGHAT模型优势如下:
1)不同于现存的大多数的知识图谱补全模型,模型明确地采用每个实体的局部邻域信息
2)层次架构可以被看作是局部邻域信息的融合,并且将相关信息整合到一组已被证实可有效的提供更多信息及在众多机器学习问题中取得了较好的结果
3)RGHAT层注意力机制提供了一个细粒度的学习过程,增加了模型的可解释性。此外,在此设置下,相同关系的邻域元组的权重能够以共同的方式进行训练,从而使模型的结果更稳定更符合人类的直觉。
下面以一个实体和它的邻域展示层次结构的例子,如下图:
从图左边可以看出,中心实体
e
1
e_1
e1被三个邻域关系
r
1
,
r
2
和
r
3
r_1,r_2和r_3
r1,r2和r3包围,并且每一个关系连接着1个或者更多的实体。图右边为关系的层次结构。
方 法 {\color{blue}方法} 方法
此部分,讲解提出的RGHAT模型的技术细节。首先引入提出模型的全局框架。然后给出每一步的详细描述。最后给出损失函数和训练细节。
1
)
概
述
{\color{blue}1)概述}
1)概述
一个知识图谱可以被看作图
G
=
{
(
h
,
r
,
t
)
}
⊆
ε
×
R
×
ε
\mathcal{G}=\{(h,r,t)\}\subseteq \varepsilon \times \mathcal{R} \times \varepsilon
G={(h,r,t)}⊆ε×R×ε, 其中
ε
\varepsilon
ε和
R
\mathcal{R}
R分别为实体(节点)集、关系(边)集。
图2提供了一个一个知识图谱的子集。在图2中,丢失的连接例如(New York, part_of, USA)能够基于现存的三元组(Donald Trump, born in, New York)和(Donald Trump, president of, USA)进行推断。
本文提出的模型为encoder-decoder框架。图3展示了单层的RGHAT模型框架。为了获得多层的RGHAT, 仅需要将编码器堆叠成多层。编码首先将实体的邻域作为一个层次架构,并且计算对邻域计算关系层注意力和实体层注意力。接着,将两个注意力得分合并到一个元组层的注意力得分,并且最后的分数被反馈给信息聚合器(能够有效的将邻域信息聚合到中心实体)。最后,编码输出实体嵌入到解码器。解码器是一个知识图谱补全模型(可采用现存的知识图谱补全模型)。这些设置保证了模型的灵活性和可扩展性。此论文选择ConvE作为解码器。
2
)
E
n
c
o
d
e
r
{\color{blue}2)Encoder}
2)Encoder
此部分,给出层次注意力机制和信息聚合的详细描述。
2.1
)
R
e
l
a
t
i
o
n
−
l
e
v
e
l
A
t
t
e
n
t
i
o
n
{\color{blue}2.1)Relation{-}level \ Attention}
2.1)Relation−level Attention
在表示一个实体时,不同关系的权重差别很大。例如,当表示篮球队Los Angeles Lakers时,关系has_players比关系based_in_city更合适。由于一个队的运动员能够唯一地识别球队,而在同一个城市可能有多个球队。
邻居实体和关系可被表示为多个
(
h
,
r
,
t
)
(h,r,t)
(h,r,t)元组。在此文中,对于实体
e
1
e_1
e1,可以将三元组
(
e
2
,
r
,
e
1
)
(e_2,r,e_1)
(e2,r,e1)转换为
(
e
1
,
r
−
1
,
e
2
)
(e_1,r^{-1},e_2)
(e1,r−1,e2)。从而,每个实体总是可以作为邻域元组的头实体。因此只需要从尾实体到头实体聚合信息就可以。
对于实体
h
h
h关系层的注意力表明对实体表示时的每个关系的权重,定义如下:
a
h
,
r
=
W
1
[
h
∣
∣
v
r
]
,
(
1
)
α
h
,
r
=
s
o
f
t
m
a
x
r
(
a
h
,
r
)
=
e
x
p
(
σ
(
p
⋅
a
h
,
r
)
)
∑
r
′
∈
N
h
e
x
p
(
σ
(
p
⋅
a
h
,
r
′
)
)
,
(
2
)
a_{h,r}=W_1 [h||v_r], (1) \\ \alpha_{h,r}=softmax_r(a_{h,r})=\frac{exp(\sigma(p·a_{h,r}))}{\sum_{r'\in\mathcal{N_h}}exp(\sigma(p·a_{h,r'}))} ,(2)
ah,r=W1[h∣∣vr],(1)αh,r=softmaxr(ah,r)=∑r′∈Nhexp(σ(p⋅ah,r′))exp(σ(p⋅ah,r)),(2)
其中,||表示连接操作,
h
∈
R
d
h\in\R^d
h∈Rd头实体
h
h
h的embedding,
d
d
d是embedding的大小。
W
1
∈
R
d
×
2
d
,
v
r
∈
R
d
和
p
∈
R
d
W_1\in\R^{d\times 2d},v_r\in\R^d和p\in\R^d
W1∈Rd×2d,vr∈Rd和p∈Rd均为训练参数,
v
r
v_r
vr是表示一种关系特征的具体关系参数。
N
h
\mathcal{N_h}
Nh表示实体h的邻域关系。
σ
\sigma
σ表示负输入斜率为0.2的LeakyReLU函数。经过以上计算,可以得到关系层的注意力分数
α
h
,
r
\alpha_{h,r}
αh,r表示当对实体
h
h
h进行表示时关系
r
r
r的权重。
2.2
)
E
n
t
i
t
y
−
l
e
v
e
l
A
t
t
e
n
t
i
o
n
{\color{blue}2.2)Entity{-}level \ Attention}
2.2)Entity−level Attention
相同关系下,邻域实体的权重或许不同。例如,关系has_players关联Los Angeles Lakers到不同的运动员,在所有运动员中,顶级运动员可能比其他运动员更具代表性。
提出的模型首先将同一关系下的邻域实体看成一个组,然后计算实体层的注意力,如下:
b
h
,
r
,
t
=
W
2
[
a
h
,
r
∣
∣
t
]
,
(
3
)
β
r
,
t
=
s
o
f
t
m
a
x
t
(
b
h
,
r
,
t
)
=
e
x
p
(
σ
(
q
⋅
b
h
,
r
,
t
)
)
∑
r
′
∈
N
h
,
r
e
x
p
(
σ
(
q
⋅
b
h
,
r
,
t
′
)
)
,
(
4
)
b_{h,r,t}=W_2 [a_{h,r}||t], (3) \\ \beta_{r,t}=softmax_t(b_{h,r,t})=\frac{exp(\sigma(q·b_{h,r,t}))}{\sum_{r'\in\mathcal{N_{h,r}}}exp(\sigma(q·b_{h,r,t'}))} ,(4)
bh,r,t=W2[ah,r∣∣t],(3)βr,t=softmaxt(bh,r,t)=∑r′∈Nh,rexp(σ(q⋅bh,r,t′))exp(σ(q⋅bh,r,t)),(4)
其中,
t
∈
R
d
t\in\R^d
t∈Rd尾实体
t
t
t的embedding,
t
t
t是关系
r
r
r的尾实体。
W
2
∈
R
d
×
2
d
和
p
∈
R
d
W_2\in\R^{d\times 2d}和p\in\R^d
W2∈Rd×2d和p∈Rd均为训练参数,
b
h
,
r
,
t
b_{h,r,t}
bh,r,t是邻域元组
(
h
,
r
,
t
)
(h,r,t)
(h,r,t)的表示。
N
h
,
r
\mathcal{N_{h,r}}
Nh,r表示关系r下实体h的尾实体。
β
r
,
t
\beta_{r,t}
βr,t表示实体层的注意力分数(在关系
r
r
r下当表示
h
h
h时,所有尾实体中实体t的权重)。
在得到了关系层及实体层的注意力后,将两个得分进一步融合到元组层的注意力得分,计算方式如下:
μ
h
,
r
,
t
=
α
h
,
r
⋅
β
r
,
t
,
(
5
)
\mu_{h,r,t}=\alpha_{h,r}·\beta_{r,t},(5)
μh,r,t=αh,r⋅βr,t,(5)
2.3
)
I
n
f
o
r
m
a
t
i
o
n
A
g
g
r
e
g
a
t
o
r
{\color{blue}2.3)Information \ Aggregator}
2.3)Information Aggregator
此信息聚合器聚合从邻域到中心实体的信息,得到实体
h
h
h的基于邻域的表示,计算方式如下:
h
^
=
∑
r
∈
N
h
∑
t
∈
N
h
,
r
μ
h
,
r
,
t
b
h
,
r
,
t
.
(
6
)
\hat{h}=\sum_{r\in\mathcal{N_h}}\sum_{t\in\mathcal{N_{h,r}}} \mu_{h,r,t} b_{h,r,t}. (6)
h^=r∈Nh∑t∈Nh,r∑μh,r,tbh,r,t.(6)
尽管
h
^
\hat{h}
h^合并了来自邻域的信息,但他缺少自身的有价值的信息。为此,本文进一步结合基于邻域的表示
h
^
\hat{h}
h^和
h
h
h的输入表示,得到输出表示
h
′
h'
h′。本文,设计了三种如下结合的方式:
- Additive combination
h ′ = σ ( W 3 ( h + h ^ ) ) , ( 7 ) h'=\sigma(W_3(h+\hat{h})),(7) h′=σ(W3(h+h^)),(7) - Multiplicative combination
h ′ = σ ( W 4 ( h ⊙ h ^ ) ) , ( 8 ) h'=\sigma(W_4(h \odot \hat{h})),(8) h′=σ(W4(h⊙h^)),(8) - Bi-interaction combination
h ′ = 1 2 ( σ ( W 3 ( h + h ^ ) ) + σ ( W 4 ( h ⊙ h ^ ) ) ) , ( 9 ) h'=\frac{1}{2}(\sigma(W_3(h+\hat{h}))+\sigma(W_4(h\odot\hat{h}))),(9) h′=21(σ(W3(h+h^))+σ(W4(h⊙h^))),(9)
本文也采用了多头注意力机制,稳定学习过程并封装更多关于邻居的信息。具体地, K K K个独立的注意力机制计算embeddings,并连接起来。表示如下:
h ′ = ∥ k = 1 K h k ′ , ( 10 ) h'= \lVert_{k=1}^{K}h'_k,(10) h′=∥k=1Khk′,(10)
此处 h k ′ h'_k hk′表示第 k k k个头的输出表示。在encoder的最后一层,用平均多头的embeddings来代替连接,方式如下:
h ′ = 1 K ∑ k = 1 K h k ′ . ( 11 ) h'=\frac{1}{K}\sum_{k=1}^{K}h'_k.(11) h′=K1k=1∑Khk′.(11)
单层的encoder在一次训练迭代时,聚合从1跳邻居到中心实体的信息。随着层数和迭代数的增加,此模型能够有效的聚合多跳邻居,从而为中心实体的表示提供更有价值的信息。最终,编码器输出新的实体embedding h ′ h' h′到解码器。
3 ) D e c o d e r {\color{blue}3) \ Decoder} 3) Decoder
解码器能够被现存的多数知识图谱补全模型替代。本文使用ConvE作为解码器(尝试其他模型觉得,ConvE效果最好)。ConvE通过卷积层和全连接层构建输入实体和关系的交互。基于 ( h , r , t ) (h,r,t) (h,r,t)元组,ConvE首先重塑 h h h和 r r r的embeding为2D张量,然后基于重塑的张量计算知识元组的分数。ConvE的得分函数为:
f ( h , r , t ) = R e L U ( v e c ( R e L U ( [ h ˉ ; r ˉ ] ∗ ω ) ) Q ) t , ( 12 ) f(h,r,t)=ReLU(vec(ReLU([\bar{h};\bar{r}]*\omega))Q)t,(12) f(h,r,t)=ReLU(vec(ReLU([hˉ;rˉ]∗ω))Q)t,(12)
此处, h ˉ \bar{h} hˉ和 r ˉ \bar{r} rˉ是 h h h和 r r r的2D重塑:即if h , r ∈ R d ′ h,r\in\R^{d'} h,r∈Rd′,那么 h ˉ , r ˉ ∈ R d 1 × d 2 \bar{h},\bar{r}\in\R^{d_1\times d_2} hˉ,rˉ∈Rd1×d2且 d ′ = d 1 d 2 d'=d_1d_2 d′=d1d2。 ω \omega ω表示滤波的集合,*表示卷积操作。 v e c ( ⋅ ) vec(·) vec(⋅)是一个矢量化函数, Q Q Q是个权重矩阵。ConvE假设正的元组比负元组有着更高的分数。
损失函数为:
L = ∑ ( h , r , t ) ∈ T t − 1 N ∑ i = 1 N ( y ( h , r , t i ) ⋅ l o g ( g ( f ( h , r , t i ) ) ) + ( 1 − y ( h , r , t i ) ) l o g ( 1 − g ( f ( h , r , t i ) ) ) ) , ( 13 ) \mathcal{L}=\sum_{(h,r,t)\in \mathcal{T_t}}-\frac{1}{N}\sum_{i=1}^{N}(y(h,r,t_i)·log(g(f(h,r,t_i)))+(1-y(h,r,t_i))log(1-g(f(h,r,t_i)))),(13) L=(h,r,t)∈Tt∑−N1i=1∑N(y(h,r,ti)⋅log(g(f(h,r,ti)))+(1−y(h,r,ti))log(1−g(f(h,r,ti)))),(13)
其中, y ( h , r , t i ) y(h,r,t_i) y(h,r,ti)是三元组 ( h , r , t i ) (h,r,t_i) (h,r,ti)的标签(1或者0)。 N N N表示尾实体候选集的数量, g g g表示sigmoid函数。模型采用Adam优化器。
实 验 {\color{blue}实验} 实验
数据集
数据集FB15k-237与WN18RR均为去除了逆关系的原数据集的子集。
为了进一步的分析RGHAT在实体不同度上的性能。本文通过实体的度将训练集分为三个集合,第一个集合
ε
1
t
r
a
i
n
\varepsilon_{1}^{train}
ε1train由度为前10%的实体组成;第二个集合
ε
2
t
r
a
i
n
\varepsilon_{2}^{train}
ε2train由度为前10%到50%的实体组成;第三个集合
ε
3
t
r
a
i
n
\varepsilon_{3}^{train}
ε3train由其余的实体组成。然后按照以下方式获取测试集。对于测试集中的每一个元组
(
h
,
r
,
t
)
(h,r,t)
(h,r,t),如果
h
∈
ε
1
t
r
a
i
n
h\in\varepsilon_{1}^{train}
h∈ε1train并且
t
∈
ε
1
t
r
a
i
n
t\in\varepsilon_{1}^{train}
t∈ε1train,然后
(
h
,
r
,
t
)
∈
T
1
t
e
s
t
(h,r,t)\in \mathcal{T}_{1}^{test}
(h,r,t)∈T1test。第二个和第三个集合以相同的方式获得。三元组的数量如表2所示:
实验结果
** 如有错误欢迎各位批评指正!大家共同进步~ **