赞
踩
预训练语言模型能够从大规模语料中学习到通用的语言表示,例如模型BERT。但是,对于专业领域的文本来说,预训练语言模型缺少领域知识。本文提出的模型K-BERT尝试将知识融合到预训练语言模型BERT中。但是,将知识集成至预训练语言模型面临两个挑战:
Heterogeneous Embedding Space
由于获取文本中实体和知识图谱中实体的向量表示的方式不一致,导致向量空间不一致;
Knowledge Noise
向文本中添加太多的知识可能给歪曲原始文本的函数,称为“知识噪音”(Knowledge Noise);
本文提出了K-BERT,其能够不受上面两个问题的影响,将知识加入预训练语言模型BERT中。
将句子 s s s表示成token序列,即 s = { w 0 , w 1 , … , w n } s=\{w_0,w_1,\dots,w_n\} s={w0,w1,…,wn},其中 n n n是句子长度;
所有的 w i w_i wi均存在于词表 V \mathbb{V} V,即 w i ∈ V w_i\in\mathbb{V} wi∈V;
知识图谱表示为 K \mathbb{K} K;
图谱 K \mathbb{K} K中的三元组表示为 ε = ( w i , r i , w k ) \varepsilon=(w_i,r_i,w_k) ε=(wi,ri,wk),其中 w i w_i wi和 w k w_k wk是实体的名称, r j ∈ V r_j\in\mathbb{V} rj∈V是两个实体的关系;
K-BERT由4部分组成,分别是:knowledge layer、embedding layer、seeing layer和mask-transformer。
其中,knowledge layer负责从知识图谱中查询三元组,并用三元组将句子转换为句子树;句子树输入到embedding layer和seeing layer中,会分别产生token的向量表示和可见矩阵(visible matrix)。可见矩阵用来防止知识噪音。
Knowledge layer(简称KL)负责将知识图谱中的知识注入到句子中,形成句子树。更正式的来说,给定一个句子
s
=
{
w
0
,
w
1
,
w
2
,
…
,
w
n
}
s=\{w_0,w_1,w_2,\dots,w_n\}
s={w0,w1,w2,…,wn}和一个知识图谱
K
\mathbb{K}
K,KL层输入的矩阵树为:
t
=
{
w
0
,
w
1
,
…
,
w
i
{
(
r
i
0
,
w
i
0
)
,
…
,
(
r
i
k
,
w
i
k
)
}
,
…
,
w
n
}
t=\{w_0,w_1,\dots,w_i\{(r_{i0},w_{i0}),\dots,(r_{ik},w_{ik})\},\dots,w_n\}
t={w0,w1,…,wi{(ri0,wi0),…,(rik,wik)},…,wn}
上面转换句子树可以分为两个步骤K-Query和K-Inject。步骤K-Query负责从知识图谱中找出
s
s
s中实体所涉及到的三元组,即
E
=
K-Query
(
s
,
K
)
E=\text{K-Query}(s,\mathbb{K})
E=K-Query(s,K)
其中,
E
=
{
(
w
i
,
r
i
0
,
w
i
0
)
,
…
,
(
w
i
,
r
i
k
,
w
i
k
)
}
E=\{(w_i,r_{i0},w_{i0}),\dots,(w_i,r_{ik},w_{ik})\}
E={(wi,ri0,wi0),…,(wi,rik,wik)}是对应三元组的集合。
步骤K-Inject负责将三元组集合
E
E
E加到句子
s
s
s中,构造句子树
t
t
t,即
t
=
K-Inject
(
s
,
E
)
t=\text{K-Inject}(s,E)
t=K-Inject(s,E)
K-BERT的Embedding层类似于BERT的Embedding层,也是由token embedding、position embedding和segment embedding组成。但是,与BERT不同的是,K-BERT的输入不是扁平的句子,而是具有结构的句子树。因此,K-BERT引入了soft-position embedding。
3.1 Token Embedding
与BERT完全相同。每个token转换为 H H H维的向量,并且使用 [CLS] \text{[CLS]} [CLS]作为分类标签, [MASK] \text{[MASK]} [MASK]作为掩码。特别地是,这里需要将句子树拉平。具体的作法是,将分支拼接在对应token的后面,其后的原始token依次后移。图2是一个完整的示例。
3.2 Soft-position Embedding
BERT中的所有结构信息均在position embedding中。K-BERT为了解决句子树的结构问题,提出了soft-position embedding。具体原理见图2可知。
3.2 Segment Embedding
与BERT完全相同。
Seeing layer是K-BERT与BERT之间最大的不同,也是K-BERT有效的原因。由于句子树中的三元组可能影响原始句子的含义。例如,图2中的
C
h
i
n
a
China
China是用来修饰
B
e
i
j
i
n
g
Beijing
Beijing的,其与
A
p
p
l
e
Apple
Apple完全没有关系,因此单词
A
p
p
l
e
Apple
Apple不应该被
C
h
i
n
a
China
China所影响。类似的
[
C
L
S
]
[CLS]
[CLS]也不应该获取单词
A
p
p
l
e
Apple
Apple的信息。因此,为了防止知识噪音,K-BERT引入了可见矩阵(visible matrix)
M
M
M来限制句子树中token的相互可见性。可见矩阵的定义为:
M
i
j
=
{
0
w
i
⊖
w
j
−
∞
w
i
⊘
w
j
M_{ij}={0wi⊖wj−∞wi⊘wj
其中,
w
i
⊖
w
j
w_i\ominus w_j
wi⊖wj表示
w
i
w_i
wi和
w
j
w_j
wj在相同分支上,
w
i
⊘
w
j
w_i\oslash w_j
wi⊘wj表示
w
i
w_i
wi和
w
j
w_j
wj不在相同的分支上。如图2所示。
5.1 Mask-Transformer
从某种程度上来说,可见矩阵 M M M包含了句子树中的结构化信息,但是BERT中的Transformer无法直接利用这些信息。因此,论文提出了Mask-Transformer,其能够根据 M M M来限制自注意机制的可见区域。Mask-Transformer是多个mask-self-attention堆叠而且。像BERT那样,其层数为 L L L,隐藏层输出的大小为 H H H,mask-self-attention的头数量为 A A A。
5.2 Mask-Self-Attention
为了解决知识噪音,在self-attention的基础上提出了mask-self-attention。具体形式为
Q
i
+
1
,
K
i
+
1
,
V
i
+
1
=
h
i
W
q
,
h
i
W
k
,
h
i
W
v
S
i
+
1
=
softmax
(
Q
i
+
1
K
i
+
1
T
+
M
d
k
)
h
i
+
1
=
S
i
+
1
V
i
+
1
Q^{i+1},K^{i+1},V^{i+1} = h^iW_q,h^iW_k,h^iW_v \\ S^{i+1} = \text{softmax}(\frac{Q^{i+1}{K^{i+1}}^T+M}{\sqrt{d_k}}) \\ h^{i+1} = S^{i+1}V^{i+1}
Qi+1,Ki+1,Vi+1=hiWq,hiWk,hiWvSi+1=softmax(dk
Qi+1Ki+1T+M)hi+1=Si+1Vi+1
其中,
W
q
W_q
Wq、
W
k
W_k
Wk、
W
v
W_v
Wv是可训练参数,
h
i
h_i
hi是第
i
i
i个mask-self-attention块的隐藏状态。
M
M
M是Seeing layer输出的可见矩阵。直觉上,如果单词
w
k
w_k
wk与
w
j
w_j
wj是不可见的,那么
M
j
k
M_{jk}
Mjk会将相似分数
S
j
k
i
+
1
S^{i+1}_{jk}
Sjki+1置为0。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。