入门讲解

内容来自:【NLP】Google BERT详解 | [NLP自然语言处理]谷歌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的能力说不定还会有提升。

 

【视野】【NLP】Google BERT详解

【视野】[NLP自然语言处理]谷歌BERT模型深度解析

【视野】知乎-如何评价 BERT 模型?

【视野】从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史

【视野】BERT 论文

【视野】深度长文:NLP的巨人肩膀(上)

【视野】NLP 的巨人肩膀(下):从 CoVe 到 BERT

【实践】BERT fine-tune 终极实践教程

【实践】详解谷歌最强NLP模型BERT(理论+实战)

【实践】用BRET进行多标签文本分类(附代码)