【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing

简要信息:

序号

属性


1

模型名称

MacBERT

2

发表位置

EMNLP(Findings) 2020

3

所属领域

自然语言处理、中文预训练语言模型

4

研究内容

预训练语言模型

5

核心内容

BERT改进

6

GitHub源码

​https://github.com/ymcui/MacBERT​

7

论文PDF

​https://arxiv.org/pdf/2004.13922.pdf​


一、动机

  • 在一些较为复杂的QA任务上,BERT等一系列的预训练语言模型可以达到很高的效果;
  • 训练transformer-based预训练模型比较困难;
  • 大多数的语言模型是基于英语的,很少有工作致力于提升中文语言模型的提升;

二、贡献

  • 分析现有的Chinese-based Pre-trained LM;
  • 提出MacBERT(改进MLM,并提出MLM as corrector)

三、Revisit of Pre-trained Language Model

【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing_深度学习

BERT

  • MLM:从输入中随机mask部分token,并预测该token;
  • NSP:预测两个句子是否存在next关系;
  • Whole Word Masking(WWM):mask整个词,而不是单独的word piece token;
    详细可参考博客:​​BERT​​

ERNIE

  • Entity-level Masking:改进MLM,每次mask一个命名实体,而不是随机mask一个token;
  • Phrase-level Masking:随机mask一个连续的token序列。(类似N-gram masking)

XLNet

  • 考虑句子的排列顺序;
  • 使用自回归模型建模语言模型;

RoBERTa

  • 进一步改进BERT模型,包括训练步骤、mask策略、语料数量和长度等方面;
  • 重点包括:去除NSP预训练任务,将MLM改进为动态Masking;

详细可参考博客:​​RoBERTa​​

ALBERT

  考虑到BERT模型的规模和速度,提出两种参数缩减方法:

  • factorized embedding parameterization:将embedding matrix分解为两个小的矩阵,使得word embdding到hidden embedding的参数量(【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing_生成器_02)下降到 【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing_sed_03
  • Cross-layer Parameter Sharing——Transformer交叉共享参数:部分transformer层之间存在参数共享,减少参数量,保证大模型的训练稳定性;
  • SOP(Sentence Order Prediction):改进NSP的负例,即随机挑选文档中的连续的两个句子,并颠倒顺序。

ELECTRA

  引入GAN(生成器和判别器):

  • 生成器:MLM,随机mask一个token,并预测该token;
  • 判别器:判断每个token是否是MLM生成的;

BERT-wwm & RoBERTa-wwm

  • 使用LTP对中文进行分词,得到每个whole word;
  • 输入BERT中,依然使用word piece,但是在mask时,并非只随机mask一个word piece token,而是根据先前的whole word分词,mask整个分词。

四、MacBERT:

  本文提出MacBERT(MLM as correction BERT)。基于BERT对预训练的两个任务进行了改进:

MLM:

  • 使用Whole Word Masking、N-gram Masking:single token、2-gram、3-gram、4-gram分别对应比例为0.4、0.3、0.2、0.1;
  • 由于finetuning时从未见过[MASK]token,因此使用相似的word进行替换。使用工具Synonyms toolkit 获得相似的词。如果被选中的N-gram存在相似的词,则随机选择相似的词进行替换,否则随机选择任意词替换;
  • 对于一个输入文本,15%的词进行masking。其中80%的使用相似的词进行替换,10%使用完全随机替换,10%保持不变。

NSP:

  • 采用ALBERT提出的SOP替换NSP

  MacBERT是一个完全面向中文的预训练语言模型,其与之前的中文语言模型的对比情况如下所示:

【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing_语言模型_04

五、实验

5.1 实验设置

  • 数据:选择Chinese Wikipedia(1307files,0.4B words)、News和QA(5.4B words);
  • 分词:使用LTP分词工具获得每个中文分词;
  • continue pre-training:并不重新预训练,而是在Chinese BERT-base基础上继续预训练;
  • 参数:512 tokens,batch size <= 1024,Adam优化器(LAMB for larget batch)。2M steps、batch size=512、学习率1e-4;

  预训练的实验设置与其他语言模型的对比:

【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing_自然语言处理_05

5.2 微调任务

  主要进行如下三种类型的任务进行Fine-tuning测试:

  • 机器阅读理解(Machine Reading Comprehension,MRC):给定一个Passage和Query,给出Passage中的区间作为Query的答案。MRC的任务详解和经典方法详见博客​​机器阅读理算法解集锦​​。常见任务​​CMRC2018​​、DRCD、CJRC;
  • 单句分类(Single Sentence Classification,SSC):ChnSentiCorp、THUCNews;
  • 双句分类(Sentence Pair Classification,SPC):XNLI、LCQMC、BQCorpus;

  Fine-tuning的超参数对比情况:

【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing_语言模型_06

5.3 消融实验

【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing_自然语言处理_07


  其中NM表示N-graph Masking,Mac表示本文提出的基于相似word的Masking策略

  • 可知当去掉NM和Mac时,效果都会变差,说明它们的作用;
  • NM在文本分类上更加有效,相似word making在阅读理解任务上更有效;
  • NSP-like任务(NSP、SOP等)去除后,对阅读理解等包括多个sentence的任务影响比较大,但对文本分类任务影响较小;

5.4 MLM的替换策略实验对比

  MLM包括两个步骤:

  • selection:如何挑选需要mask的token,包括WWM、N-gram等;
  • replacement:对挑选的token进行替换;

  在masking策略中,输入句子的15%的token被选中。在被选中的token中,10%保持不变,因此对于剩余的90%的选中的token:

  • MacBERT:80%使用相似的word,10%随机选择word;
  • Random Replace:90%全部随机选择word;
  • Partial Mask:80%替换为[mask],其余随机选择word;
  • All Mask:90%全部替换为[mask]

  在CMRC2018上对比了上述的四种Masking策略,并对比EM值(绝对匹配)的变化情况:

【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing_语言模型_08