ULMFiT面向文本分類的通用語言模型微調

面向文本分類的通用語言模型微調

Universal Language Model Fine-tuning for Text Classification

原文:https://arxiv.org/abs/1801.06146

作者:Jeremy Howard & Sebastian Ruder

翻譯:Tony

閱讀時長:8.5K+字,預計20分鐘


摘要

歸納遷移學習(Inductive Transfer Learning)對計算機視覺(Compute Vision,CV)產生了巨大影響,但對自然語言處理(Natural Language Processing,NLP)一直沒有突破性進展,現有的NLP方法,仍然需要根據特定任務進行修改,並且從零開始訓練。我們提出了通用語言模型微調(Universal Language Model Fine-tuning for Text Classification,ULMFiT),這是一種有效的遷移學習方法,可以適用於任何NLP任務,另外,我們引入了語言模型微調的關鍵技術。我們的方法在6個文本分類任務上顯著優於現有的最先進方法,在大部分數據集上將錯誤率降低了18-24%。此外,ULMFiT僅用100個標記樣本訓練出來的性能,可以媲美從零開始訓練(Training From Scratch)使用100倍以上數據訓練出來的性能。我們開源了預訓練模型和源代碼。

1 介紹

歸納遷移學習對CV產生了巨大影響。實用的CV模型(包括目標檢測、分類、分割)很少從零開始訓練,相反,它們是基於預訓練模型微調而來,而這些預訓練模型則是基於ImageNet、MS-COCO、或其他數據集訓練出來的(Sharif Razavian等人,2014;Long等人,2015a;He等人,2016;Huang等人,2017)。

文本分類是NLP任務的一類,實際應用有:垃圾郵件、欺詐、機器人檢測(Jindal和Liu,2007;Ngai等人,2011;Chu等人,2012),應急響應(Caragea等人,2011),以及商業文檔分類,例如法律查詢(Roitblat等人,2010)。

雖然深度學習模型已經在許多NLP任務中達到了最先進水平,但是這些模型是從零開始訓練,需要大數據集,且需要花費很長時間才能收斂。NLP研究工作主要集中在直推遷移學習(Transductive Transfer Learning)(Blitzer等人,2007)。對於歸納遷移學習,有一個簡單遷移技術,它僅針對模型的第一層,叫預訓練詞嵌入微調(Mikolov等人,2013),在實踐中產生了很大影響,大多數最先進的模型中都有用到它。那些連接其它任務嵌入和不同層輸入的最新方法(Peters等人,2017;McCann等人,2017;Peters等人,2018),仍然從零開始訓練主要任務模型,並且把詞嵌入當做固定參數,限制了其用處。

考慮到預訓練帶來的好處 (Erhan等人, 2010),我們應該能夠比隨機初始化模型剩餘參數方法做得更好。然而,歸納遷移學習微調在NLP領域尚未成功 (Mou等人, 2016)。Dai和Le(2015)首先提出了語言模型微調,但是需要上百萬個領域內文檔才能得到好的性能,這嚴重限制了其實用性。

我們發現,阻礙LM被更廣泛採用的原因,不是LM微調想法,而是我們缺少如何有效地訓練它們的知識。語言模型在小數據集上出現過擬合,並且當微調一個分類器時,會遭受嚴重的遺忘。跟CV相比,NLP模型通常比較淺,因此需要不同的微調方法。

我們提出一種新方法,即ULMFiT,它解決這些問題,並且使任何NLP任務都能進行魯棒地歸納遷移學習,類似於微調ImageNet模型:一個擁有相同超參的3層LSTM架構,除了修改dropout超參,沒有其它修改,這在6個廣泛研究的文本分類任務上,優於高度工程化的模型和遷移學習方法。在IMDB數據集上,如果使用100個標記樣本,ULMFiT取得的性能,可以媲美,使用10倍以上數據,從零開始訓練取得的性能,如果使用50k個未標記數據,則是100倍以上數據。

我們的貢獻如下:

