ERNIE: Enhanced Language Representation with Informative Entities

ERNIE: Enhanced Language Representation with Informative Entities

来源

ACL 2019
Zhengyan Zhang1;2;3∗, Xu Han1;2;3∗, Zhiyuan Liu1;2;3y, Xin Jiang4, Maosong Sun1;2;3, Qun Liu4
1Department of Computer Science and Technology, Tsinghua University, Beijing, China
2Institute for Artificial Intelligence, Tsinghua University, Beijing, China
3State Key Lab on Intelligent Technology and Systems, Tsinghua University, Beijing, China
4Huawei Noah’s Ark Lab

代码

motivation

在深度学习时代词向量表示是自然语言处理任务的基础,使用预训练的词向量被大量的实验证明对许多自然语言处理任务性能的提升有着非常关键的作用,使用预训练的词向量的方式主要是有两种,一种是将词向量作为特征另外一种是通过在预训练模型的基础上通过finetune的方式得到。得到预训练的词向量通常是通过训练语言模型的方式,早期的语言模型NNLM, word2vec 以及近年来火爆的ELMO使用双向的lstm模型通过融入上下文信息得到动态的词向量用来处理一词多意问题,GPT使用transformer模型、Bert 使用双向的transformer模型在许多自然语言处理任务取得SOTA的结果。上面的模型通过设计网络结构和训练方式试图去捕捉词法信息以及句法信息。本文提出的ERNIE模型期望利用外部知识(知识图谱)中信息加入到语言模型的训练中,增强词向量的表示能力。外部知识在实体类型标注、关系分类等知识驱动的任务中有非常重要的作用,举例:Bob Dylan wrote Blowin’ in the Wind in 1962, and wrote Chronicles: Volume One in 2004, Blowin’ in the Wind以及Chronicles的实体类型对于判断Bob Dylan的身份非常重要。

模型

ERNIE: Enhanced Language Representation with Informative Entities
将外部知识融入到语言模型的设计中面临两个问题:一个是对外部知识的建模,如何编码;另外一个是如何将两部分异质数据融合,即知识表示和上下文表示在同一个空间中

为了解决上面的两个问题,本文设计了如上图所示的模型结构图(ERNIE enhanced language representation with information entities)
从上图中可以发现,模型主要包括两个部分,分别是对于文本编码器T-encoder, 另外一个是知识编码器:K-encoder
首先从简单的T-encoder开始介绍T-encoder:
T-encoder 是一个多层的双向transformer 模型,它的实现和bert 模型是相同的,具体参考bert模型的实现
ERNIE: Enhanced Language Representation with Informative Entities
下面介绍K-encoder
首先说明引入的知识是什么,本文里引入的知识是实体的表示。为什么引入实体表示作为知识,我们在后面讲。
给定一句话或者说token 序列,我们通过一些工具可以识别命名实体。假设实体序列是{e1,e2,.....,em}\{e_1,e_2,.....,e_m\}
实体的初始化表示可以使用现有的表示学习方法表示,如transE, 将实体表示以及token表示一同输入到k-encoder中去。
在k-encoder 中融合上下文信息以及外部引入的实体信息,具体的融合方法可以参照下面公式以及上面的图表示。
k-encoder 是一个多层的aggregator, aggregator 是一个多头attention层, 下面i 表示第i个aggregator
ERNIE: Enhanced Language Representation with Informative Entities
首先将第i-1个aggregator的输出通过一个多头的attention层,得到实体以及token的表示。对于有实体对应的token,使用下面的方式进行两部分的融合
ERNIE: Enhanced Language Representation with Informative Entities
其中σ()\sigma()是一个**函数,通常采用的是GELU函数。对于没有实体相对于的token表示
ERNIE: Enhanced Language Representation with Informative Entities
换句话简单的可以抽象的表示为
ERNIE: Enhanced Language Representation with Informative Entities

预训练

预训练的方式也是基本借鉴了bert的预训练方式,但是因为引入了外部知识,也有一些方面是不同的。
我们知道bert是一个mask language model, 通过训练模型预测被mask掉的token,也就是说bert的预测是token级的。而本文是mask掉token-entity 对齐,通过对齐的token 预测实体。训练方式类似与一个去噪的自动编码器(DEA)。给定一个token序列{w1,w2,....,wn}\{w_1,w_2,....,w_n\}以及实体序列{e1,e2,....,en}\{e_1,e_2,....,e_n\}, 计算token-entities对齐的分布:
ERNIE: Enhanced Language Representation with Informative Entities
用于计算交叉熵损失函数
训练方式:
5%的情况下,一个token-entities对齐中的实体被随机替换成另外一个实体
15%的情况下,mask token-entities对齐,目的是使得模型可以纠正系统不能够提取到所有的对齐
剩余的情况保持对齐不变,为的是将实体信息引入到模型的表示中

训练任务包括两个一个是mask language model (MLM)以及next-sentence prediction (NSP)两个任务,分别对应
两部分损失函数 与之前的DAE损失作为整体的损失

fintune

本文里以实体类型标注以及关系分类两个任务为例,介绍ERNIE是如何进行fintune的。
ERNIE: Enhanced Language Representation with Informative Entities
实体类型标注以及关系分类按照上图所示,分别在句子中插入[ENT] 以及 [HD]、[TL]标识符,使用[CLS]的向量表示作为分类器的输入。

experiment

实体类型标注:
两个数据集FIGER与Open entity
FIGER训练集是远程监督标注的,测试集人工标注
Open Entity 是手动标注的
ERNIE: Enhanced Language Representation with Informative Entities
ERNIE: Enhanced Language Representation with Informative Entities
关系分类
ERNIE: Enhanced Language Representation with Informative Entities

ERNIE: Enhanced Language Representation with Informative Entities
其他任务
GLUE 包括一系列的自然语言理解任务
ERNIE: Enhanced Language Representation with Informative Entities
消融测试
w/o entities表示输入中不包括实体序列
w/o dEA表示 没有预训练任务dEA
ERNIE: Enhanced Language Representation with Informative Entities