[DLHLP 2020] BERT and its family — ELMo, BERT, GPT, XLNet, MASS, BART, UniLM, ELECTRA, and more
How to Pre-train
- Pre-training by Translation: Context Vector (CoVe)
Pre-Train用在翻譯任務上的好處就在於,每個Encoder都可以產生一個Embedding。
2. Self-supervised learning
如何製造Self-supervised learning pre-train model 的輸入輸出關係?
最早期的模型是LSTM,比較知名的模型包含了: Universal Language Model Fine-tuning (ULMFiT) [Howard, et al., ACL’18]、ELMo [Peters, et al., NAACL’18]
不過目前常見的模型則是使用Self-attention架構的模型,需要注意的是訓練中attention的範圍,下圖中左上角矩陣中的綠色方框即顯示,在我們訓練過程中,每一個input可以attention的範圍。知名的模型包含:GPT、GPT-2、Megatron、Turing NLG。
再次強調,我們要預測下一個字的話,我們要看他之前和什麼字相關!
不過此時可以再想想,看完了左邊的資訊,那右邊的資訊呢?因此ELMO模型,即是將文句順向的LSTM訓練,也將文句逆向LSTM,將要預測的字/詞左右的資訊都考慮進去。
可惜的是ELMO模型中,正向與逆向的LSTM並未交會,也就是說開頭的地方w1-w3,還是無法接收到w5-w7的資訊,能用來得到完整的文句資訊。
由此產生了BERT [Devlin, et al., NAACL’19],特色是使用Masking Input,模型屬於Transformer架構的模型,在使用self-attention時,讀取文句不會受到限制。重點是我們將某個Token (黑框處)遮蓋或置換後,我們要用輸出w2來回測黑框的輸入為何。
稍等一下,這樣的模型概念,似乎與早期的文字Embedding很相似,也就是CBOW。可惜的是,CBOW的模型不能看到所有的文句資訊,有固定的Window寬度,而且訓練模型只單純用了Linear模型來訓練,因此輸出結果普通。
BERT模型介紹
BERT模型中有提到,我們需要對Token進行遮蓋,但是我們要遮蓋的是哪個Token?要如何選擇我們要遮蓋的對象呢?隨機決定是好的方法嗎?
Whole Word Masking (WWM) [Cui, et al., arXiv’19]:隨機遮蓋整個詞
Phrase-level & Entity-level [Sun, et al., ACL’19] → Enhanced Representation through Knowledge Integration (ERNIE):遮蓋片與或者是文句中的實體
SpanBert [Joshi, et al., TACL’20]:一次蓋多個Tokens,其中提出了Span Boundary Objective (SBO),一個在模型外的module,利用左右兩側的Embedding資訊,來預測被我們Mask掉的Span內容。使用此方法看似多此一舉,但是可以利用Coreference來解釋。
XLNet (Transformer-XL)[Yang, et al., NeruIPS’19]
由Predict next token的觀點理解模型的架構:原本我們只能看到文句中的先前的字來預測後面的字,但是現在則是先將文句整個顛倒後來預測下一個字。
由BERT的觀點理解模型的架構:一般BERT會用文句中前後的所有Token來預測Mask的Token,但是在XLNet則是用部分的Token來預測Mask的Token。另一個特點是,Model的Mask的Token是看不到的,只會提供Mask的位置資訊。
不過值得注意的是,BERT Model不善言辭,缺乏Generation能力,無法自己有效以Autoregressive model生成新的文句。*autoregressive 是指順序完成文句輸出。
如何Pre-train Seq2Seq 模型?
為了進行Seq2Seq預訓練模型,因此針對輸入我們需要先進行某種程度的破壞,使模型不會自動去複製原本的Token。常見的破壞方法有兩種:MASS、BART。
MAsked Sequence to Sequence pre-training [Song, et al., ICML’19]
Bidirectional and Auto-Regressive Transformers [Lewis et al., arXiv’19]
UniLM:有很多Self-attention 模型,並且同時進行多種訓練。
ELECTRA:是進行二元分類的模型。
Sentence Level
Skip thought
Quick thought
Next sentence prediction (NSP) 沒什麼用,知名的模型Robustly optimized BERT approach (RoBERTa)
Sentence order prediction (SOP):Used in ALBERT
structBER
原課程連結:Link