1)提出了ULMFiT,類似CV遷移學習,該模型適用於任何NLP任務;

2)提出了有區分微調、斜三角學習率和逐漸解凍的新穎技術,以保留先前的知識,避免微調過程中的災難性遺忘;

3)在6個具有代表性的文本分類數據集上,我們的表現明顯優於最新水平,在大多數數據集上將錯誤減少了18-24%;

4)我們的方法非常有效地進行樣本遷移學習,且進行了廣泛的對照分析(ablation analysis);

5)開源了預訓練模型和源代碼,以便被更廣泛採用。

2 相關工作

CV遷移學習 可觀察到,CV深度神經網絡的特徵跟層數有關係,第一層是一般特徵,隨著層數增加,其特徵跟特定任務越來越相關,直到最後一層(Yosinski等人,2014)。因此,大部分CV工作聚焦在遷移模型第一層(Long等人,2015b)。Sharif Razavian等人(2014)通過使用ImageNet模型特徵作為簡單分類器的輸入,取得了最先進的結果。近年來,這種方法已經被預訓練模型微調替代,預訓練模型微調要麼微調最後一層 (Donahue等人, 2014) ,要麼微調最後幾層,同時凍結其他層(Long等人,2015a)。

超列(Hypercolumns) 在NLP中,直到最近才有一些超越遷移詞嵌入的方法才被提出來。目前盛行的方法是預訓練嵌入,它通過其他任務來捕獲額外上下文,然後,將不同級別的嵌入用作特徵,跟詞嵌入或中間層的輸入連接在一起。這種方法在CV中被稱為超列(Hariharan等人,2015),被Peters等人(2017)、Peters等人 (2018)、 Wieting和Gimpel (2017)、Conneau等人(2017)、以及McCann等人(2017)使用,他們分別使用語言模型,意譯,蘊含,機器翻譯來預訓練模型。具體來說,Peters等人(2018)需要工程化的定製架構,我們在一些列任務上,使用相同的基本架構,取得了最優性能。在CV中,超列幾乎已經被端到端微調所取代(Long等人,2015a)。

多任務學習(Multi-Task Learning,MTL) 一個相關方向是多任務學習(Caruana,1993)。這種方法是由Rei(2017)和Liu等人(2018)提出來的,他們在模型中增加了一個語言模型目標,這些模型和主任務模型一起訓練。MTL要求每次從零開始訓練這些任務,這使得效率很低,並且通常需要仔細權衡特定任務目標函數。

微調(Fine-tuning) 微調已經成功用在相似任務遷移中,例如,QA(Min等人,2017)、遠程監督情感分析(Severyn和Moschitti,2015)、MT域(sennrich等人,2015)等,但已證明,不相關任務間遷移是失敗的。Dai和Li(2015)也對語言模型進行了微調,但在10k個標記樣本上過擬合,需要數以百萬計的領域內文檔才能取得好的性能。相比之下,ULMFiT利用通用領域預訓練和新穎的微調技術來防止過擬合,僅需要100個標記樣本,在小數據集上也能夠獲得最先進的性能。

3 通用語言模型微調

我們對NLP中最通用的歸納遷移學習設置很感興趣(Pan和Yang,2010):給定一個靜態源任務Ts和任意目標任務Tt,且Ts=Tt,我們想要提高Tt的性能。語言模型可以被視作理想的NLP源任務,與ImageNet相對應:它能夠為下游任務捕獲語言相關的很多部分,例如長期依賴(Linzen等人,2016)、層次關係(Gulordava等人,2018)、情感(Radford等人,2017)。與MT(McCann等人,2017)和蘊含(Conneau等人,2017)等任務相比,它為大多數領域和語言提供了近乎無限數量的數據。此外,預訓練語言模型可以很容易地適應目標任務的特性,而且,我們的實驗證明,這顯著提高了性能(見第5節)。此外,語言建模已經是現有任務(如機器翻譯和對話建模)的關鍵組成部分。從形式上講,語言建模引入了一個假設空間H,它對許多其他NLP任務都有用(Vapnik和Kotz,1982;Baxter,2000)。

