各種預訓練語言模型介紹


一.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM