摘要:遷移學(xué)習(xí)正在各個領(lǐng)域大展拳腳挺勿,NLP領(lǐng)域正在受到?jīng)_擊饶米!
在我們之前的文章中恒界,我們展示了如何使用CNN與遷移學(xué)習(xí)為我們自己創(chuàng)建圖片構(gòu)建分類器睦刃。今天,我們介紹NLP中遷移學(xué)習(xí)的最新趨勢十酣,并嘗試進(jìn)行分類任務(wù):將亞馬遜評論的數(shù)據(jù)集分類為正面或負(fù)面涩拙。
NLP中的遷移學(xué)習(xí)理念在fast.ai課程中得到了很好的體現(xiàn),我們鼓勵你查看論壇耸采。我們這里的參考文件是Howard兴泥,Ruder,“用于文本分類的通用語言模型微調(diào)”虾宇。
什么是遷移學(xué)習(xí)搓彻?
計算機(jī)視覺是一個使用遷移學(xué)習(xí)而取得巨大進(jìn)步的領(lǐng)域。它具有數(shù)百萬參數(shù)的高度非線性模型需要大量數(shù)據(jù)集進(jìn)行訓(xùn)練嘱朽,并且通常需要數(shù)天或數(shù)周才能進(jìn)行訓(xùn)練旭贬,只是為了能夠?qū)D像分類為包含狗或貓!
隨著ImageNet的挑戰(zhàn)搪泳,團(tuán)隊每年都參與競爭骑篙,以設(shè)計出最佳的圖像分類器。已經(jīng)觀察到這些模型的隱藏層能夠捕獲圖像中的一般知識(邊緣森书、某些形式靶端、樣式......)。因此凛膏,每次我們想要改變?nèi)蝿?wù)時杨名,沒有必要從頭開始重新訓(xùn)練模型。
讓我們以VGG-16模型為例(Simonyan猖毫、Karen和Zisserman·“用于大規(guī)模圖像識別的非常深的卷積網(wǎng)絡(luò)台谍。”(2014))
.
這種架構(gòu)比較復(fù)雜吁断、層數(shù)多趁蕊、參數(shù)數(shù)量多坞生。作者聲稱使用4個強大的GPU訓(xùn)練了為3周時間。
遷移學(xué)習(xí)的想法是掷伙,由于中間層被認(rèn)為是學(xué)習(xí)圖像的一般知識是己,我們可以將它們用作當(dāng)成比較全面的特征!我們將下載一個預(yù)先訓(xùn)練好的模型(在ImageNet任務(wù)上訓(xùn)練數(shù)周)任柜,刪除網(wǎng)絡(luò)的最后一層(完全連接的層卒废,在ImageNet挑戰(zhàn)的1000個類上投射功能),添加put而不是我們選擇的分類器宙地,適合我們的任務(wù)(如果我們有興趣對貓和狗進(jìn)行分類摔认,則為二元分類器),最后僅訓(xùn)練我們的分類層宅粥。并且因為我們使用的數(shù)據(jù)可能與之前訓(xùn)練過的模型數(shù)據(jù)不同参袱,我們也可以進(jìn)行微調(diào)步驟,這樣我們就能在相當(dāng)短的時間內(nèi)訓(xùn)練所有層秽梅。
除了更快地進(jìn)行訓(xùn)練之外蓖柔,遷移學(xué)習(xí)特別有趣,因為僅在最后一層進(jìn)行訓(xùn)練使我們僅使用較少的標(biāo)記數(shù)據(jù)即可风纠,而端對端訓(xùn)練整個模型則需要龐大的數(shù)據(jù)集。標(biāo)記數(shù)據(jù)很昂貴牢贸,并且非常需要建立高質(zhì)量模型而不需要大數(shù)據(jù)集竹观。
那么NLP中的遷移學(xué)習(xí)呢?
NLP深度學(xué)習(xí)的進(jìn)展不像計算機(jī)視覺那樣成熟潜索。雖然可以想象機(jī)器能夠?qū)W習(xí)邊緣臭增、圓形、正方形等形狀竹习,然后使用這些知識做其他事情誊抛,但對于文本數(shù)據(jù)來說這些并不簡單。
最初流行的在NLP中遷移學(xué)習(xí)是由嵌入模型這個詞(由word2vec和GloVe廣泛推廣)帶來的整陌。這些單詞矢量表示利用單詞的上下文拗窃,將它們表示為向量,其中相似的單詞應(yīng)具有相似的單詞表示泌辫。
在這個圖中随夸,來自word2vec論文,我們看到該模型能夠?qū)W習(xí)國家與其首都城市之間的關(guān)系震放。
包括預(yù)先訓(xùn)練的單詞向量已經(jīng)顯示出在大多數(shù)NLP任務(wù)中改進(jìn)度量宾毒,因此已經(jīng)被NLP社區(qū)廣泛采用,被用來尋找甚至更好的單詞/字符/文檔表示殿遂。與計算機(jī)視覺一樣诈铛,預(yù)訓(xùn)練的單詞向量可以被視為特征化函數(shù)乙各,轉(zhuǎn)換一組特征中的每個單詞。
但是幢竹,單詞嵌入僅代表大多數(shù)NLP模型的第一層耳峦。之后,我們?nèi)匀恍枰獜念^開始訓(xùn)練所有RNN / CNN /自定義層妨退。
用于文本分類的語言模型微調(diào)
今年早些時候霍華德和羅德提出了ULMFit模型妇萄,以此來進(jìn)一步提升了遷移學(xué)習(xí)在NLP的應(yīng)用。
他們正在探索的想法是基于語言模型咬荷。語言模型是一種能夠根據(jù)已經(jīng)看到的單詞預(yù)測下一個單詞的模型(想想你的智能手機(jī)在你發(fā)短信時為你猜測下一個單詞)冠句。就像圖像分類器通過對圖像分類來獲得圖像的內(nèi)在知識一樣,如果NLP模型能夠準(zhǔn)確地預(yù)測下一個單詞幸乒,那么說明它已經(jīng)學(xué)到了很多關(guān)于自然語言結(jié)構(gòu)懦底。這些知識應(yīng)提供良好的初始化,然后可以在自定義任務(wù)上進(jìn)行訓(xùn)練罕扎!
ULMFit建議在非常大的文本語料庫(例如維基百科)上訓(xùn)練語言模型聚唐,并將其用作任何分類器的主干!由于你的文本數(shù)據(jù)可能與維基百科的編寫方式不同腔召,因此你需要微調(diào)語言模型的參數(shù)以將這些差異考慮在內(nèi)杆查。然后,我們將在此語言模型的頂部添加分類器層臀蛛,并僅訓(xùn)練此層亲桦!
ULMfit paper
讓人驚訝的結(jié)果是,使用這種預(yù)訓(xùn)練的語言模型使我們能夠在更少標(biāo)記的數(shù)據(jù)上訓(xùn)練分類器浊仆!雖然未標(biāo)記的數(shù)據(jù)在網(wǎng)絡(luò)上幾乎是無限的客峭,但標(biāo)記數(shù)據(jù)非常昂貴且耗時。
以下是他們從IMDb情緒分析任務(wù)中報告的結(jié)果:
雖然只有100個示例抡柿,它們能夠達(dá)到與使用20k示例從頭開始訓(xùn)練時模型達(dá)到的相同錯誤率舔琅!
此外,他們還提供了代碼洲劣,以你選擇的語言預(yù)先訓(xùn)練語言模型备蚓。由于維基百科存在很多的語言中,因此我們可以使用維基百科數(shù)據(jù)快速從一種語言遷移到另一種語言囱稽。眾所周知星著,公共標(biāo)簽數(shù)據(jù)集更難以使用英語以外的語言進(jìn)行訪問。在這里粗悯,你可以對未標(biāo)記數(shù)據(jù)上的語言模型進(jìn)行微調(diào)虚循,花幾個小時手動注釋幾百/千個數(shù)據(jù)點,并使分類器頭部適應(yīng)你預(yù)先訓(xùn)練的語言模型來執(zhí)行你的任務(wù)!
游樂場與亞馬遜評論
為了改變這種方法的不足之處横缔,我們使用為其論文中的公共數(shù)據(jù)集上進(jìn)行了嘗試铺遂。我們在Kaggle上找到了這個數(shù)據(jù)集:它包含4百萬條關(guān)于亞馬遜產(chǎn)品的評論,并用積極或消極的情緒標(biāo)記它們茎刚。我們將針對ULMfit的fast.ai課程調(diào)整將亞馬遜評論分類為正面或負(fù)面襟锐。我們發(fā)現(xiàn)只需要1000個數(shù)據(jù)點,該模型就能夠匹配通過在完整數(shù)據(jù)集上從頭開始訓(xùn)練FastText模型獲得的準(zhǔn)確度分?jǐn)?shù)膛锭。僅使用100個標(biāo)記示例粮坞,該模型仍然能夠獲得良好的性能。
要重現(xiàn)此實驗初狰,你可以使用此筆記本莫杈,建議使用GPU來運行微調(diào)和分類部分。
NLP中的無監(jiān)督與監(jiān)督學(xué)習(xí)奢入,圍繞意義進(jìn)行討論
使用ULMFit筝闹,我們使用了無監(jiān)督和監(jiān)督學(xué)習(xí)。訓(xùn)練無監(jiān)督的語言模型是“便宜的”腥光,因為你可以在線訪問幾乎無限的文本數(shù)據(jù)关顷。但是,使用監(jiān)督模型很昂貴武福,因為你需要對數(shù)據(jù)進(jìn)行標(biāo)記议双。
雖然語言模型能夠從自然語言的結(jié)構(gòu)中捕獲大量相關(guān)信息,但尚不清楚它是否能夠捕獲文本的含義捉片,即“發(fā)送者打算傳達(dá)的信息或概念”平痰。
你可能已經(jīng)關(guān)注了NLP中非常有趣的Twitter主題。在這個帖子中界睁,艾米莉·本德利用“泰國房間實驗”對她進(jìn)行了反對意義捕獲的論證:想象一下,你在一個巨大的圖書館里得到了所有泰國文學(xué)的總和兵拢。假設(shè)你還不懂泰語翻斟,你就不會從中學(xué)到任何東西。
所以我們可以認(rèn)為語言模型學(xué)到的更多是語法而不是意義说铃。然而访惜,語言模型比僅僅預(yù)測語法相關(guān)的句子更好。例如腻扇,“我要吃來這臺電腦”和“我討厭這臺電腦”兩者在語法上都是正確的债热,但一個好的語言模型應(yīng)該能夠知道“我討厭這臺電腦”應(yīng)該比另外一句更“準(zhǔn)確”。所以幼苛,即使我看過整個泰語維基百科窒篱,我也無法用泰語寫作,但很容易看出語言模型確實超越了簡單的語法/結(jié)構(gòu)理解。
我們不會在這里進(jìn)一步探討意義的概念(這是一個無窮無盡且引人入勝的話題/辯論)墙杯,如果你有興趣配并,我們建議你看下Yejin Choi在ACL 2018的演講中是如何探討這一主題的。
NLP中遷移學(xué)習(xí)的未來
ULMFit取得的進(jìn)展推動了NLP遷移學(xué)習(xí)的研究高镐。對于NLP來說溉旋,這是一個激動人心的時刻,因為其他微調(diào)語言模型也開始出現(xiàn)嫉髓,特別是FineTune Transformer LM观腊。我們還注意到,隨著更好的語言模型的出現(xiàn)算行,我們甚至可以改善這種知識遷移梧油。
本文作者:【方向】
作者:阿里云云棲社區(qū)
鏈接:http://www.reibang.com/p/bc620ff440a5
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處纱意。