一.ElMO
背景:Word2vec,glove和fasttext雖然能表示語義和語法信息,但是並不能夠區分一詞多義
網絡建構:

兩個單向的LSTM進行拼接,把每層拼接的中間結果之和作為輸出
Q:為啥不用BI-LSTM?
避免傳播前后向未來要預測的信息
原理與損失函數:
前向模型:

后向模型:

目標函數最大化:

詞向量的表示基於當前的句子上下文
高層LSTM:捕捉上下文的詞特征(語義)
底層LSTM:捕捉句法層次信息(語法)
優點:
解決了一詞多義
在一些任務上有提升
缺點:
LSTM串行,訓練成本大
LSTM對長距離的提取特征不如Transformer
Elmo是對特征進行拼接,沒有Bert對特征進行融合效果好
二. GPT1
背景:
深度學習需要大量標注數據:通過未標記數據的語言模型+少量標注數據解決這個問題
方法:
半監督方法處理語言理解任務
使用非監督預訓練+監督微調
框架:

框架類似於decoder(除去了encoder-decoder-Multihead Attention),或者說帶有Mask的attention
核心思路:
無監督訓練:
本質是使用語言模型,前k個詞去預測后面的詞的最大概率

1.position的權重和輸入word embeding的權重(乘以U矩陣)相加
2.同時經過n層transformer
3.最終最大化word embeding和最終層隱藏層對P(u)的預測結果

有監督微調:
訓練在x輸入下y的預測概率:
wy為y的embeding,h為最終隱藏層的向量


最終整個訓練目標是使預訓練的損失和微調的損失降到最小:

Q:怎么預測?
如圖所示,輸入的語句有 Start + text + Extract,則經過transformer后的Extract向量作為輸出,經過linear層和softmax層去進行判斷
缺點:
是個單向的語言模型(mask),只用前面的詞訓練后面的詞。
三.Roberta vs Bert
1.Bert的mask是靜態,即是每一輪mask的位置都是相同的,而Roberta的每一輪mask是動態的
2.去掉了NSP任務,Roberta任務Nsp任務沒什么用,而且使用句子對浪費了輸入空間大小
3.Roberta使用了更多的數據,更大的batch size,更長時間去訓練
四.ALBert vs Bert
1.減少了參數,詞表v到隱藏層h的中間,插入了較小的維度E,是V*H的訓練量變成了V*E + E*H
2.共享所有層參數,每輪的Attention和FFN都是一樣
3.Sop任務替換了NSP任務,負樣本換成了句子對的逆序
4.Albert的預測是n-gram片段
5.對比於Bert large的參數:H:1024->4096,L:24->12,也就是說從Bert有深又窄的模型變為又寬又淺的模型
6.bert訓練的時候采用了加速機制:90%的句子長度是128;而Albert中90%的句子長度是512
