自然語言處理的ImageNet時刻已經到來!

詞向量(word vectors)是自然語言處理的核心表徵(representation)技術,它長期統治着自然語言處理領域。然而,現在出現了一系列令人振奮的挑戰者:ELMo、ULMFiT 和 OpenAI Transformer。它們都證明了預訓練語言模型可以在各種自然語言處理任務中取得最佳的結果。這些方法的出現預示着一個分水嶺時刻的到來:這些預訓練語言模型可能會在自然語言處理領域造成廣泛的影響,正如 ImageNet 預訓練模型在計算機視覺中所造成的影響一樣。

更多幹貨內容請關注微信公衆號“AI前線”(ID:ai-front)

image

自然語言處理(NLP)領域正在發生一些鉅變。

詞向量(word vectors)是自然語言處理的核心表徵(representation)技術,它長期統治着自然語言處理領域。然而,現在出現了一系列令人振奮的挑戰者:ELMo[1]、ULMFiT[2] 和 OpenAI Transformer[3]。這些工作都成爲了新聞頭條,因爲它們都證明了預訓練語言模型可以在各種自然語言處理任務中取得最佳的結果。這些方法的出現預示着一個分水嶺時刻的到來:這些預訓練語言模型可能會在自然語言處理領域造成廣泛的影響,正如 ImageNet 預訓練模型在計算機視覺中所造成的影響一樣。

從淺層到深度預訓練

預訓練的詞向量已經引領自然語言處理很長時間。Word2vec[4]在 2013 年被作爲一個近似的語言建模模型而提出。當時,硬件速度比現在要慢很多,並且深度學習模型也還沒有得到廣泛的支持,Word2vec 憑藉着自身的效率和易用性被採用。從那時起,實施NLP項目的標準方法基本上就沒變過:通過 Word2vec 和 GloVe[5] 等算法在大量未標註的數據上進行預訓練獲得詞嵌入向量(word embedding),然後把詞嵌入向量用於初始化神經網絡的第一層,而網絡的其它部分則是根據特定的任務,利用其餘的數據進行訓練。在大多數訓練數據有限的任務中,這種做法能夠使準確率提升 2 到 3 個百分點[6]。不過,儘管這些預訓練的詞嵌入向量具有極大的影響力,但是它們存在一個主要的侷限:它們只將先前的知識納入模型的第一層,而網絡的其餘部分仍然需要從頭開始訓練。

image

由 word2vec 捕捉到的關係(來源:TensorFlow 教程)

Word2vec 以及相關的其它方法屬於淺層方法,這是一種以效率換表達力的做法。使用詞嵌入向量就像使用僅對圖像邊緣進行編碼的預訓練表徵來初始化計算機視覺模型,儘管這種做法對許多任務都是有幫助的,但是卻無法捕捉到那些也許更有用的高層次信息。採用詞嵌入向量初始化的模型需要從頭開始學習,模型不僅要學會消除單詞歧義,還要理解單詞序列的意義。這是語言理解的核心內容,它需要對複雜的語言現象建模,例如語義合成性(compositionality)、多義性(polysemy)、指代(anaphora)、長期依賴(long-term dependencies)、一致性(agreement)和否定(negation)等。因此,使用這些淺層表徵初始化的自然語言處理模型仍然需要大量的訓練樣本,才能獲得良好的性能。

ULMFiT、ELMo 和 OpenAI Transformer 最新進展的核心在於關鍵範式的轉變:從只初始化模型的第一層轉向了使用分層表徵(hierarchical representations)預訓練整個模型。如果把學習單詞向量比作計算機視覺中學習圖像邊緣,那麼這些新方法就像學習圖像特徵的完整層次結構一樣,從邊緣到形狀,再到高級語義概念。

有趣的是,計算機視覺(computer vision,CV)社區已經採用預訓練模型許多年,這些預訓練首先是針對整個模型的,其次它們同時學到了低層級和高層級特徵。大多數情況下,預訓練是通過在大型 ImageNet 數據庫上學習圖像分類來實現的。現如今, ULMFiT、ELMo 和 OpenAI Transformer 相當於給自然語言處理社區帶來了“語言任務的 ImageNet”,也就使得模型能夠學習到文本中更高層次的細微差別,這類似於 ImageNet 上的預訓練使得計算機視覺模型學習到了圖像的通用特徵。在本文的剩餘部分,我們將通過擴展和構建與 ImageNet 的類比,來解釋爲何這些新方法看起來如此有前途。

ImageNet

image

ImageNet大規模圖像識別挑戰賽(來源 Xavier Giro-o-Nieto)

