ERNIE: Enhanced Language Representation with Informative Entities 论文研读

1. 摘要

  NLP表示模型如BERT的预训练模型能够在大量的纯文本语料中捕获丰富的语义信息,并且通过微调改进NLP任务的效果。然而,已存在的预训练语言模型很少考虑将知识图谱的结构化信息融入其中,从而提高语言的理解。我们认为知识图谱中的信息实体能够增强语言表示。在这篇论文中,我们利用了大规模的语料信息和知识图谱,去训练一个增强的语言表示模型,它能够同时利用词汇、语义和知识信息。实验结果表明了ERNIE效果很好,在各项知识驱动的任务中都超过了BERT模型。源代码地址为: https://github.com/thunlp/ERNIE

2. 引论

  预训练语言表征模型包括基于特征的和基于微调的两种方法,它们能从文本抽取出丰富的语言信息,并用于不同的 NLP 任务。2018 年提出的 BERT 可能是最受关注的预训练语言模型之一,它提出时在各种 NLP 任务中都能获到当前最优的效果,而且不同的任务只需要简单地微调就可以了。

  尽管预训练语言表征模型已经获得了很好的效果,并且在很多 NLP 任务中都可以作为常规组件,但它却忽略了将知识信息整合到语言理解中。如下图 1 所示,如果不知道「Blowin’ in the Wind」和「Chronicles: Volume One」分别是歌曲与书籍,那么模型很难识别它们是 Bob Dylan 的两个工作。即在实体类型任务中,模型识别不出 Bob Dylan 同时是歌曲作家和书籍作者。对于现有的预训练语言表征模型,上面例子的两句话在句法上是有歧义的,例如可以理解为「UNK wrote UNK in UNK」。因此使用丰富的知识信息能构建更好的语言理解模型,也有益于各种知识驱动的应用,例如实体类型和关系分类等。

ERNIE: Enhanced Language Representation with Informative Entities 论文研读
  图 1:为语言理解嵌入外部知识的示例。其中实线表示已存在的知识事实,红色虚线表示从红色句子中抽取的事实,蓝色虚线表示从蓝色句子抽取的事实。

  但如果要将外部知识组合到语言表征模型中,我们又会遇到两大主要挑战:

  1. 结构化的知识编码:对于给定的文本,如何高效地抽取并编码对应的知识图谱事实是非常重要的,这些 KG 事实需要能用于语言表征模型。

  2. 异质信息融合:语言表征的预训练过程和知识表征过程有很大的不同,它们会产生两个独立的向量空间。因此,如何设计一个特殊的预训练目标,以融合词汇、句法和知识信息就显得非常重要了。

  为了克服上面提到的这些挑战,清华大学等研究者提出一种名为通过多信息实体增强语言表征(ERNIE)的模型。重要的是,ERNIE 能同时在大规模文本语料库和知识图谱上预训练语言模型。总体而言,ERNIE 分为抽取知识信息与训练语言模型两大步骤,下面将简述 ERNIE 到底是怎样构建的。

  (1) 对于抽取并编码的知识信息,研究者首先识别文本中的命名实体,然后将这些提到的实体与知识图谱中的实体进行匹配。研究者并不直接使用 KG 中基于图的事实,相反他们通过知识嵌入算法(例如 TransE)编码 KG 的图结构,并将多信息实体嵌入作为 ERNIE 的输入。基于文本和知识图谱的对齐,ERNIE 将知识模块的实体表征整合到语义模块的隐藏层中。

  (2) 与 BERT 类似,研究者采用了带 Mask 的语言模型,以及预测下一句文本作为预训练目标。除此之外,为了更好地融合文本和知识特征,研究者设计了一种新型预训练目标,即随机 Mask 掉一些对齐了输入文本的命名实体,并要求模型从知识图谱中选择合适的实体以完成对齐。现存的预训练语言表征模型只利用局部上下文预测 Token,但 ERNIE 的新目标要求模型同时聚合上下文和知识事实的信息,并同时预测 Token 和实体,从而构建一种知识化的语言表征模型。

  研究者针对两种知识驱动型 NLP 任务进行了实验,即实体分型(entity typing)和关系分类。实验结果表明,ERNIE 在知识驱动型任务中效果显著超过当前最佳的 BERT,因此 ERNIE 能完整利用词汇、句法和知识信息的优势。研究者同时在其它一般 NLP 任务中测试 ERNIE,并发现它能获得与 BERT 相媲美的性能。

3. 模型架构

  如图 2 所示,ERNIE 的整个模型架构由两个堆叠的模块构成:(1)底层的文本编码器(T-Encoder),负责获取输入 token 的词法和句法信息;(2)上层的知识型编码器(K-Encoder),负责将额外的面向 token 的知识信息整合进来自底层的文本信息,这样我们就可以在一个统一的特征空间中表征 token 和实体的异构信息了。我们用 N 表示 T-Encoder 的层数,用 M 表示 K-Encoder 的层数。

ERNIE: Enhanced Language Representation with Informative Entities 论文研读
图 2:左部分是 ERNIE 的架构。右部分是用于 token 和实体的互相融合的聚合器。信息融合层的输入有两类:一是 token 嵌入,二是 token 嵌入和实体嵌入连接起来的结果。信息融合完成后,它会为下一层输出新的 token 嵌入和实体嵌入。

针对具体任务进行精调
ERNIE: Enhanced Language Representation with Informative Entities 论文研读
  图 3:针对具体任务修改输入句子。为了对齐不同类型输入的 token,这里使用了点线构成的矩形作为占位符。彩色矩形表示具体的标记(mark)token。

  如图 3 所示,对于不同类型的常见 NLP 任务,ERNIE 可以采用类似于 BERT 的精调过程。研究者提出可将第一个 token 的最终输出嵌入(其对应于特有的 [CLS] token)用作特定任务的输入序列的表征。针对某些知识驱动型任务(比如关系分类和实体分型),可以设计出针对性的精调过程:

  关系分类任务需要系统基于上下文分类给定实体对的关系标签。要针对关系分类任务精调 ERNIE,最直接的方法是将池化层应用于给定实体提及的最终输出嵌入,并将它们的提及嵌入的连接结果用于表征给定的实体对,以便进行分类。

  这篇论文设计了另一种方法,即通过添加两个标记(mark)token 来凸显实体提及,从而修改输入 token 序列。这些额外的标记 token 的作用类似于传统的关系分类模型(Zeng et al., 2015)中的位置嵌入。然后,也取其 [CLS] token 嵌入以便分类。注意,研究者分别为头部实体和尾部实体设计了不同的 token [HD] 和 [TL]。

  针对实体分型的特定精调过程是关系分类的一种简化版本。因为之前的分型模型对上下文嵌入和实体提及嵌入都进行了充分的利用 (Shimaoka et al., 2016),所以研究者认为经过提及标记 token [ENT] 修改过的输入序列可以引导 ERNIE 关注将上下文信息与实体提及信息两者结合起来。