【論文解析】如何將Bert更好地用於文本分類(How to Fine-Tune BERT for Text Classification?)

論文How to Fine-Tune BERT for Text Classification?基於Bert模型,在6份英文語料和1份中文預料上(包括情感分析、問題分類和主題分類),進行了翔實的文本分類效果對比實驗結果,雖然fine-tune的最終效果取決於具體的task,但文中採用的思路和策略仍值得學習和嘗試。

Bert作爲強有力的預訓練模型,用作下游任務的常見手段包括:(1)作爲特徵提取器;(2)fine-tune;(3)直接pre-train

論文充分借鑑了ULMFiT的思想,設計了一系列fine-tune和pre-train的策略,根據使用語料的範圍可分爲:
(1)直接針對task的fine-tune
(2)基於In-Domain語料的pre-train+fine-tune
(3)基於In-Domain語料的pre-train+多任務fine-tune
(4)基於In-Out-Domain語料的pre-train+fine-tune
(5)基於In-Out-Domain語料的pre-train+多任務fine-tune
在這裏插入圖片描述
論文大部分試驗採用了L12-H768-A12的base-bert模型,通過對後一層或若干層上的[CLS] output+FC的方式得到文本分類結果。

1. fine-tune結論

1.1 長文本處理

Bert的文本極限長度爲512,因此並不能直接用於長文本的下游任務。其可行的解決方案包括:
方案一:截斷文本,包括保留首部文本(head-only,510個token),保留尾部文本(tail-only,510個token),保留首尾(head+tail,其中首128+尾382),剩餘的2個token留給[CLS]和[SEP]

方案二:分層方案,將文本分爲L/510L/510個子句,輸入共享的bert,然後將每個字句的[CLS]輸出通過max-pooling、avg-pooling和self-attention的方式進行連接後接FC。

論文發現,在給定文本上,採用head+tail的方法效果最佳。

1.2 分層學習率

和CV領域的預訓練模型類似,bert這樣深層模型的不同層可視爲對語言的不同層次的表達,越低層的表示越抽象和共性,而頂層的表示更接近於訓練任務本身。

爲了保留抽象表示,而讓頂層表示更適合於具體任務,一種顯而易見的做法是越底層的學習率可以設置的小一些。本文就採用了逐層線性衰減的試驗方法:
θtl=θt1lηlθlJ(θ),ηk1=ξηk\theta_t^l=\theta_{t-1}^l- \eta^l \nabla_{\theta^l}J(\theta), \eta^{k-1}=\xi \eta^{k}對比發現,設置基礎lr=2e5lr=2e-5ξ=0.95\xi=0.95比較合適。

1.3 各層信息的提取

bert中各層網絡具有不同的詞/句法/語義信息,因此可以提取不同layer的輸出,同時將其加以拼接和pooling操作在送入分類器。

本論文對比了12個Encoder層,以及最低/高4層特徵提取的分類結果,發現只取最後一層輸出,和最後四層+max-pooling在IMDb數據集上效果最優。

1.4 訓練超參設置

論文在採用base-bert時,batch=32,序列長度設爲128,學習率5e-5,整個訓練steps爲100,000,其中10%採用了warm-up的學習率策略。

在採用bert時,batch=24,dropout=0.1,優化器採用Adam,β1=0.9β2=0.999\beta_1=0.9,\beta_2=0.999,同樣採用了的warm-pu策略,基礎學習率2e-5,warm-up比例爲10%。

訓練epoch=4,基於驗證數據集上的最優模型作爲最終模型。

1.5 遺忘災難

對於bert這種基於大量語料、經過精心設計和調參的網絡架構,在具體下游任務進行調參時,其學習率需要設置的較小,以防止目標文本對原始網絡參數的破壞,即遺忘災難(catastrophic forgetting )。

本論文對比了一系列學習率,發現像2e-5這樣的學習率對bert而言是必要的,而當學習率大於4e-4時,網絡訓練發散。同時,採用分層學習率的做法,也能有效避免遺忘災難。

2. pre-training結論

論文在得到fine-tune最優策略的基礎上,又開展了一系列pre-training的試驗對比。

2.1 不同語料上pre-training的效果

論文分別嘗試了在task、in-domain和cross-domain語料上進行pre-training後,再處理分類task的效果。發現三者相較於原始的bert,以及諸如bert+biLSTM+self attention等其它模型都能不同程度的提高結果,其中cross-domain的收益較小,作者認爲這是因爲bert已經是基於大量universal語料訓練的結果,而cross-domain的知識與task語料分佈的不一致。

2.2 多任務fine-tuning

基於上述pre-training結果,作者又分別對各子任務進行了進一步的fine-tune,發現在大部分語料上略有收益。

2.3 Bert-large

作者嘗試了基於Bert-large的task-pre-train,取得了SOTA。

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