ImageNet對機器學習研究過程的影響怎麼強調也不過分。該數據集最初發佈於 2009 年,並迅速演變爲 ImageNet 大規模視覺識別挑戰賽(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)。2012 年,Alex Krizhevsky
、Ilya Sutskever 和 Geoffrey Hinton 提交的深度神經網絡[7]模型預測結果比第二名高出了 41%,這表明了深度學習是一種可行的機器學習策略,並且可能會引發機器學習研究中深度學習的爆炸式增長。

ImageNet 的成功表明,在深度學習時代,數據與算法是同等重要的。不僅僅是因爲 ImageNet 在 2012 年給了深度學習證明自己的機會,而且還在遷移學習中實現了同等重要的突破:研究人員很快意識到,可以使用 ImageNet 最佳模型學習到的權重來初始化其它任務的模型,儘管數據集不同,但是這對模型性能的提高依然有很大的幫助。這種微調(fine-tunning)的方法可以實現很好的效果,甚至每個類別有一個正樣本就足夠了(Donahue等,2014[8])。

image

在 ILSVRC-2012 上訓練的特徵泛化到 SUN-397 數據集(來源Donahue et al., 2014)
預訓練的 ImageNet 模型已經被用於諸如物體檢測(object detection)[9]、語義分割(semantic segmentation)[10]、人體姿態估計(human pose estimation)[11]和視頻識別(video recognition)[12]等任務中,並且都取得了最佳的結果。同時,這些預訓練模型也使得深度學習得以應用到訓練樣本數量較少且標註成本很高的領域。通過在 ImageNet 上預訓練的遷移學習是如此地有效,以至於現如今在計算機視覺領域如果不這麼做反而被認爲是在蠻幹(Mahajan等,2018[13])。

揭祕 ImageNet

爲了確定一個語言任務中的 ImageNet 是什麼樣的,我們首先要識別出是什麼特性使得 ImageNet 適合遷移學習。早期的研究[14]僅僅揭開了這個問題的冰山一角:減少每個類別的樣例數量或者類別數量僅會導致性能的微小下降,而細粒度類別(fine-grained classes)和更多的數據並不總是對模型有益。

和直接查看數據相比,探究訓練出的模型到底學到了什麼更加明智。衆所周知,在 ImageNet 上訓練出來的深度神經網絡特徵有一個特點,即從網絡的第一層到最後一層,特徵逐漸由通用轉向了特殊(特定於任務)[15]。網絡的較低層學習對諸如邊緣這樣的低級特徵進行建模,而較高層則對圖像較高級的概念進行建模,例如如下圖所示的模式和所有的部分或物體[16]。重要的是,關於邊緣、結構和物體的視覺組成等知識對於很多計算機視覺任務都很重要,這揭示了爲何這些網絡層可以遷移。因此,一個類 ImageNet 數據集的關鍵屬性是,要能促使模型學習那些可以推廣到該問題領域中其它任務的特徵。

image

GoogLeNet 不同層特徵所捕捉到的信息的可視化顯示(來源: Distill)
除此之外,很難再進一步概括爲什麼 ImageNet 的遷移能力會如此強大。例如,ImageNet 數據集的另一個優點是高質量的數據。ImageNet 的創建者竭盡全力地保證了標註的可靠性和一致性。然而,作爲一種對比,遠程監控領域的工作表明,大量弱標籤數據通常情況下也足夠了。事實上,Facebook 的研究人員最近表示,他們可以通過預測數十億社交媒體圖像的話題標籤來預訓練模型,並且該模型還可以在 ImageNet 上取得最佳的準確率。

這些就是所有我們能得到的具體洞察。由此我們總結出了兩個關鍵需求:

  • 一個類 ImageNet 數據集應該足夠大,比如擁有數百萬個訓練樣例。
  • 它應該代表着該學科的問題空間。

語言任務的 ImageNet

在自然語言處理中,模型深度通常都要比對應的計算機視覺模型更淺一些。因此,對特徵的分析大多集中在第一個嵌入層上,而針對遷移學習中更高嵌入層性質的研究工作少之又少。我們來看一下那些足夠大的數據集,這些數據集滿足了剛纔提到的需求點#1。就目前自然語言處理的現狀來看,有以下幾個競爭數據集[17]。

閱讀理解(Reading comprehension)是一項根據指定文本回答自然語言問題的任務。這項任務最受歡迎的數據集是斯坦福問答數據集(Stanford Question Answering Dataset,SQuAD)[18],它包含了10 萬多個問答對(question-answering pairs),並且要求模型以在文本中高亮顯示答案的方式回答問題,如下圖所示:

image

SQuAD 數據集中一個樣例文本中的問答對(來源:Rajpurkar et al., 2016)

