前沿: 相比于GPT的单向自回归模型,BERT考虑到了利用上下文的双向信息,但是如果同时考虑双向信息,自然自回归的方式就不适宜了,BERT论文作者引入两项新的预训练任务。
论文: BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding
目录:
- 网络架构
- 预训练
- 微调
- 实现细节
- BERT-wwm
- Roberta和BERT的区别
- ERNIE 1.0 和ERNIE2.0
网络架构:
一般存在两种类型的bert大小模型,包括12,24层。
预训练:
MLM任务: 通过上下文信息来预测中心词的信息,一个完形填空任务。
15% word piece mask :80% 替换成[mask], 10%替换成随机单词;10%不改变
NSP任务:为了解决阅读理解任务,引入的判断句子关系的任务。50%:正确前后句;50%错误的
ebedding: token embedding,segment embedding, position embeddings
微调:
针对不同的任务存在不同的微调方式,比如分类,CLS。
缺点:
引入噪声,使得微调数据和预训练数据形式不同;
BERT没有考虑预测[MASK]的相关性,这个好像在electra中体现到了
输入长度受到限制
不适合生成任务。
BERT-wwm:
全词掩码,原先wordpiece考虑的是子词分割,那么对序列最小单位进行预测的时候,会使得单词的完整被破坏,只能预测一部分单词。科大讯飞实验室提出了一个升级版本,就是针对同一个单词的不同部分同时进行mask,也就是强关联的子词会被同时mask和预测。
Roberta:
- 移除了NSP任务;
- 将mask策略改成动态的,也就是说原先是数据送入网络中的时候mask确定的,但是在后面的batch训练过程中,mask的位置不会发生改变,这个是不好的,roberta针对这一点进行了改变,也就是说增加了10次的可变性。
- 其余的在学习率/数据量/batch_size大小。
ERNIE1.0和ERNIE2.0
首先考虑ERNIE1.0:同样是任务随机mask不好,所以在正常的随机mask预测的基础上面,增加了两项预训练任务:
Basic-level masking: 同bert
Phrase-level masking: mask连续短语
Entity-level masking:针对命名实体的实体进行mask。
ERNIE2.0同样还是多任务学习,也就是增加任务的数目,改变不同的量级
词级别:
结构级别:
语义级别: