本文介紹了面向NLP任務(wù)的遷移學(xué)習(xí)新模型ULMFit,只需使用極少量的標(biāo)記數(shù)據(jù),文本分類精度就能和數(shù)千倍的標(biāo)記數(shù)據(jù)訓(xùn)練量達(dá)到同等水平。在數(shù)據(jù)標(biāo)記成本高數(shù)量少的情況下,這個通用語言微調(diào)模型可以大幅降低你的NLP任務(wù)訓(xùn)練時間和成本。
在本文中,我們將介紹自然語言處理(NLP)在遷移學(xué)習(xí)上的最新應(yīng)用趨勢,并嘗試執(zhí)行一個分類任務(wù):使用一個數(shù)據(jù)集,其內(nèi)容是亞馬遜網(wǎng)站上的購物評價,已按正面或負(fù)面評價分類。然后在你可以按照這里的說明,用你自己的數(shù)據(jù)重新進(jìn)行實驗。
遷移學(xué)習(xí)模型的思路是這樣的:既然中間層可以用來學(xué)習(xí)圖像的一般知識,我們可以將其作為一個大的特征化工具使用。下載一個預(yù)先訓(xùn)練好的模型(模型已針對ImageNet任務(wù)訓(xùn)練了數(shù)周時間),刪除網(wǎng)絡(luò)的最后一層(完全連接層),添加我們選擇的分類器,執(zhí)行適合我們的任務(wù)(如果任務(wù)是對貓和狗進(jìn)行分類,就選擇二元分類器),最后僅對我們的分類層進(jìn)行訓(xùn)練。
由于我們使用的數(shù)據(jù)可能與之前訓(xùn)練過的模型數(shù)據(jù)不同,我們也可以對上面的步驟進(jìn)行微調(diào),以在相當(dāng)短的時間內(nèi)對所有的層進(jìn)行訓(xùn)練。
除了能夠更快地進(jìn)行訓(xùn)練之外,遷移學(xué)習(xí)也是特別有趣的,僅在最后一層進(jìn)行訓(xùn)練,讓我們可以僅僅使用較少的標(biāo)記數(shù)據(jù),而對整個模型進(jìn)行端對端訓(xùn)練則需要龐大的數(shù)據(jù)集。標(biāo)記數(shù)據(jù)的成本很高,在無需大型數(shù)據(jù)集的情況下建立高質(zhì)量的模型是很可取的方法。
遷移學(xué)習(xí)NLP的尷尬
目前,深度學(xué)習(xí)在自然語言處理上的應(yīng)用并沒有計算機(jī)視覺領(lǐng)域那么成熟。在計算機(jī)視覺領(lǐng)域中,我們可以想象機(jī)器能夠?qū)W習(xí)識別邊緣、圓形、正方形等,然后利用這些知識去做其他事情,但這個過程對于文本數(shù)據(jù)而言并不簡單。
最初在NLP任務(wù)中嘗試遷移學(xué)習(xí)的趨勢是由“嵌入模型”一詞帶來的。
實驗證明,事先將預(yù)先訓(xùn)練好的詞向量加入模型,可以在大多數(shù)NLP任務(wù)中改進(jìn)結(jié)果,因此已經(jīng)被NLP社區(qū)廣泛采用,并由此繼續(xù)尋找質(zhì)量更高的詞/字符/文檔表示。與計算機(jī)視覺領(lǐng)域一樣,預(yù)訓(xùn)練的詞向量可以被視為特征化函數(shù),轉(zhuǎn)換一組特征中的每個單詞。
不過,詞嵌入僅代表大多數(shù)NLP模型的第一層。之后,我們?nèi)匀恍枰獜念^開始訓(xùn)練所有RNN / CNN /自定義層。
高階方法:微調(diào)語言模型,在上面加一層分類器
今年早些時候,Howard和Ruder提出了ULMFit模型作為在NLP遷移學(xué)習(xí)中使用的更高級的方法(論文地址:https://arxiv.org/pdf/1801.06146.pdf)。
他們的想法是基于語言模型(Language Model)。語言模型是一種能夠根據(jù)已經(jīng)看到的單詞預(yù)測下一個單詞的模型(比如你的智能手機(jī)在你發(fā)短信時,可以為你猜測下一個單詞)。就像圖像分類器通過對圖像分類來獲得圖像的內(nèi)在知識一樣,如果NLP模型能夠準(zhǔn)確地預(yù)測下一個單詞,似乎就可以說它已經(jīng)學(xué)會了很多關(guān)于自然語言結(jié)構(gòu)的知識。這些知識可以提供高質(zhì)量的初始化狀態(tài),然后針對自定義任務(wù)進(jìn)行訓(xùn)練。
ULMFit模型一般用于非常大的文本語料庫(如維基百科)上訓(xùn)練語言模型,并將其作為構(gòu)建任何分類器的基礎(chǔ)架構(gòu)。由于你的文本數(shù)據(jù)可能與維基百科的編寫方式不同,因此你可以對語言模型的參數(shù)進(jìn)行微調(diào)。然后在此語言模型的頂部添加分類器層,僅僅對此層進(jìn)行訓(xùn)練。
Howard和Ruder建議向下逐層“解凍”,逐步對每一層進(jìn)行訓(xùn)練。他們還在之前關(guān)于學(xué)習(xí)速度(周期性學(xué)習(xí))的研究成果基礎(chǔ)上,提出了他們自己的三角學(xué)習(xí)速率(triangular learning rates)。
用100個標(biāo)記數(shù)據(jù),達(dá)到用20000個標(biāo)記數(shù)據(jù)從頭訓(xùn)練的結(jié)果
這篇文章得出的神奇結(jié)論是,使用這種預(yù)訓(xùn)練的語言模型,讓我們能夠在使用更少的標(biāo)記數(shù)據(jù)的情況下訓(xùn)練分類器。盡管網(wǎng)絡(luò)上未標(biāo)記的數(shù)據(jù)幾乎是無窮無盡的,但標(biāo)記數(shù)據(jù)的成本很高,而且非常耗時。
下圖是他們從IMDb情感分析任務(wù)中報告的結(jié)果:
該模型只用了100個示例進(jìn)行訓(xùn)練,錯誤率與20000個示例從頭到尾進(jìn)行完全訓(xùn)練的模型相仿。
此外,他們在文中還提供了代碼,讀者可以自選語種,對語言模型進(jìn)行預(yù)訓(xùn)練。由于維基百科上的語言多種多樣,因此我們可以使用維基百科數(shù)據(jù)快速完成語種的轉(zhuǎn)換。眾所周知,公共標(biāo)簽數(shù)據(jù)集更難以使用英語以外的語言進(jìn)行訪問。在這里,你可以對未標(biāo)記數(shù)據(jù)上的語言模型進(jìn)行微調(diào),花幾個小時對幾百個至幾千個數(shù)據(jù)點進(jìn)行手動標(biāo)注,并使分類器頭適應(yīng)您預(yù)先訓(xùn)練的語言模型,完成自己的定制化任務(wù)。
為了加深對這種方法的理解,我們在公共數(shù)據(jù)集上進(jìn)行了嘗試。我們在Kaggle上找了一個數(shù)據(jù)集。它包含400萬條關(guān)于亞馬遜產(chǎn)品的評論,并按積極/消極情緒(即好評和差評)加上了標(biāo)記。我們用ULMfit模型對這些評論按好評/差評進(jìn)行分類。結(jié)果發(fā)現(xiàn),該模型用了1000個示例,其分類準(zhǔn)確度已經(jīng)達(dá)到了在完整數(shù)據(jù)集上從頭開始訓(xùn)練的FastText模型的水平。甚至在僅僅使用100個標(biāo)記示例的情況下,該模型仍然能夠獲得良好的性能。
所以,語言模型了解的是語法還是語義?
我們使用ULMFit模型進(jìn)行了監(jiān)督式和無監(jiān)督式學(xué)習(xí)。訓(xùn)練無監(jiān)督的語言模型的成本很低,因為您可以在線訪問幾乎無限數(shù)量的文本數(shù)據(jù)。但是,使用監(jiān)督模型就很昂貴了,因為需要對數(shù)據(jù)進(jìn)行標(biāo)記。
雖然語言模型能夠從自然語言的結(jié)構(gòu)中捕獲大量相關(guān)信息,但尚不清楚它是否能夠捕捉到文本的含義,也就是“發(fā)送者打算傳達(dá)的信息或概念”或能否實現(xiàn)“與信息接收者的交流”。
我們可以這樣認(rèn)為,語言模型學(xué)到的更多是語法而不是語義。然而,語言模型比僅僅預(yù)測語法的模型表現(xiàn)更好。比如,“I eat this computer“(我吃這臺電腦)和“I hate this computer”(我討厭這臺電腦),兩句話在語法上都是正確的,但表現(xiàn)更優(yōu)秀的語言模型應(yīng)該能夠明白,第二句話比第一句話更加“正確”。語言模型超越了簡單的語法/結(jié)構(gòu)理解。因此,我們可以將語言模型視為對自然語言句子結(jié)構(gòu)的學(xué)習(xí),幫助我們理解句子的意義。
由于篇幅所限,這里就不展開探討語義的概念(盡管這是一個無窮無盡且引人入勝的話題)。如果你有興趣,我們建議你觀看Yejin Choi在ACL 2018上的演講,深入探討這一主題。
微調(diào)遷移學(xué)習(xí)語言模型,大有前景
ULMFit模型取得的進(jìn)展推動了面向自然語言處理的遷移學(xué)習(xí)研究。對于NLP任務(wù)來說,這是一個激動人心的事情,其他微調(diào)語言模型也開始出現(xiàn),尤其是微調(diào)遷移語言模型(FineTuneTransformer LM)。
我們還注意到,隨著更優(yōu)秀的語言模型的出現(xiàn),我們甚至可以完善這種知識遷移。高效的NLP框架對于解決遷移學(xué)習(xí)的問題是非常有前景的,尤其是對一些常見子詞結(jié)構(gòu)的語言,比如德語,經(jīng)過詞級訓(xùn)練的語言模型的表現(xiàn)前景非常好。
怎么樣?趕緊試試吧~
-
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1236瀏覽量
26184 -
nlp
+關(guān)注
關(guān)注
1文章
491瀏覽量
23278 -
遷移學(xué)習(xí)
+關(guān)注
關(guān)注
0文章
74瀏覽量
5850
原文標(biāo)題:只有100個標(biāo)記數(shù)據(jù),如何精確分類400萬用戶評論?
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
介紹用遷移學(xué)習(xí)處理NLP任務(wù)的大致思路
遷移學(xué)習(xí)
NLP多任務(wù)學(xué)習(xí)案例分享:一種層次增長的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
一個深度學(xué)習(xí)模型能完成幾項NLP任務(wù)?
NLP中的深度學(xué)習(xí)技術(shù)概述
8個免費學(xué)習(xí)NLP的在線資源
遷移學(xué)習(xí)與模型預(yù)訓(xùn)練:何去何從
NLP遷移學(xué)習(xí)面臨的問題和解決
如何利用機(jī)器學(xué)習(xí)思想,更好地去解決NLP分類任務(wù)
基于遷移學(xué)習(xí)的駕駛分心行為識別模型
如何實現(xiàn)更綠色、經(jīng)濟(jì)的NLP預(yù)訓(xùn)練模型遷移
遷移學(xué)習(xí)Finetune的四種類型招式
NLP中的遷移學(xué)習(xí):利用預(yù)訓(xùn)練模型進(jìn)行文本分類
一文詳解遷移學(xué)習(xí)
面向NLP任務(wù)的遷移學(xué)習(xí)新模型ULMFit
評論