论文精读 清华ERNIE:Enhanced Language Representation with Informative Entities

在这里插入图片描述

ERNIE原论文

背景

在大规模语料库上预训练的BERT等语言表示模型可以很好地从纯文本中捕获丰富的语义模式,并进行微调以提高各种 NLP 任务的性能。然而,现有的预训练语言模型很少考虑合并知识图谱,它可以提供丰富的结构化知识事实以更好地理解语言。作者认为 KG 中的实体信息可以通过外部知识增强语言表示。在本文中,通过大规模文本语料库和 KG 来训练增强的语言表示模型(ERNIE),该模型可以同时充分利用词汇、句法和知识信息。


预训练模型可以从文本中捕获丰富的语义信息,使多种 NLP 任务受益,可以分为以下两种:

∙ \bullet 基于特征:Skip-gram、GloVe、ELMo等

∙ \bullet 基于微调:GPT、BERT等

图1:Skip-gram模型和ELMo模型结构图

图片来源 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 在实体输入任务中的两个职业,即词曲作者和作家。 此外,几乎不可能在关系分类任务中提取细粒度的关系,例如作曲家和作者。 因此,考虑丰富的知识信息可以促成更好的语言理解,有利于各种知识驱动的任务,例如实体识别和关系分类。

图 2:为语言理解加入额外知识信息的示例。 实线表示现有的知识事实。 红色虚线表示从红色句子中提取的事实。 绿色点划线表示从绿色句子中提取的事实。

将外部知识整合到语言表示模型中的两个主要挑战:

(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} wV 有相应的实体 e ∈ E e ∈ \mathcal{E} eE,则它们的对齐定义为 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}=TEncoder({w1,...,wn})其中, T − E n c o d e r ( ⋅ ) T-Encoder(·) TEncoder() 是一个多层双向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}=KEncoder({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)

ERNIE T-Encoder

T − E n c o d e r T-Encoder TEncoder 是一个多层双向Transformer encoder,与BERT 中的实现相同,详细可以看BERT这篇论文。

ERNIE 的K-Encoder

如图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(i1),...,wwwn(i1)} 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(i1),...,eeem(i1)} 分别输入两个多头自注意力(MH-ATTs)
{ w ~ 1 ( 𝑖 ) , ⋯ , w ~ 𝑛 ( 𝑖 ) } = 𝑀 𝐻 − 𝐴 𝑇 𝑇 ( w 1 ( 𝑖 − 1 ) , ⋯ , w 𝑛 ( 𝑖 − 1 ) ) { e ~ 1 ( 𝑖 ) , ⋯ , e ~ 𝑚 ( 𝑖 ) } = 𝑀 𝐻 − 𝐴 𝑇 𝑇 ( e 1 ( 𝑖 ) , ⋯ , e 𝑚 ( 𝑖 ) ) \{\tilde{\pmb{w}}_1^{(𝑖)},⋯,\tilde{\pmb{w}}_𝑛^{(𝑖)} \}=𝑀𝐻−𝐴𝑇𝑇({\pmb{w}_1^{(𝑖−1)},⋯,\pmb{w}_𝑛^{(𝑖−1)} })\\ \{\tilde{\pmb{e}}_1^{(𝑖)},⋯,\tilde{\pmb{e}}_𝑚^{(𝑖)} \}=𝑀𝐻−𝐴𝑇𝑇({\pmb{e}_1^{(𝑖)},⋯,\pmb{e}_𝑚^{(𝑖)} }) {www~1(i),,www~n(i)}=MHATT(www1(i1),,wwwn(i1)){eee~1(i),,eee~m(i)}=MHATT(eee1(i),,eeem(i)) i i i 个聚合器采用信息融合层对token和实体序列进行相互集成,并计算每个token和实体的 o u t p u t   e m b e d d i n g output \ embedding output embedding。 对于一个token w j w_j wj及其对齐的实体 e k = f ( w j ) e_k = f (w_j ) ek=f(wj),信息融合过程如下,
h 𝑗 = σ ( W ~ 𝑡 ( 𝑖 ) w ~ 𝑗 ( 𝑖 ) + W ~ 𝑒 ( 𝑖 ) e ~ 𝑘 ( 𝑖 ) + b ~ ( 𝑖 ) ) 𝑤 𝑗 ( 𝑖 ) = σ ( W 𝑡 ( 𝑖 ) h 𝑗 + b 𝑡 ( 𝑖 ) ) 𝑒 𝑘 ( 𝑖 ) = σ ( W 𝑒 ( 𝑖 ) h 𝑗 + b 𝑒 ( 𝑖 ) ) ℎ_𝑗=\sigma(\tilde{\pmb{W}}_𝑡^{(𝑖)} \tilde{\pmb{w}}_𝑗^{(𝑖)}+\tilde{\pmb{W}}_𝑒^{(𝑖)} \tilde{\pmb{e}}_𝑘^{(𝑖)}+\tilde{\pmb{b}}^{(𝑖)} )\\ 𝑤_𝑗^{(𝑖)}={\sigma}(\pmb{W}_𝑡^{(𝑖)} \pmb{h}_𝑗+\pmb{b}_𝑡^{(𝑖)})\\ 𝑒_𝑘^{(𝑖)}={\sigma}(\pmb{W}_𝑒^{(𝑖)} \pmb{h}_𝑗+\pmb{b}_𝑒^{(𝑖)}) hj=σ(WWW~t(i)www~j(i)+WWW~e(i)eee~k(i)+bbb~(i))wj(i)=σ(WWWt(i)hhhj+bbbt(i))ek(i)=σ(WWWe(i)hhhj+bbbe(i))其中, 中间隐藏状态 h j h_j hj 集成了token和实体信息。 σ ( ⋅ ) \sigma(·) σ()是非线性激活函数,通常是 GELU 函数。

