NLP領域的ImageNet時代:詞嵌入已死,語言模型當立

選自the Gradient,做者:Sebastian Ruder,機器之心編譯。算法

計算機視覺領域常使用在 ImageNet 上預訓練的模型,它們能夠進一步用於目標檢測、語義分割等不一樣的 CV 任務。而在天然語言處理領域中,咱們一般只會使用預訓練詞嵌入向量編碼詞彙間的關係,所以也就沒有一個能用於總體模型的預訓練方法。Sebastian Ruder 表示語言模型有做爲總體預訓練模型的潛質,它能由淺到深抽取語言的各類特徵,並用於機器翻譯、問答系統和自動摘要等普遍的 NLP 任務。Ruder 一樣展現了用語言模型作預訓練模型的效果,並表示 NLP 領域中的「ImageNet」終要到來。

天然語言處理(NLP)領域正在發生鉅變。markdown

長期以來,詞向量一直是天然語言處理的核心表徵技術。然而,其統治地位正在被一系列使人振奮的新挑戰所動搖,如:ELMo、ULMFiT 及 OpenAI transformer。這些方法因證實預訓練的語言模型能夠在一大批 NLP 任務中達到當前最優水平而吸引了不少目光。這些方法預示着一個分水嶺:它們在 NLP 中擁有的影響,可能和預訓練的 ImageNet 模型在計算機視覺中的做用同樣普遍。網絡


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

預訓練的詞向量給 NLP 帶來了很大的提升。2013 年提出的語言建模近似——word2vec 憑藉其效率和易用性在硬件速度慢得多且深度學習模型沒有獲得普遍支持的時代獲得採用。此後,進行 NLP 項目的標準方式基本保持不變:經過 word2vec 和 GloVe 等算法對大量未標記數據進行預處理的詞嵌入被用於初始化神經網絡的第一層,其它層隨後在特定任務的數據上進行訓練。在大多數訓練數據有限的任務中,這種方法幫助提升了兩到三個百分點。儘管這些預訓練的詞嵌入頗具影響力,但它們也有侷限:它們僅包含模型第一層的先驗知識——網絡的其他部分還須要從頭開始訓練。工具

word2vec 捕捉到的關係。(來源:TensorFlow tutorial)

word2vec 及其它相關方法是爲了實現效率而犧牲表達性的淺層方法。使用詞嵌入就像利用僅編碼圖像邊緣信息的預訓練表徵初始化計算機視覺模型:它們在許多任務中都能發揮做用,可是卻沒法捕捉到可能發揮更大做用的高層次信息。利用詞向量初始化的模型須要從頭開始學習,不只是學習消除歧義,還要學習從詞組成的句子中提取意義。這是語言理解的核心,須要建模語義組合、一詞多義、首語重複、長期依賴、一致性、否認等許多複雜的語言現象。所以,用這些淺層表示初始化的 NLP 模型仍然須要大量的示例才能得到良好的性能也就不足爲奇了。oop

ULMFiT、ELMo 和 OpenAI transformer 最新進展的核心是一個關鍵的範式轉變:從僅僅初始化模型的第一層到用分層表示對整個模型進行預處理。若是學習詞向量就像僅學習圖像的邊,那麼這些方法就像學習特徵的完整層次,從邊到形狀,再到高級語義概念。性能

有趣的是,預訓練整個模型以得到初級和高級特徵在計算機視覺社區中已經採用好幾年了。大多數狀況下,預訓練模型都是在 ImageNet 大型數據集上學習分類圖像而訓練出來的。ULMFiT、ELMo 和 OpenAI transformer 已經爲 NLP 社區帶來了天然語言中的「ImageNet」,這種任務能容許模型學習語言的高級細微差異。這就相似於 ImageNet 容許預訓練 CV 模型以學習廣泛意義的圖像特徵。在本文後面的部分中,咱們將語言建模與 ImageNet 計算機視覺建模作類比,並展現爲何這種方法看起來會如此有前景。學習


ImageNet編碼

ImageNet 大規模視覺識別挑戰賽。(來源:Xavier Giro-o-Nieto)

ImageNet 對機器學習研究具備重要影響。該數據集最初發佈於 2009 年,並迅速演變爲 ImageNet 大規模視覺識別挑戰賽(ILSVRC)。2012 年,Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 提交的深度神經網絡超過第二名 41 %,代表深度學習是一種可行的機器學習策略,該深度神經網絡能夠說是引起了機器學習研究中深度學習的爆發。spa

ImageNet 的成功凸顯了在深度學習時代,數據至少和算法同樣重要。ImageNet 數據集不只使 2012 年很是重要的深度學習能力展現成爲可能,並且在遷移學習中也取得了一樣重要的突破:研究人員很快意識到,在 ImageNet 現有模型中學習的權重可用於徹底初始化其它數據集的模型,並顯著提升性能。這種「微調」方法容許在每一個類別只有一個正面示例的狀況下實現良好性能(Donahue et al., 2014)。

在 ILSVRC-2012 上訓練的特徵泛化到 SUN-397 數據集上。(來源:Donahue et al., 2014)

在目標識別、語義分割、人體姿態估計和視頻識別等任務上,預處理的 ImageNet 模型已用來實現最優水平。與此同時,它們還使得 CV 得以應用於訓練示例數量少、註釋成本高的領域。在 CV 中,在 ImageNet 上經過預處理進行遷移學習實際上很是有效,以致於如今不使用它會被認爲是蠻幹(Mahajan et al., 2018)。


ImageNet 中有什麼?

