ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

機器之心發表於2019-01-01

自然語言處理的預訓練任務該選哪一個?語言模型真的是一種通用的預訓練方法嗎?這篇論文告訴我們,通用的 NLP 預訓練模型是我們想多了。不同的目標任務需要不同的預訓練模型,而預訓練語言模型甚至會損傷某些任務的效能。不過在沒有更好的方案前,預訓練語言模型還是最好的選擇。

用於自然語言處理任務(如翻譯、問答和解析)的最先進模型都具有旨在提取每個輸入句子含義和內容表徵的元件。這些句子編碼器元件通常直接針對目標任務進行訓練。這種方法可以在資料豐富的任務上發揮作用,並在一些狹義定義的基準上達到人類水平,但它只適用於少數具有數百萬訓練資料樣本的 NLP 任務。這引起人們對預訓練句子編碼的興趣:我們有充分的理由相信,可以利用外部資料和訓練訊號來有效地預訓練這些編碼器,因為它們主要用於捕獲句子含義而不是任何特定於任務的技能。並且我們已經看到了預訓練方法在詞嵌入和影像識別相關領域中獲得的成功。

更具體地說,最近的四篇論文表明,預訓練句子編碼器可以在 NLP 任務上獲得非常強的效能。首先,McCann 等人 (2017) 表明來自神經機器翻譯系統的 BiLSTM 編碼器可以在其他地方有效地重用。Howard & Ruder (2018)、Peters 等 (2018)、 Radford 等 (2018) 表明,通過生成式語言建模(LM)以無監督方式預訓練的各種編碼器也是有效的。然而,每篇論文都使用自己的評估方法,不清楚哪個預訓練任務最有效,或者是否可以有效地組合多個預訓練任務;在句子到向量編碼的相關設定中,使用多個標註資料集的多工學習已經產生了魯棒的當前最佳結果。

本文試圖系統地解決這些問題。研究者在 17 種不同的預訓練任務、幾個簡單的基線以及這些任務的幾種組合上訓練可重用的句子編碼器,所有這些都使用受 ELMo 擴充套件的單個模型架構和過程,用於預訓練和遷移。然後,研究者根據 GLUE 基準測試中的 9 個目標語言理解任務評估這些編碼器,他們共得到了 40 個句子編碼器和 360 個已訓練模型。然後,研究者測量目標任務的效能相關性,並繪製了評估訓練資料量對每個預訓練和目標任務的影響的學習曲線

實驗結果表明語言建模是其中最有效的一個預訓練任務,預訓練期間的多工學習可以提供進一步的增益,並在固定句子編碼器上得到新的當前最佳結果。然而,ELMo 式的預訓練也有令人擔憂的地方,研究者預訓練模型並將其用於目標任務時沒有進一步微調,這是脆弱的並且存在嚴重限制: (i) 一般的基線表徵和最好的預訓練編碼器幾乎能達到相同的表現,不同的預訓練任務之間的差別可能非常小。(ii) 不同的目標任務在它們受益最多的預訓練方面存在顯著差異,並且多工預訓練不足以避免這個問題並提供通用的預訓練編碼器。

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

圖 1:本研究的通用模型設計:在預訓練期間,為每個預訓練任務訓練共享編碼器和任務特定模型。然後,固定共享編碼器,併為每個目標評估任務重新訓練任務特定模型。任務可能涉及多個句子。

論文:Looking for ELMo's friends: Sentence-Level Pretraining Beyond Language Modeling

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

論文連結:https://arxiv.org/abs/1812.10860

摘要:關於語境化詞表徵問題的研究(用於句子理解的可重用神經網路元件的開發),近期最近出現了一系列進展,主要是使用 ELMo 等方法進行語言建模的無監督預訓練任務。本文提供了第一個大規模系統研究,比較了在這種背景下不同的預訓練任務,既作為語言建模的補充,也作為潛在的替代方案。該研究的主要結果支援使用語言建模作為預訓練任務,並在使用語言模型進行多工學習的可比模型中得到了新的當前最佳結果。然而,仔細觀察這些結果可以發現跨目標任務中的模型效能出現了令人擔憂的變化,這表明廣泛使用的預訓練和凍結句子編碼器的正規化可能不是進一步研究的理想基礎。

表 1 展示了我們所有預訓練編碼器在 GLUE 開發集上的結果,每個編碼器有或者沒有使用預訓練的 ELMo BiLSTM 層(上標 E)。N/A 基線是具有隨機初始化的未經訓練的編碼器。Single-Task 基線是來自 9 個 GLUE 的結果的聚合:給定 GLUE 任務的該行中的結果使用僅在該任務上預訓練的編碼器。為了與其他結果保持一致,我們將預訓練任務和目標任務視為所有情況下的兩個單獨任務(包括此處),併為它們提供獨立的任務特定引數,儘管它們使用相同的資料。我們使用上標 S 和 C 分別表示 Reddit 任務的 Seq2Seq 和分類兩個變體。

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

