背景
在大规模语料库上预训练的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。
ERNIE 的模型架构
如图 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,...,www