bert是transformer的encoder的部分,但又如下区别
- bert base使用了12层trm结构,而transformer只有6层;
- bert的输入除了词嵌入以及positional-encoder以外还增加了segment encoder,用于区别上下两个句子。
- bert的激活函数修改成了Gaussian Linear Error Units
Pre-training Task
#1: Masked Language Model
随机mask语料中15%的token,然后将masked token 位置输出的最终隐层向量送入softmax,来预测masked token。
- 有80%的概率用“[mask]”标记来替换——my dog is [MASK]
- 有10%的概率用随机采样的一个单词来替换——my dog is apple
- 有10%的概率不做替换——my dog is hairy
#2: Next Sentence Prediction (NSP)
随机取上下文的一对句子,在这两个句子中加一些特殊的 token,
格式为:[CLS]上一句话[SEP]下一句话[SEP]。
即在句子开头加一个[CLS],在两句话之间和句末加[SEP]。
样本中相邻和不相邻的句子1:1。