我們提出了通用語言模型微調ULMFiT,它在大型通用領域語料庫上預訓練語言模型,並使用新技術對目標任務進行微調。該方法在實踐標準意義上是通用的:

1)它在不同的文檔大小、數量和標記類型的任務上工作;

2)它採用一個單一架構和訓練流程;

3)它不需要自定義特徵工程或預處理;

4)不需要額外的領域文檔或標記。

在我們的實驗中,我們使用了最先進的語言模型AWD-LSTM(Merity等人,2017a),這是一個常規的LSTM(不需要attention, short-cut connections,或其他複雜的additions)和各種調諧的dropout超參。與CV類似,我們期望在未來使用更高性能的語言模型可以提高下游任務的性能。

ULMFiT由以下步驟組成,如圖1所示:

a)通用領域LM預訓練;

b)目標任務LM微調;

c)目標任務分類器微調。

我們將在下面的章節中討論這些步驟。

ULMFiT面向文本分類的通用語言模型微調

3.1 通用領域語言模型訓練

類似ImageNet語料庫,語言語料庫應該很大,能夠捕獲語言的通用屬性。我們在Wikitext-103(Merity等人,2017b)上預訓練語言模型,Wikitext-103由28595篇經過預處理的維基百科文章和1.03億個單詞組成。預訓練對小數據集任務最有利,即使只有100個標記樣本也能實現泛化。我們將更多樣化的預訓練語料庫的探索工作留給未來,希望他們能提高性能。雖然現階段是最昂貴的,但它只是需要執行一次,可以提高下游模型的性能和收斂性。

3.2 目標任務語言模型微調

無論用於預訓練的通用領域數據是如何多樣化,目標任務的數據都可能來自不同的分佈,因此,我們需要根據目標任務的數據對LM進行微調。給定一個經過預訓練的通用領域LM,該階段的收斂速度更快,因為它只需要適應目標數據的特性,即使在一個小數據集上,我們也能訓練一個健壯的LM。為了微調LM,我們提出了區分微調(discriminative fine-tuning)和斜三角學習率(slanted triangular learning rates),我們將在下面介紹。

區分微調 由於不同層捕獲不同類型信息(Yosinski等,2014),因此,應該對不同層進行不同程度的微調。為此,我們提出了一種新的微調方法,即區分微調。

不同於對模型的所有層使用相同的學習速率,區分微調允許我們用不同的學習速率來調整每個層。對於上下文,時間步驟t時,模型參數θ的常規隨機梯度下降(SGD)更新方式如下(Ruder,2016):

θt = θt−1 − η · ∇θ*J(θ) 式(1)

式中,η為學習率,∇θ*J(θ) 為模型目標函數的梯度。對於區分微調,我們將參數θ分為{θ1, …, θL},其中,θl為第l層模型的參數,L是模型的總層數。同樣地,我們得到{η1,…,ηL},其中,ηl為第l層的學習速率。

區分微調的SGD更新如下:

θl,t=θl,t−1−ηl·∇θl*J(θ)式(2)

我們發現,首先僅對最後一層用學習率ηL進行微調,繼而用學習率ηl−1=ηl/2.6對較低層進行微調,工作性能良好。

斜三角學習率 為了使模型的參數適應特定任務的特徵,我們希望模型在訓練開始時快速收斂到參數空間的適當區域,然後對其參數進行優化。在整個訓練過程中使用相同的學習率或衰減學習率並不是實現這種行為的最佳方法,相反,我們提出了斜三角學習率,它首先線性增加學習率,然後根據下面的更新計劃線性衰減,如圖2所示:

ULMFiT面向文本分類的通用語言模型微調

ULMFiT面向文本分類的通用語言模型微調

其中,T是訓練迭代次數,cut_frac是我們增加LR的迭代比例,cut是我們從增加LR到減少LR的切換迭代,p是我們已增加LR或將要減少LR的迭代比例,ratio指出基於最大LR ηmax的最小LR有多小,ηt是第t次迭代的LR。我們通常設置cut_frac = 0.1, ratio = 32, ηmax = 0.01。

