二、图解BERT
来源
Datewhle29期__NLP之transformer :
- erenup(多多笔记),北京大学,负责人
- 张帆,Datawhale,天津大学,篇章4
- 张贤,哈尔滨工业大学,篇章2
- 李泺秋,浙江大学,篇章3
- 蔡杰,北京大学,篇章4
- hlzhang,麦吉尔大学,篇章4
- 台运鹏 篇章2
- 张红旭 篇章2
学习资料地址:
https://datawhalechina.github.io/learn-nlp-with-transformers/#/
github地址:
https://github.com/datawhalechina/learn-nlp-with-transformers
1.1 BERT模型概述
- BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。
1.2 BERT模型
- BERT模型结构基本上就是Transformer的encoder部分,BERT-base对应的是12层encoder,BERT-large对应的是24层encoder。
1.3 输入
- BERT模型输入有一点特殊的地方是在一句话最开始拼接了一个 [CLS] token
- BERT将一串单词作为输入,这些单词多层encoder中不断向上流动,每一层都会经过 Self-Attention和前馈神经网络。
1.4 输出
- BERT输入的所有token经过BERt编码后,会在每个位置输出一个大小为 hidden_size(在 BERT-base中是 768) 的向量。
1.5 BERT应用
- 四个例子:
- 两个句子是否相似,
- 判断单个句子的情感,
- 用来做抽取式问答,
- 用来做序列标注。
1.6 特征提取
- 由于BERT模型可以得到输入序列所对应的所有token的向量表示,因此不仅可以使用最后一程BERT的输出连接上任务网络进行微调,还可以直接使用这些token的向量当作特征。比如,可以直接提取每一层encoder的token表示当作特征,输入现有的特定任务神经网络中进行训练。