BERT: Bidirectional Encoder Representations from Transformers
主要工作:
(1)预训练: 使用预训练的模型去提取词或者句子的特征
(2)问题: 语言模型使用左边或者右边的上下文,但是语言理解是双向的。
循环网络中双向使用很多,但是在transformer中双向这里是第一次出现。
(3)原因: Words 可以“See themselves” 在双向的编码器中。
GPT和BERT的区别是双向网络,Self-Attention的假设是句子没有顺序,一个词可以与前后相关。
改进
(1)特征工程
输入表示: 输入是token embeddings、sement embeddings、和position embeddings。
sement embeddings 不仅仅是单个词,还有短语
(2)多任务学习
- Masked Language Model
Mask out k% input words 然后预测。
例如:
Toady is a [MASK] day.
Mask 太多:上下文信息不够
Mask 太少: 训练的复杂度高
Mask只在预训练中使用,类似迁移学习。
训练和预测的过程不一样,就会出现 Train-inference mismatch.解决的办法: Scheduled Sampling.
Scheduled Sampling:
80% of time, replace with [MASK]
10% of time, replace with random word
10% of time , keep same
任务2: 下一个句子预测
50% of time , choose a sequential sentence pair
50% of time, choose a random sentence pair
Feed the transformer output of into a dense layer to predict if it is a sequential pair