BERT 是目前比较流行的 NLP 预训练模型,其预训练的任务包括 Masked LM (MLM) 和 Next Sentence Prediction (NSP)。其中后续很多研究中都证明了 NSP 任务并没有多大作用,而 MLM 是比较关键的任务,通过 MLM 让模型拥有了融合上下文信息的能力。本文主要介绍几种常见的 BERT Mask 策略。
1.ERNIE
BERT 模型在训练时使用了两个预训练任务:Masked LM 和 Next Sentence Prediction。BERT Mask 过程中会把 15% 的字遮挡起来,然后让模型预测被遮挡的字。BERT 会把每个字单独处理,即 Mask 时不考虑词组信息,例如句子 "静夜思的作者是李白",BERT 有可能会 Mask 得到 "静夜思的作者是[Mask]白"。
ERNIE 模型是由百度提出的,论文《ERNIE: Enhanced Representation through Knowledge Integration》。ERINE 的作者认为 BERT 遮挡单个字的方式通常会忽略句子中的先验知识,例如对于句子 "哈利波特的作者是 J.K.罗琳",如果模型遮挡了 "哈利波特" 中的随机一个字,则模型不需要利用句子的知识就很容易预测出 "哈利波特"。但是如果将 "哈利波特" 整个实体遮挡起来, BERT 就不能正确预测了,说明 BERT 不能很好地利用整个句子的知识。
因此作者改进了 BERT 的 Mask 策略,新的策略能让模型更好地学习一些知识,称为 Knowledge Mask。主要包括 Phrase Mask (短语) 和 Entity Mask (实体),可以由多个字组成。通过对句子中的一些词组进行遮挡并预测整个词组,可以让 ERNIE 更好地捕获词组、实体之间的关系。下图显示了 BERT 和 ERNIE Mask 策略的区别。
BERT 和 ERNIE Mask 策略的区别
ERNIE 在预训练时使用了多阶段的 Mask,即 Basic Mask (和 BERT 类似,遮挡字),Phrase Mask 和 Entity Mask,如下图所示。
ERNIE 多阶段 Mask
作者在五种中文 NLP 任务中对比了 BERT 和 ERNIE 的效果,如下图所示:
ERNIE 和 BERT 实验对比
作者也采用了消融实验对比不同 Mask 策略对性能的影响,如下:
ERNIE 不同 Mask 策略对性能的影响
在完形填空测试上,ERNIE 的效果比 BERT 要好,说明新的 Mask 策略可以让模型学到句子中更多的知识,完形填空测试的结果如下:
ERNIE 完形填空测试
2.BERT WWM
BERT WWM 出自论文《Pre-Training with Whole Word Masking for Chinese BERT》,和 ERNIE 比较相似,采用 Whole Word Masking (WWM) 进行 Mask,即遮挡整个词组。下图展示了 BERT WWM 的 Mask 策略。
BERT WWM Mask 策略
作者在阅读理解、自然语言推断、情感分类、句子对匹配和文本分类五种任务上对比了 BERT WWM 和 ERNIE、BERT 的性能。不同模型的参数如下图所示:
BERT WWM、BERT 和 ERNIE 参数
在阅读理解任务上,BERT WWM 比 ERNIE 效果好,结果如下图所示:
阅读理解实验
但是在自然语言推断任务上,ERNIE 的效果要更好:
自然语言推断实验
3.SpanBERT
SpanBERT 出自论文《SpanBERT: Improving Pre-training by Representing and Predicting Spans》,SpanBERT 主要改进了以下三点:
采用 Span Mask 的策略,随机遮挡一个范围的 token。修改了 BERT 的 MLM 预训练目标,改为 Span-Boundary Objective (SBO),根据 Span 的边界词预测 Span 中所有的 token。去掉 BERT 的 NSP (下一句预测任务) 预训练任务,采用单个句子进行训练。SpanBERT 的 Mask 策略及 SBO 预训练任务如下图所示:
SpanBERT 的 Mask 策略
SpanBERT 会根据几何分布随机选择 Span 的长度 (Span 的长度最长为 10,越短的 Span 概率越大),并将句子中的区间遮挡起来。SpanBERT 也采用了 BERT 中的方式,即 80% 的用 [MASK] 代替,10% 用随机 token 代替,10% 用原始 token 代替。SpanBERT 随机选择的 Span 长度分布图如下:
SpanBERT 区间长度分布
SpanBERT 修改了原来的 MLM 预训练目标,增加了 SBO。假设需要遮挡的 Span 为 (xs, ..., xe),则模型需要用 Span 的边界 token (xs-1 和 xe+1) 预测整个 Span 的内容。预测第 i 个 toekn 的公式如下,其中 pi 是 token i 的 position 向量:
SBO 预训练任务
得到预测结果 yi 后采用交叉熵计算损失函数,并加上原本 MLM 的损失函数。
下面是在 QA 任务上对比 SpanBERT 和 BERT 的实验结果:
QA 任务实验
SpanBERT 作者也对比了不同的 Mask 策略,如下所示:
SpanBERT 对比不同 Mask 策略
作者最后验证了去掉 NSP 对模型性能的影响,使用单个句子训练效果更好:
去掉 NSP 对 SpanBERT 性能的影响
4.参考文献
ERNIE: Enhanced Representation through Knowledge Integration
Pre-Training with Whole Word Masking for Chinese BERT
SpanBERT: Improving Pre-training by Representing and Predicting Spans
举报/反馈

NLP学习笔记

328获赞 814粉丝
专注分享自然语言处理知识
关注
0
0
收藏
分享