ImageNet 帶來的預訓練模型之風,馬上要吹進 NLP 領域了

雷鋒網 AI 科技評論按:對於計算機視覺領域的研究人員、產品開發人員來說,在 ImageNet 上預訓練模型然後再用自己的任務專用數據訓練模型已經成了慣例。但是自然語言處理領域的研究人員和開發人員們似乎並不是這樣做的 —— 等等,也許 NLP 領域的「ImageNet 時代」馬上就要帶來了。

本文的作者是 Sebastian Ruder,主攻方向是自然語言處理與深度學習,他是 Insight 數據分析研究中心的博士生,同時也是都柏林自然語言處理創業公司 AYLIEN 的科學家,他在自然語言處理相關的頂會上發表過多篇一作文章,同時也是 ULMFiT 的共同作者;他的個人博客是 http://ruder.io/。雷鋒網 AI 科技評論根據原文進行了編譯。

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

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

作為自然語言處理的核心特徵表示技術,詞向量(Word vectors)長期統治著自然語言處理領域,但是它最近卻面臨著一系列強有力的挑戰:ELMo、ULMFiT和OpenAI Transformer。這些工作無一例外都成為了新聞頭條,因為它們都證明了自己的預訓練語言模型可以在各種自然語言處理任務中取得最佳的結果。這些方法的出現預示著一個分水嶺時刻的到來了:這些預訓練語言模型有可能會在自然語言處理領域造成巨大而廣泛的影響,正如 ImageNet 預訓練模型在計算機視覺中所造成的影響一樣。

從淺層到深度預訓練

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

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

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

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

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

有趣的是,計算機視覺社區已經採用預訓練模型許多年,這些預訓練首先是針對整個模型的,其次它們同時學到了低層級和高層級特徵。大多數情況下,預訓練是通過在大型 ImageNet 數據庫上學習圖像分類來實現的。現今 ULMFiT、ELMo 和 OpenAI Transformer 相當於給自然語言處理社區帶來了

「語言任務的 ImageNet」,也就使得模型能夠學習到文本中更高層次的細微差別;這類似於 ImageNet 上的預訓練使得計算機視覺模型學習到了圖像的通用特徵。在本文的剩餘部分,我們將通過擴展和構建 ImageNet 的類比,來解釋為何這些新方法看起來如此有前途。

ImageNet

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

ImageNet 是一個大規模圖像識別挑戰賽

毫不誇張地說,ImageNet 對機器學習研究過程的影響是巨大的。該數據集最初發佈於 2009 年,並迅速演變為 ImageNet 大規模視覺識別挑戰賽(ILSVRC)。2012 年,Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 提交的深度神經網絡模型預測結果比第二名高出了 41%,這表明了深度學習是一種可行的機器學習策略,並暗示了機器學習研究中深度學習即將迎來爆炸性增長。

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

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

在 ILSVRC-2012 上訓練的特徵可以泛化到 SUN-397 數據集上

