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。