STLR修改了三角學習率,它使用一個短增加和長衰減週期,這是我們發現能提高性能的關鍵。在第5節中,我們將與餘弦退火(aggressive cosine annealing)比較,它是一個類似的方法,在CV中取得了最優性能(Loshchilov和Hutter,2017年)。

3.3 目標任務分類器微調

最後,為了微調分類器,我們用兩個額外的線性塊來擴充預訓練語言模型。根據CV分類器的標準實踐,每個塊使用批歸一化法(batch normalization)(Ioffe和Szegedy,2015)和丟棄法(dropout),中間層使用ReLU激活函數,最後一層使用softmax激活函數,在目標類上輸出概率分佈。要注意,這些特定任務分類器層中的參數是唯一需要從零開始學習的參數。第一個線性層將最後一個隱藏層池化狀態作為輸入。

連接池化Concat pooling) 文本分類任務中的信號通常包含在少數幾個單詞中,這些詞可能出現在文檔的任何位置。由於輸入文檔可能包含數百個單詞,如果只考慮模型的最後一個隱藏狀態,信息可能會丟失。出於這個原因,我們將文檔最後一個時間步驟hT處的隱藏狀態與GPU內存中所能容納的儘可能多的時間步驟中的隱藏狀態H = {h1, . . . , hT }的最大池表示和平均池表示相連接:

hc = [hT , maxpool(H), meanpool(H)] 式(4),其中[]是連接。

目標分類器微調是傳遞學習方法中最關鍵的部分,過度激進的微調將導致災難性的遺忘,從而消除通過語言建模獲取的信息的好處,過於謹慎的微調將導致緩慢的收斂,並導致過度擬合。除了區分微調和斜三角學習率外,我們還提出了逐漸解凍的分類器微調方法。

逐漸解凍(Gradual unfreezing) 不要一次性對所有層進行微調,因為這可能會導致災難性遺忘,我們建議從最後一層開始逐步解凍模型,因為它包含的通用知識最少(Yosinski等人,2014):我們先解凍最後一層,在一個epoch內微調所有已解凍層,然後解凍下一個較低的凍結層,在一個epoch內微調所有已解凍層,一直重複,直到微調所有層,直到最後一次迭代收斂為止。這類似於"鏈解凍"(Felbo等人,2017),只是我們在"解凍"層集合中一次添加一個層,而不是一次只訓練一個層。

雖然區分微調、斜三角學習率和逐步解凍各自有益,但是我們將在第5節中指出,通過組合這些方法,我們的方法能夠在不同的數據集中很好地執行。

時序反向傳播(BPTT for Text Classification,BPT3C) 語言模型通過時序反向傳播進行訓練,以實現大輸入序列的梯度傳播。為了實現對大型文檔的分類器進行微調,我們提出了文本分類的BPTT(BPT3C):我們把文檔分成固定長度為b的批次。在每一批的開始,用前一批的最終狀態初始化模型;我們跟蹤平均池和最大池的隱藏狀態;梯度被反向傳播到隱藏狀態有助於最終預測的批次。在實踐中,我們使用可變長度的反向傳播序列(Merity等人,2017a)。

雙向語言模型(Bidirectional language model) 與現有工作類似(Peters等人,2017、2018),我們不侷限於單向語言模型微調。在我們的所有實驗中,我們都預先設定了一個前向和反向的LM。我們使用BPT3C獨立地為每個LM微調分類器,並對分類器預測進行平均。

4 實驗

雖然我們的方法同樣適用於序列標記任務,但我們在這項工作中主要關注文本分類任務,因為其有重要的實際應用。

4.1實驗裝置

數據集和任務 我們在六個廣泛研究的數據集上評估我們的方法,這些數據集具有不同的文檔數量和不同的文檔長度,這些數據集被最先進的文本分類和遷移學習方法(Johnson和Zhang,2017;McCann等人,2017)作為三個常見文本分類任務的實例:情感分析、問題分類和主題分類。我們在表1中顯示了每個數據集和任務的統計信息。

