【论文笔记】Pre-Training with Whole Word Masking for Chinese BERT(BERT-WWM解析)

本文主要用于记录哈工大和科大讯飞联合发表于2019年的一篇论文(准确讲只能是报告哈哈~)。该论文提出的中文BERT-WWM模型其实是对初代BERT的改进。本笔记主要为方便初学者快速入门,以及自我回顾。

为了更好的理解本文,建议读者先对Bert模型有深入的理解(毕竟本文很多知识点都是建立在Bert之上的),这里也贴一个我之前的一篇论文笔记是专门来讲Bert的,大家也可以看一下加深理解。

论文链接:https://arxiv.org/pdf/1906.08101.pdf

基本目录如下:

  1. 摘要
  2. 核心思想
  3. 总结

------------------第一菇 - 摘要------------------

1.1 论文摘要

BERT已经被证明是NLP领域的一大新的突破,极大提升了各项NLP的基础任务。近期BERT官方也对其初代BERT预训练模型提出了新的训练方法,既利用全词掩码(WWM)的训练方法来替代之前仅有部分词(Partial)遮罩的训练方法。而本报告其实就是将这一训练手段运用于中文的预训练模型,也就是用此方法训练出一个中文版的BERT-WWM模型。当然,中文的预训练显然是更具有挑战意义的。报告的作者也指出,他们对初代BERT的提升,仅仅局限于对训练方法的更新(WWM),而不是对其结构的改造。仅仅是这种预训练方法的改进,就已经在多项中文NLP任务上取得了比之前BERT模型更好的效果。本报告还在多项NLP基础任务上,详细对比了该模型与另外一种百度提出的ERNIE模型的效果。还有一个好消息,该模型已经开源,造福于中文的研究者们啊(https://github.com/ymcui/Chinese-BERT-wwm)~

------------------第二菇 - 核心思想------------------

2.1 全词掩码的预训练方法

BERT的谷歌原作者在早先就已经提出了一种全词掩码的训练方法(英文其实也有的。。。看过源代码的应该都是他们也有一个分词的函数,只不过其对最后的影响微乎其微)。简单理解就是一个英文长单词可能会被切成几个小的,比如,pretraining,会被分成,pre, train, ing输入进去,而做掩码的时候,只有train被遮罩了,模型也只要预测train就行了,全词掩码顾名思义就是,把这一段词隶属的原词,整个都mask掉,那显然模型的预测难度就会增加了~英文这样的方法提升可能不够直观或者不够明显,但是对于中文来说,从道理或者感官上来讲,就感觉全词遮罩的处理会有道理的多。因为中文的词,都是由单字组成的嘛(具体涉及到一些语言学的知识吧,我不是很懂,不敢乱说了,只能说感觉上来讲会更靠谱哈哈)因此,作者最大的贡献就是将这种训练方法运用于了中文的预训练模型之上,既中文的BERT-WWM模型,这里再贴一张图,能更清晰的表示对于BERT模型预训练的改进之处。

【论文笔记】Pre-Training with Whole Word Masking for Chinese BERT(BERT-WWM解析)_第1张图片
预训练方法对比.png

具体预训练的过程,作者先是用128的seq_len,2560的batch_size,训练了100K步长;接着为了增大长时依赖,用了512的seq_len,384的batch_size,训练了100K步长。这些都是直接在BERT官方发布的中文预训练模型的基础上去训练的~

接着作者用该种方法训练出的模型,与初代BERT和百度的ERNIE做了详细的对比。具体的比较结果大家可以看原论文,按照自己的任务需求去选择合适的模型。综合来看,BERT-WWM在各项任务上都要比初代BERT要有所提升,和百度的ERNIE互有胜负吧哈哈!

2.2 BERT系模型的训练技巧

作者在最后提出了一些训练的技巧,我这边也结合自己的经验来阐述一下:

1)给定训练的情况下,初始学习率是最重要的可调超参数!!!(其实也没有多少能调的,无非是训练次数,批量训练大小,序列长度等)也是我们重点需要调的,一般预训练用1e-4 ~ 1e-5

2)对于特定领域的下游任务,强烈建议用下游任务的语料在开源的BERT系模型上继续进行一波预训练调参,毕竟原有的模型都是在WIKI这种正式文本上训练出来的,对特定领域的任务可能训练的结果不会非常理想,而百度ERNIE因为其训练语料更杂一些,所以其对于类似微博语料这样的网络语料效果会更好一点。

3)对于阅读理解这样的需要考虑长时依赖的任务,作者推荐用BERT系,百度的ERNIE可能表现弱势一点。

4)对于不同的任务,提升的另一个重点在于下游任务的语料构建方法。比如,情感分析的任务,最简单办法就是直接输入一个句子,让模型去判断;有一些提升的方法就是,输入俩个句子,让模型去判断;类似这方面的一些改进提升还有很多,大家可以结合具体的任务来设计训练语料!

5)准备好足够的钱,以及足够多的,覆盖更广的训练语料,训练更长的时间,就会有更好的效果!总结一句话,大力出奇迹!(开个玩笑,贫民的NLP之路只能苟活于谷歌爸爸的COLAB平台)

------------------第三菇 - 总结------------------

3.1 总结

到这里,整篇论文的核心思想及其创新点已经说清楚了。本论文主要集中在于阐述BERT-WWM的核心思想,并且介绍了很多训练BERT系模型的技巧,并附上了详实的对比实验,来验证模型的可行性。

简单总结一下本文就是先罗列了一下该论文的摘要,再具体介绍了一下自己对BERT-WWM的理解,同时根据自己的经验和作者的结论提出了一些优化训练技巧,希望能帮到大家,也有助于自己复习。总的来说,这篇论文对初代BERT的改进是众多改进版本中比较成功的也比较简单易懂。希望大家读完本文后能进一步加深对BERT结构优化的理解和运用。有说的不对的地方也请大家指出,多多交流,大家一起进步~

你可能感兴趣的:(【论文笔记】Pre-Training with Whole Word Masking for Chinese BERT(BERT-WWM解析))