表 1:GLUE 基準測試結果,除非另有說明,否則它都是使用的開發集。其中 E 表示 ELMo 用作輸入層,C 和 S 分別為兩種 Reddit 任務的變體。加粗的結果在總體上是最好的,加下劃線的結果表示在沒有 ELMo 的情況下是最好的。

觀察其它目標任務,和語法相關的 CoLA 任務從 ELMo 預訓練中受益明顯:沒有語言建模預訓練的最佳結果不到有預訓練結果的一半。相比之下,含義導向的文字相似性基準 STS 在多種預訓練方法上取得了很好的結果,但並沒有從 ELMo 的使用中獲得顯著收益。

單獨對比沒有使用 ELMo 的預訓練任務,語言建模的效能最佳,然後是 MNLI。剩餘的預訓練任務只能得到和隨機基線相當的結果。即使只直接在每個目標任務上進行訓練(Single-Task),也只能得到相對於簡單基線的很少提升。新增 ELMo 可以在所有預訓練任務上取得效能改善。MNLI 和英-德翻譯在此設定下效能最佳,SkipThought、Reddit 分類和 DisSent 也超越了 ELMo-增強的隨機基線。

使用 ELMo,一個多工模型表現最佳,但如果沒有它,所有三個多工模型都會被其中一個組成任務的模型追平或超越,這表明我們的多工學習方法無法可靠地得到很好地利用每個訓練任務教的知識的模型。但是,兩個非 ELMo 模型在開發集上表現最佳,在測試資料上多工模型比單任務模型更好地泛化了 STS 等任務,其中測試集包含新的域外資料。

跨任務相關性:表 2 展示了主要實驗結果(表 1)的另一種視角,它顯示了預訓練編碼器空間中任務對之間的相關性。這些相關性反映了在使用某種編碼器且知道在特定任務上的效能後,我們能預測相同編碼器在另一種目標任務上的效能。

很多相關性都非常低,這表明不同任務在很大程度上都受益於不同形式的預訓練,且不會觀察到一個預訓練任務能在所有目標任務上都能表現出很好的效能。如上所述,總體上表現最好的模型在 WNLI 訓練集上過擬合最嚴重,因此 WNLI 和整體 GLUE 分數之間的相關性為負。STS 同樣也有一些負的相關性,也許是因為它並沒有受益於 ELMo 的預訓練。相比之下,CoLA 與整體 GLUE 分數顯示出很強的相關性:0.93,但與其它任務有弱的或負的相關性,這表示使用 ELMo 或語言模型可顯著提升 CoLA 的效能,但其它型別的預訓練任務幫助不大。

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

表 2:不同目標任務效能間的皮爾森相關性,它們都是基於表 1 中的所有實驗而進行度量的。Avg 列為各種獨立任務上的預訓練模型與整體 GLUE 分數的相關性。對於有多種度量的任務,我們會在每一行的抬頭中註明使用的度量方法。負的相關性會使用下劃線標註出來。

學習曲線圖 2 展示了兩種型別的學習曲線,第一組度量了整體 GLUE 指標的效能,其中編碼器在每一個預訓練任務中使用不同的樣本數而獲得收斂。第二組重點關注三個預訓練編碼器,並獨立地在每一個 GLUE 目標任務上使用不同的資料量而度量效能。

若只看預訓練任務(左上),大多數任務都會隨著預訓練資料的增加而緩慢地提升效能,LM 和 MT 任務是最大化效能最具潛力的組合。通過 ELMo(右上)結合這些預訓練任務,產生了難以解釋的結果:訓練資料量和效能之間的相關性變弱,因此本文描述的最佳結果都是預訓練 ELMo 模型結合其它預訓練任務(例如 MNLI 和 QQP)的受限資料的版本而實現的。

觀察隨著訓練資料量改變時目標任務的效能變化,我們發現所有的任務都從資料量增加中獲益,沒有明顯的收益遞減,並且大多數任務都從預訓練中獲得了常量的效能提升,無論是使用了 ELMo(中)還是多工學習(右)。

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

圖 2:頂部:沒有使用 ELMo(左)和使用了 ELMo(右)的 GLUE 分數的預訓練學習曲線。底部:每個 GLUE 任務上 3 個編碼器的目標任務訓練的學習曲線。沒有使用 ELMo 的隨機編碼器(左),使用了 ELMo 的隨機編碼器(中),和沒有使用 ELMo 的 Outside MTL。

在 GLUE Diagnostic Set 上的結果:從 GLUE 的輔助診斷分析資料集中,我們發現 ELMo 和其它形式的無監督預訓練可以幫助提升涉及世界知識和詞彙-語義知識的任務,但對於強調複雜句子結構的任務改善很少。參見表 6 檢視更多細節。

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

ELMo的朋友圈:預訓練語言模型真的一枝獨秀嗎?

表 6:GLUE 診斷集結果,以 R_3 關聯絡數(x100)表示,其將由不知情模型(uninformed model)的隨機猜測標準化為 0。人類效能在總體診斷集上大約為 80。粗體表示總體最佳結果,加下劃線的結果表示在沒有 ELMo 的情況下是最好的。

相關文章