3分钟热情学NLP第11篇,Bert模型
BERT :Bidirectional Encoder Representations from Transformers)
2018年的10月11日,Google AI的Jacob Devlin和他的合作者在arxiv上放上了他们的文章,名为《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》
论文地址:https://arxiv.org/abs/1810.04805
1、Bert的2个阶段
Bert采用和GPT相同的2个阶段,
1、进行语言模型预训练;
2、是使用Fine-Tuning模式解决下游任务;
Fine-Tuning,Fine-tuning方式是指在已经训练好的语言模型的基础上,加入少量的task-specific parameters,进行微调。
2、Bert模型之Transformer
Transformer是个叠加的“自注意力机制(Self Attention)”构成的深度网络,是谷歌在2017年的论文“Attention is all you need”提出的。
调侃下,现在 XXX is all you need 已经成为了1个标题党
3、word2vec,ELMo,GPT和Bert的关系
Bert其实和ELMO及GPT存在千丝万缕的关系,比如如果我们把GPT预训练阶段换成双向语言模型,那么就得到了Bert;而如果我们把ELMO的特征抽取器换成Transformer,那么我们也会得到Bert。所以你可以看出:Bert最关键两点,一点是特征抽取器采用Transformer;第二点是预训练的时候采用双向语言模型。
长短期记忆网络(LSTM,Long Short-Term Memory)
参考:《会话式AI:自然语言处理与人机交互》 — 杜振东 涂铭
1、静态和动态
word2vec、FastText、glove是基于词向量的固定表征
ELMo、GPT、Bert是基于词向量的动态表征(动态表征可解决一词多义的问题)。
2、LSTM和Transformer
ELMo采用LSTM网络提取特征
GPT和Bert则采用Transformer提取
3、单向和双向
GPT是单向语言模型
ELMo和Bert是双向语言模型
单向语言模型只能看到上文,而双向语言模型可以看到上下文,这样可以解决一词多义的情况。在双向语言模型中,ELMo实际上是两个单向语言模型(方向相反)的拼接,而Bert使用Mask掩码实现了真正的双向语言模型。