NLP的ImageNet時代已經到來

摘要: NLP領域即將鉅變,你準備好了嗎?

天然語言處理(NLP)領域正在發生變化。算法

做爲NLP的核心表現技術——詞向量,其統治地位正在被諸多新技術挑戰,如:ELMo,ULMFiT及OpenAI變壓器。這些方法預示着一個分水嶺:它們在 NLP 中擁有的影響,可能和預訓練的 ImageNet 模型在計算機視覺中的做用同樣普遍。網絡

由淺到深的預訓練機器學習

預訓練的詞向量給NLP的發展帶來了很好的方向。2013年提出的語言建模近似——word2vec,在硬件速度慢且深度學習模型得不到普遍支持的時候,它的效率和易用性獲得了採用。此後,NLP項目的標準方式在很大程度上保持不變:經由算法對大量未標記數據進行預處理的詞嵌入被用於初始化神經網絡的第一層,其它層隨後在特定任務的數據上進行訓練。這種方法在大多數訓練數據量有限的任務中表現的不錯,經過模型都會有兩到三個百分點的提高。儘管這些預訓練的詞嵌入模型具備極大的影響力,但它們有一個主要的侷限性:它們只將先驗知識歸入模型的第一層,而網絡的其他部分仍然須要從頭開始訓練。工具

clipboard.png
word2vec捕獲的關係(來源:TensorFlow教程)性能

Word2vec及其餘相關方法是爲了實現效率而犧牲表達性的笨方法。使用詞嵌入就像初始化計算機視覺模型同樣,只有編碼圖像邊緣的預訓練表徵:它們對許多任務都有幫助,可是卻沒法捕獲可能更有用的信息。利用詞嵌入初始化的模型須要從頭開始學習,不只要消除單詞的歧義,還要從單詞序列中提取意義,這是語言理解的核心。它須要建模複雜的語言現象:如語義組合、多義性、長期依賴、一致性、否認等等。所以,使用這些淺層表示初始化的NLP模型仍然須要大量示例才能得到良好性能。學習

ULMFiT、ELMo和OpenAI transformer最新進展的核心是一個關鍵的範式轉變:從初始化咱們模型的第一層到分層表示預訓練整個模型。若是學習詞向量就像學習圖像的邊同樣,那麼這些方法就像學習特徵的完整層次結構同樣,從邊到形狀再到高級語義概念。編碼

有趣的是,計算機視覺(CV)社區多年來已經作過預訓練整個模型以得到低級和高級特徵。大多數狀況下,這是經過學習在ImageNet數據集上對圖像進行分類來完成的。ULMFiT、ELMo和OpenAI transformer現已使NLP社區接近擁有「 ImageNet for language 」的能力,即便模型可以學習語言的更高層次細微差異的任務,相似於ImageNet啓用訓練的方式學習圖像通用功能的CV模型。在本文的其他部分,咱們將經過擴展和構建類比的ImageNet來解開爲何這些方法看起來如此有前途。spa

ImageNet翻譯

clipboard.png

ImageNet對機器學習研究過程的影響幾乎是不可取代的。該數據集最初於2009年發佈,並迅速演變爲ImageNet大規模視覺識別挑戰賽(ILSVRC)。2012年,由Alex Krizhevsky,Ilya Sutskever和Geoffrey Hinton提交的深層神經網絡表現比第二競爭對手好41%,這代表深度學習是一種可行的機器學習策略,並可能引起ML研究領域的深度學習的爆發。3d

ImageNet的成功代表,在深度學習的時代,數據至少與算法一樣重要。ImageNet數據集不只使誕生於2012年的深度學習能力得以展示,並且還在遷移學習中實現了重要性的突破:研究人員很快意識到可使用最早進的模型從ImageNet中學到任何將權重初始化,這種「微調」方法能夠表現出良好的性能。

clipboard.png
在ILSVRC-2012上接受過訓練的特徵可概括爲SUN-397數據集

預訓練的ImageNet模型已被用於在諸如物體檢測之類的任務中如語義分割,人體姿式估計和視頻識別,而且表現很是良好。同時,他們已經將CV應用到訓練樣本數量少且註釋昂貴的領域。

ImageNet中有什麼?

爲了肯定ImageNet的語言形式,咱們首先必須肯定是什麼讓ImageNet適合遷移學習。以前咱們只是對這個問題有所瞭解:減小每一個類的示例數或類的數量只會致使性能降低,而細粒度和更多數據對性能並不老是好的。

