0
本文作者: AI研習(xí)社-譯站 | 2018-06-11 14:51 |
雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題 Introducing state of the art text classification with universal language models,作者為 Jeremy Howard and Sebastian Ruder。
翻譯 | 翟修川 程添杰 整理 | 凡江
這篇文章向零基礎(chǔ)同學(xué)介紹我們最新的論文,和以前的方法相比,該論文展示了如何采用更高的精度和更少的數(shù)據(jù)自動(dòng)地進(jìn)行文檔分類。我們將使用簡單的方式解釋幾種方法:自然語言處理;文本分類;遷移學(xué)習(xí);語言模型以及如何將這些方法有機(jī)結(jié)合。如果你已經(jīng)對(duì)自然語言處理和深度學(xué)習(xí)很熟悉,那么你可以直接跳轉(zhuǎn)到自然語言分類網(wǎng)頁獲取更多的技術(shù)鏈接。
1. 簡介
現(xiàn)在,我們發(fā)布了「面向文本分類的通用語言模型微調(diào)」的論文(以下簡稱為ULMFiT:https://arxiv.org/abs/1801.06146),預(yù)訓(xùn)練的模型和完整的 Python 源代碼。在 2018 年計(jì)算語言協(xié)會(huì)年會(huì)上,該論文得到了行業(yè)內(nèi)的評(píng)議并受邀演講。相關(guān)的鏈接,包括對(duì)于該方法深入探討的視頻,所有用到的 Python 模塊,預(yù)訓(xùn)練的模型以及訓(xùn)練你自己模型的腳本,請(qǐng)參考我們的 NLP 分類頁面(http://nlp.fast.ai/category/classification.html)。
與之前的文本分類方法相比,該方法有著明顯的提升,所有的代碼和預(yù)訓(xùn)練模型允許任何人利用這種新方法更好的解決如下問題:
查找與法律案件相關(guān)的文件;
識(shí)別垃圾郵件,機(jī)器人和讓人反感的評(píng)論;
分類某種產(chǎn)品正面和負(fù)面的評(píng)論;
按政治傾向分類文章;
…...還有其他更多的問題。
那么,這項(xiàng)新技術(shù)究竟做了什么呢?首先,讓我們想瀏覽一下論文的概要部分,看看它說了什么,然后在文章的其他部分,我們逐步解析和學(xué)習(xí)它的準(zhǔn)確含義:
遷移學(xué)習(xí)以及對(duì)計(jì)算機(jī)視覺產(chǎn)生了極大的影響,但是現(xiàn)有的自然語言處理方法仍然要求從頭開始特定任務(wù)的修改和訓(xùn)練。我們提出了一種有效的遷移學(xué)習(xí)算法可以應(yīng)用于任意的自然語言處理任務(wù),并且引入對(duì)微調(diào)語言模型至關(guān)重要的方法。我們的方法在六種分類任務(wù)上優(yōu)勢明顯,可以在大多數(shù)數(shù)據(jù)集上將錯(cuò)誤率降低 18-24%。此外,這種方法僅僅使用 100 個(gè)有標(biāo)簽的樣本,實(shí)現(xiàn)的性能可以媲美從頭開始訓(xùn)練 100 倍以上數(shù)據(jù)達(dá)到的性能。
自然語言處理(NLP)是計(jì)算機(jī)科學(xué)和人工智能的一個(gè)領(lǐng)域,它指的是使用計(jì)算機(jī)來處理自然語言。自然語言是指我們每天都在交流使用的語言,比如英語或者中文,而不是專業(yè)語言,比如計(jì)算機(jī)代碼或者音樂符號(hào)。自然語言處理應(yīng)用廣泛,比如搜索,個(gè)人助手,提取總結(jié),等等??傮w而言,自然語言處理具有挑戰(zhàn)性,因?yàn)槲覀冊(cè)趯懘a的時(shí)候使用的語言并不適合自然語言的細(xì)微差別和靈活性。你可能遇到這些有限的場景而感到尷尬,比如嘗試和自動(dòng)電話應(yīng)答系統(tǒng)交流,或者和像 Siri 這樣能力有限的早期的對(duì)話機(jī)器人。
在過去的幾年,我們已經(jīng)看到了深度學(xué)習(xí)大舉進(jìn)入以前計(jì)算機(jī)鮮有成就的領(lǐng)域。深度學(xué)習(xí)不是要求程序員定義好的一組固定規(guī)則,而是使用神經(jīng)網(wǎng)絡(luò)直接從數(shù)據(jù)中學(xué)習(xí)大量的非線性關(guān)系。最值得注意的是深度學(xué)習(xí)在計(jì)算機(jī)視覺上的成功,例如 ImageNet 競賽上圖像分類的快速發(fā)展。
正如這篇的紐約時(shí)代雜志文章廣泛討論的,在自然語言處理領(lǐng)域,深度學(xué)習(xí)也有一些成功,例如自動(dòng)翻譯。成功的自然語言處理任務(wù)有一個(gè)共同點(diǎn)就是使用大量的有標(biāo)簽數(shù)據(jù)可用于模型訓(xùn)練。但是,到目前為止,這些應(yīng)用僅限于那些能夠收集和標(biāo)記龐大數(shù)據(jù)集并且能夠擁有長時(shí)間在計(jì)算機(jī)集群上處理的機(jī)構(gòu)。
奇怪的是,在分類這個(gè)領(lǐng)域,深度學(xué)習(xí)在自然語言處理仍然面臨很大挑戰(zhàn),而在這個(gè)領(lǐng)域深度學(xué)習(xí)在計(jì)算機(jī)視覺卻成績斐然。這是指將事物(例如圖片或文檔)分組(例如貓 vs 狗,或正面 vs 負(fù)面,等等)的問題。大量現(xiàn)實(shí)世界中的問題主要是分類問題,這就是為什么例如深度學(xué)習(xí)在 ImageNet 上的成功導(dǎo)致了許多的商業(yè)應(yīng)用。在自然語言處理上,當(dāng)前的方法能夠很好的識(shí)別,比如,當(dāng)一部電影的評(píng)論是證明或者負(fù)面的,這就是一個(gè)情感分析的問題。然而,一旦事物變得模糊,模型就會(huì)混亂,因?yàn)橥ǔ]有足夠的標(biāo)記數(shù)據(jù)可供學(xué)習(xí)。
我們的目標(biāo)是解決以下兩個(gè)問題:(1)在沒有大量數(shù)據(jù)或者算力的情形下解決 NLP 問題(2)使得 NLP 分類問題更容易。事實(shí)證明,我們兩個(gè)(Jeremy 和 Sebastian)從事于能夠解決這些問題的領(lǐng)域——遷移學(xué)習(xí)。遷移學(xué)習(xí)指的是,基于一個(gè)已經(jīng)訓(xùn)練好的針對(duì)某一特定問題的模型(例如基于 Imagenet 的圖片分類模型),來解決另一個(gè)相似的問題。一種常見的遷移學(xué)習(xí)方法是對(duì)原模型進(jìn)行微調(diào)(例如把 CT 掃描結(jié)果分類為癌變的和沒有癌變的——這是 Jeremy 實(shí)現(xiàn)的一個(gè)遷移學(xué)習(xí)應(yīng)用,他據(jù)此創(chuàng)建了 Enlitic 公司)。因?yàn)槲⒄{(diào)后的模型不需要從頭開始訓(xùn)練,較不使用遷移學(xué)習(xí)的模型而言,它通常能夠使用更少的數(shù)據(jù)和算力來達(dá)到較高的準(zhǔn)確率。
較為簡單的遷移學(xué)習(xí)只使用單層的參數(shù)(這被稱為嵌入),這在近些年十分流行,例如谷歌的 word2vec 嵌入。然而,實(shí)踐中完整的神經(jīng)網(wǎng)絡(luò)模型包含很多層,因此只在單層使用遷移學(xué)習(xí)并沒有觸碰到問題的本質(zhì)。
問題是,為了解決 NLP 問題,我們應(yīng)該從哪里進(jìn)行遷移學(xué)習(xí)呢?對(duì)這個(gè)問題的回答落在了 Jeremy 的手里。當(dāng)時(shí)他的朋友 Stephen Merity 發(fā)布了 AWD LSTM 語言模型,這個(gè)模型較先前的語言建模方法有巨大的改進(jìn)。語言模型是一個(gè)用于預(yù)測一句話中的下一個(gè)單詞是什么的自然語言處理模型。例如,如果你的手機(jī)鍵盤能夠預(yù)測你輸入的下一個(gè)單詞是什么,它就正在使用一個(gè)語言模型。語言模型很重要,因?yàn)橐粋€(gè)能夠較好地預(yù)測你即將要說的話的語言模型,通常具備很多的常識(shí)(例如,「I ate a hot」->「dog」;「It is a very hot」->」weather」),同時(shí)它也需要對(duì)語法、語義和其他自然語言成分有深刻的理解。而這恰恰就是我們?cè)陂喿x和分類一個(gè)文件時(shí),所下意識(shí)使用的知識(shí)。
在實(shí)踐中我們發(fā)現(xiàn),這種模式的遷移學(xué)習(xí)具備一些特點(diǎn),使其能夠成為自然語言處理領(lǐng)域遷移學(xué)習(xí)的一般方法:
能夠處理不同大小、數(shù)量和標(biāo)記類型的任務(wù)
使用相同的模型結(jié)構(gòu)和訓(xùn)練過程
不需要認(rèn)為的特征工程和預(yù)處理
不需要額外的域內(nèi)文件或標(biāo)記
這種想法已經(jīng)有人嘗試過了,但是需要數(shù)百萬的文件才能達(dá)到較好的性能。我們發(fā)現(xiàn),通過更聰明地微調(diào)我們的語言模型,就能做的更好。特別地,我們發(fā)現(xiàn),如果我們能夠控制模型訓(xùn)練的速度,并對(duì)預(yù)訓(xùn)練模型進(jìn)行更新,使其不會(huì)遺忘它先前學(xué)習(xí)的特征,從而模型能夠更好地適應(yīng)新的數(shù)據(jù)集。讓我們感到驚喜的是,我們發(fā)現(xiàn)這個(gè)模型甚至能從非常有限的樣本中學(xué)習(xí)。在一個(gè)二元的文本分類問題中,我們發(fā)現(xiàn),僅使用 100 個(gè)有標(biāo)記樣本(以及 50000 個(gè)無標(biāo)記樣本),就能達(dá)到和使用 10000 個(gè)有標(biāo)記樣本從頭開始訓(xùn)練一樣的效果。
另一個(gè)重要發(fā)現(xiàn)是,我們能夠使用任何大型語言的語料庫來創(chuàng)造一個(gè)通用的語言模型。這意味著我們能夠針對(duì)任何特定的語料庫進(jìn)行微調(diào)。我們決定使用 Stephen Merity 的 Wikitext 103 數(shù)據(jù)集,該數(shù)據(jù)集為一個(gè)經(jīng)過預(yù)處理過的英文維基百科的較大子集。
自然語言處理的研究主要集于英語,在其他的語言上訓(xùn)練模型會(huì)遇到相對(duì)應(yīng)的困難。一般來說,非英語語言的公開數(shù)據(jù)集的數(shù)量很少。如果你想要在像泰語這樣的語言上訓(xùn)練一個(gè)文本分類模型,你無疑需要自己搜集數(shù)據(jù)。在非英語語言上搜集數(shù)據(jù),通常意味著你需要自己標(biāo)注數(shù)據(jù),或者找到標(biāo)注者來處理它們,就像 Amazon Mechanical Trurk 雇傭了很多說英語的標(biāo)注者做眾包服務(wù)那樣。
有了 ULMFiT,我們就能更容易地訓(xùn)練非英語語言的文本分類模型,我們唯一需要的就是維基百科(維基百科現(xiàn)在支持 301 種語言),以及少量的能夠被手動(dòng)標(biāo)記的文件,或者額外可選的非標(biāo)記文件。為了讓建模更容易一些,我們即將發(fā)布一個(gè) model zoo,里面包含了很多語言的預(yù)訓(xùn)練模型。
我們已經(jīng)發(fā)現(xiàn)了,在相同的設(shè)定下,這種方法在很多不同的任務(wù)中表現(xiàn)良好。除了文本分類之外,還有很多重要的自然語言處理問題,例如序列標(biāo)記和自然語言生成,這些都是我們希望 ULMFiTz 在將來能夠幫助處理的問題。在完成了這些領(lǐng)域的實(shí)驗(yàn)和建模之后,我們會(huì)更新這個(gè)頁面。
遷移學(xué)習(xí)的成功,以及基于 Imagenet 的預(yù)訓(xùn)練模型的易獲得性,已經(jīng)徹底改變了計(jì)算機(jī)視覺領(lǐng)域。很多人,包括創(chuàng)業(yè)者、科學(xué)家和工程師在內(nèi),正在使用微調(diào)后的預(yù)訓(xùn)練模型來解決涉及計(jì)算機(jī)視覺的很多重大問題,包括提高非洲的作物產(chǎn)量和建造用于分類樂高積木的機(jī)器人?,F(xiàn)在,相同的工具在 NLP 領(lǐng)域也出現(xiàn)了,我們希望類似的爆炸性增長在這個(gè)領(lǐng)域也能出現(xiàn)。
盡管我們已經(jīng)展示了最先進(jìn)的文本分類結(jié)果,為了充分利用 NLP 遷移學(xué)習(xí),還有很多工作要做。在計(jì)算機(jī)視覺領(lǐng)域,已經(jīng)有很多重要的文章深度分析了遷移學(xué)習(xí)。特別地,Yosinski 等人試圖回答「深度神經(jīng)網(wǎng)絡(luò)中的特征可遷移性」問題;Hub 等人研究了「為什么 ImageNet 適合遷移」;Yosinski 甚至建立了一個(gè)可視化工具箱來幫助實(shí)踐者更好地理解他們模型中的特征(見下面的視頻)
如果你在一個(gè)新的問題或數(shù)據(jù)集上嘗試了 ULMFiT 模型,我們十分高興能夠聽到這個(gè)消息!訪問深度學(xué)習(xí)論壇(deep learning forums),告知我們進(jìn)展如何(如果在建模過程中遇到了問題,務(wù)必讓我們知曉)。
原文鏈接:http://nlp.fast.ai/classification/2018/05/15/introducting-ulmfit.html
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。