0
雷鋒網 AI 科技評論按:對于計算機視覺領域的研究人員、產品開發(fā)人員來說,在 ImageNet 上預訓練模型然后再用自己的任務專用數(shù)據(jù)訓練模型已經成了慣例。但是自然語言處理領域的研究人員和開發(fā)人員們似乎并不是這樣做的 —— 等等,也許 NLP 領域的「ImageNet 時代」馬上就要帶來了。
本文的作者是 Sebastian Ruder,主攻方向是自然語言處理與深度學習,他是 Insight 數(shù)據(jù)分析研究中心的博士生,同時也是都柏林自然語言處理創(chuàng)業(yè)公司 AYLIEN 的科學家,他在自然語言處理相關的頂會上發(fā)表過多篇一作文章,同時也是 ULMFiT 的共同作者;他的個人博客是 http://ruder.io/。雷鋒網 AI 科技評論根據(jù)原文進行了編譯。
在自然語言處理(NLP)的領域里,一些巨變正在悄然發(fā)生。
作為自然語言處理的核心特征表示技術,詞向量(Word vectors)長期統(tǒng)治著自然語言處理領域,但是它最近卻面臨著一系列強有力的挑戰(zhàn):ELMo、ULMFiT 和 OpenAI Transformer。這些工作無一例外都成為了新聞頭條,因為它們都證明了自己的預訓練語言模型可以在各種自然語言處理任務中取得最佳的結果。這些方法的出現(xiàn)預示著一個分水嶺時刻的到來了:這些預訓練語言模型有可能會在自然語言處理領域造成巨大而廣泛的影響,正如 ImageNet 預訓練模型在計算機視覺中所造成的影響一樣。
預訓練的詞向量已經統(tǒng)治了自然語言處理領域相當長一段時間。Word2vec 在 2013 年被作為語言建模的近似而提出,當時硬件速度比現(xiàn)在要慢,而且深度學習模型也還沒有得到廣泛的應用,此時 Word2vec 憑借著自身的效率和易用性得以脫穎而出。從那時起,自然語言處理研究的標準方法就基本保持不變:通過 Word2vec 和 GloVe 等算法在大量未標注的數(shù)據(jù)上預訓練獲得詞嵌入向量,然后詞嵌入向量將被用于初始化神經網絡的第一層,而網絡的其它部分則是根據(jù)特定的任務,利用其余的數(shù)據(jù)進行訓練。在大多數(shù)訓練數(shù)據(jù)有限的任務中,這種做法能夠使準確率提升 2 到 3 個百分點。不過盡管這些預訓練的詞嵌入向量具有極大的影響力,但是它們存在一個主要的局限:它們只將先前的知識納入模型的第一層,而網絡的其余部分仍然需要從頭開始訓練。
由 word2vec 捕捉到的關系(來源:TensorFlow 教程)
Word2vec 以及相關的其它方法屬于淺層方法,這是一種以效率換表達力的做法。使用詞嵌入向量就像使用那些僅僅編碼了圖像邊緣信息的預訓練特征表示向量,來初始化計算機視覺模型,盡管這種做法對許多任務都是有幫助的,但是卻無法捕捉到那些也許更有用的高層次信息。采用詞嵌入向量初始化的模型需要從頭開始學習,模型不僅要學會消除單詞歧義,還要理解單詞序列的意義。這是語言理解的核心內容,它需要建模復雜的語言現(xiàn)象,例如語義合成性、多義性、指代、長期依賴、一致性和否定等等。因此,使用這些淺層表示初始化的自然語言處理模型仍然需要大量的訓練樣本,才能獲得良好的性能。
而新晉挑戰(zhàn)者 ULMFiT、ELMo 和 OpenAI Transformer 的核心在于關鍵范式的轉變:從只初始化模型的第一層轉向了使用分層表征(Hierarchical representations)預訓練整個模型。如果把學習單詞向量比作計算機視覺中學習圖像邊緣,那么這些新方法就像學習圖像特征的完整層次結構一樣,從邊緣到形狀,再到高級語義概念。
有趣的是,計算機視覺社區(qū)已經采用預訓練模型許多年,這些預訓練首先是針對整個模型的,其次它們同時學到了低層級和高層級特征。大多數(shù)情況下,預訓練是通過在大型 ImageNet 數(shù)據(jù)庫上學習圖像分類來實現(xiàn)的。現(xiàn)今 ULMFiT、ELMo 和 OpenAI Transformer 相當于給自然語言處理社區(qū)帶來了「語言任務的 ImageNet」,也就使得模型能夠學習到文本中更高層次的細微差別;這類似于 ImageNet 上的預訓練使得計算機視覺模型學習到了圖像的通用特征。在本文的剩余部分,我們將通過擴展和構建 ImageNet 的類比,來解釋為何這些新方法看起來如此有前途。
ImageNet 是一個大規(guī)模圖像識別挑戰(zhàn)賽
毫不夸張地說,ImageNet 對機器學習研究過程的影響是巨大的。該數(shù)據(jù)集最初發(fā)布于 2009 年,并迅速演變?yōu)?ImageNet 大規(guī)模視覺識別挑戰(zhàn)賽(ILSVRC)。2012 年,Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 提交的深度神經網絡模型預測結果比第二名高出了 41%,這表明了深度學習是一種可行的機器學習策略,并暗示了機器學習研究中深度學習即將迎來爆炸性增長。
ImageNet 的成功表明,在深度學習時代,數(shù)據(jù)與算法是同等重要的。不僅僅是因為 ImageNet 在 2012 年給予了深度學習證明自己的機會,而且還在遷移學習中實現(xiàn)了類似的重要性突破:研究人員很快意識到可以使用 ImageNet 最佳模型學習到的權重來初始化其它任務的模型,并且盡管數(shù)據(jù)集不同,但是這對模型性能提高依然有很大的幫助。這種「微調(fine-tunning)」的方法可以實現(xiàn)很好的效果,甚至每個類別給出一個正樣本就足夠了(https://arxiv.org/abs/1310.1531 )。
在 ILSVRC-2012 上訓練的特征可以泛化到 SUN-397 數(shù)據(jù)集上
預訓練的 ImageNet 模型已經被用于諸如物體檢測、語義分割、人體姿態(tài)估計和視頻識別等任務中,并且都取得了最佳的結果。同時,這些預訓練模型也使得深度學習得以應用到訓練樣本數(shù)量較少且標注昂貴的領域。通過在 ImageNet 上預訓練的遷移學習是如此地有效,以至于現(xiàn)今在計算機視覺領域如果不這么做反而被認為是在蠻干(https://arxiv.org/abs/1805.00932)。
為了確定語言任務中的 ImageNet 會是什么樣的,我們首先需要確認是什么特性使得圖像 ImageNet 如此適合遷移學習。早期的研究僅僅是揭開了這個問題的冰山一角:減少類別數(shù)量或者是每個類別的樣例數(shù)量僅僅只會導致性能的微小下降,而細粒度類別(Fine-grained classes)和更多的數(shù)據(jù)并不總是對模型有益的。
為了探秘 ImageNet,我們并非是要直接瀏覽數(shù)據(jù)集,而是要探究在 ImageNet 上訓練的模型到底學到了什么。眾所周知,在 ImageNet 上訓練的深度神經網絡特征有一個特點,即從網絡的第一層到最后一層,特征逐漸由通用轉向了特殊(由任務決定)。網絡的較低層學習對諸如邊緣這樣的低級特征進行建模,而較高層則對圖像較高級的概念進行建模,例如模式或物體(參見雷鋒網 AI 科技評論往期 CNN 特征可視化文章),如下圖所示。重要的是,關于邊緣、結構和物體的視覺組成等知識在很多計算機視覺任務中是通用的,這揭示了為何這些網絡層可以被用于遷移學習。因此,一個類 ImageNet 數(shù)據(jù)集的關鍵屬性是,要能促使模型學習那些可以推廣到該問題領域中其它任務的特征。
上圖可視化了 GoogLeNet 不同層的特征所捕捉到的信息,來自 ImageNet 上訓練的 GooLeNet
除此之外,很難再進一步概括為什么 ImageNet 的遷移能力會如此強大。ImageNet 數(shù)據(jù)集的另一個優(yōu)點是高質量的數(shù)據(jù)標注。ImageNet 的創(chuàng)建者竭盡全力地保證了標注的準確可靠性和一致性。然而,作為對立面存在,遠程監(jiān)督(Distant supervision)領域的工作表明,大量弱標簽數(shù)據(jù)通常情況下也是足夠的。事實上,最近 Facebook 的研究員表示,他們可以通過預測數(shù)十億社交媒體圖像的話題標簽來預訓練模型,然后該模型還可以在 ImageNet 上取得最佳的準確率。
所以我們總結出了兩個關鍵需求:
一個類 ImageNet 數(shù)據(jù)集應該足夠大,比如擁有數(shù)百萬個訓練樣例。
它應該代表著該學科的問題空間。
在自然語言處理任務中,其模型建模深度通常都要比對應的計算機視覺模型來得淺。因此,對特征的分析主要集中在第一層嵌入上,并且針對更高層次遷移學習性質的研究工作也是少之又少。假設我們擁有了充足的數(shù)據(jù)集,滿足了剛才提到的需求點#1。那么鑒于自然語言處理的現(xiàn)狀,將存在以下幾個競爭數(shù)據(jù)集。
閱讀理解是一項要求算法針對一段指定文本回答自然語言問題的任務。這項任務最受歡迎的數(shù)據(jù)集是斯坦福問答數(shù)據(jù)集(SQuAD),它包含有 10 萬多對問答對(question-answering pairs),并且要求模型將答案在文本中進行高亮顯示,如下圖所示。
來自 SQuAD 數(shù)據(jù)集的問答對樣例
自然語言推理任務要求算法識別一段文本和一個假設之間的關系(蘊含、矛盾和中立)。斯坦福自然語言推理(SNLI)語料庫是這項任務最受歡迎的數(shù)據(jù)集之一,它包含有 57 萬對由人類書寫的英語句子對。數(shù)據(jù)集的樣例展示如下。
來自 SNLI 數(shù)據(jù)集的樣例
機器翻譯就是將一種語言的文本翻譯成另一種語言的文本,它是自然語言處理領域研究最多的任務之一。并且多年以來,已經為主流語言積累了大量的訓練樣本對,比如,WMT 2014 中的 4 千萬對英語-法語句子對。下圖給出了兩個翻譯樣例。
來自 newstest2014 的法語轉英語翻譯
成分句法分析(Constituency parsing)任務試圖以線性化成分分析樹的形式提取句子的句法結構,如下圖所示。過去,數(shù)百萬弱標簽的解析已經被用于訓練該任務的序列到序列模型。
一棵解析樹以及它的線性化表示
語言建模(Language modeling, LM)旨在給出當前單詞的情況下,讓算法預測出下一個單詞?,F(xiàn)有的基準數(shù)據(jù)集最多含有 10 億個單詞,但是由于該任務是無監(jiān)督的,所以可以使用任意數(shù)量的單詞進行訓練。下圖給出了 WikiText-2 數(shù)據(jù)集樣例,它由維基百科文章組成。
來自于 WikiText-2 語言建模數(shù)據(jù)集的樣例
上述所有任務都提供了充足的訓練樣本。事實上最近幾個月內,上述任務(以及許多其它任務,諸如情緒分析、成分句法分析、skip-thoughts 和自動編碼)已經被應用于預訓練特征表示。
雖然任何數(shù)據(jù)集都會存在一定的偏差,但是人類標注員(human annotators)可能會無意中引入一些模型可以利用的其它信號。最近的研究表明,閱讀理解和自然語言推理等任務的最佳模型,并沒有表現(xiàn)出對自然語言的深刻理解,而僅僅是利用這些信號實現(xiàn)了淺層的模式匹配。例如,https://arxiv.org/abs/1803.02324 論文中表明,標注員傾向于簡單地通過刪除性別或數(shù)字信息來產生蘊含樣本,并通過引入否定來產生矛盾樣本。簡單地利用這些信號的模型可以正確地對假設進行分類,而不用在大約 67% 的 SNLI 數(shù)據(jù)集中查看前提。
因此,更難的問題是:哪個任務最能代表自然語言處理的問題空間?換句話說,哪個任務可以使得我們學習到理解自然語言所需的大部分知識或關系?
為了預測句子中最可能的下一個單詞,模型不僅需要能夠表達語法(預測單詞的語法形式必須與其修飾語或動詞匹配),還需要能夠表達模型語義。更重要的是,最準確的模型必須包含有世界知識或者說常識。考慮一個不完整的句子,「服務很差,但是食物……」,為了預測后續(xù)的單詞,如「美味」或「好吃」,模型不僅要記住用于描述食物屬性的單詞,還要能夠識別出連接詞「但是」給原句中引入了轉折,以便于預測的新屬性具備有相反的情緒。
語言建模已經被證明可以捕獲與下游任務相關的許多知識,例如長期依賴、層次關系和情緒。與相關的無監(jiān)督任務(例如 skip-thoughts 和自動編碼)相比,語言建模在語法任務上的表現(xiàn)更出色,即使是使用了更少的訓練數(shù)據(jù)。
語言建模的最大優(yōu)勢之一是,訓練數(shù)據(jù)可以來自于任意的文本語料庫,這意味著可以獲得無限量的訓練數(shù)據(jù)。這一點尤其重要,因為自然語言理解不僅涉及英語,這個世界上還有許多其它語言。作為預訓練任務的語言建模,為那些小語種的語言應用開發(fā)打開了一扇大門。對于資源非常匱乏的語言,有可能未標注數(shù)據(jù)也非常少,而多語言模型(Multilingual language models)可以同時在多個相關的語言上進行訓練,這類似于跨語言嵌入(Cross-lingual embeddings)向量的研究工作。
ULMFiT 的不同階段(來源:Howard and Ruder, 2018)
到目前為止,我們將語言建模作為預訓練任務的論點純粹是概念性的。但是最近幾個月,我們也獲得了一些經驗性證據(jù):語言模型嵌入(Embeddings from Language Models, ELMo)、通用語言模型微調(Universal Language Model Fine-tuning, ULMFiT)和 OpenAI Transformer 已經經驗性地證明了語言建??梢杂糜陬A訓練。這三種方法都采用了預訓練語言模型來實現(xiàn)自然語言處理中各種任務的最佳效果,這些任務包括文本分類、問答、自然語言推理、共指消除、序列標記等等。
在許多情況下,例如下圖中的 ELMo,它在各個主流的研究基準中均比最佳成績高出了 10%~20%,所有這些都采用了一個核心方法——使用預訓練語言模型。此外,ELMo 還獲得了 NAACL-HLT 2018 最佳論文獎,這是該領域的頂級會議之一。最后,這些模型已經被證明具有極高的采樣效率,只需數(shù)百個樣本就可以實現(xiàn)很好的性能,甚至可以實現(xiàn)零樣本(Zero-shot)學習。
改進的 ELMo 模型在多個自然語言處理任務上取得成功
鑒于這一策略發(fā)生了變化,未來一年的時間內,自然語言處理從業(yè)者很有可能將采用預訓練的語言模型,而不是繼續(xù)使用預訓練的詞嵌入向量。這就類似于預訓練的 ImageNet 模型是當今大多數(shù)計算機視覺任務的起點。
然而,類似于 word2vec,語言建模任務也具有自身的局限性:它只是真正語言理解的代理,并且單個整體模型(Monolithic model)沒有能力去捕獲某些下游任務所需的信息。例如,為了回答或者跟蹤故事中角色的成長軌跡,模型需要學會處理指代或共指消除。此外,語言模型只能捕捉到它們所看到的內容。某些類型的信息,例如大多數(shù)常識信息,都難以僅從文本中學習,它們的習得需要結合額外的信息。
一個關鍵的問題是,如何將信息從預訓練的語言模型遷移到下游任務中。這涉及兩個主要范例,是否將預訓練的語言模型用作固定的特征提取器,并將其表示作為特征結合到一個隨機初始化的模型中(這正是 ELMo 的做法);又或者是否像 ULMFiT 一樣選擇微調整個語言模型。后一種微調的策略在計算機視覺中比較經典,這種策略會將模型的最頂層或者靠近頂部的若干層進行微調。不過自然語言處理模型深度通常更淺,因此需要與視覺不同的微調策略,而最近自然語言處理的預訓練模型正在變得越來越深。接下來的幾個月將展示遷移學習的各個核心組件對自然語言處理的影響:一個富有表現(xiàn)力的語言模型編碼器,比如深度 BiLSTM 或者 Transformer 模型;用于預訓練的數(shù)據(jù)數(shù)量和質量;用于微調預訓練模型的方法。
到目前為止,我們的分析主要是概念性和經驗性的,因為人們仍然很難理解為什么在 ImageNet 以及語言建模上訓練的模型具有如此好的遷移能力。偏差學習(Bias learning, Baxter, 2000)的建模方式為我們提供了另一種探索預訓練模型泛化能力的途徑,而且這種方法更加規(guī)范。假定我們的問題領域涵蓋了特定學科中任務的所有排列,例如,由計算機視覺構建起我們的生活環(huán)境。我們獲得了大量的數(shù)據(jù)集,這使得我們能夠誘導一系列假設空間 H=H。我們在偏差學習中的目標就是找到一個偏差,即在整個(可能是無限的)環(huán)境中能夠最大化性能的假設空間。
多任務學習中的經驗和理論結果(Caruana, 1997; Baxter, 2000)表明,在足夠多的任務中學到的偏差可能可以推廣到從同一環(huán)境中得出的其它未知任務。從多任務學習的角度來看,在 ImageNet 上訓練的模型學習了大量的二分類任務(一種類別就屬于一項二分類任務)。這些任務都是來自自然界的真實圖像,可能代表了許多其它的計算機視覺任務。同樣,一種通過學習大量分類任務(一個單詞屬于一項分類任務)的語言模型,可能學會了有助于自然語言處理領域中許多其它任務的特征表示。盡管如此,要完全理解為什么語言建模對遷移學習如此有效,還需要更多的研究來獲得更好的理論解釋。
時機已經成熟,實用性的遷移學習已經成功地侵入了自然語言處理。鑒于 ELMo、ULMFiT 和 OpenAI 的最新工作取得了如此令人印象深刻的成果,要人們放棄使用預訓練的詞嵌入向量,而改用預訓練的語言模型,這似乎只是時間問題。這一變化也許會為那些受限于數(shù)據(jù)數(shù)量的自然語言處理任務打開通往新世界的大門。
Via NLP's ImageNet moment has arrived,雷鋒網 AI 科技評論編譯。
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。