與其直接查看數據,更謹慎的作法是探究在數據上訓練的模型學到了什麼。衆所周知,在ImageNet上訓練的深層神經網絡的特徵遷移順序爲從第一層到最後一層、從通常任務到特定任務:較低層學習建模低級特徵,如邊緣,而較高層學習建模高級概念,如圖案和整個部分或對象,以下圖所示。重要的是,關於物體邊緣、結構和視覺組成的知識與許多 CV 任務相關,這就揭示了爲何這些層會被遷移。所以,相似 ImageNet的數據集的一個關鍵屬性是鼓勵模型學習能夠泛化到問題域中新任務的特徵。

clipboard.png
可視化在ImageNet上訓練的GoogLeNet中不一樣層的特徵捕獲的信息

除此以外,很難進一步歸納爲何ImageNet的遷移工做表現的如此好。例如,ImageNet數據集的另外一個可能的優勢是數據的質量,ImageNet的建立者不遺餘力確保可靠和一致的註釋。然而,遠程監督的工做是一個對比,這代表大量的弱標籤數據可能就足夠了。事實上,最近Facebook的研究人員表示,他們能夠經過預測數十億社交媒體圖像上的主題標籤以及ImageNet上最早進的準確性來預先訓練模型。

若是沒有更具體的看法,咱們必須明白兩個關鍵的需求:

  1. 相似ImageNet的數據集應該足夠大,即大約數百萬個訓練樣例。
  2. 它應該表明該學科的問題空間。

用於語言任務的ImageNet

相比於 CV,NLP 的模型一般淺得多。所以對特徵的分析大部分聚焦於第一個嵌入層,不多有人研究遷移學習的高層性質。咱們考慮規模足夠大的數據集。在當前的 NLP 形勢下,有如下幾個常見任務,它們都有可能用於 NLP 的預訓練模型。

閱讀理解是回答關於段落天然語言問題的任務。這項任務最受歡迎的數據集是Stanford Question Answering Dataset(SQuAD),其中包含超過100,000個問答配對,並要求模型經過突出顯示段落中的跨度來回答問題,以下所示:

clipboard.png

天然語言推理是識別一段文本和一個假設之間的關係(蘊涵、矛盾和中立)的任務。這項任務最受歡迎的數據集是斯坦福天然語言推理(SNLI)語料庫,包含570k人性化的英語句子對。數據集的示例以下所示:

clipboard.png

機器翻譯,將一種語言的文本翻譯成另外一種語言的文本,是NLP中研究最多的任務之一,多年來人們已經爲流行的語言對積累了大量的訓練數據,例如40M英語-法語WMT 2014中的法語句子對。請參閱下面的兩個示例翻譯對:

clipboard.png

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

clipboard.png

語言建模(LM)旨在預測下一個單詞的前一個單詞。現有的基準數據集最多包含一億個單詞,但因爲任務無監督的,所以可使用任意數量的單詞進行訓練。請參閱下面的維基百科文章組成的受歡迎的WikiText-2數據集中的示例:

clipboard.png

全部這些任務提供或容許收集足夠數量的示例來訓練。實際上,以上任務(以及不少其它任務例如情感分析、skip-thoughts 和自編碼等)都曾在近幾個月被用於預訓練表徵。

雖然任何的數據都包含某些誤差,人類標註可能無心間引入額外信息,而模型也將會利用這些信息。近期研究代表在諸如閱讀理解和天然語言推理這樣的任務中的當前最優模型實際上並無造成深度的天然語言理解,而是注意某些線索以執行粗淺的模式匹配。例如,Gururangan 等人 (2018) 在《Annotation Artifacts in Natural Language Inference Data》中代表,標註者傾向於經過移除性別或數量信息生成蘊涵示例,以及經過引入否認詞生成矛盾。只需使用這些線索,模型就能夠在未查看前提的狀況下在 SNLI 數據集上以 67% 的準確率分類假設。

所以,更難的問題是:哪一個任務最能表明NLP問題?換種說法,哪一個任務使咱們能學到最多關於天然語言理解的知識或關係?

語言建模的案例

爲了預測句子中最可能的下一個單詞,模型不只須要可以表達語法(預測單詞的語法形式必須與其修飾語或動詞匹配),還須要模型語義。更重要的是,最準確的模型必須包含可被視爲世界知識或常識的東西。考慮一個不完整的句子「服務不好,但食物是」。爲了預測後續的單詞,如「美味」或「糟糕」,模型不只要記住用於描述食物的屬性,還要可以識別出「可是」結合引入對比,以便新屬性具備「窮人」的反對情緒。

語言建模是上面提到的最後一種方法,它已被證實能夠捕獲與下游任務相關的語言的許多方面,例如長期依賴性、等級關係和情緒。與相關的無監督任務(例如跳過思考和自動編碼)相比,語言建模在語法任務上表現更好,即便訓練數據較少。

