背景
上篇我們講了transformer的模型架構,論文《Attention is all you need》 也表明了transformer的效果是比RNN和CNN好的,而在ELMo解讀裏,我們也談到了訓練語言模型再結合具體任務即pre-train的思想,這兩者的優勢進行簡單的結合便得到了OpenAI GPT,具體論文見《Improving Language Understanding by Generative Pre-Training》
介紹
OpenAI GPT主體採用無監督學習的方式,不需要labeled的data進行語言模型的預訓練,之後針對具體下游任務進行fine-tune。模型結構如下圖所示:
Unsupervised pre-training
採用傳統的單向語言模型訓練方式,最大化概率
和單向ELMo完全一致,唯一不同的是ELMo單向採用LSTM,這裏採用多層transformer
以上圖取自論文,即用單詞embedding和位置embeding線性計算得到h0即輸入的embedding,通過多層transformer的decoder(即multihead attention和輸入的token進行),最後通過全連接和softmax輸出得到預測詞的概率。
Supervised fine-tuning
訓練完了單向語言模型後,如何繼續進行fine-tuning呢。
這裏採用輸入序列的最後一個transformer的輸出,用另一個(和預訓練不共享)進行計算後softmax得到label,再用反向傳播的方式進行fine-tuning,同時作者發現
加入語言模型訓練的目標作爲輔助,能提升模型效果並加速收斂
總結
OpenAI GPT比較簡單回顧下他和ELMo的區別
- ELMo採用的是雙向語言模型,GPT是單向語言模型
- ELMO採用LSTM建立語言模型,GPT採用transformer
- GPT在fine-tune的時候,最終目標里加入了語言模型的訓練目標最爲輔助,提升了收斂速度以及更好的效果
優點是利用了transformer的中attention的優勢,採用attention的方式更好對長距離依賴關係進行建模,缺點是不是雙向模型。以上各自的優點綜合後就得到了BERT,在之後進行講解