《ULMFiT》 閱讀筆記
來源:ACL 2018
原文: ofollow,noindex">Universal Language Model Fine-tuning for Text Classification
Introduction
遷移學習在計算機視覺中已廣泛使用,但NLP中的現有方法仍然需要從頭開始訓練。 本文提出了基於微調的通用語言模型(ULMFiT),可以應用於NLP中的多種任務。 實驗表明,ULMFiT方法在六個文字分類任務中取得顯著效果。
Universal Language Model Fine-tuning

ULMFiT方法包括三個階段:
1、General-domain LM pretraining
受到CV中ImageNet的啟發,本文首先在wiki上預訓練語言模型,以此學習到大規模語料的語法特性。
2、Target task LM fine-tuning
在目標資料集上fine-tuning語言模型,以達到適應目標資料集的目的。在這裡,作者使用了兩個trick。
(1)Discriminative fine-tuning
為網路的每層設定不同的學習率,SGD更新如下圖所示:

對於每一層的學習率, :

(2) Slanted triangular learning rates
本文提出傾斜的三角學習率(STLR),它首先線性地增加學習速率,然後根據時間表線性地衰減。

3、Target task classifier fine-tuning
針對目標分類任務的微調,在語言模型後新增線性層,用以進行文字分類任務。在fine-tuning階段,線性層引數將從頭開始訓練。在這一階段,作者使用了四種trick。
(1)Concat pooling
將最後時間步的隱藏狀態hT,max-pooled(H)和mean-pooled(H)concat起來。
H = {h1,...,hT}
(2)Gradual unfreezing
過度的微調將導致遺忘,消除通過語言模型捕獲的資訊,而過與謹慎的微調將導致收斂緩慢。針對這一問題,本文采用逐步的微調方法, unfreezing最後一層並微調。 然後在每個epoch unfreezing下一個較低的層並重復,直到對所有層都unfreezing,並收斂。
(3)BPTT for Text Classification
(4)Bidirectional language model
分別訓練了前向和後向的LM,在fine-tuning階段對預測的結果取平均。
Experiments
作者在六個文字分類的資料集上進行了實驗

另外,作者還做了不同的幾組實驗以證明在不同階段提出的trick的有效性,以及單獨pretrain的有效性。
pretrain

LM & LM fine-tuning

Classifier fine-tuning

Result
受到CV中ImageNet的啟發,作者成功將Pretrain-LM這一思路引入進NLP任務中,並取得成功,為以後的pre-train提供了思路。未來可以嘗試將pre-train用於不同的NLP任務中;嘗試不同的LM模型;另外作者在實驗中採用的多種trick也值得我們參考借鑑。