在我們
之前的文章中,我們展示了如何使用CNN與遷移學習為我們自己建立圖檔建構分類器。今天,我們介紹NLP中遷移學習的最新趨勢,并嘗試進行分類任務:将
亞馬遜評論的資料集分類為正面或負面。
NLP中的遷移學習理念在
fast.ai課程中得到了很好的
展現,我們鼓勵你檢視
論壇。我們這裡的參考檔案是
Howard,Ruder,“用于文本分類的通用語言模型微調”。
什麼是遷移學習?
計算機視覺是一個使用遷移學習而取得巨大進步的領域。它具有數百萬參數的高度非線性模型需要大量資料集進行訓練,并且通常需要數天或數周才能進行訓練,隻是為了能夠将圖像分類為包含狗或貓!

随着ImageNet的挑戰,團隊每年都參與競争,以設計出最佳的圖像分類器。已經觀察到這些模型的隐藏層能夠捕獲圖像中的一般知識(邊緣、某些形式、樣式......)。是以,每次我們想要改變任務時,沒有必要從頭開始重新訓練模型。
讓我們以VGG-16模型為例(Simonyan、Karen和Zisserman·“用于大規模圖像識别的非常深的卷積網絡。”(2014))
這種架構比較複雜、層數多、參數數量多。作者聲稱使用4個強大的GPU訓練了為3周時間。
遷移學習的想法是,由于中間層被認為是學習圖像的一般知識,我們可以将它們用作當成比較全面的特征!我們将下載下傳一個預先訓練好的模型(在ImageNet任務上訓練數周),删除網絡的最後一層(完全連接配接的層,在ImageNet挑戰的1000個類上投射功能),添加put而不是我們選擇的分類器,适合我們的任務(如果我們有興趣對貓和狗進行分類,則為二進制分類器),最後僅訓練我們的分類層。并且因為我們使用的資料可能與之前訓練過的模型資料不同,我們也可以進行微調步驟,這樣我們就能在相當短的時間内訓練所有層。
除了更快地進行訓練之外,遷移學習特别有趣,因為僅在最後一層進行訓練使我們僅使用較少的标記資料即可,而端對端訓練整個模型則需要龐大的資料集。标記資料很昂貴,并且非常需要建立高品質模型而不需要大資料集。
那麼NLP中的遷移學習呢?
NLP深度學習的進展不像計算機視覺那樣成熟。雖然可以想象機器能夠學習邊緣、圓形、正方形等形狀,然後使用這些知識做其他事情,但對于文本資料來說這些并不簡單。
最初流行的在NLP中遷移學習是由嵌入模型這個詞(由
word2vec和
GloVe廣泛推廣)帶來的。這些單詞矢量表示利用單詞的上下文,将它們表示為向量,其中相似的單詞應具有相似的單詞表示。
在這個圖中,來自word2vec論文,我們看到該模型能夠學習國家與其首都城市之間的關系。
包括預先訓練的單詞向量已經顯示出在大多數NLP任務中改進度量,是以已經被NLP社群廣泛采用,被用來尋找甚至更好的單詞/字元/文檔表示。與計算機視覺一樣,預訓練的單詞向量可以被視為特征化函數,轉換一組特征中的每個單詞。
但是,單詞嵌入僅代表大多數NLP模型的第一層。之後,我們仍然需要從頭開始訓練所有RNN / CNN /自定義層。
用于文本分類的語言模型微調
今年早些時候霍華德和羅德提出了
ULMFit模型,以此來進一步提升了遷移學習在NLP的應用。
他們正在探索的想法是基于語言模型。語言模型是一種能夠根據已經看到的單詞預測下一個單詞的模型(想想你的智能手機在你發短信時為你猜測下一個單詞)。就像圖像分類器通過對圖像分類來獲得圖像的内在知識一樣,如果NLP模型能夠準确地預測下一個單詞,那麼說明它已經學到了很多關于自然語言結構。這些知識應提供良好的初始化,然後可以在自定義任務上進行訓練!
ULMFit建議在非常大的文本語料庫(例如維基百科)上訓練語言模型,并将其用作任何分類器的主幹!由于你的文本資料可能與維基百科的編寫方式不同,是以你需要微調語言模型的參數以将這些差異考慮在内。然後,我們将在此語言模型的頂部添加分類器層,并僅訓練此層!
ULMfit paper
讓人驚訝的結果是,使用這種預訓練的語言模型使我們能夠在更少标記的資料上訓練分類器!雖然未标記的資料在網絡上幾乎是無限的,但标記資料非常昂貴且耗時。
以下是他們從IMDb情緒分析任務中報告的結果:
雖然隻有100個示例,它們能夠達到與使用20k示例從頭開始訓練時模型達到的相同錯誤率!
此外,他們還提供了
代碼,以你選擇的語言預先訓練語言模型。由于維基百科存在很多的語言中,是以我們可以使用維基百科資料快速從一種語言遷移到另一種語言。衆所周知,公共标簽資料集更難以使用英語以外的語言進行通路。在這裡,你可以對未标記資料上的語言模型進行微調,花幾個小時手動注釋幾百/千個資料點,并使分類器頭部适應你預先訓練的語言模型來執行你的任務!
遊樂場與亞馬遜評論
為了改變這種方法的不足之處,我們使用為其論文中的公共資料集上進行了嘗試。我們在Kaggle上找到了這個
資料集:它包含4百萬條關于亞馬遜産品的評論,并用積極或消極的情緒标記它們。我們将針對
ULMfit的fast.ai課程調整将亞馬遜評論分類為正面或負面。我們發現隻需要1000個資料點,該模型就能夠比對通過在完整資料集上從頭開始訓練FastText模型獲得的準确度分數。僅使用100個标記示例,該模型仍然能夠獲得良好的性能。
要重制此實驗,你可以使用此
筆記本,建議使用GPU來運作微調和分類部分。
NLP 中的無監督與監督學習,圍繞意義進行讨論使用ULMFit,我們使用了無監督和監督學習。訓練無監督的語言模型是“便宜的”,因為你可以線上通路幾乎無限的文本資料。但是,使用監督模型很昂貴,因為你需要對資料進行标記。
雖然語言模型能夠從自然語言的結構中捕獲大量相關資訊,但尚不清楚它是否能夠捕獲文本的
含義,即“發送者打算傳達的資訊或概念”。
你可能已經關注了NLP中非常有趣的
Twitter主題。在這個文章中,
艾米莉·本德利用“泰國房間實驗”對她進行了反對意義捕獲的論證:想象一下,你在一個巨大的圖書館裡得到了所有泰國文學的總和。假設你還不懂泰語,你就不會從中學到任何東西。
是以我們可以認為語言模型學到的更多是文法而不是意義。然而,語言模型比僅僅預測文法相關的句子更好。例如,“我要吃來這台電腦”和“我讨厭這台電腦”兩者在文法上都是正确的,但一個好的語言模型應該能夠知道“我讨厭這台電腦”應該比另外一句更“準确”。是以,即使我看過整個泰語維基百科,我也無法用泰語寫作,但很容易看出語言模型确實超越了簡單的文法/結構了解。
我們不會在這裡進一步探讨意義的概念(這是一個無窮無盡且引人入勝的話題/辯論),如果你有興趣,我們建議你看下Yejin Choi在
ACL 2018的演講中是如何探讨這一主題的。
NLP中遷移學習的未來
ULMFit取得的進展推動了NLP遷移學習的研究。對于NLP來說,這是一個激動人心的時刻,因為其他微調語言模型也開始出現,特别是
FineTune Transformer LM。我們還注意到,随着
更好的語言模型的出現,我們甚至可以改善這種知識遷移。
數十款阿裡雲産品限時折扣中,趕緊點選領劵開始雲上實踐吧!以上為譯文。
本文由
阿裡雲雲栖社群組織翻譯。
文章原标題《transfer-learning-in-nlp》,
作者:
PETER MARTIGNY譯者:虎說八道,審校:。
文章為簡譯,更為詳細的内容,請檢視
原文