1. 引言
2018年,谷歌提出了一个新的模型BERT(Bidirectional Encoder Representations from Transformers),刷榜了11项NLP任务,可以说是NLP的一个新的里程碑。它的思想其实跟我们前面介绍的GPT模型非常相似,只是GPT只考虑单向语言模型,即GPT采用的是Transformer中decoder的结构,而BERT考虑的是深层双向语言模型,采用的是Transformer的encoder结构,因为在一些下游NLP任务中,比如问答,往往需要从前后文来进行分析,因此,采用GPT这种单向结构对下游NLP任务进行迁移学习,可能受限于模型的结构。
2. BERT原理介绍
BERT的思想跟GPT基本保持一致,同样包括两阶段的训练,第一阶段是预训练,即在大型未标注的语料上进行预训练,第二阶段是fine-tuning,即将预训练的模型迁移到具体的NLP任务,进行模型微调。
2.1 模型的结构
BERT采用的是Transformer中encoder的结构,记Transformer的层数为 L L L,维度为 H H H,self attention的头数为 A A A。BERT在实验中主要考虑了两种规格的模型:
- B E R T B A S E BERT_{BASE} BERTBASE: L = 12 , H = 768 , A = 12 \mathrm{L}=12, \mathrm{H}=768, \mathrm{A}=12 L=12,H=768,A=12,参数量为110M
- B E R T L A R G E BERT_{LARGE} BERTLARGE: L = 24 , H =