ULMFiT面向文本分類的通用語言模型微調

情感分析 對於情感分析,我們基於二元電影評論IMDB數據集(Maas等人,2011)和二元及五類版本Yelp點評數據集(Zhang等人,2015)評估我們的方法。

問題分類 我們使用六類版本的小型TREC數據集(Voorhees和Tice,1999),該數據集包含了開放領域且基於事實的問題,劃分成廣義語義範疇。

主題分類 對於主題分類,我們對大型AG新聞和DBpedia數據集進行了評估(Zhang等人, 2015)。

預處理 我們使用與早期工作相同的預處理(Johnson和Zhang,2017;McCann等人,2017)。此外,為了讓語言模型捕獲可能與分類相關的方面,我們為大寫單詞、延伸和重複添加了特殊的標記。

超參數 我們對一個模型感興趣,該模型能夠在不同的任務集上可靠地執行。為此,如果沒有另外提到,我們在任務之間使用相同的超參數集,我們在IMDB驗證集上調優該超參數集。我們使用AWD-LSTM語言模型(Merity等人,2017a),嵌入大小為400,3層,每層1150個隱藏激活,BPTT批量大小為70。我們將0.4的丟棄率應用於層,0.3的丟棄率應用於RNN層,0.4的丟棄率應用於輸入嵌入層,0.05的丟棄率應用於嵌入層,0.5的權重丟棄率應用於隱藏矩陣的RNN。分類器有一個大小為50的隱藏層。我們使用帶有β1=0.7和β2=0.99的Adam,而不是默認的β1=0.9,類似於(Dozat和Manning,2017)。我們使用64的批量大小、0.004和0.01的基本學習率分別對LM和分類器進行微調,並對每個任務的驗證集上的epoch數進行微調。否則,我們採用與(Merity等人,2017a)相同的做法。

基線和比較模型 對於IMDB和TREC-6數據集,我們將其與COVE進行比較(McCann等人,2017),後者是NLP最先進的遷移學習方法。對AG、Yelp和DBpedia數據集,我們將其與Johnson和Zhang(2017)最先進的文本分類方法進行比較。

4.2 結果

為了一致性,我們將所有結果報告為錯誤率(越低越好)。我們在IMDB和TREC-6數據集的得出測試錯誤率,見表2,該測試集被McCann等人(2017)使用過。我們的方法優於CoVe(一種基於超列的最先進的遷移學習方法),在兩個數據集上都是最優的。

ULMFiT面向文本分類的通用語言模型微調

在IMDB上,我們將CoVe和最新技術的誤差分別顯著降低了43.9%和22%。這是有希望的,因為現有的最先進技術需要複雜的體系結構(Peters等人,2018)、多種形式的關注(McCann等人,2017)和複雜的嵌入方案(Johnson和Zhang,2016),而我們的方法則採用常規的dropout的LSTM。我們注意到,Dai和Le(2015)的語言模型微調方法在IMDB上的只取得7.64錯誤率,而我們取得了4.6的錯誤率,這說明了使用我們的微調技術在類似ImageNet大型語料庫上遷移知識的好處。IMDB尤其反映了真實世界的數據集:其文檔通常有幾段長,類似於電子郵件(例如用於法律查詢)、在線評論(例如用於社區管理);情感分析類似於許多商業應用程序,例如產品響應跟蹤和支持電子郵件路由。

在TREC-6上,由於500個樣本測試集的規模較小,我們的改進與最先進方法的改進類似,在統計上並不顯著。然而,TREC-6的競爭表現表明,我們的模型在不同大小的數據集上表現良好,可以處理從TREC-6中的單句到IMDB中的幾個段落的樣本。儘管我們訓練的數據比麥卡恩等人(2017)使用的7百萬數據少兩個數量級,我們的方法在兩個數據集上都優於他們的方法。

