NLP领域中更有效的迁移学习方法
? ? ? ?在深度學(xué)習(xí)領(lǐng)域,遷移學(xué)習(xí)(transfer learning)是應(yīng)用比較廣的方法之一。該方法允許我們構(gòu)建模型時候不光能夠借鑒一些其它科研人員的設(shè)計的模型,還可以借用類似結(jié)構(gòu)的模型參數(shù),有些類似于站在巨人的肩膀上進行深入開發(fā)。本文將講述如何在NLP領(lǐng)域中更高效地應(yīng)用遷移學(xué)習(xí)。
? ? ? ?今年春天,我?在ODSC East會議上發(fā)表了題為??“NLP中的有效遷移學(xué)習(xí)”的演講。該演講展示了預(yù)訓(xùn)練的單詞和文檔嵌入層在訓(xùn)練數(shù)據(jù)集較小時取得的優(yōu)異結(jié)果,并為將這些技術(shù)應(yīng)用于工程任務(wù)中提出了一系列實用建議。此外,感謝[Alec Radford和OpenAI團隊的一些出色研究](),使得之前提出的一些建議發(fā)生了一些變化。
? ? ? ?為了解釋發(fā)生變化的原因,首先回顧一下之前在Indico會議中使用的評估方法,以評估一種新穎的機器學(xué)習(xí)方法是否適用于工業(yè)用途中。
評估新的機器學(xué)習(xí)方法
對于廣泛的實際應(yīng)用,機器學(xué)習(xí)模型必須對照以下大多數(shù)要求檢驗自身:
- 快速訓(xùn)練
- 快速預(yù)測
- 需要極少或不需要超參數(shù)調(diào)整
- 在訓(xùn)練數(shù)據(jù)可用性較低時運行良好(100個示例)
- 適用于廣泛的任務(wù)及對應(yīng)的領(lǐng)域
- 在標記的訓(xùn)練數(shù)據(jù)上能夠很好地擴展
? ? ? ?讓我們看看預(yù)先訓(xùn)練好的單詞+文檔嵌入層如何滿足這些要求:
- 快速訓(xùn)練
在預(yù)訓(xùn)練嵌入層之上訓(xùn)練輕量級模型所花費的時間在幾秒鐘內(nèi)是可能的,盡管計算預(yù)訓(xùn)練嵌入層依賴于基礎(chǔ)模型復(fù)雜度。 - 快速預(yù)測
預(yù)測同樣快速,預(yù)測與基礎(chǔ)模型花費一樣的代價。 - 需要極少或不需要超參數(shù)調(diào)整
正則化參數(shù)和嵌入類型的交叉驗證對其是有所幫助的,并且這種操作足夠便宜而且不會引入問題。 - 在訓(xùn)練數(shù)據(jù)可用性較低時起作用(100個示例)
在預(yù)訓(xùn)練的單詞嵌入層之上應(yīng)用邏輯回歸塊僅需要學(xué)習(xí)100s~1000s的參數(shù)而不是數(shù)百萬的參數(shù),并且模型的簡單性意味著它需要非常少的數(shù)據(jù)就能獲得良好的結(jié)果。 - 適用于廣泛的任務(wù)及對應(yīng)的領(lǐng)域
預(yù)訓(xùn)練的單詞和文檔嵌入層通常的表現(xiàn)是“足夠好”,但具體任務(wù)需要與領(lǐng)域和目標模型相關(guān)。 - 在標記的訓(xùn)練數(shù)據(jù)上能夠很好地擴展
這種方法非常快速,并且不會從額外的訓(xùn)練數(shù)據(jù)中獲益。學(xué)習(xí)線性模型有助于用更少的數(shù)據(jù)產(chǎn)生更好的結(jié)果,但這也意味著模型學(xué)習(xí)到的輸入和輸出之間復(fù)雜關(guān)系的能力也要低得多。
? ? ? ?簡而言之,使用預(yù)訓(xùn)練的嵌入層在計算上花費少,并且在訓(xùn)練數(shù)據(jù)可用性較低的情況下表現(xiàn)良好,但是使用靜態(tài)表示對從額外的訓(xùn)練數(shù)據(jù)獲得的增益會受到限制。從預(yù)先訓(xùn)練的嵌入層中獲得良好的性能需要為給定的任務(wù)搜索正確的預(yù)訓(xùn)練嵌入層,但是很難預(yù)測一個預(yù)先訓(xùn)練嵌入層是否能夠很好地推廣到一個新的目標任務(wù),這就需要通過一次次實驗來驗證了。
計算機視覺中的遷移學(xué)習(xí)解決方案
? ? ? ?值得慶幸的是,在計算機視覺領(lǐng)域中的相關(guān)研究提供了一種可行的替代方案。在計算機視覺領(lǐng)域中,使用預(yù)先訓(xùn)練的特征表示已經(jīng)在很大程度上被“微調(diào)”預(yù)訓(xùn)練模型而不僅僅是學(xué)習(xí)最終分類層的方法所取代。修改源模型的所有權(quán)重,而不是簡單地重新初始化和學(xué)習(xí)最終分類層的權(quán)重。隨著訓(xùn)練數(shù)據(jù)可用性的增加,這種額外的模型靈活性開始帶來回報。
? ? ? ?這種方法的來源基礎(chǔ)已有幾年歷史了——從Yosinski、Clune、Bengio等人在2014年探討了卷積神經(jīng)網(wǎng)絡(luò)(CNN)參數(shù)的可遷移性開始,直到最近這個過程才成為普遍的做法。現(xiàn)在,在CNN網(wǎng)絡(luò)中應(yīng)用微調(diào)方法是很常見的,斯坦福大學(xué)計算機視覺課程(CS231N)中將這一過程作為課程的一部分,以及Mahajan等人的2018年論文(“探索弱監(jiān)督預(yù)訓(xùn)練的極限”)表明,當(dāng)模型性能作為至關(guān)重要時,應(yīng)該始終使用微調(diào)來代替預(yù)訓(xùn)練的特征。
自然語言處理的模型驗證
? ? ? ?那么為什么自然語言處理領(lǐng)域如此落后呢?在Sebastian Ruder的一篇文章中寫道?“NLP的ImageNet時刻已經(jīng)到來”,他認為造成這個現(xiàn)象的原因是該領(lǐng)域中缺乏用于學(xué)習(xí)可推廣基礎(chǔ)模型的既定數(shù)據(jù)集和源任務(wù)。直到最近,自然語言處理領(lǐng)域仍然缺乏ImageNet類似的數(shù)據(jù)集。
? ? ? ?然而,在最近的論文中,如 Howard 和Ruder的??“通用語言模型微調(diào)文本分類”??和Radford的論文?“通過生成性預(yù)訓(xùn)練提高語言理解”??已經(jīng)證明模型微調(diào)最終在自然語言領(lǐng)域中顯示出前景。盡管在這些論文中采用的源數(shù)據(jù)集各不相同,但NLP領(lǐng)域似乎正在將“語言建模”目標標準化,作為訓(xùn)練可遷移基礎(chǔ)模型的首選。
? ? ? ?簡單地說,語言建模是預(yù)測序列中下一個單詞的任務(wù)。鑒于部分句子“我以為我會按時到達,但最終____5分鐘”,對于讀者來說,下一個單詞將是“遲到”的同義詞是相當(dāng)明顯的。有效地解決這一任務(wù)不僅需要理解語言結(jié)構(gòu)(名詞遵循形容詞,動詞有主語和對象等),還需要根據(jù)廣泛的語境線索做出決策的能力(“遲到”是填寫在示例中的空白處,因為前面的文本提供了說話者正在談?wù)摃r間的線索。)此外,語言建模具有不需要標記的訓(xùn)練數(shù)據(jù)這一理想特性,且原始文本對于每一個可想象的領(lǐng)域都是豐富的。這兩個特性使得語言建模成為學(xué)習(xí)可泛化的基本模型的理想選擇。
? ? ? ?然而,語言建模目標并不是使NLP模型微調(diào)的唯一必要條件。使用??“遷移”模型??代替典型的復(fù)現(xiàn)模型(LSTM)也發(fā)揮了重要作用。在“通過生成性預(yù)訓(xùn)練提高語言理解力”中看到,微調(diào)遷移模型的性能與微調(diào)復(fù)現(xiàn)(LSTM)模型之間存在顯著差異。LSTM不再是序列建模的標準——非循環(huán)模型已經(jīng)在各類任務(wù)中表現(xiàn)出強有力的競爭性。
? ? ? ?John Miller的博客文章中寫道,“當(dāng)遞歸模型不需要遞歸”,暗示LSTM理論上的無限記憶可能實際上并不存在。此外,固定的上下文窗口存儲器可能足以解決諸如語言建模之類的任務(wù),并且遷移模型的殘余塊結(jié)構(gòu)似乎很適合遷移學(xué)習(xí)應(yīng)用程序。簡而言之,遷移模型的理論缺點被其優(yōu)勢所抵消,例如更快的訓(xùn)練和預(yù)測時間。
模型微調(diào)是否符合設(shè)定的標準?
鑒于最近的進展,讓我們重新看看微調(diào)模型如何滿足之前的要求:
- 快速訓(xùn)練
雖然與預(yù)先計算的特征表示相比計算代價更高,但OpenAI的遷移模型可以在約5分鐘內(nèi)通過GPU硬件在幾百個示例中進行微調(diào)。 - 快速預(yù)測
預(yù)測所花費的代價也更高,吞吐量限于每秒一位數(shù)的文檔。在廣泛實際應(yīng)用之前,必須改進預(yù)測速度。 - 需要極少或不需要超參數(shù)調(diào)整
在各個任務(wù)中使用默認超參數(shù)的工作效果非常好,雖然基本交叉驗證尋找理想的正則化參數(shù)是有益的。 - 在訓(xùn)練數(shù)據(jù)可用性較低時運行良好(100個示例)
模型微調(diào)在低至100個示例的數(shù)據(jù)量表現(xiàn)與使用與訓(xùn)練嵌入層一樣。 - 適用于廣泛的任務(wù)及領(lǐng)域
領(lǐng)域與任務(wù)匹配的問題似乎比預(yù)訓(xùn)練的特征特征表示更少,語言建模目標似乎學(xué)習(xí)了適用于語義和句法任務(wù)的特征。 - 在標記的訓(xùn)練數(shù)據(jù)上能夠很好地擴展
使用預(yù)先訓(xùn)練的特征表示無法解決的任務(wù),可以通過在足夠的訓(xùn)練數(shù)據(jù)下使用非常復(fù)雜的模型解決。隨著更多的訓(xùn)練數(shù)據(jù)變得可用,預(yù)訓(xùn)練特征和模型微調(diào)之間的差距大大擴大。事實上,微調(diào)似乎通常比從頭開始訓(xùn)練更加可取——OpenAI的論文“通過生成式預(yù)訓(xùn)練提高語言理解”展示了的最新結(jié)果。
? ? ? ?雖然它有一定的局限性,但NLP任務(wù)的模型微調(diào)具有很大的前景,并且已經(jīng)顯示出優(yōu)于當(dāng)前使用預(yù)訓(xùn)練的文字和文檔嵌入層這一最佳實踐的明顯優(yōu)勢。
? ? ? ?Sebastian Ruder總結(jié)到:
“在NLP領(lǐng)域中實踐遷移學(xué)習(xí)的時機已經(jīng)成熟。鑒于ELMo、ULMFiT和OpenAI取得的令人印象深刻的實證結(jié)果,這似乎只是時間問題,最終直到預(yù)訓(xùn)練的單詞嵌入層將被淘汰,這可能會促進在標簽數(shù)據(jù)量有限的NLP領(lǐng)域中開發(fā)出許多新的應(yīng)用程序。王者已逝,新的王者也誕生!“
NLP模型定位的定量研究
? ? ? ?我們早期的基準測試證實,對使用預(yù)先訓(xùn)練的表示進行微調(diào)模型有一個通用的好處。下面是使用我們的遷移學(xué)習(xí)基準測試工具Enso獲得的最近基準測試的輸出示例?。
? ? ? ?圖中的每個點表示來自完整數(shù)據(jù)集的隨機子集上的5次試驗的平均值+ 95%置信區(qū)間。X軸表示可用的標記訓(xùn)練數(shù)據(jù)點數(shù)量,Y軸分別是平均ROC AUC和精度。在擬合之前對訓(xùn)練數(shù)據(jù)集進行過采樣,這些結(jié)果是擬合約2500個模型的集合。
? ? ? ?微調(diào)模型是OpenAI的遷移語言模型的實現(xiàn),基線模型是在手套詞嵌入上訓(xùn)練的交叉驗證邏輯回歸。盡管存在更強的基線用于比較,但是在該訓(xùn)練數(shù)據(jù)量下,手套嵌入的平均值對于大多數(shù)分類任務(wù)來說是比較好的基線了。后續(xù)希望在未來的基準測試中發(fā)布與其他方法的比較,但仍然令人驚訝的是,在只有100個標記的訓(xùn)練樣例下,模型微調(diào)取得的效果仍優(yōu)于簡單的基線。有關(guān)23種不同分類任務(wù)的完整基準測試可在s3下載?。
微調(diào):Scikit-Learn 樣式模型微調(diào)庫
? ? ? ?鑒于這一最近的發(fā)展,Indico開源了一個包裝類(wrapper),用于OpenAI在遷移模型微調(diào)方面的工作。?我們嘗試通過將其打包成易于使用的scikit-learn樣式庫,使Radford的研究應(yīng)用更加廣泛,后續(xù)會講述如何使用一些簡短的代碼使用微調(diào)來實現(xiàn)對自己任務(wù)的改進敬請期待。
?
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的NLP领域中更有效的迁移学习方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 传统企业装上“智慧大脑” 看阿里巴巴如何
- 下一篇: 阿里云OCR证件识别商业化发布,减少人工