赞
踩
在大规模语料库上预训练的BERT等语言表示模型可以很好地从纯文本中捕获丰富的语义模式,并进行微调以提高各种 NLP 任务的性能。然而,现有的预训练语言模型很少考虑合并知识图谱,它可以提供丰富的结构化知识事实以更好地理解语言。作者认为 KG 中的实体信息可以通过外部知识增强语言表示。在本文中,通过大规模文本语料库和 KG 来训练增强的语言表示模型(ERNIE),该模型可以同时充分利用词汇、句法和知识信息。
预训练模型可以从文本中捕获丰富的语义信息,使多种 NLP 任务受益,可以分为以下两种:
∙ \bullet ∙ 基于特征:Skip-gram、GloVe、ELMo等
∙ \bullet ∙ 基于微调:GPT、BERT等
图片来源 Efficient estimation of word representations in vector space.
BERT : Pre-training of Deep Bidirectional Transformers for Language Understanding.
尽管预训练的语言表示模型已经取得了可喜的结果,并且在许多 NLP 任务中作为常规组件发挥了作用,但它们忽略了将知识信息纳入语言理解。
如图 2所示,在不知道 Blowin’ in the Wind 和 Chronicles: Volume 1 分别是歌曲和书籍的情况下,很难识别 Bob Dylan 在实体输入任务中的两个职业,即词曲作者和作家。 此外,几乎不可能在关系分类任务中提取细粒度的关系,例如作曲家和作者。 因此,考虑丰富的知识信息可以促成更好的语言理解,有利于各种知识驱动的任务,例如实体识别和关系分类。
将外部知识整合到语言表示模型中的两个主要挑战:
(1) 结构化知识编码:对于给定的文本,语言表示模型如何有效地提取和编码KG中相关的事实信息;
(2)异构信息融合:语言表示的预训练过程与知识表示过程有很大不同,导致两个独立的向量空间。如何设计一个预训练目标融合词法、句法和知识信息。
为了解决目前存在的两个挑战,作者分别提出了以下两个方法,也就是本文的创新点:
在大规模文本语料库和 KG 上进行预训练:
(1)为了提取和编码知识信息,我们首先识别文本中提及的命名实体,然后将这些提及到的实体与它们在 KG 中的相应实体对齐。 没有直接在 KG 中使用基于图的事实,而是使用诸如 TransE之类的知识嵌入算法对 KG 的图结构进行编码,然后将信息实体嵌入作为 ERNIE 的输入。 基于文本和 KG 之间的对齐,ERNIE 将知识模块中的实体表示集成到语义模块的底层。
(2)设计了一个新的预训练目标。通过随机mask输入文本中的一些命名实体对齐并要求模型从 KG 中选择合适的实体来完成对齐。 与现有的仅利用局部上下文来预测标记的预训练语言表示模型不同,我们的目标是要求模型聚合上下文和知识事实以预测token和实体,并形成知识增强的语言表示模型。
token序列表示为 { w 1 , . . . , w n } \{w_1,...,w_n\} {w1,...,wn}, n n n 是token序列的长度;
与给定token对齐的实体序列表示为 { e 1 , . . . , e m } \{e_1,...,e_m\} {e1,...,em}, m m m 是实体序列的长度;
在大多数情况下 m m m不等于 n n n,因为并非每个token都可以与 KG 中的实体对齐;
包含所有token的整个词汇表表示为 V \mathcal{V} V;
包含 KG 中所有实体的实体列表表示为 E \mathcal{E} E;
如果标记 w ∈ V w\in \mathcal{V} w∈V 有相应的实体 e ∈ E e ∈ \mathcal{E} e∈E,则它们的对齐定义为 f ( w ) = e f( w) = e f(w)=e。
在ERNIE中,作者将实体与其命名实体短语中的第一个标记对齐,如图 3 所示。
图3 左边是ERNIE的架构。 右边是 token 和 entity 的输入相互集成的聚合器。 信息融合层有两种输入:一种是 t o k e n e m b e d d i n g token\ embedding token embedding,另一种是 t o k e n e m b e d d i n g token\ embedding token embedding和 e n t i t y e m b e d d i n g entity\ embedding entity embedding的串联。 信息融合后,它为下一层输出新的 t o k e n e m b e d d i n g token\ embedding token embedding和 e n t i t y e m b e d d i n g entity\ embedding entity embedding。
如图 3左边所示,ERNIE 的整个模型架构由两个堆叠模块组成:
(1)底层文本编码器(T-Encoder)负责从输入标记中捕获基本的词汇和句法信息
给定一个token序列
{
w
1
,
.
.
.
,
w
n
}
\{w_1,...,w_n\}
{w1,...,wn},及其对应的实体序列
{
e
1
,
.
.
.
,
e
m
}
\{e_1 , . . . , e_m \}
{e1,...,em},文本编码器首先对每个token的
t
o
k
e
n
e
m
b
e
d
d
i
n
g
token\ embedding
token embedding,
s
e
g
m
e
n
t
e
m
b
e
d
d
i
n
g
segment\ embedding
segment embedding,
p
o
s
i
t
i
o
n
a
l
e
m
b
e
d
d
i
n
g
positional\ embedding
positional embedding求和以计算其
i
n
p
u
t
e
m
b
e
d
d
i
n
g
input\ embedding
input embedding,计算
{
w
1
,
.
.
.
,
w
n
}
\{\pmb{w}_1,...,\pmb{w}_n\}
{www1,...,wwwn} 如下,
{
w
1
,
.
.
.
,
w
n
}
=
T
−
E
n
c
o
d
e
r
(
{
w
1
,
.
.
.
,
w
n
}
)
\{\pmb{w}_1,...,\pmb{w}_n\}=T-Encoder(\{w_1,...,w_n\})
{www1,...,wwwn}=T−Encoder({w1,...,wn})其中,
T
−
E
n
c
o
d
e
r
(
⋅
)
T-Encoder(·)
T−Encoder(⋅) 是一个多层双向Transformer encoder,与BERT 中的实现相同。
(2)上层知识编码器 (K-Encoder) 负责将额外的面向token的知识信息整合到来自底层的文本信息中,以便将token和实体的异构信息表示到一个统一的特征空间中。
用实体嵌入
{
e
1
,
.
.
.
,
e
m
}
\{\pmb{e}_1 , . . . , \pmb{e}_m\}
{eee1,...,eeem}表示实体
{
e
1
,
.
.
.
,
e
m
}
\{e_1 , . . . , e_m \}
{e1,...,em},将来自K-Encoder的
{
w
1
,
.
.
.
,
w
n
}
\{\pmb{w}_1,...,\pmb{w}_n\}
{www1,...,wwwn}和 Trans E的编码结果
{
e
1
,
.
.
.
,
e
m
}
\{\pmb{e}_1 , . . . , \pmb{e}_m\}
{eee1,...,eeem}喂给K-Encoder,计算最终的
o
u
t
p
u
t
e
m
b
e
d
d
i
n
g
output \ embedding
output embedding:
{
w
1
o
,
.
.
.
,
w
n
o
}
,
{
e
1
o
,
.
.
.
,
e
m
o
}
=
K
−
E
n
c
o
d
e
r
(
{
w
1
,
.
.
.
,
w
n
}
,
{
e
1
,
.
.
.
,
e
m
}
)
\{\pmb{w}_1^o,...,\pmb{w}_n^o\},\{\pmb{e}_1^o,...,\pmb{e}_m^o\}\\= K-Encoder(\{\pmb{w}_1,...,\pmb{w}_n\} ,\{\pmb{e}_1 , . . . , \pmb{e}_m\})
{www1o,...,wwwno},{eee1o,...,eeemo}=K−Encoder({www1,...,wwwn},{eee1,...,eeem}) 其中,
{
e
1
,
.
.
.
,
e
m
}
\{\pmb{e}_1 , . . . , \pmb{e}_m\}
{eee1,...,eeem}由知识嵌入模型 TransE 进行预训练,
{
w
1
o
,
.
.
.
,
w
n
o
}
和
{
e
1
o
,
.
.
.
,
e
m
o
}
\{\pmb{w}_1^o,...,\pmb{w}_n^o\}和\{\pmb{e}_1^o,...,\pmb{e}_m^o\}
{www1o,...,wwwno}和{eee1o,...,eeemo}将作为特征用于特定的任务。
作者将 T-Encoder 层数表示为 N N N,将 K-Encoder 层数表示为 M M M。(实验中 M = N M=N M=N)
T − E n c o d e r T-Encoder T−Encoder 是一个多层双向Transformer encoder,与BERT 中的实现相同,详细可以看BERT这篇论文。
如图3所示,K-Encoder 由多个堆叠的聚合器组成,旨在编码tokens 和实体以及融合他们的异构信息。
在第
i
i
i个聚合器中,将来自前面的聚合器的
i
n
p
u
t
t
o
k
e
n
e
m
b
e
d
d
i
n
g
{
w
1
(
i
−
1
)
,
.
.
.
,
w
n
(
i
−
1
)
}
input\ token\ embedding\ \{\pmb{w}_1^{(i-1)},...,\pmb{w}_n^{(i-1)}\}
input token embedding {www1(i−1),...,wwwn(i−1)}和
e
n
t
i
t
y
e
m
b
e
d
d
i
n
g
entity\ embedding
entity embedding
{
e
1
(
i
−
1
)
,
.
.
.
,
e
m
(
i
−
1
)
}
\{\pmb{e}_1^{(i-1)},...,\pmb{e}_m^{(i-1)}\}
{eee1(i−1),...,eeem(i−1)} 分别输入两个多头自注意力(MH-ATTs)
{
w
~
1
(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。