我們在表3中顯示了較大的AG、DBpedia、Yelp-Bi和Yelp完整數據集的測試錯誤率。我們的方法再次顯著優於最先進技術。在AG上,我們觀察到與最先進技術相比,同樣顯著的錯誤減少了23.7%。在DBpedia、Yelp-bi和Yelp-full上,我們分別將錯誤降低了4.8%、18.2%和2.0%。

ULMFiT面向文本分類的通用語言模型微調

5 分析

為了評估每個貢獻的影響,我們進行了一系列的分析和對照實驗。我們在三個語料庫IMDB、TREC-6和AG上進行實驗,這些語料庫代表不同的任務、類型和大小。對於所有的實驗,我們分離出10%的訓練集作為驗證集,並用單向LM報告這個驗證集的錯誤率。我們對分類器進行了50個epoch微調,並對除ULMFiT之外的所有方法進行了早期停止訓練。

低射學習(Low-shot learning) 遷移學習的一個主要好處是,能夠在少量標記數據上訓練一個任務模型。我們在兩個設置中對不同數量的標記樣本進行ULMFiT評估:只有標記樣本用於LM微調("監督");所有任務數據都可用,可以用於LM微調("半監督")。我們將ULMFiT與從零開始訓練的方法進行比較,這些對於基於超列的方法是有必要的。我們分離出訓練數據的平衡部分,保持驗證集不變,並使用與以前相同的超參數。我們將結果顯示在圖3中。在IMDB和AG上,僅有100個標記樣本的ULMFiT得到的性能,可以媲美,分別10倍和20倍以上的數據從零開始訓練的性能,這清楚地展示了通用領域LM預訓練的好處。如果我們允許ULMFiT也使用未標記的樣本(IMDB為50k,AG為100k),在100個標記的樣本中,我們的方法取得的性能,可以媲美,在AG和IMDB上的50倍和100倍以上數據從零開始訓練的性能。在TREC-6上,ULMFiT從零開始訓練後顯著提高;由於樣本越來越短,受監督和半受監督的ULMFiT獲得了類似的結果。

ULMFiT面向文本分類的通用語言模型微調

預訓練影響 基於WikiText-103數據集(Merity等人,2017b),我們比較了在有無預訓練情況下ULMFiT的錯誤率,見表4。預訓練對於中小型數據集最有用,而中小型數據集在商業應用中最常見,即使對於大型數據集,預訓練也會提高性能。

ULMFiT面向文本分類的通用語言模型微調

LM質量影響 為了衡量選擇合適的LM的重要性,我們將具有相同超參數的Vanilla LM與基於dropout的AWD-LSTM LM進行了比較,見表5。使用我們的微調技術,即使是常規的LM,在較大的數據集上也能達到令人驚訝的良好性能。在較小的TREC-6上,一個沒有dropout的Vanilla LM會有過擬合的風險,這會降低性能。

ULMFiT面向文本分類的通用語言模型微調

LM微調的影響 我們比較了無微調方法、全模型微調方法(Erhan等人,2010)(Full)、全模型微調且區分微調(Discr)方法,全模型微調且區分微調和斜三角學習率(Stlr)方法,見表6。微調LM對較大的數據集最有利。Discr和Stlr提高了所有三個數據集的性能,並且對於較小的TREC-6是必需的,因為常規的微調並不有益。

ULMFiT面向文本分類的通用語言模型微調

