NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

转载發表於2019-05-10

從2018年開始,預訓練(pre-train) 毫無疑問成為NLP領域最熱的研究方向。藉助於BERT和GPT等預訓練模型,人類在多個自然語言理解任務中取得了重大突破。然而,在序列到序列的自然語言生成任務中,目前主流預訓練模型並沒有取得顯著效果。

為此,微軟亞洲研究院的研究員在ICML 2019上提出了一個全新的通用預訓練方法MASS,在序列到序列自然語言生成任務中全面超越BERT和GPT。在微軟參加的WMT19機器翻譯比賽中,MASS幫助中-英、英-立陶宛兩個語言對取得了第一名的成績。

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

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

編碼器-注意力-解碼器框架

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

BERT通常只訓練一個編碼器用於自然語言理解,而GPT的語言模型通常是訓練一個解碼器。如果要將BERT或者GPT用於序列到序列自然語言生成任務,通常只有分開預訓練編碼器和解碼器,因此編碼器-注意力-解碼器結構沒有被聯合訓練,記憶力機制也不會被預訓練,而解碼器對編碼器的注意力機制在這類任務中非常重要,因此BERT和GPT在這類任務中只能達到次優效果。

新的預訓練方法——MASS

專門針對序列到序列自然語言生成任務,微軟亞洲研究院提出了新的預訓練方法:遮蔽序列到序列預訓練(MASS: Masked Sequence to Sequence Pre-training)。MASS對句子隨機遮蔽一個長度為k的連續片段,然後透過編碼器-注意力-解碼器模型預測生成該片段。

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

遮蔽序列到序列預訓練MASS模型框架

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

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

  1. 解碼器端其它詞(在編碼器端未被遮蔽掉的詞)都被遮蔽掉,以鼓勵解碼器從編碼器端提取資訊來幫助連續片段的預測,這樣能促進編碼器-注意力-解碼器結構的聯合訓練;

  2. 為了給解碼器提供更有用的資訊,編碼器被強制去抽取未被遮蔽掉詞的語義,以提升編碼器理解源序列文字的能力;

  3. 讓解碼器預測連續的序列片段,以提升解碼器的語言建模能力。

統一的預訓練框架

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

當k=1時,根據MASS的設定,編碼器端遮蔽一個單詞,解碼器端預測一個單詞,如下圖所示。解碼器端沒有任何輸入資訊,這時MASS和BERT中的遮蔽語言模型的預訓練方法等價。

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

當k=m(m為序列長度)時,根據MASS的設定,編碼器遮蔽所有的單詞,解碼器預測所有單詞,如下圖所示,由於編碼器端所有詞都被遮蔽掉,解碼器的注意力機制相當於沒有獲取到資訊,在這種情況下MASS等價於GPT中的標準語言模型

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

MASS在不同K下的機率形式如下表所示,其中m為序列長度,u和v為遮蔽序列的開始和結束位置,x^u:v表示從位置u到v的序列片段,x^\u:v表示該序列從位置u到v被遮蔽掉。可以看到,當K=1或者m時,MASS的機率形式分別和BERT中的遮蔽語言模型以及GPT中的標準語言模型一致。

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

我們透過實驗分析了遮蔽MASS模型中不同的片段長度(k)進行預訓練的效果,如下圖所示。

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

當k取大約句子長度一半時(50% m),下游任務能達到最優效能。遮蔽句子中一半的詞可以很好地平衡編碼器和解碼器的預訓練,過度偏向編碼器(k=1,即BERT)或者過度偏向解碼器(k=m,即LM/GPT)都不能在該任務中取得最優的效果,由此可以看出MASS在序列到序列自然語言生成任務中的優勢。

序列到序列自然語言生成任務實驗

預訓練流程

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

無監督機器翻譯

在無監督翻譯任務上,我們和當前最強的Facebook XLM作比較(XLM用BERT中的遮蔽預訓練模型,以及標準語言模型來分別預訓練編碼器和解碼器),對比結果如下表所示。

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

可以看到,MASS的預訓練方法在WMT14英語-法語、WMT16英語-德語一共4個翻譯方向上的表現都優於XLM。MASS在英語-法語無監督翻譯上的效果已經遠超早期有監督的編碼器-注意力-解碼器模型,同時極大縮小了和當前最好的有監督模型之間的差距。

低資源機器翻譯

低資源機器翻譯指的是監督資料有限情況下的機器翻譯。我們在WMT14英語-法語、WMT16英語-德語上的不同低資源場景上(分別只有10K、100K、1M的監督資料)驗證我們方法的有效性,結果如下所示。

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

在不同的資料規模下,我們的預訓練方法的表現均比不用預訓練的基線模型有不同程度的提升,監督資料越少,提升效果越顯著。

文字摘要生成

在文字摘要生成(Gigaword Corpus)任務上,我們將MASS同BERT+LM(編碼器用BERT預訓練,解碼器用標準語言模型LM預訓練)以及DAE(去噪自編碼器)進行了比較。從下表可以看到,MASS的效果明顯優於BERT+LM以及DAE。

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

對話生成

在對話生成(Cornell Movie Dialog Corpus)任務上,我們將MASS同BERT+LM進行了比較,結果如下表所示。MASS的PPL低於BERT+LM。

NLP生成任務超越BERT、GPT!微軟提出通用預訓練模型MASS

在不同的序列到序列自然語言生成任務中,MASS均取得了非常不錯的效果。接下來,我們還將測試MASS在自然語言理解任務上的效能,併為該模型增加支援監督資料預訓練的功能,以期望在更多自然語言任務中取得提升。未來,我們還希望將MASS的應用領域擴充套件到包含語音、影片等其它序列到序列的生成任務中。

論文地址:https://arxiv.org/pdf/1905.02450.pdf

微軟研究院表示,將在不久之後開放論文原始碼。

相關文章