1. 前言
文本分類是個經(jīng)典的NLP任務。隨著預訓練語言模型的大受歡迎旺入,諸如Bert等預訓練語言模型在文本分類任務上也有這十分出色的表現(xiàn)。這篇文章并沒有什么高深的tricks,只是最傳統(tǒng)的方式的簡單介紹茵瘾。
由于Bert本身并不會直接輸出文本類別礼华,因此需要對模型進行稍加改造,一般是Bert+Linear再通過softmax獲取最終的類別分布拗秘,因此就涉及到一些Bert部分的微調和Linear部分的訓練工作圣絮,本文接介紹一些用Bert做文本分類任務時的一些常用模型訓練技巧。
2. 關于Bert
關于Bert有幾個關鍵信息需要了解聘殖。
Bert是有Transformers的encoder部分構成的晨雳,包含多個encoder block的堆疊。Bert的輸入是一個不超過512個tokens的序列奸腺,輸出是這個序列的表征餐禁,中間層的hidden_size為768。在文本分類中突照,Bert一般用最后一層的[CLS]作為整個句子的表征帮非,再加個線性變換最終softmax成分別的分布。
3. 訓練
訓練一般有3種方式讹蘑。
【1】Bert 直接在特定任務上做訓練
【2】Bert在特定任務上進一步pre-train末盔,再在有l(wèi)abel數(shù)據(jù)上做訓練。
【3】Bert在進一步pre-train之后座慰,在multi-task fine-tuning陨舱,再在有l(wèi)abel的數(shù)據(jù)上做訓練。
3.1 Bert 直接在特定任務上做訓練
這一步是最基礎和關鍵的版仔。在這里我們需要學習率的選擇游盲。常用的方式是不同的層采用不同的學習率進行梯度更新。
其中表示的是第l層的學習率蛮粮,我們首先設置一個初始學習率益缎,然后用如下策略進行學習率的調整,其中然想,當然也可以等于1莺奔。
3.2 Bert在特定任務上進一步pre-train,再在有l(wèi)abel數(shù)據(jù)上做訓練变泄。
由于在做文本分類任務時令哟,往往是對特定領域的內容做分類,例如醫(yī)學文本妨蛹,商品評價等等屏富。因此我們可以用這個特定文本進行進一步的預訓練,得到一個新的Bert滑燃。這一部分參考Bert的訓練過程即可役听。
3.3 Bert在進一步pre-train之后,在multi-task fine-tuning,再在有l(wèi)abel的數(shù)據(jù)上做訓練典予。
Multi-task learning 也是一種十分有效的提升訓練效果的方式甜滨。
當然模型訓練還有很多其他的tricks可以借鑒,譬如對抗訓練瘤袖、r-drop等等衣摩。本文暫時對Bert用于文本分類的初學者做個簡單介紹。后邊的trick再慢慢補充捂敌。艾扮。。