分類器微調影響 我們比較了從零開始訓練方法、全模型微調(Full)方法、僅微調最後一層(Last)(Donahue等人,2014)、"鏈解凍"(Felbo等人,2017)、以及逐漸解凍方法。此外,我們還進一步評估了區分微調(Discr)和斜三角學習率(Stlr)的重要性。我們將後者與另一種積極的餘弦衰減計劃(Cos)進行了比較(Loshchilov和Hutter,2017)。我們使用學習率ηL=0.01表示Discr,最後一層和所有其他層的學習率分別為0.001和0.0001表示"鏈解凍"(Felbo等人,2017),否則學習率為0.001。我們將結果顯示在表7中。對分類器進行微調可以顯著改善從頭開始的訓練,特別是在小型TREC-6上。最後一種是CV中的標準微調方法,嚴重欠擬合,無法將訓練誤差降低到0。"鏈解凍"在較小的數據集上實現了競爭性能,但在大型AG上表現顯著。Freez提供與Full類似的性能。Discr持續提升Full和Freez的性能,但大型AG除外。餘弦衰減在大數據上與斜三角學習率競爭,但在小數據集上表現不佳。最後,全ULMFiT分類器微調在IMDB和TREC-6上達到了最佳性能,在AG上達到了競爭性能。重要的是,ULMFiT是唯一一種全面表現出卓越性能的方法,因此是唯一通用的方法。

ULMFiT面向文本分類的通用語言模型微調

分類器微調行為 雖然我們的結果表明,我們如何微調分類器會產生顯著的差異,但目前在NLP中,對歸納遷移的微調仍在探索中,因為人們認為這主要是無益的(Mou等人,2016)。為了更好地理解我們模型的微調行為,我們比較了ULMFiT分類器微調和訓練期間的Full的驗證錯誤率,如圖4所示。在所有數據集上,對完整模型進行微調會在訓練早期導致最低的錯誤,例如,在IMDB上的第一個時代之後。然後,隨著模型開始過度擬合,錯誤會增加,並且通過預訓練獲取的知識會丟失。相比之下,ULMFiT更為穩定,並且不存在這樣的災難性遺忘;直到晚期,性能仍然保持相似或改善,這表明學習率計劃的積極作用。

ULMFiT面向文本分類的通用語言模型微調

雙向性影響 以訓練第二個模型為代價,將前向和後向LM分類器的預測結合起來,可以提高大約0.5-0.7的性能。在IMDB上,我們將測試誤差從單個模型的5.30降低到雙向模型的4.58。

6 討論和未來方向

雖然我們已經證明,ULMFiT可以在廣泛使用的文本分類任務上實現最先進的性能,但我們相信,與現有的遷移學習方法相比,語言模型微調在以下設置中尤其有用(Conneau等人,2017;McCann等人,2017;Peters等人,2018):

a)非英語語言的NLP,受監督的預訓練任務的訓練數據不足;

b)不存在最先進架構的新NLP任務;

c)標記數據量有限的任務(以及一些未標記數據量)。

鑑於NLP遷移學習和微調尚在探索之中,許多未來的方向是可能的。一個可能的方向是改進語言模型的預訓練和微調,使其更具可擴展性:對於ImageNet,預測較少的類只會導致較小的性能下降(Huh等人,2016),而最近的研究表明,源和目標任務標記集之間的一致性很重要(Mahajan等人,2018),重點是預測詞的子集,例如最頻繁的詞,這可能會在加快訓練速度的同時,保留大部分性能。語言建模還可以以多任務學習的方式(Caruana,1993)增加額外的任務,或增加額外的監督,例如語法敏感依賴(Linzen等人,2016),以創建一個更通用或更適合某些下游任務的模型,理想情況下以弱監督的方式保持其通用屬性。

另一個方向是將該方法應用於新的任務和模型。雖然序列標記的擴展是向前推進的,但其他具有更復雜交互作用的任務,例如蘊含或者問答,可能需要新穎的方法來進行預處理和微調。最後,雖然我們已經提供了一系列的分析和衰減,但是需要更多的研究來更好地理解預訓練語言模型捕獲的知識、在微調過程中這是如何變化的,以及不同任務需要什麼信息。

7 結論

我們提出了一種有效且樣本有效的遷移學習方法ULMFiT,可以應用於任何NLP任務。我們還提出了幾種新穎的微調技術,這些技術結合在一起可以防止災難性的遺忘,並能夠在不同的任務範圍內進行強健地學習。我們的方法在六個具有代表性的文本分類任務上顯著優於現有的遷移學習技術。我們希望我們的研究成果能促進NLP遷移學習取得新進展。


分享到:


相關文章: