Relphormer:Relational Graph Transformer for Knowledge Graph Representations
资料
论文:Relphormer:Relational Graph Transformer for Knowledge Graph Representations
代码:https://github.com/zjunlp/Relphormer
摘要
Transformer在包括自然语言处理、计算机视觉和图挖掘在内的广泛领域中取得了显著的表现。然而,传统的Transformer架构在知识图谱(KG)表示上并未带来有希望的改进,该领域主要由平移距离范式主导。请注意,传统的Transformer架构难以捕获知识图谱固有的异构结构和语义信息。为此,我们提出了一种新的知识图谱表示Transformer变体,称为Relphormer。具体来说,我们引入了Triple2Seq,它可以动态采样上下文的子图序列作为输入,以缓解异构性问题。我们提出了一种新颖的结构增强自注意力机制,以编码关系信息并保持实体和关系内的语义信息。此外,我们利用掩蔽知识建模进行通用的知识图谱表示学习,这可以应用于包括知识图谱补全、问答和推荐在内的各种基于KG的任务。在六个数据集上的实验结果表明,Relphormer可以获得与基线相比更好的性能。
引言
完全应用Transformer架构到知识图谱有三个非平凡的挑战如下:
- 边和节点的异构性。请注意,KG是具有丰富语义边缘的关系图。多条边缘具有不同的关系信息,导致不同的异构表示。
- 拓扑结构和文本描述。KG是具有两种类型知识的文本丰富的网络,即拓扑结构和文本描述。不同的节点具有独特的拓扑和文本特征。例如,给定一个实体-关系对(ℎ, r),表征结构上下文和文本描述将在从ℎ和r推断实体节点时提供有价值的信息。然而,以前的Transformer架构通常将所有实体和关系视为普通标记,错过了本质的结构信息。
- 任务优化的普遍性。请注意,大多数以前的研究[10]遵循具有预定义评分函数的知识嵌入范式。然而,这种策略需要优化不同的对象用于实体/关系预测,并在推理中对所有可能的三元组进行昂贵的评分。与此同时,以前的KG表示学习方法难以为各种基于KG的任务提供统一的学习表示,如知识图谱补全、问答和推荐。因此,直观地设计一种新的技术解决方案用于知识图谱表示是有意义的。
为了解决上述问题,我们探索了Transformer架构在知识图谱表示中的应用,并提出了关系图Transformer(Relphormer)。
- 我们提出了Triple2Seq来解决边和节点的异构性,它将上下文子图作为输入序列进行采样。具体来说,我们将关系视为子图中的正常节点,然后将上下文子图输入Transformer模块。我们使用动态采样策略来最大程度地保留局部上下文信息和语义。
- 我们提出了一种结构增强机制来处理拓扑结构和文本描述。通过我们设计的模块,模型可以同时编码文本特征,同时保留结构信息。请注意,我们不仅关注知识图谱表示,这样的机制也适用于其他类型的基于Transformer的方法,以融入任何结构偏差。
- 我们提出了一种掩蔽知识建模机制,用于统一的知识图谱表示学习。受自然语言处理中掩蔽语言建模的启发,我们引入了一个统一的优化目标,即预测输入序列中被掩蔽的实体以及关系标记。通过这种方式,我们可以为知识图谱补全中实体和关系的预测简单地利用一个统一的优化目标。
方法
预备知识
设 G = ( E , R ) \mathcal{G} = (\mathcal{E}, \mathcal{R}) G=(E,R) 表示一个知识图谱,包含实体集 E \mathcal{E} E 和关系集 R \mathcal{R} R。我们用 V \mathcal{V} V 表示知识图谱中的节点集,即 V = E ∪ R \mathcal{V} = \mathcal{E} \cup \mathcal{R} V=E∪R。我们定义邻接矩阵 A = { a u v } ∈ { 0 , 1 } ∣ V ∣ × ∣ V ∣ \mathbf{A} = \{a_{uv}\} \in \{0, 1\}^{|\mathcal{V}| \times |\mathcal{V}|} A={auv}∈{0,1}∣V∣×∣V∣,如果节点对 ( u , v ) (u, v) (u,v) 相连则 a u v = 1 a_{uv} = 1 auv=1,否则 a u v = 0 a_{uv} = 0 auv=0。注意,节点对 ( u , v ) (u, v) (u,v) 可以是实体和关系之间的交互。我们定义三元组为 ( v s , v p , v o ) (v_s, v_p, v_o) (vs,vp,vo) 或简称 τ \tau τ,它是采样子图中的中心三元组。 τ G \tau_{\mathcal{G}} τG 是围绕中心三元组的上下文子图(包括中心三元组本身)。知识图谱表示学习的目标是学习一个映射 f : τ G → Y f: \tau_{\mathcal{G}} \rightarrow \mathcal{Y} f:τG→Y,其中 Y \mathbf{Y} Y 是标签集。
对于问答任务,每个问题都被标记有一个回答实体。给定一个问题,问答任务的目标是找到正确的答案。由于一些候选实体在知识图谱中,实体的潜在关联将有助于提高问答任务的性能。对于推荐任务,给定每个用户 u u u 的一组项目 ( i 1 , i 2 , . . . ) (i_1, i_2, ...) (i1,i2,...),目标是预测用户可能感兴趣的潜在项目。这里的KG指的是以项目为中心的知识图谱,它将外部项目的属性与不同类型的实体和关系组织起来。我们认为知识表示应该是统一的,无论是知识图谱表示学习还是与知识图谱表示相关的任务。接下来,我们将介绍Relphormer在知识图谱表示学习中的技术细节。
使用Triple2Seq的上下文子图采样
如前所述,知识图谱通常包含大量的关系事实,因此整个关系图不能直接输入变换器。为了缓解基于全图的变换器的限制,受到[20]的启发,我们提出了Triple2Seq,它使用上下文的子图作为输入序列来编码局部结构信息。
上下文子图
τ
G
\tau_{\mathcal{G}}
τG 在这里被定义为包含实体和关系的三元组集合。
τ
G
\tau_{\mathcal{G}}
τG 由中心三元组
τ
c
\tau_{\mathcal{c}}
τc 和其周围的邻域三元组集合
τ
c
o
n
t
e
x
t
\tau_{\mathcal{context}}
τcontext 组成:
τ
G
=
τ
c
∪
τ
c
o
n
t
e
x
t
\tau_{\mathcal{G}} = \tau_{\mathcal{c}} \cup \tau_{\mathcal{context}}
τG=τc∪τcontext
注意,子图采样过程是在三元组级别进行的,然后我们可以获取采样的邻域三元组集合
τ
c
o
n
t
e
x
t
\tau_{\mathcal{context}}
τcontext:
τ
c
o
n
t
e
x
t
=
{
τ
∣
τ
i
∈
N
}
\tau_{\mathcal{context}} = \{\tau | \tau_i \in \mathcal{N}\}
τcontext={τ∣τi∈N}
其中
N
\mathcal{N}
N 是中心三元组
τ
c
\tau_{\mathcal{c}}
τc 的固定大小邻域三元组集合。为了更好地捕获局部结构特征,我们在训练期间使用动态采样策略,并为每个epoch中的同一中心三元组随机选择多个上下文子图。我们经验性地设置样本分布为
E
τ
c
∼
P
E_{\tau_{\mathcal{c}}} \sim \mathcal{P}
Eτc∼P,其中
P
\mathcal{P}
P 是三元组的度数。
经过Triple2Seq的过程后,我们可以获取上下文子图 τ G \tau_{\mathcal{G}} τG。同时,上下文子图的局部结构在邻接矩阵 A G \mathbf{A}_{\mathcal{G}} AG 中得以保留。我们注意到,实体-关系对信息对于知识图谱来说是一个非常关键的信号,这在诸如HittER[36]的分层变换器框架中证明了其有效性。因此,我们将实体-关系对表示为纯文本,并将关系视为上下文子图中的特殊节点。例如,上下文子图被转换为序列 { v 1 , v 2 , . . . , v m } \{v_1, v_2, ..., v_m\} {v1,v2,...,vm},其中包含中心三元组 τ c \tau_{\mathcal{c}} τc 的节点。
通过这种方式,我们可以获取节点对信息,包括实体关系、实体-实体和关系-关系对的交互。另一个优点是,关系节点可以被视为特殊节点。由于知识图中关系的数量远小于实体的数量,因此它可以在由Triple2Seq采样的上下文子图之间保持全局语义信息。值得注意的是,我们还添加了一个全局节点来明确保持全局信息。全局节点在自然语言预训练模型中扮演着类似[CLS]标记的角色。我们通过可学习的虚拟距离或固定距离将全局节点与上下文子图中的节点联系起来。因此,我们获得了最终的输入序列,其中包含一个特殊的虚拟节点来构建节点特征。
结构增强自注意力
注意,由于注意力机制的全连接特性,输入的序列可能会丢失结构信息;我们提出结构增强自注意力来保留上下文子图中重要的结构信息。我们使用注意力偏置来捕获上下文子图中节点对之间的结构信息。注意力偏置表示为
ϕ
(
i
,
j
)
\phi(i, j)
ϕ(i,j),是节点
v
i
v_i
vi 和节点
v
j
v_j
vj 之间的偏置项。
a
i
j
=
(
h
i
W
Q
)
(
h
j
W
K
)
d
+
ϕ
(
i
,
j
)
a_{ij} = \frac{(h_iW_Q)(h_jW_K)}{\sqrt{d}} + \phi(i, j)
aij=d(hiWQ)(hjWK)+ϕ(i,j)
ϕ
(
i
,
j
)
=
f
s
t
r
u
c
t
u
r
e
(
A
~
1
,
A
~
2
,
.
.
.
,
A
~
m
)
\phi(i, j) = f_{structure} \left( \tilde{\mathbf{A}}^1, \tilde{\mathbf{A}}^2, ..., \tilde{\mathbf{A}}^m \right)
ϕ(i,j)=fstructure(A~1,A~2,...,A~m)
其中
A
~
\tilde{\mathbf{A}}
A~ 是规范化的邻接矩阵,
W
Q
W_Q
WQ 和
W
K
W_K
WK 是变换器模块中的Query-Key矩阵。
h
i
h_i
hi 和
h
j
h_j
hj 表示隐藏表示,
d
d
d 是隐藏维度。结构编码器
f
s
t
r
u
c
t
u
r
e
f_{structure}
fstructure 是一个线性层,输入是
A
~
m
\tilde{\mathbf{A}}^m
A~m,其中
m
m
m 是超参数。
A
~
m
\tilde{\mathbf{A}}^m
A~m (
A
~
\tilde{\mathbf{A}}
A~ 的
m
m
m 次幂) 指的是从一个节点到另一个节点通过
m
m
m 步所能到达的相关性。我们连接邻接矩阵作为整体结构信息。对于某些密集的KG,同一中心三元图在不同epoch中可能有太多上下文子图,这可能会导致训练过程中的不一致性。因此,我们利用上下文对比策略在动态采样中克服不稳定性。我们使用不同epoch中同一三元组的上下文子图来强制模型进行相似的预测。我们对上下文子图的输入序列进行编码,并取隐藏向量
h
m
a
s
k
h_{mask}
hmask 作为当前epoch
t
t
t 的上下文表示
c
t
c_t
ct,以及上一个epoch
t
−
1
t-1
t−1 的
c
t
−
1
c_{t-1}
ct−1。目标是最小化不同子图之间的差异;我们得到上下文损失
L
c
o
n
t
e
x
t
u
a
l
\mathcal{L}_{contextual}
Lcontextual 如下:
L
c
o
n
t
e
x
t
u
a
l
=
−
l
o
g
e
x
p
(
s
i
m
(
c
t
,
c
t
−
1
)
/
σ
)
e
x
p
(
s
i
m
(
c
t
,
c
t
−
1
)
/
σ
)
+
∑
j
e
x
p
(
s
i
m
(
c
t
,
c
j
)
/
σ
)
\mathcal{L}_{contextual} = -log\frac{exp(sim(c_t,c_{t-1})/\sigma)}{exp(sim(c_t,c_{t-1})/\sigma)+\sum_jexp(sim(c_t,c_{j})/\sigma)}
Lcontextual=−logexp(sim(ct,ct−1)/σ)+∑jexp(sim(ct,cj)/σ)exp(sim(ct,ct−1)/σ)
其中 σ \sigma σ 表示温度参数, s i m ( c t , c t − 1 ) sim(c_t,c_{t-1}) sim(ct,ct−1) 是余弦相似度 c t T ⋅ c t − 1 ∥ c t ∥ ∥ c t − 1 ∥ \frac{c_t^T \cdot c_{t-1}}{\|c_t\| \|c_{t-1}\|} ∥ct∥∥ct−1∥ctT⋅ct−1。 c t c_t ct 是epoch t t t 的隐藏状态表示,它属于不同的中心三元组。
掩蔽知识建模
在本节中,我们介绍了所提出的掩蔽知识建模用于知识图谱表示。通常,知识图谱补全的目标是学习一个映射
f
:
τ
M
,
A
G
→
Y
f: \tau_{\mathcal{M}}, \mathbf{A}_G \rightarrow \mathcal{Y}
f:τM,AG→Y。受掩蔽语言建模的启发,我们随机掩蔽输入序列中的特定标记,然后预测这些被掩蔽的标记。给定一个上下文子图节点序列
τ
G
\tau_{\mathcal{G}}
τG,我们随机掩蔽中心三元组中的标记。具体来说,被掩蔽的中心三元组将分别是关系预测任务中的头实体或尾实体。我们表示候选集为
Y
\mathcal{Y}
Y,掩蔽知识建模的任务是在给定掩蔽节点序列
τ
M
\tau_{\mathcal{M}}
τM 和上下文子图结构
A
G
\mathbf{A}_{\mathcal{G}}
AG 的情况下,预测三元组
τ
\tau
τ 缺失的部分:
R
e
l
p
h
o
r
m
e
r
(
M
A
S
K
(
τ
G
)
,
A
G
)
→
A
Relphormer(MASK(\tau_{\mathcal{G}}),\mathbf{A}_{\mathcal{G}})\rightarrow \mathcal{A}
Relphormer(MASK(τG),AG)→A
其中
Y
∈
R
∣
E
∣
+
∣
R
∣
\mathcal{Y} \in \mathbb{R}^{|\mathcal{E}| + |\mathcal{R}|}
Y∈R∣E∣+∣R∣。具体来说,我们只随机掩蔽序列中的一个标记,以便更好地整合上下文信息,这是由于上下文子图的独特结构。
训练和推理
训练Relphormer进行知识图谱表示学习。整体的Relphormer优化过程在算法1中说明。在训练期间,我们联合优化掩蔽知识损失和上下文对比约束对象。
L
c
o
n
t
e
x
t
u
a
l
\mathcal{L}_{contextual}
Lcontextual 可以视为整个损失
L
\mathcal{L}
L 的约束项,如下所示:
L
=
L
M
K
M
+
λ
L
c
o
n
t
e
x
t
u
a
l
\mathcal{L} = \mathcal{L}_{MKM} + \lambda \mathcal{L}_{contextual}
L=LMKM+λLcontextual
其中
λ
\lambda
λ 是超参数,
L
M
K
M
\mathcal{L}_{MKM}
LMKM 和
L
c
o
n
t
e
x
t
u
a
l
\mathcal{L}_{contextual}
Lcontextual 分别是掩蔽知识和上下文损失。具体来说,
L
M
K
M
\mathcal{L}_{MKM}
LMKM 通过交叉熵损失计算。
实验