預訓練的 ImageNet 模型已經被用於諸如物體檢測、語義分割、人體姿態估計和視頻識別等任務中,並且都取得了最佳的結果。同時,這些預訓練模型也使得深度學習得以應用到訓練樣本數量較少且標註昂貴的領域。通過在 ImageNet 上預訓練的遷移學習是如此地有效,以至於現今在計算機視覺領域如果不這麼做反而被認為是在蠻幹(https://arxiv.org/abs/1805.00932)。

探秘 ImageNet

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

為了探秘 ImageNet,我們並非是要直接瀏覽數據集,而是要探究在 ImageNet 上訓練的模型到底學到了什麼。眾所周知,在 ImageNet 上訓練的深度神經網絡特徵有一個特點,即從網絡的第一層到最後一層,特徵逐漸由通用轉向了特殊(由任務決定)。網絡的較低層學習對諸如邊緣這樣的低級特徵進行建模,而較高層則對圖像較高級的概念進行建模,例如模式或物體(參見雷鋒網 AI 科技評論往期CNN 特徵可視化文章),如下圖所示。重要的是,關於邊緣、結構和物體的視覺組成等知識在很多計算機視覺任務中是通用的,這揭示了為何這些網絡層可以被用於遷移學習。因此,一個類 ImageNet 數據集的關鍵屬性是,要能促使模型學習那些可以推廣到該問題領域中其它任務的特徵。

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

上圖可視化了 GoogLeNet 不同層的特徵所捕捉到的信息,來自 ImageNet 上訓練的 GooLeNet

除此之外,很難再進一步概括為什麼 ImageNet 的遷移能力會如此強大。ImageNet 數據集的另一個優點是高質量的數據標註。ImageNet 的創建者竭盡全力地保證了標註的準確可靠性和一致性。然而,作為對立面存在,遠程監督(Distant supervision)領域的工作表明,大量弱標籤數據通常情況下也是足夠的。事實上,最近 Facebook 的研究員表示,他們可以通過預測數十億社交媒體圖像的話題標籤來預訓練模型,然後該模型還可以在 ImageNet 上取得最佳的準確率。

所以我們總結出了兩個關鍵需求:

  1. 一個類 ImageNet 數據集應該足夠大,比如擁有數百萬個訓練樣例。

  2. 它應該代表著該學科的問題空間。

語言任務的 ImageNet

在自然語言處理任務中,其模型建模深度通常都要比對應的計算機視覺模型來得淺。因此,對特徵的分析主要集中在第一層嵌入上,並且針對更高層次遷移學習性質的研究工作也是少之又少。假設我們擁有了充足的數據集,滿足了剛才提到的需求點#1。那麼鑑於自然語言處理的現狀,將存在以下幾個競爭數據集。

閱讀理解是一項要求算法針對一段指定文本回答自然語言問題的任務。這項任務最受歡迎的數據集是斯坦福問答數據集(SQuAD),它包含有 10 萬多對問答對(question-answering pairs),並且要求模型將答案在文本中進行高亮顯示,如下圖所示。

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

來自 SQuAD 數據集的問答對樣例

自然語言推理任務要求算法識別一段文本和一個假設之間的關係(蘊含、矛盾和中立)。斯坦福自然語言推理(SNLI)語料庫是這項任務最受歡迎的數據集之一,它包含有 57 萬對由人類書寫的英語句子對。數據集的樣例展示如下。

來自 SNLI 數據集的樣例

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

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

來自 newstest2014 的法語轉英語翻譯

成分句法分析(Constituency parsing)任務試圖以線性化成分分析樹的形式提取句子的句法結構,如下圖所示。過去,數百萬弱標籤的解析已經被用於訓練該任務的序列到序列模型。

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

一棵解析樹以及它的線性化表示

語言建模(Language modeling, LM)旨在給出當前單詞的情況下,讓算法預測出下一個單詞。現有的基準數據集最多含有 10 億個單詞,但是由於該任務是無監督的,所以可以使用任意數量的單詞進行訓練。下圖給出了 WikiText-2 數據集樣例,它由維基百科文章組成。

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

來自於 WikiText-2 語言建模數據集的樣例

上述所有任務都提供了充足的訓練樣本。事實上最近幾個月內,上述任務(以及許多其它任務,諸如情緒分析、成分句法分析、skip-thoughts和自動編碼)已經被應用於預訓練特徵表示。

雖然任何數據集都會存在一定的偏差,但是人類標註員(human annotators)可能會無意中引入一些模型可以利用的其它信號。最近的研究表明,閱讀理解和自然語言推理等任務的最佳模型,並沒有表現出對自然語言的深刻理解,而僅僅是利用這些信號實現了淺層的模式匹配。例如,https://arxiv.org/abs/1803.02324論文中表明,標註員傾向於簡單地通過刪除性別或數字信息來產生蘊含樣本,並通過引入否定來產生矛盾樣本。簡單地利用這些信號的模型可以正確地對假設進行分類,而不用在大約 67% 的 SNLI 數據集中查看前提。

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

語言建模樣例

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

語言建模已經被證明可以捕獲與下游任務相關的許多知識,例如長期依賴、層次關係和情緒。與相關的無監督任務(例如 skip-thoughts 和自動編碼)相比,語言建模在語法任務上的表現更出色,即使是使用了更少的訓練數據。

語言建模的最大優勢之一是,訓練數據可以來自於任意的文本語料庫,這意味著可以獲得無限量的訓練數據。這一點尤其重要,因為自然語言理解不僅涉及英語,這個世界上還有許多其它語言。作為預訓練任務的語言建模,為那些小語種的語言應用開發打開了一扇大門。對於資源非常匱乏的語言,有可能未標註數據也非常少,而多語言模型(Multilingual language models)可以同時在多個相關的語言上進行訓練,這類似於跨語言嵌入(Cross-lingual embeddings)向量的研究工作。

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

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

到目前為止,我們將語言建模作為預訓練任務的論點純粹是概念性的。但是最近幾個月,我們也獲得了一些經驗性證據:語言模型嵌入(Embeddings from Language Models, ELMo)、通用語言模型微調(Universal Language Model Fine-tuning, ULMFiT)和OpenAI Transformer已經經驗性地證明了語言建模可以用於預訓練。這三種方法都採用了預訓練語言模型來實現自然語言處理中各種任務的最佳效果,這些任務包括文本分類、問答、自然語言推理、共指消除、序列標記等等。

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

ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

改進的 ELMo 模型在多個自然語言處理任務上取得成功

鑑於這一策略發生了變化,未來一年的時間內,自然語言處理從業者很有可能將採用預訓練的語言模型,而不是繼續使用預訓練的詞嵌入向量。這就類似於預訓練的 ImageNet 模型是當今大多數計算機視覺任務的起點。

然而,類似於 word2vec,語言建模任務也具有自身的侷限性:它只是真正語言理解的代理,並且單個整體模型(Monolithic model)沒有能力去捕獲某些下游任務所需的信息。例如,為了回答或者跟蹤故事中角色的成長軌跡,模型需要學會處理指代或共指消除。此外,語言模型只能捕捉到它們所看到的內容。某些類型的信息,例如大多數常識信息,都難以僅從文本中學習,它們的習得需要結合額外的信息。

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

理論支持

到目前為止,我們的分析主要是概念性和經驗性的,因為人們仍然很難理解為什麼在 ImageNet 以及語言建模上訓練的模型具有如此好的遷移能力。偏差學習(Bias learning, Baxter, 2000)的建模方式為我們提供了另一種探索預訓練模型泛化能力的途徑,而且這種方法更加規範。假定我們的問題領域涵蓋了特定學科中任務的所有排列,例如,由計算機視覺構建起我們的生活環境。我們獲得了大量的數據集,這使得我們能夠誘導一系列假設空間 H=H。我們在偏差學習中的目標就是找到一個偏差,即在整個(可能是無限的)環境中能夠最大化性能的假設空間

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

開啟「ImageNet」時代

時機已經成熟,實用性的遷移學習已經成功地侵入了自然語言處理。鑑於 ELMo、ULMFiT 和 OpenAI 的最新工作取得了如此令人印象深刻的成果,要人們放棄使用預訓練的詞嵌入向量,而改用預訓練的語言模型,這似乎只是時間問題。這一變化也許會為那些受限於數據數量的自然語言處理任務打開通往新世界的大門。

Via NLP's ImageNet moment has arrived,雷鋒網 AI 科技評論編譯。


分享到:


相關文章: