當前位置:
首頁 > 知識 > 遺珠之作?谷歌Quoc Le這篇NLP預訓練模型論文值得一看

遺珠之作?谷歌Quoc Le這篇NLP預訓練模型論文值得一看

選自arXiv

作者:Kevin Clark、Minh-Thang Luong、Christopher D. Manning、Quoc V. Le

機器之心編譯

參與:

在BERT論文出現的幾周前,斯坦福大學和谷歌大腦合作的一篇同樣關於 NLP 預訓練模型的論文發布。該研究提出一種新型自訓練演算法 Cross-View Training (CVT),結合預訓練詞向量和自訓練演算法,使用標註數據和無標註數據的混合,從而改善 Bi-LSTM 句子編碼器的表徵,進而改善整個模型。此外,CVT 與多任務學習結合起來後效果尤為顯著。

在大量標註數據上訓練的深度學習模型效果最好。但是,數據標註成本很高,這刺激了人們對有效半監督學習技術的需求(半監督學習可以利用無標註樣本)。在神經自然語言處理任務中廣泛使用且成功的一種半監督學習策略是預訓練詞向量 (Mikolov et al., 2013)。近期的研究訓練 Bi-LSTM 句子編碼器去做語言建模,然後將其語境敏感(context-sensitive)表徵納入監督模型中。這種預訓練方法先在大型無標註數據語料庫上進行無監督表徵學習,然後再進行監督訓練。

預訓練的一個重要缺陷在於表徵學習階段無法利用標註數據——模型嘗試學習通用表徵而不是針對特定任務的表徵。較老的半監督學習演算法(如自訓練演算法)沒有這個問題,因為它們在標註和無標註數據上連續學習一項任務。自訓練曾對 NLP 非常有效,但該方法較少用於神經模型。而斯坦福大學和谷歌大腦合作的這篇論文展示了一種對神經序列模型也很有效的新型自訓練演算法——Cross-View Training (CVT)。

在自訓練中,模型在標註數據上正常學習,而在無標註數據上則兼任教師和學生:教師對樣本作出預測,學生基於預測進行訓練。儘管該過程對一些任務有價值,但它略顯累贅:模型已經在訓練過程中生成預測了。近期的計算機視覺研究解決了這個問題,方法是向學生網路的輸入添加雜訊,訓練一個對輸入擾動足夠魯棒的模型。但是,使用雜訊對離散輸入(如文本)比較困難。

該研究從多視角學習(multiview learning)中獲得靈感,訓練模型對同一輸入的不同視角生成一致的預測結果。CVT 沒有將整個模型作為學生模型,而是向模型添加輔助預測模塊——將向量表徵轉換成預測的神經網路,將它們也作為學生來訓練。每個學生預測模塊的輸入是模型中間表徵的子集,對應於受限視角的輸入樣本。例如,用於序列標註的一個輔助預測模塊僅關聯到模型第一個Bi-LSTM層的「前向」(forward)LSTM,因此它在進行預測時看不到當前序列右側的任何 token。

CVT 的作用在於改善模型的表徵學習。輔助預測模塊可以從整個模型的預測中學習,因為整個模型具備更好、視角不受限的輸入。儘管輔助模塊的輸入對應受限視角的輸入樣本,但它們仍然能夠學習作出正確的預測,因此能夠改進表徵的質量。這反過來改善了整個模型,因為它們使用的是同樣的表徵。簡而言之,該方法將在無標註數據上進行表徵學習與傳統的自訓練方法結合了起來。

CVT 可用於多種任務和神經架構,但是本研究主要聚焦於序列建模任務,其預測模塊與共享 Bi-LSTM 編碼器關聯。研究者提出對於序列標註器、基於圖的依存句法分析器和序列到序列模型都很有效的輔助預測模塊,並在英語依存句法分析、組合範疇語法(CCG)supertagging、命名實體識別、詞性標註、文本語塊識別(text chunking)和英語-越南語機器翻譯任務上對該方法進行了評估。CVT 在所有這些任務上都改進了之前發布的結果。此外,CVT 還可以輕鬆高效地與多任務學習結合使用:只需在共享 Bi-LSTM 編碼器上添加適合不同任務的額外預測模塊。訓練統一模型來聯合執行所有任務(除了機器翻譯)可以改善結果(優於多任務 ELMo 模型),同時降低總訓練時間。

論文:Semi-Supervised Sequence Modeling with Cross-View Training

論文鏈接:https://arxiv.org/pdf/1809.08370.pdf

代碼地址:https://github.com/tensorflow/models/tree/master/research/cvt_text

摘要:無監督表徵學習演算法(如 word2vec 和 ELMo)可以提升很多監督式 NLP 模型的準確率,主要原因在於它們可以利用大量無標註文本。而監督模型在主要的訓練階段只能從任務特定的標註數據中學習。因此,我們提出一種半監督學習演算法 Cross-View Training (CVT),使用標註數據和無標註數據的混合改善 Bi-LSTM 句子編碼器的表徵。在標註數據上使用標準的監督學習;在無標註數據上,CVT 教只能看到有限輸入(如句子的一個部分)的輔助預測模塊將預測結果與能看到完整輸入的整個模型的預測結果進行匹配。由於輔助模塊和完整模型共享中間表徵,因此這會反過來改善完整模型。此外,我們還展示了 CVT 與多任務學習結合起來後效果尤為顯著。我們在五個序列標註任務、機器翻譯和依存句法分析任務上對 CVT 進行了評估,均達到了當前最優結果。

2 Cross-View Training(CVT)

2.1 方法

圖 1:CVT 方法概覽。

2.2 將 CVT 與多任務學習結合起來

在共享 Bi-LSTM 編碼器上添加適用於其他任務的額外預測模塊即可輕鬆結合 CVT 與多任務學習。在監督學習階段,我們隨機選擇任務,然後使用小批量標註數據更新 Lsup。在無監督學習階段,我們一次性在所有任務上聯合優化 LCVT,首先讓所有主要預測模塊運行推斷,然後讓所有輔助預測模塊從預測中學習。模型在小批量標註數據和無標註數據上進行交替訓練。

多個任務的標註數據對多任務系統的學習很有用,但是大部分數據集只為一個任務而標註。因此多任務 CVT 的一個好處就是模型基於無標註數據創建了適用所有任務的(artificial)標註數據。這顯著改善了模型的數據效率、縮短了訓練時間。由於運行預測模塊計算成本較低,因此計算用於多個任務的 LCVT 並不比單任務模型慢多少。但是,我們發現適用所有任務的標註數據可以大幅加速模型收斂速度。例如,在六個任務上訓練的 CVT 模型收斂時間大約是單個任務上模型的平均收斂時間的 3 倍,總訓練時間降低了 50%。

圖 2:序列標註模型中的輔助預測模塊。每個模塊都只看到受限視角的輸入。例如,「forward」預測模塊在預測當前 token 的標籤時看不到它右側的語境。為簡潔起見,這裡僅展示了一個層 Bi-LSTM 編碼器,以及該模型一個時間步的預測。

4 實驗

表 1:在測試集上的結果,所有分數均為 5 次運行的平均值。NER、FGN 和機器翻譯任務的分數標準差大約為 0.1,POS 的分數標準差是 0.02,其他任務的分數標準差是 0.05。 Large 模型的隱藏單元數量是其他模型的 4 倍,它的大小與包含 ELMo 的模型差不多。* 表示半監督,? 表示多任務。

表 2:有/沒有適用所有任務的標註數據時,多任務 CVT 的開發集性能。

圖 4:不同方法的開發集 vs. 訓練集準確率。「small」模型的 LSTM 隱藏狀態大小是其他模型的 1/4(256 vs. 1024)。

表 3:在序列標註任務上,對輔助預測模塊進行模型簡化測試(ablation study)。

圖 5:左圖:模型在開發集上的性能 vs. 模型訓練集所佔比例。右圖:開發集性能 vs. 模型大小。x 軸表示 LSTM 層中隱藏單元的數量,網路中投影層和其他隱藏層的隱藏單元數量是它的一半。點表示三次運行的平均值。

表 4:單任務模型在開發集上的性能對比。CVT-MT frozen 表示我們在五個任務上預訓練了 CVT 多任務模型,然後在第六個任務上僅訓練預測模塊。ELMo frozen 表示我們基於 ELMo 嵌入訓練預測模塊(不包括 LSTM)。

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

解密:依圖如何一年實現語音識別指標超巨頭玩家
生成模型學習筆記:從高斯判別分析到樸素貝葉斯

TAG:機器之心 |