爲了肯定用於語言處理的 ImageNet 多是什麼樣子,咱們首先要肯定什麼使 ImageNet 有利於遷移學習。以往的研究只揭示了這個問題的一部分:減小每一個類的示例數或類別數只會致使性能降低,而細粒度類和更多數據並不是總意味着更好的結果。

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

在 ImageNet 上訓練的 GoogLeNet 中不一樣層特徵捕獲的信息可視化。(來源:Distill)

除此以外,很難對 ImageNet 上遷移作得如此出色的緣由做出進一步的歸納。例如,ImageNet 數據集的另外一個優勢多是數據的質量。ImageNet 的建立者盡力確保註釋的可靠性和一致性。然而,遠程監管的工做是一個對比,這代表大量弱標記數據一般是足夠的。事實上,Facebook 的研究人員最近顯示,他們能夠經過預測數十億個社交媒體圖像上的 hashtags 到 ImageNet 上最新的準確性來預先訓練模型。

沒有任何更具體的看法,但咱們有兩個關鍵的需求:

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


用於語言任務的 ImageNet

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

閱讀理解是回答關於一個段落天然語言問題的任務。該任務最流行的數據集是 Stanford Question Answering Dataset (SQuAD),其中包含了超過 10 萬個問答對,並經過突出顯示段落中的幾個單詞來讓模型回答一個問題,以下圖所示:

在 ImageNet 上訓練的 GoogLeNet 的不一樣層特徵捕捉到的信息的可視化(Rajpurkar et al., 2016,《SQuAD: 100,000+ Questions for Machine Comprehension of Text》)。

天然語言推理是識別一段文本和一個假設之間關係(蘊涵、矛盾和中性等)的任務。該任務最流行的數據集是 Stanford Natural Language Inference (SNLI) Corpus,包含 57 萬我的類寫的英語句子對。該數據集的示例以下圖所示。

SNLI:nlp.stanford.edu/projects/sn…

SNLI 數據集的示例。(Bowman et al., 2015,A large annotated corpus for learning natural language inference)

機器翻譯,即將文本從一種語言轉換到另外一種語言,是 NLP 中研究最充分的任務之一。而且多年來,人們爲經常使用的語言對累積了大量的訓練數據,例如 WMT2014 的 4 千萬個英語法語句子對。下圖是兩個示例翻譯對。

來自 newstest2014 的法語到英語翻譯(Artetxe et al., 2018,Unsupervised Neural Machine Translation)

選區解析(Constituency parsing)以(線性化)解析樹的形式提取句子的句法結構,以下圖所示。在過去,人們在該任務中使用數百萬個弱標記解析來訓練序列到序列的模型(參見《Grammar as a Foreign Language》)。

解析樹和其線性化處理(Vinyals et al., 2015,Grammar as a Foreign Language)

語言建模(LM)在給定前一個單詞的狀況下嘗試預測下一個單詞。已有的基準數據集由大約 10 億個單詞構成,但因爲該任務是無監督的,所以可使用任意數量的單詞來訓練。下圖是由維基百科文章構成的經常使用 WikiText-2 數據集的示例。

WikiText-2 語言建模數據集的示例。(來源: Salesforce)

WikiText-2:einstein.ai/research/th…

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

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

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


語言建模

爲了預測句子中最可能出現的下一個詞,模型不只須要能表達語法,即模型預測下一個詞的語法形式必須與其修飾語或動詞匹配。同時模型還須要理解語義,此外那些最準確的模型必須包含世界知識或常識等內容。若思考一條不完整的語句「The service was poor, but the food was」,爲了預測「yummy」或「delicious」等後續單詞,模型不只須要記住用於描述食物的屬性,還須要識別連詞「but」以引入相反的語義,所以新的屬性應該是與情感詞「poor」相對的。

語言建模是最後提到的一種方法,它已經被證實能爲下游任務捕獲不少與語言相關的屬性,例如長期依賴性關係、層級關係和情感語義等。相比於自編碼器等無監督學習任務,語言建模即便只有少許訓練數據也能在句法任務上有很是好的表現。

語言建模最大的優點在於,訓練數據能夠免費從任何文本語料庫獲取,所以幾乎能得到無限的訓練數據。這很是重要,由於 NLP 並不僅限於英語,有超過 1000 人使用的語言有 4500 種。做爲預訓練任務的語言建模爲之前語言服務支持很差的語種打開了大門,咱們能夠直接使用文本數據無監督地訓練語言模型,並應用到翻譯、信息抽取等任務中。而對於那些無標註數據都不足的稀有語言,多語語言建模能先在多個相關語種上訓練,例如跨語言詞嵌入等。

ULMFiT 不一樣的階段(Howard and Ruder, 2018)

到目前爲止,咱們將語言建模做爲預訓練任務的論點純粹是概念性的。可是在最近幾個月,咱們也得到了一些實驗性證實:語言模型的詞嵌入(ELMo)、廣泛語言模型精調(ULMiT)和 OpenAI Transformer 已經實驗性地證實了語言模型能用於預訓練任務,正如上圖所示的 ULMFiT。這三種方法都使用預訓練語言模型來實現當前最優的天然語言處理任務,例如文本分類、問答系統、天然語言推斷、指代消歧和序列標註等問題。

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

ELMo 在一系列 NLP 任務中取得的進步。(來源:Matthew Peters)

鑑於這一步取得的變化,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 創造更多可能性。蒼天已死,黃天當立!

原文連接:thegradient.pub/nlp-imagene…

相關文章
相關標籤/搜索