預訓練模型(6)---- MASS

MASS: Masked Sequence to Sequence Pre-training for Language Generation

這是微軟亞洲研究院在ICML2019的一篇文章,在NLP任務上超越了Bert、XLNet、XLM。不僅適用於有監督任務,還適用於無監督任務。而且框架結構非常靈活,可以根據自己的喜好隨意調整,真的是太強大了。

文章鏈接:

MASS: Masked Sequence to Sequence Pre-training for Language Generation

代碼鏈接:

https://github.com/microsoft/MASS

摘要

通過將知識從資源豐富的預訓練任務轉移到資源低/零資源的下游任務,預訓練和微調(例如BERT)已在語言理解方面取得了巨大成功。受BERT成功的啓發,我們提出了MAsked序列到序列預訓練(MASS),用於基於編碼器-解碼器的語言生成。MASS採用編碼器-解碼器框架,根據句子的剩餘部分來重構一個句子片段:它的編碼器以一個帶有隨機屏蔽片段(幾個連續的單詞)的句子作爲輸入,它的解碼器試圖預測這個屏蔽片段。通過這種方式,MASS可以聯合訓練編碼器和解碼器來開發表示抽取和語言建模的能力。通過進一步微調各種零/低資源的語言生成任務,包括神經機器翻譯、文本摘要和會話響應生成(3個任務和總共8個數據集),MASS在沒有預訓練或使用其他前訓練方法的情況下相對於基線方法有了顯著改進。特別地,我們在無監督的英法翻譯上達到了最先進的準確性(BLEU分數爲37.5),甚至超過了早期基於注意力的監督模型。

引言

BERT在自然語言理解(比如情感分類、自然語言推理、命名實體識別、SQuAD閱讀理解等)任務中取得了很好的結果,受到了越來越多的關注。然而,在自然語言處理領域,除了自然語言理解任務,還有很多序列到序列的自然語言生成任務,比如機器翻譯、文本摘要生成、對話生成、問答、文本風格轉換等。在這類任務中,目前主流的方法是編碼器-注意力-解碼器框架。

編碼器(Encoder)將源序列文本X編碼成隱藏向量序列,然後解碼器(Decoder)通過注意力機制(Attention)抽取編碼的隱藏向量序列信息,自迴歸地生成目標序列文本Y。

模型結構

MASS專門針對序列到序列的自然語言生成任務。

MASS對句子隨機屏蔽一個長度爲k的連續片段,然後通過編碼器-注意力-解碼器模型預測生成該片段。 模型結構如下:

在這裏插入圖片描述
如上圖所示,編碼器端的第3-6個詞被屏蔽掉,然後解碼器端只預測這幾個連續的詞,而屏蔽掉其它詞,圖中“_”代表被屏蔽的詞。

MASS預訓練有以下幾大優勢:

  1. 解碼器端其它詞(在編碼器端未被屏蔽掉的詞)都被屏蔽掉,以鼓勵解碼器從編碼器端提取信息來幫助連續片段的預測,這樣能促進編碼器-注意力-解碼器結構的聯合訓練;
  2. 爲了給解碼器提供更有用的信息,編碼器被強制去抽取未被屏蔽掉詞的語義,以提升編碼器理解源序列文本的能力。
  3. 讓解碼器預測連續的序列片段,以提升解碼器的語言建模能力。

統一的預訓練框架(包含GPT和Bert)

這部分是MASS的強大之處。

MASS有一個重要的超參數k(屏蔽的連續片段長度),通過調整k的大小,MASS能包含BERT中的屏蔽語言模型訓練方法以及GPT中標準的語言模型預訓練方法,使MASS成爲一個通用的預訓練框架。

當k=1時,根據MASS的設定,編碼器端屏蔽一個單詞,解碼器端預測一個單詞,如下圖所示。這時我們應該會想到Bert只使用了Transformer的編碼器模塊,此時MASS解碼器端沒有任何輸入信息,就相當於只用到了編碼器模塊,那麼這時MASS和BERT中的屏蔽語言模型的預訓練方法等價
在這裏插入圖片描述
當k=m(m爲序列長度)時,根據MASS的設定,編碼器屏蔽所有的單詞,解碼器預測所有單詞,如下圖所示。這時我們又想到GPT只使用了Transformer的解碼器模塊, 此時由於MASS編碼器端所有詞都被屏蔽掉,解碼器的注意力機制相當於沒有獲取到信息,在這種情況下MASS等價於GPT中的標準語言模型

在這裏插入圖片描述
可以看到,當K=1或者m時,MASS的概率形式分別和BERT中的屏蔽語言模型以及GPT中的標準語言模型一致。

在這裏插入圖片描述

實驗結果

MASS只需要無監督的單語數據(比如WMT News Crawl Data、Wikipedia Data等)進行預訓練。MASS支持跨語言的序列到序列生成(比如機器翻譯),也支持單語言的序列到序列生成(比如文本摘要生成、對話生成)。當預訓練MASS支持跨語言任務時(比如英語-法語機器翻譯),我們在一個模型裏同時進行英語到英語以及法語到法語的預訓練。需要單獨給每個語言加上相應的語言嵌入向量,用來區分不同的語言。我們選取了無監督機器翻譯、低資源機器翻譯、文本摘要生成以及對話生成四個任務,將MASS預訓練模型針對各個任務進行精調,以驗證MASS的效果。

無監督機器翻譯

在無監督翻譯任務上,我們和以前的工作做對比,其中包括在無監督機器翻譯表現很好的 Facebook XLM(XLM用BERT中的屏蔽預訓練模型,以及標準語言模型來分別預訓練編碼器和解碼器),對比結果如下表所示。
在這裏插入圖片描述
MASS竟然在XLM的基礎上提高了那麼多,確實厲害。

文本摘要生成

在文本摘要生成(Gigaword Corpus)任務上,我們將MASS同BERT+LM(編碼器用BERT預訓練,解碼器用標準語言模型LM預訓練)以及DAE(去噪自編碼器)進行了比較。從下表可以看到,MASS的效果明顯優於BERT+LM以及DAE。
在這裏插入圖片描述
在不同的序列到序列自然語言生成任務中,MASS均取得了非常不錯的效果。接下來,我們還將測試MASS在自然語言理解任務上的性能,併爲該模型增加支持監督數據預訓練的功能,以期望在更多自然語言任務中取得提升。未來,我們還希望將MASS的應用領域擴展到包含語音、視頻等其它序列到序列的生成任務中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章