对于句子中的某些token,它在KG中没有对应实体,信息融合层计算 o u t p u t   e m b e d d i n g output \ embedding output embedding如下,
h 𝑗 = σ ( W ~ 𝑡 ( 𝑖 ) w ~ 𝑗 ( 𝑖 ) + b ~ ( 𝑖 ) ) 𝑤 𝑗 ( 𝑖 ) = σ ( W 𝑡 ( 𝑖 ) h 𝑗 + b 𝑡 ( 𝑖 ) ) ℎ_𝑗=\sigma(\tilde{\pmb{W}}_𝑡^{(𝑖)} \tilde{\pmb{w}}_𝑗^{(𝑖)}+\tilde{\pmb{b}}^{(𝑖)} )\\ 𝑤_𝑗^{(𝑖)}={\sigma}(\pmb{W}_𝑡^{(𝑖)} \pmb{h}_𝑗+\pmb{b}_𝑡^{(𝑖)}) hj=σ(WWW~t(i)www~j(i)+bbb~(i))wj(i)=σ(WWWt(i)hhhj+bbbt(i))综上,第 i i i个聚合器可简单表示为,
{ w 1 ( 𝑖 ) , ⋯ , w n ( 𝑖 ) } , { e 1 ( 𝑖 ) , ⋯ , e m ( 𝑖 ) } = A g g r e g a t o r ( { w 1 ( 𝑖 − 1 ) , ⋯ , w n ( 𝑖 − 1 ) } , { e 1 ( 𝑖 − 1 ) , ⋯ , e m ( 𝑖 − 1 ) } ) \{\pmb{w}_1^{(𝑖)},⋯,\pmb{w}_n^{(𝑖)} \},\{\pmb{e}_1^{(𝑖)},⋯,\pmb{e}_m^{(𝑖)} \}\\=Aggregator(\{\pmb{w}_1^{(𝑖-1)},⋯,\pmb{w}_n^{(𝑖-1)} \},\{\pmb{e}_1^{(𝑖-1)},⋯,\pmb{e}_m^{(𝑖-1)} \}) {www1(i),,wwwn(i)},{eee1(i),,eeem(i)}=Aggregator({www1(i1),,wwwn(i1)},{eee1(i1),,eeem(i1)})最后一个聚合器计算的token和实体的 o u t p u t   e m b e d d i n g output \ embedding output embedding将用作 K − E n c o d e r K-Encoder KEncoder 的最终 o u t p u t   e m b e d d i n g output \ embedding output embedding

将知识注入预训练模型中

为了将实体知识注入到语言表示模型中,作者提出了一个新的预训练任务,随机mask一些 t o k e n − e n t i t y token-entity tokenentity对齐,然后要求模型基于对齐的token来预测所有相应的实体。由于这个任务类似于训练去噪自编码器,作者将此过程称为去噪实体自编码器 (dEA)考虑到 s o f t m a x softmax softmax 层的 E \mathcal{E} E 非常大,因此只需要根据给定的实体序列而不是 KG 中的所有实体来预测实体

