預訓練模型(X)---- 預訓練模型現狀及分析


在這裏插入圖片描述首先通過上圖大家可以清楚的瞭解到預訓練模型之間的前世今生。

前面已經介紹了很多預訓練模型,本文就前面的內容做一個總結分析。

預訓練的方法最初是在圖像領域提出的,達到了良好的效果,後來被應用到自然語言處理。預訓練一般分爲兩步,首先用某個較大的數據集訓練好模型(這種模型往往比較大,訓練需要大量的內存資源),使模型訓練到一個良好的狀態,然後下一步根據不同的任務,改造預訓練模型,用這個任務的數據集在預訓練模型上進行微調。

這種做法的好處是訓練代價很小,預訓練的模型參數可以讓新的模型達到更快的收斂速度,並且能夠有效地提高模型性能,尤其是對一些訓練數據比較稀缺的任務,在神經網絡參數十分龐大的情況下,僅僅依靠任務自身的訓練數據可能無法訓練充分,預訓練方法可以認爲是讓模型基於一個更好的初始狀態進行學習,從而能夠達到更好的性能。

預訓練方法發展

基於詞嵌入的預訓練方法

2003年,Bengio等人提出了神經語言模型(Neural Network Language Model)神經語言模型在訓練過程中,不僅學習到預測下一個詞的概率分佈,同時也得到了一個副產品:詞嵌入表示。相比隨機初始化的詞嵌入,模型訓練完成後的詞嵌入已經包含了詞彙之間的信息。2013年,Mikolov等人提出了word2vec工具,其中包含了CBOW(Continue Bag of Words)模型和Skip-gram模型,該工具僅僅利用海量的單語數據,通過無監督的方法訓練得到詞嵌入。

基於語言模型的預訓練方法

詞嵌入本身具有侷限性,最主要的缺點是無法解決一詞多義問題,不同的詞在不同的上下文中會有不同的意思,而詞嵌入對模型中的每個詞都分配了一個固定的表示。針對上述問題,Peters等人提出ELMo(Embedding from Language Model),即使用語言模型來獲取深層的上下文表示。

ELMo的具體做法是,基於每個詞所在的上下文,利用雙向LSTM的語言模型來獲取這個詞的表示。ELMo的方法能夠提取豐富的特徵給下游任務使用,但是ELMo僅僅進行特徵提取而沒有預訓練整個網絡,遠遠沒有發揮預訓練的潛力,另外一個不足之處是,自注意力機制的Transformer模型結構,相比LSTM能夠更有效地捕獲長距離依賴,對句子中信息進行更充分的建模。

針對上述兩個問題,Radford等人提出了 GPT Generative Pre-Training),即生成式的預訓練。GPT將LSTM換成了Transformer,獲得了更高的成績,但是由於使用的是單向模型,只能通過前面詞預測後面的詞,可能會遺漏信息。

Devlin等人提出了BERT(Bidirectional Encoder Representations from Transformers),即基於Transformer的雙向編碼器表示。BERT和GPT的結構和方法十分相似,最主要的不同之處在於GPT模型使用的是單向語言模型,可以認爲是基於Transformer的解碼器表示,而BERT使用的基於Transformer的編碼器能夠對來自過去和未來的信息進行建模,能夠提取更豐富的信息。三個預訓練模型的圖如下所示:
在這裏插入圖片描述BERT提出後大火,也許是因爲BERT的效果太好。目前絕大多數的預訓練模型都是在BERT上改造而來,比如XLM、XLNet、MASS等。

從BERT的各類變種就可以看出BERT和Transformer的火爆程度,筆者認爲目前預訓練+下游任務微調有一統自然語言領域的趨勢。預訓練不僅在低資源任務上有很高的提升作用,甚至在豐富資源的任務上對模型性能也有顯著的提高。如果沒有超越Transformer的特徵提取模型提出的話,相信在BERT上各類的改造會層出不窮,以適應不同類型的下游任務。還有的預訓練模型在BERT基礎上引入知識圖譜等,讓BERT變得更加“有知識”,如清華大學的ERNIE。

既然各類不同的任務對預訓練模型進行不同的改造,那能不能有一種預訓練模型,可以適應全部的NLP任務呢?

近期谷歌剛剛發佈了超大規模的T5(NLP Text-to-Text) 預訓練模型。它給整個 NLP 預訓練模型領域提供了一個通用框架,把所有任務都轉化成一種形式,無論什麼任務,直接拿來一個超大預訓練模型,然後主要工作就變成了怎麼把任務轉換成合適的文本輸入輸出,,比如德英翻譯,只需將訓練數據集的輸入部分前加上“translate German to English”。

另外的思路是,不是改造預訓練的模型,而是將龐大的預訓練模型進行壓縮,比如近期的alBERT,通過共享參數、引入單獨的詞嵌入層維度來減少BERT的參數。最終性能也登上GLUE第一(剛剛被T5超過)。還有通過知識蒸餾技術,訓練出的tinyBERT等,都是對BERT模型進行的模型壓縮。

上面的工作都是在Bert的基礎上做的改進,最近剛出現的ELECTRA可以說爲預訓練模型提出了新的思路,該模型雖然也用到了Bert,但主要是借鑑了GAN的思想,ELECTRA把生成式的Masked language model(MLM)預訓練任務改成了判別式的Replaced token detection(RTD)任務,判斷當前token是否被語言模型替換過。作者使用一個MLM的G-BERT來對輸入句子進行更改,然後丟給D-BERT去判斷哪個字被改過。如下:

在這裏插入圖片描述
ELECTRA的提出爲預訓練模型開闢了一條新的道路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章