語言建模的最大好處之一是訓練數據能夠經過任何文本語料庫免費提供,而且能夠得到無限量的訓練數據。這一點尤爲重要,由於NLP不只涉及英語、目前在全球範圍內有大約4,500種語言。做爲預訓練任務的語言建模爲之前沒有語言開發模型打開了大門。對於數據資源很是低的語言,即便是未標記的數據也不多,多語言語言模型能夠同時在多種相關語言上進行訓練,相似於跨語言嵌入的工做。

clipboard.png
ULMFiT的不一樣階段

到目前爲止,咱們將語言建模做爲預訓練任務的論點純粹是概念性的。但最近幾個月,咱們也得到了經驗:語言模型嵌入(ELMo)、通用語言模型微調(ULMFiT)和OpenAI已經憑經驗證實了語言建模如何用於預訓練,如上所示。全部這三種方法都採用預訓練語言模型來實現天然語言處理中各類任務的最新技術,包括文本分類、問答、天然語言推理、序列標記等等。

在以下所示的ELMo等不少狀況中,使用預訓練語言模型做爲核心的算法在普遍研究的基準上,要比當前最優的結果高10%到20%。ELMo同時也得到了 NLP頂級盛會NAACL-HLT 2018 的最佳論文。最後,這些模型表現出很是高的樣本效率,達到最優性能只須要數百樣本,甚至能夠實現zero-shot學習。

clipboard.png
ELMo在各類NLP任務中實現的改進

鑑於這一步取得的變化,NLP 實踐者極可能在一年後下載預處理的語言模型,而不是預處理的詞嵌入,來用於他們本身的模型中,就像如今大多數 CV 項目的起點是如何預處理 ImageNet 模型同樣。

然而,相似於word2vec,語言建模的任務天然有其自身的侷限性:它只是做爲真正的語言理解的代理,而且單個單體模型沒有能力捕獲某些下游任務所需的信息。例如,爲了回答關於或遵循故事中人物軌跡的問題,模型須要學習執行回指或共同解決。此外,語言模型只能捕獲他們所看到的內容。某些類型的特定信息,例如大多數常識知識,很難單獨從文本中學習,這就須要整合一部分外部信息。

一個突出的問題是如何從一個預訓練語言模型將信息遷移到下游任務中。有兩個主要的範式,一是是否將預訓練語言模型做爲固定的特徵提取器,並將其表徵做爲特徵整合到隨機初始化的模型(正如ELMo所作的)中;二是是否微調完整的語言模型(如ULMFiT所作的)。後者在計算機視覺中很經常使用,其中訓練時會調整模型的最高層或最高的幾層。雖然NLP模型一般更淺,所以相比對應的視覺模型須要不一樣的微調技術,但近期的的預訓練模型變得更深了。我在下一月將展現NLP遷移學習的每一個核心組件的做用:包括表達性很強的語言模型編碼器(如深度BiLSTM或Transformer),用於預訓練的數據的量和本質,以及微調預訓練模型使用的方法。

但理論依據在哪裏?

到目前爲止,咱們的分析主要是概念性的和經驗性的,由於人們仍然很難理解爲何在ImageNet上訓練的模型遷移得如此之好。一種更爲正式的、考慮預訓練模型泛化能力的方式是基於bias learning模型(Baxter, 2000)。假設咱們的問題域覆蓋特定學科中任務的全部排列,例如計算機視覺——它構成了環境。咱們對此提供了許多數據集,容許咱們誘導一系列假設空間 H=H'。咱們在偏置學習中的目標是找到偏置,即假設空間 H'∈H,它能夠在整個環境中最大化性能。

多任務學習中的經驗和理論結果(Caruana,1997; Baxter,2000)代表,在足夠多的任務中學習到的偏置或許能夠推廣到在一樣環境中未見過的任務上。經過多任務學習,在ImageNet上訓練的模型能夠學習大量的二進制分類任務(每一個類一個)。這些任務都來自天然、真實世界的圖像空間,可能對許多其餘 CV 任務也有表明性。一樣,語言模型經過學習大量分類任務(每一個詞一個)可能誘導出有助於天然語言領域許多其餘任務的表徵。然而,要想從理論上更好地理解爲何語言建模彷佛在遷移學習中如此有效,還須要進行更多的研究。

NLP的ImageNet時代

NLP使用遷移學習的時機已經成熟。鑑於ELMo、ULMFiT和OpenAI的實證結果如此使人印象深入,這種發展彷佛只是一個時間問題,預訓練的詞嵌入模型將逐漸淘汰,取而代之的是每一個 NLP 開發者工具箱裏的預訓練語言模型。這有可能會解決NLP領域標註數據量不足的問題。

本文做者:【方向】

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索