BERT | Bidirectional Encoder Representation from Transformers

什么是 BERT?

BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。

从现在的大趋势来看,使用某种模型预训练一个语言模型看起来是一种比较靠谱的方法。从之前AI2的 ELMo,到 OpenAI的fine-tune transformer,再到Google的这个BERT,全都是对预训练的语言模型的应用。BERT这个模型与其它两个不同的是:

  1. 它在训练双向语言模型时以减小的概率把少量的词替成了Mask或者另一个随机的词。我个人感觉这个目的在于使模型被迫增加对上下文的记忆。至于这个概率,我猜是Jacob拍脑袋随便设的。
  2. 增加了一个预测下一句的loss。这个看起来就比较新奇了。

BERT模型具有以下两个特点:

  1. 是这个模型非常的深,12层,并不宽(wide),中间层只有1024,而之前的Transformer模型中间层有2048。这似乎又印证了计算机图像处理的一个观点——深而窄 比 浅而宽 的模型更好。
  2. MLM(Masked Language Model),同时利用左侧和右侧的词语,这个在ELMo上已经出现了,绝对不是原创。其次,对于Mask(遮挡)在语言模型上的应用,已经被Ziang Xie提出了(我很有幸的也参与到了这篇论文中):[1703.02573] Data Noising as Smoothing in Neural Network Language Models。这也是篇巨星云集的论文:Sida Wang,Jiwei Li(香侬科技的创始人兼CEO兼史上发文最多的NLP学者),Andrew Ng,Dan Jurafsky都是Coauthor。但很可惜的是他们没有关注到这篇论文。用这篇论文的方法去做Masking,相信BRET的能力说不定还会有提升。


参考

入门:
深入浅出解析BERT原理及其表征的内容
NLP新秀 : BERT的优雅解读
Google BERT模型原理详解
谷歌BERT模型深度解析
扩展视野:
BERT王者归来!Facebook推出RoBERTa新模型,碾压XLNet 制霸三大排行榜
Bert 改进: 如何融入知识
详解BERT阅读理解
XLNet:运行机制及和Bert的异同比较
站在BERT肩膀上的NLP新秀们(PART III)
站在BERT肩膀上的NLP新秀们(PART II)
站在BERT肩膀上的NLP新秀们(PART I)
BERT模型在NLP中目前取得如此好的效果,那下一步NLP该何去何从?
Bert时代的创新:Bert应用模式比较及其它
进一步改进GPT和BERT:使用Transformer的语言模型
76分钟训练BERT!谷歌大脑新型优化器LAMB加速大批量训练
知乎-如何评价 BERT 模型?
从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史
BERT 论文
深度长文:NLP的巨人肩膀(上)
NLP 的巨人肩膀(下):从 CoVe 到 BERT
实践:
美团BERT的探索和实践
加速 BERT 模型有多少种方法?从架构优化、模型压缩到模型蒸馏最新进展详解!
BERT, RoBERTa, DistilBERT, XLNet的用法对比
一大批中文(BERT等)预训练模型等你认领!
【GitHub】BERT模型从训练到部署全流程
Bert时代的创新:Bert在NLP各领域的应用进展
BERT fintune 的艺术
中文语料的 Bert finetune
BERT源码分析PART III
BERT源码分析PART II
BERT源码分析PART I
【干货】BERT模型的标准调优和花式调优
BERT fine-tune 终极实践教程
详解谷歌最强NLP模型BERT(理论+实战)
用BRET进行多标签文本分类(附代码)

11-08 13:45