文章名《How to Fine-Tune BERT for Text Classification》,2019,復旦大學
如何在文本分類中微調BERT模型?
摘要:預訓練語言模型已經被證明在學習通用語言表示方面有顯著效果,作為一種最先進的預訓練語言模型,BERT在多項理解任務中取得了驚人的成果。在本文中,作者針對文本分類任務的BERT微調方法,給出了微調模式的一般解決方案。最后,提出的解決方案在8個廣泛研究的文本分類數據集上獲取了最新的結果。
作者認為盡管BERT在多項自熱語言理解任務中獲得了令人驚人的結果,但其潛在的能力依然沒有被探索出來,幾乎很少有研究工作在增強BERT性能方面,所以研究如何最大化限度的利用BERT在文本分類中的任務,探索了幾種微調的方法,並進行了詳細的分析。
進行了如下散步操作:1)進一步在開放域預訓練BERT;2)采用多任務方式可選擇性地微調BERT;3)在目標任務上微調BERT。同時研究了fine-tuning技術對Bert在長文本任務、隱藏層選擇、隱藏層學習率、知識遺忘、少樣本學習問題上的影響。
1. 微調策略:不同網絡層包含不同的特征信息,哪一層更有助於目標任務?這是一個考慮的方向
2. 進一步預訓練:在目標域進一步得到預訓練模型
3. 多任務微調:多任務可以挖掘共享信息,同時對所有任務進行微調是否,使用多任務策略對結果有幫助。
使用框架:
該文的重點放在了是否進行Further Pre-training和Multi-Task Fine-Truning,在實際文本分類過程中,模型微調的策略可以從以下幾個方法開展:
1. 處理文本的長度。1)Truncation methods,head+tail方法被證明是有效的,具有最佳的性能;2)Hierarchical methods,先將長文本切割成 K = L / 510 個片段,之后分別取不同片段的向量表示。
2. 不同網絡層的特征學則。IMDb 數據集中進行,最后顯示只使用最后一層的輸出取得了最佳性能。
3. 災難性遺忘。使用BERT時盡量使用小的學習率,模型能夠有效、快速收斂,2e-5
4. 不同層次的學習率衰減。模型底層用於捕捉詳細、通用的特征信息,需要更低的學習率來尋求最優解;頂層更直接與任務相關,需要更大的學習率加速學習,這一點時借鑒ULMFit中的三角學習率。
5. 進一步預訓練。BERT是在通用域訓練得到的,但實際的任務局限在一個單一的領域,為了更好地適應下游任務,作者在BERT又在訓練集、領域文本和交叉域文本進行一定步數的Pretraining,實驗結果也顯示出一定優勢。在訓練集做Pretraining時,作者指出,訓練的步數太少達不到效果,太多會造成災難性遺忘,選擇100K作為一個訓練步數是合理的。
6. 在領域內的Pretraing具有較好的效果
7. 多任務實驗效果,在交叉領域中得到的模型也有最佳的性能
有價值結論:
1)BERT的頂層輸出對文本分類更加有用;
2)適當的分層遞減學習策略能夠有助於BERT克服災難性遺忘;
3)任務內的進一步預訓練模式可以顯著提高對任務處理的性能;
4)先進行多任務微調對單個任務微調有幫助,但沒有進一步在訓練集中預訓練的方式提升大
5)BERT可以利用小數據改進任務