自然語言推理(Natural language inference )的目標是識別出一段文本和一個假設之間的關係(蘊含、矛盾和中立)。斯坦福自然語言推理(SNLI,全名是Stanford Natural Language Inference)語料庫[19]是這項任務最受歡迎的數據集之一。它包含57萬個由人類書寫的英語句子對。數據集的樣例展示如下:

image

來自 SNLI 數據集的樣例(Bowman et al., 2015)
機器翻譯(Machine translation)就是將一種語言的文本翻譯成另一種語言的文本,它是自然語言處理領域研究最多的任務之一。並且多年以來,已經爲主流語言積累了大量的訓練樣本對,比如,WMT 2014 中的 4 千萬個英語-法語句子對。下圖給出了兩個翻譯樣例:

image

來自 newstest2014 的法語轉英語翻譯(Artetxe et al., 2018)
成分分析(constituency parsing)試圖以(線性化的)成分分析樹(constituency parse tree)的形式提取句子的句法結構,如下圖所示。過去,數百萬弱標籤的分析【20】已經被用於訓練該任務的sequence-to-sequence模型。

image

一棵分析樹及其線性化表示(Vinyals et al., 2015)


語言建模(Language modeling, LM)旨在根據上一個單詞預測出下一個單詞。現有的基準數據集包含多達 10 億個單詞,但是由於該任務是無監督的,所以可以使用任意數量的單詞進行訓練。下面的樣例來自一個流行的數據集WikiText-2,該數據集由維基百科文章組成。

image

WikiText-2 語言建模數據集的樣例(來源:Salesforce)
所有這些任務都提供了或者允許收集足夠多的訓練樣本。事實上,最近幾個月內上述任務[21][22][23](以及許多其它任務,諸如情緒分析[24]、成分分析[25]、skip-thoughts[26]和自動編碼[27])已經被應用於預訓練表徵。

雖然任何數據集都會存在一定的偏差(bias)[28],但是人類標註員可能會無意中引入一些模型可以利用的其它信號。最近的研究[29][30]表明,閱讀理解和自然語言推理等任務的最佳模型,並沒有表現出對自然語言的深刻理解,而僅僅是利用這些線索詞(cue)實現了淺層的模式匹配。例如,Gururangan et al. (2018) [31]表明,標註員傾向於簡單地通過刪除性別或數字信息來產生蘊含樣本,並通過引入否定來產生矛盾樣本。對於大約 67% 的 SNLI 數據集,簡單地利用這些線索詞的模型不用查看上述各項(premise)就可以正確地對假設進行分類。

因此,更難回答的問題是:哪種任務最能代表自然語言處理的問題空間?換句話說,哪種任務可以使得我們學習到理解自然語言所需的大部分知識或關係?

語言建模案例

爲了預測句子中最可能的下一個單詞,模型不僅需要能夠表達語法(被預測單詞的語法形式必須與其修飾語或動詞匹配),還需要能夠表達模型語義。更進一步,最準確的模型必須包含世界知識或者說常識。考慮一個不完整的句子,“服務很差,但是食物很”,爲了預測後續的單詞,如“美味”或“可口”,模型不僅要記住哪些屬性用於描述食物,還要能夠識別出連接詞“但是”引入了轉折,以便預測的新屬性具有和“差”相反的情感(sentiment)。

最後一種方法提到的語言建模已經被證明可以捕獲與下游任務相關的許多知識,例如長期依賴[32]、層次關係[33]和情感[34]。與諸如skip-thoughts 和自動編碼這些相關的無監督任務相比,語言建模在語法任務上的表現更出色,即使是使用了更少的訓練數據。

語言建模的最大優勢之一是訓練數據可以從任意的文本語料庫免費得到,並且其數量可能是無限的。這一點尤其重要,因爲自然語言理解不僅涉及英語,世界上的語言有4500種之多。作爲預訓練任務的語言建模,爲那些之前資源不足的語言模型開發打開了一扇大門。對於資源非常匱乏的語言,有可能未標註數據也非常少,而多語言模型(multilingual language models)可以同時在多個相關的語言上進行訓練,這類似於跨語言嵌入(cross-lingual embeddings)向量[35]。

image

ULMFiT 的不同階段(來源:Howard and Ruder, 2018)

到目前爲止,我們將語言建模作爲預訓練任務的論據純粹是概念性的。預訓練語言模型最初是在2015[36]年提出的,但是人們一直不清楚單個預訓練語言模型是否對多個任務有用。 最近幾個月,我們終於獲得了一些強有力的實證證據:語言模型嵌入(Embeddings from Language Models, ELMo)、通用語言模型微調(Universal Language Model Fine-tuning, ULMFiT)和 OpenAI Transformer 已經通過實證證明了語言建模可以用於預訓練,就像上圖顯示的那樣。這三種方法都採用了預訓練語言模型來取得自然語言處理中各種任務的最佳效果,這些任務包括文本分類、問答、自然語言推理、共指消除(coreference resolution)、序列標記(sequence labeling)等等。