给定token序列 { w 1 , . . . , w n } \{w_1, . . . , w_n\} {w1,...,wn}及其对应的实体序列 { e 1 , . . . , e m } \{e_1, . . . , e_m\} {e1,...,em},定义token w i w_i wi 的对齐实体分布如下,
𝑝 ( e j │ w i ) = e x p ⁡ ( 𝑙 𝑖 𝑛 𝑒 𝑎 𝑟 ( w 𝑖 𝑜 ) ⋅ e j ) ∑ 𝑘 = 1 𝑚 e x p ⁡ ( 𝑙 𝑖 𝑛 𝑒 𝑎 𝑟 ( w 𝑖 𝑜 ) ⋅ e k 𝑝(e_j│w_i )=\frac{exp⁡(𝑙𝑖𝑛𝑒𝑎𝑟(\pmb{w}_𝑖^𝑜 )·\pmb{e}_j)}{∑_{𝑘=1}^𝑚{exp⁡(𝑙𝑖𝑛𝑒𝑎𝑟(\pmb{w}_𝑖^𝑜 )·\pmb{e}_k}} p(ejwi)=k=1mexp(linear(wwwio)eeekexp(linear(wwwio)eeej)
其中 l i n e a r ( ⋅ ) linear(·) linear()是一个线性层。 计算 dEA 的交叉熵损失函数会用到上式。

考虑到 token-entity 对齐存在一些错误,对 dEA 执行以下操作:

(1) 对于给定的 token-entity 对齐,以 5 % 5\% 5%的概率用另一个随机实体替换该实体,旨在训练模型能够纠正token与错误实体对齐这个错误;

(2)以 15 % 15\% 15%的概率mask掉token-entity 对齐,旨在训练模型以纠正实体对齐系统未提取所有现有对齐的错误;

(3)以 80 % 80\% 80%的概率保持 token-entity 对齐不变,旨在鼓励模型将实体信息整合到 token 表示中,以获得更好的语言理解。

与 BERT 类似,ERNIE 也采用掩码语言模型 (MLM) 和下一句预测 (NSP) 作为预训练任务,使 ERNIE 能够从文本中的标记中捕获词汇和句法信息,整体预训练损失是 dEA、MLM 和 NSP 损失的总和

实验

预训练数据集

从头训练 ERNIE 的成本太大,作者直接采用 Google发布的 BERT 参数初始化用于编码token的Transformer 块。

预训练是一个由 NSP、MLM 和 dEA 组成的多任务过程,使用英文维基百科作为预训练语料库并将文本与 Wiki 数据对齐。将语料库转换为格式化数据进行预训练后,标注输入有近 4 , 500 M 4,500M 4,500M子词和 140 M 140M 140M实体,丢弃少于3个实体的句子。

在预训练 ERNIE 之前,采用 TransE 在 Wikidata 上训练的知识嵌入作为实体的输入嵌入。

超参数设置和训练细节

给定 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的隐藏维度分别表示为 H w H_w Hw H e H_e He,自注意力头的数量分别表示为 A w A_w Aw A e A_e Ae。 模型大小: N = 6 , M = 6 N = 6,M = 6 N=6M=6 H w = 768 H_w = 768 Hw=768 H e = 100 , A w = 12 , A e = 4 H_e = 100,A_w = 12,A_e = 4 He=100Aw=12Ae=4。总参数约 114 M 114M 114M

B E R T B A S E BERT_{BASE} BERTBASE 的参数总量约为 110 M 110M 110M,这意味着 ERNIE 的知识模块比语言模块小得多,对运行时性能影响很小。由于自注意力的计算是长度的二次函数,为了加速训练过程,作者将最大序列长度从 512 减少到 256。

由于堆叠的 Transformer 块的强大表达能力,作者发现小批量会导致模型过拟合。 因此,用更大的batch size和更少的训练时期来避免过度拟合,即batch size:2048,epoch:2、3。 由于大多数数据集没有实体注释,作者使用 TAGME来提取句子中的实体并将它们链接到 KG 中的相应实体。

GLUE

通用语言理解评估 (GLUE) 基准是各种自然语言理解任务的集合。

ERNIE 在 GLUE 上取得了与 BERTBASE 相当的结果。一方面,这意味着 GLUE 不需要外部知识来进行语言表示。另一方面,它说明了 ERNIE 在异构信息融合后不会丢失文本信息。

消融实验

使用FewRel 数据集探索信息实体和知识预训练任务(dEA)对ERNIE 的影响。w/o entity和 w/o dEA 分别是指没有实体序列输入和没有预训练任务dEA。

结果表明:

(1)在没有实体序列输入的情况下,dEA 在预训练期间仍然将知识信息注入语言表示中,这使 BERT 的 F1 分数提高了 0.9%。

(2)虽然信息实体带来了很多知识信息,直观地有利于关系分类,但没有 dEA 的 ERNIE 几乎没有利用这一点,导致 F1 增加了 0.7%。


总结

提出了将知识信息整合到语言表示模型中的ERNIE模型。 为更好地融合来自文本和 KG 的异构信息,作者提出了知识聚合器和预训练任务 dEA。 实验结果表明,ERNIE 在去噪远程监督数据和对有限数据进行微调方面都比 BERT 更好。

未来的研究还有三个重要方向:

(1)将知识注入基于特征的预训练模型,例如 ELMo;

(2) 将多样化的结构化知识引入语言表示模型,例如与世界知识数据库 Wikidata 不同的 ConceptNet ;

(3) 启发式地注释更多真实世界的语料库以构建更大的预训练数据。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葫芦娃啊啊啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值