NLP中的迁移学习
摘要:?遷移學(xué)習(xí)正在各個(gè)領(lǐng)域大展拳腳,NLP領(lǐng)域正在受到?jīng)_擊!
在我們之前的文章中,我們展示了如何使用CNN與遷移學(xué)習(xí)為我們自己創(chuàng)建圖片構(gòu)建分類器。今天,我們介紹NLP中遷移學(xué)習(xí)的最新趨勢(shì),并嘗試進(jìn)行分類任務(wù):將亞馬遜評(píng)論的數(shù)據(jù)集分類為正面或負(fù)面。
NLP中的遷移學(xué)習(xí)理念在fast.ai課程中得到了很好的體現(xiàn),我們鼓勵(lì)你查看論壇。我們這里的參考文件是??Howard,Ruder,“用于文本分類的通用語(yǔ)言模型微調(diào)”。
什么是遷移學(xué)習(xí)?
計(jì)算機(jī)視覺是一個(gè)使用遷移學(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)隊(duì)每年都參與競(jìng)爭(zhēng),以設(shè)計(jì)出最佳的圖像分類器。已經(jīng)觀察到這些模型的隱藏層能夠捕獲圖像中的一般知識(shí)(邊緣、某些形式、樣式......)。因此,每次我們想要改變?nèi)蝿?wù)時(shí),沒有必要從頭開始重新訓(xùn)練模型。
讓我們以VGG-16模型為例(Simonyan、Karen和Zisserman·“用于大規(guī)模圖像識(shí)別的非常深的卷積網(wǎng)絡(luò)。”(2014))
這種架構(gòu)比較復(fù)雜、層數(shù)多、參數(shù)數(shù)量多。作者聲稱使用4個(gè)強(qiáng)大的GPU訓(xùn)練了為3周時(shí)間。
遷移學(xué)習(xí)的想法是,由于中間層被認(rèn)為是學(xué)習(xí)圖像的一般知識(shí),我們可以將它們用作當(dāng)成比較全面的特征!我們將下載一個(gè)預(yù)先訓(xùn)練好的模型(在ImageNet任務(wù)上訓(xùn)練數(shù)周),刪除網(wǎng)絡(luò)的最后一層(完全連接的層,在ImageNet挑戰(zhàn)的1000個(gè)類上投射功能),添加put而不是我們選擇的分類器,適合我們的任務(wù)(如果我們有興趣對(duì)貓和狗進(jìn)行分類,則為二元分類器),最后僅訓(xùn)練我們的分類層。并且因?yàn)槲覀兪褂玫臄?shù)據(jù)可能與之前訓(xùn)練過的模型數(shù)據(jù)不同,我們也可以進(jìn)行微調(diào)步驟,這樣我們就能在相當(dāng)短的時(shí)間內(nèi)訓(xùn)練所有層。
除了更快地進(jìn)行訓(xùn)練之外,遷移學(xué)習(xí)特別有趣,因?yàn)閮H在最后一層進(jìn)行訓(xùn)練使我們僅使用較少的標(biāo)記數(shù)據(jù)即可,而端對(duì)端訓(xùn)練整個(gè)模型則需要龐大的數(shù)據(jù)集。標(biāo)記數(shù)據(jù)很昂貴,并且非常需要建立高質(zhì)量模型而不需要大數(shù)據(jù)集。
那么NLP中的遷移學(xué)習(xí)呢?
NLP深度學(xué)習(xí)的進(jìn)展不像計(jì)算機(jī)視覺那樣成熟。雖然可以想象機(jī)器能夠?qū)W習(xí)邊緣、圓形、正方形等形狀,然后使用這些知識(shí)做其他事情,但對(duì)于文本數(shù)據(jù)來說這些并不簡(jiǎn)單。
最初流行的在NLP中遷移學(xué)習(xí)是由嵌入模型這個(gè)詞(由word2vec和GloVe廣泛推廣)帶來的。這些單詞矢量表示利用單詞的上下文,將它們表示為向量,其中相似的單詞應(yīng)具有相似的單詞表示。
在這個(gè)圖中,來自word2vec論文,我們看到該模型能夠?qū)W習(xí)國(guó)家與其首都城市之間的關(guān)系。
包括預(yù)先訓(xùn)練的單詞向量已經(jīng)顯示出在大多數(shù)NLP任務(wù)中改進(jìn)度量,因此已經(jīng)被NLP社區(qū)廣泛采用,被用來尋找甚至更好的單詞/字符/文檔表示。與計(jì)算機(jī)視覺一樣,預(yù)訓(xùn)練的單詞向量可以被視為特征化函數(shù),轉(zhuǎn)換一組特征中的每個(gè)單詞。
但是,單詞嵌入僅代表大多數(shù)NLP模型的第一層。之后,我們?nèi)匀恍枰獜念^開始訓(xùn)練所有RNN / CNN /自定義層。
用于文本分類的語(yǔ)言模型微調(diào)
今年早些時(shí)候霍華德和羅德提出了ULMFit模型,以此來進(jìn)一步提升了遷移學(xué)習(xí)在NLP的應(yīng)用。
他們正在探索的想法是基于語(yǔ)言模型。語(yǔ)言模型是一種能夠根據(jù)已經(jīng)看到的單詞預(yù)測(cè)下一個(gè)單詞的模型(想想你的智能手機(jī)在你發(fā)短信時(shí)為你猜測(cè)下一個(gè)單詞)。就像圖像分類器通過對(duì)圖像分類來獲得圖像的內(nèi)在知識(shí)一樣,如果NLP模型能夠準(zhǔn)確地預(yù)測(cè)下一個(gè)單詞,那么說明它已經(jīng)學(xué)到了很多關(guān)于自然語(yǔ)言結(jié)構(gòu)。這些知識(shí)應(yīng)提供良好的初始化,然后可以在自定義任務(wù)上進(jìn)行訓(xùn)練!
ULMFit建議在非常大的文本語(yǔ)料庫(kù)(例如維基百科)上訓(xùn)練語(yǔ)言模型,并將其用作任何分類器的主干!由于你的文本數(shù)據(jù)可能與維基百科的編寫方式不同,因此你需要微調(diào)語(yǔ)言模型的參數(shù)以將這些差異考慮在內(nèi)。然后,我們將在此語(yǔ)言模型的頂部添加分類器層,并僅訓(xùn)練此層!
ULMfit paper
讓人驚訝的結(jié)果是,使用這種預(yù)訓(xùn)練的語(yǔ)言模型使我們能夠在更少標(biāo)記的數(shù)據(jù)上訓(xùn)練分類器!雖然未標(biāo)記的數(shù)據(jù)在網(wǎng)絡(luò)上幾乎是無限的,但標(biāo)記數(shù)據(jù)非常昂貴且耗時(shí)。
以下是他們從IMDb情緒分析任務(wù)中報(bào)告的結(jié)果:
雖然只有100個(gè)示例,它們能夠達(dá)到與使用20k示例從頭開始訓(xùn)練時(shí)模型達(dá)到的相同錯(cuò)誤率!
此外,他們還提供了代碼,以你選擇的語(yǔ)言預(yù)先訓(xùn)練語(yǔ)言模型。由于維基百科存在很多的語(yǔ)言中,因此我們可以使用維基百科數(shù)據(jù)快速?gòu)囊环N語(yǔ)言遷移到另一種語(yǔ)言。眾所周知,公共標(biāo)簽數(shù)據(jù)集更難以使用英語(yǔ)以外的語(yǔ)言進(jìn)行訪問。在這里,你可以對(duì)未標(biāo)記數(shù)據(jù)上的語(yǔ)言模型進(jìn)行微調(diào),花幾個(gè)小時(shí)手動(dòng)注釋幾百/千個(gè)數(shù)據(jù)點(diǎn),并使分類器頭部適應(yīng)你預(yù)先訓(xùn)練的語(yǔ)言模型來執(zhí)行你的任務(wù)!
?
游樂場(chǎng)與亞馬遜評(píng)論
為了改變這種方法的不足之處,我們使用為其論文中的公共數(shù)據(jù)集上進(jìn)行了嘗試。我們?cè)贙aggle上找到了這個(gè)數(shù)據(jù)集:它包含4百萬條關(guān)于亞馬遜產(chǎn)品的評(píng)論,并用積極或消極的情緒標(biāo)記它們。我們將針對(duì)ULMfit的fast.ai課程調(diào)整將亞馬遜評(píng)論分類為正面或負(fù)面。我們發(fā)現(xiàn)只需要1000個(gè)數(shù)據(jù)點(diǎn),該模型就能夠匹配通過在完整數(shù)據(jù)集上從頭開始訓(xùn)練FastText模型獲得的準(zhǔn)確度分?jǐn)?shù)。僅使用100個(gè)標(biāo)記示例,該模型仍然能夠獲得良好的性能。
要重現(xiàn)此實(shí)驗(yàn),你可以使用此筆記本,建議使用GPU來運(yùn)行微調(diào)和分類部分。
NLP中的無監(jiān)督與監(jiān)督學(xué)習(xí),圍繞意義進(jìn)行討論
使用ULMFit,我們使用了無監(jiān)督和監(jiān)督學(xué)習(xí)。訓(xùn)練無監(jiān)督的語(yǔ)言模型是“便宜的”,因?yàn)槟憧梢栽诰€訪問幾乎無限的文本數(shù)據(jù)。但是,使用監(jiān)督模型很昂貴,因?yàn)槟阈枰獙?duì)數(shù)據(jù)進(jìn)行標(biāo)記。
雖然語(yǔ)言模型能夠從自然語(yǔ)言的結(jié)構(gòu)中捕獲大量相關(guān)信息,但尚不清楚它是否能夠捕獲文本的含義,即“發(fā)送者打算傳達(dá)的信息或概念”。
你可能已經(jīng)關(guān)注了NLP中非常有趣的Twitter主題。在這個(gè)帖子中,艾米莉·本德利用“泰國(guó)房間實(shí)驗(yàn)”對(duì)她進(jìn)行了反對(duì)意義捕獲的論證:想象一下,你在一個(gè)巨大的圖書館里得到了所有泰國(guó)文學(xué)的總和。假設(shè)你還不懂泰語(yǔ),你就不會(huì)從中學(xué)到任何東西。
所以我們可以認(rèn)為語(yǔ)言模型學(xué)到的更多是語(yǔ)法而不是意義。然而,語(yǔ)言模型比僅僅預(yù)測(cè)語(yǔ)法相關(guān)的句子更好。例如,“我要吃來這臺(tái)電腦”和“我討厭這臺(tái)電腦”兩者在語(yǔ)法上都是正確的,但一個(gè)好的語(yǔ)言模型應(yīng)該能夠知道“我討厭這臺(tái)電腦”應(yīng)該比另外一句更“準(zhǔn)確”。所以,即使我看過整個(gè)泰語(yǔ)維基百科,我也無法用泰語(yǔ)寫作,但很容易看出語(yǔ)言模型確實(shí)超越了簡(jiǎn)單的語(yǔ)法/結(jié)構(gòu)理解。
我們不會(huì)在這里進(jìn)一步探討意義的概念(這是一個(gè)無窮無盡且引人入勝的話題/辯論),如果你有興趣,我們建議你看下Yejin Choi在ACL 2018的演講中是如何探討這一主題的。
NLP中遷移學(xué)習(xí)的未來
ULMFit取得的進(jìn)展推動(dòng)了NLP遷移學(xué)習(xí)的研究。對(duì)于NLP來說,這是一個(gè)激動(dòng)人心的時(shí)刻,因?yàn)槠渌⒄{(diào)語(yǔ)言模型也開始出現(xiàn),特別是FineTune Transformer LM。我們還注意到,隨著更好的語(yǔ)言模型的出現(xiàn),我們甚至可以改善這種知識(shí)遷移。
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
- 上一篇: 理解卷积神经网络的利器:9篇重要的深度学
- 下一篇: Quick BI v3.0版本全新起航—