在許多情況下(例如下圖中的 ELMo),它在各個主流的研究基準中比最佳成績提升了 10%~20%,所有這些都採用了一個核心方法——使用預訓練語言模型。此外,ELMo 還獲得了 NAACL-HLT 2018 最佳論文獎,這是該領域的頂級會議之一。最後,這些模型已經被證明具有極高的採樣效率,只需數百個樣本就可以實現很好的性能,甚至可以實現零樣本(zero-shot)學習。

image

改進的 ELMo 模型在多個自然語言處理任務上取得的提升(來源: Matthew Peters)
鑑於這個重大變化,未來一年的時間內,自然語言處理從業者很可能在自己的模型中使用預訓練的語言模型,而不是預訓練的詞嵌入向量。這就類似於預訓練的 ImageNet 模型是當今大多數計算機視覺任務的起點。

然而,類似於 word2vec,語言建模任務也具有自身的侷限性:它只是真正語言理解的替代品,並且一個單體模型不足以捕獲某些下游任務所需的信息。例如,爲了回答或者跟蹤故事中角色的發展軌跡,模型需要學會處理指代或共指消除。此外,語言模型只能捕捉到它們所看到的內容。某些類型的信息,例如大多數常識信息,很難通過文本本身學到[37],而需要結合額外的信息。

一個關鍵的問題是,如何將信息從預訓練的語言模型遷移到下游任務中。對於這個問題,有兩個主要範式:一種是像ELMo那樣將預訓練的語言模型用作固定的特徵提取器,並將其表徵作爲特徵結合到一個隨機初始化的模型中;另一種是像 ULMFiT一樣選擇微調整個語言模型。後一種微調的策略在計算機視覺中比較典型,這種策略會將模型的最頂層或者頂部的若干層進行微調。不過自然語言處理模型深度通常更淺,因此需要與計算機視覺不同的微調策略,而最近,預訓練模型正在變得越來越深。在接下來的幾個月裏,我們將看到遷移學習的各個核心組件對自然語言處理的影響:一個富有表現力的語言模型編碼器,比如深度 BiLSTM 或者 Transformer 模型;用於預訓練的數據數量和質量;用於微調預訓練模型的方法。

理論支持

到目前爲止,我們的分析主要是概念性和經驗性的,因爲人們仍然沒有很好地理解爲什麼在 ImageNet 以及接下來的語言建模上訓練出的模型具有如此好的遷移能力。基於偏差學習(Bias learning, Baxter, 2000)[38]模型探索預訓練模型泛化能力更加規範。假定我們的問題領域涵蓋了構成我們的環境的特定學科(例如計算機視覺)中任務的所有排列。我們獲得了大量的數據集,使得我們能夠導出一系列假設。image。我們在偏差學習中的目標就是找到一個偏差,即一個假設空間圖片: image,使性能在整個(可能是無限的)環境中最大化。

多任務學習中的經驗和理論結果(Caruana, 1997; Baxter, 2000)[39][40]表明,在足夠多的任務中學到的偏差可能可以推廣到從同一環境中得出的其它未知任務。從多任務學習的角度來看,在 ImageNet 上訓練的模型學習了大量的二分類任務(一個任務對應一個類別)。這些任務都是來自自然、真實的圖像,可能代表了許多其它的計算機視覺任務。同樣,一個語言模型(通過學習大量分類任務得到,一個任務對應一個單詞)導出的表徵,可能會有助於自然語言處理領域中許多其它的任務。儘管如此,要完全從理論上理解爲什麼語言建模對遷移學習如此有效,還需要更多的研究。

ImageNet時刻

實用性的遷移學習進入自然語言處理領域的時機已經成熟。鑑於 ELMo、ULMFiT 和 OpenAI 的工作取得的令人印象深刻的實驗結果,要使自然語言處理的從業人員放棄使用預訓練的詞嵌入向量,而改用預訓練的語言模型,似乎只是個時間問題。這一變化也許會爲那些受限於數據數量的自然語言處理任務開啓許多新的應用。舊時代已遠去,ImageNet時刻已經到來!

關於作者

Sebastian Ruder在 Insight Research Centre for Data Analytics攻讀自然語言處理與深度學習方向的博士學位,還有一年畢業。同時他也是都柏林自然語言處理創業公司 AYLIEN 的科學家。他的主要興趣在自然語言處理中的遷移學習以及如何使機器學習更易用。他在頂級的自然語言處理會議上以第一作者發表過多篇論文,同時也是 ULMFiT 的共同作者;你可以通過他的網站或Twitter瞭解有關他的更多信息。

英文原文:
https://thegradient.pub/nlp-imagenet/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章