美文网首页
BERT模型详解与实战

BERT模型详解与实战

作者: 变成海的花 | 来源:发表于2020-04-10 15:34 被阅读0次

    BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。2018年的10月11日,Google发布的论文《Pre-training of Deep Bidirectional Transformers for Language Understanding》,成功在 11 项 NLP 任务中取得 state of the art 的结果。BERT采用两阶段过程,第一个阶段是利用语言模型进行预训练,第二阶段通过 Fine-tuning 的模式解决下游任务。还没看过transformer的请看这篇:https://www.jianshu.com/p/4e208d225ed0

    bert1.png bert2.png

    Next Sentence Prediction(NSP)

    为了训练一个理解句子间关系的模型,例如QA和NLI之类的任务,引入一个下一句预测任务。这一任务的训练语料可以从语料库中抽取句子对包括两个句子A和B来进行生成,其中50%的概率B是A的下一个句子,50%的概率B是语料中的一个随机句子。NSP任务预测B是否是A的下一句。NSP的目的是获取句子间的信息,这点是语言模型无法直接捕捉的。

    Google的论文结果表明,这个简单的任务对问答和自然语言推理任务十分有益,但是后续一些新的研究《Roberta: A robustly optimized BERT pretraining approach》发现,去掉NSP任务之后模型效果没有下降甚至还有提升。我们在预训练过程中也发现NSP任务的准确率经过1-2个Epoch训练后就能达到98%-99%,去掉NSP任务之后对模型效果并不会有太大的影响。


    bert3.png bert4.png

    5.3 总结

    BERT是两阶段模型,第⼀阶段双向语⾔模型预训练,这里注意要用双向⽽不是单向,第⼆阶段采 用具体任务Fine-tuning或者做特征集成;第⼆是特征抽取要用Transformer作为特征提取器⽽不是 RNN或者CNN;第三,双向语⾔模型可以采取MASK的⽅法去做。

    BERT用的是Transformer,也就是相对rnn更加⾼效、能捕捉更长距离的依赖。对比起之前的预 训练模型, 它捕捉到的是真正意义上的bidirectional context信息。 但是, 他的缺点是:[MASK]标 记在实际预测中不会出现, 训练时用过多[MASK]影响模型表现;每个batch只有15%的token被预 测, 所以BERT收敛得比left-to-right模型要慢(它们会预测每个token)。 关于实战请参考这篇: https://zhuanlan.zhihu.com/p/61671334,写的很好很清晰明了。

    5.4 参考⽂献

    1. http://fancyerii.github.io/2019/03/09/bert-theory/#bert
    2. https://zhuanlan.zhihu.com/p/46652512
    3. https://tech.meituan.com/2019/11/14/nlp-bert-practice.html
    4. https://www.cnblogs.com/y1ran/p/12132303.html
    5. https://zhuanlan.zhihu.com/p/49271699
    6. https://www.codercto.com/a/92889.html
    7. https://www.jianshu.com/p/160c4800b9b5

    我的公众号:欢迎交流学习


    公众号名片.jpg

    相关文章

      网友评论

          本文标题:BERT模型详解与实战

          本文链接:https://www.haomeiwen.com/subject/ucyrmhtx.html