码迷,mamicode.com
首页 > 其他好文 > 详细

对 【BERT- Pre-training of Deep Bidirectional Transformers for Language Understanding】 的理解

时间:2020-08-12 15:33:57      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:ati   连接   rda   code   alt   语义   数据   特点   处理   

0、引言

BERTBidirectional Encoder Representations from Transformers)自从谷歌提出就一直大热。首先,它在自然语言处理(NLP)的11个任务中均有较大程度性能提升;其次,BERT在无监督场景下结合预训练能够最大化地利用文本数据,同时对不同场景的下游任务均有提升和帮助。个人觉得BERT的设计进一步利用了语言的特性,其在NLP领域的影响绝对算是个里程碑了。

1、BERT介绍

1.1 思想及由来

BERT的网络结构使用了双向Transformer的堆叠(Transformer详解见文末参考资料),Encoder和Decoder分别12层(但也要看是base还是large版)。其思想出于ELMo和GPT(Generative Pre-trained Transformer,出自OpenAI)但同时又高于二者。ELMo采用了双向LSTM来训练词Embedding,虽然使用了双向LSTM,但其实是使用2个单向LSTM对学到的句子语义信息做拼接,和BERT完全双向不同,对句子间不同词的语义依赖关系也不如BERT捕捉的充分。 GPT只有单向,其假设句子间语义依赖关系只有从左到右,而没有从右到左,该假设在实际中并不完全满足。上述三种模型架构图如下图,BERT、GPT、ELMo分别从左到右:
技术图片

1.2 BERT特点

BERT加入了Masked Language Model(MLM) 和 Next Sentences Prediction(NSP),使得模型能够在无监督的场景下学习到句子间特征和语义特征。个人理解LM(语言模型)能学习到一个句子的语义特征,而使用MLM更能有效促使模型学到句子更好的语义表示。 在无监督学习场景训练,能最大化的使用训练语料。而Pre-train和Fine-tune能够方便地将已训练好的BERT模型迁移到不同的应用场景,在工业界大有益处。

  • (1) Masked LM
    原文表示,在模型预训练阶段使用Masked LM来训练BERT会有更好的效果。具体做法是对文中所有WordPiece token(不包括特殊标记字符)随机抽样15%并进行mask遮掩,并对被Masked的词依概率进行如下操作:

  • 80% 表示为 mask

  • 10% 替换为任意其他词

  • 10% 不做替换
    文中也没有说为什么以这样的概率做上述操作,只是提到不能对所有词进行mask,否则在fine-tune时,会有部分词从来没见过而影响效果,为了缓解这一情况,采用了对被masked词进行上述概率来做不同处理。
    使用了Mask操作后,用基于mask的语言模型的loss来训练。

  • (2)Next Sentences Prediction
    在智能问答(QA)和自然预研推理(NLI)任务中,句子间的关系显得尤为重要。在Transformer或GPT中,没有对句子间的关系进行学习,BERT中提出的NSP来涵盖这一空白,具体做法是:将句子A与B合并为一句来进行训练,使用50%的概率来选择A句后紧接着的句子,其余50%用随机一个句子,在此构建针对该2句是否是连接关系的二分类模型。

  • 对于待训练句子,使用词embedding、segment embedding、position embedding相加来训练,如下图所示:
    技术图片

  • (3)不同下游任务的fine-tune
    BERT还有一个优势就是可以在不同的下游任务中进行微调,利于工业界的快速落地。不论是在pre-train还是fine-tune的训练阶段,都会开启MLM训练,而在验证测试阶段关闭MLM。但基于不同的下游任务在fine-tune时有些许不同,具体如下图所示:
    技术图片

2、实验结果

各种实验结果表示BERT的强力,这里贴出部分结果

2.1 GLUE(General Language Understanding Evaluation)

技术图片

2.2 SQuAD 1.0 2.0

技术图片

3、个人总结

  1. 2019年google祭出了大杀器BERT,其性能不说了,关键的无监督场景和fine-tune有助于各种下游落地。
  2. 参数量感觉可以大幅优化降低,而训练过程也有提升空间。

4、参考资料

对 【BERT- Pre-training of Deep Bidirectional Transformers for Language Understanding】 的理解

标签:ati   连接   rda   code   alt   语义   数据   特点   处理   

原文地址:https://www.cnblogs.com/andre-ma/p/13473077.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!