超越BERT、GPT,微軟提出通用預訓練模型MASS

2021-01-11 機器之心Pro

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

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

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

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

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

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

新的預訓練方法——MASS

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

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

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

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

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

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

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

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

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

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

當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中的屏蔽預訓練模型,以及標準語言模型來分別預訓練編碼器和解碼器),對比結果如下表所示。

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

低資源機器翻譯

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

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

文本摘要生成

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

對話生成

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

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

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

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

相關焦點

  • 超越BERT 和 GPT,微軟亞洲研究院開源新模型 MASS!
    雷鋒網 AI 科技評論按:自 2018 年以來,預訓練無疑是自然語言處理(NLP)領域中最熱門的研究課題之一。通過利用 BERT、GPT 和 XLNet 等通用語言模型,該領域的研究者們在自然語言理解方面已經取得了許多重大的突破。
  • 微軟亞研院提出通用預訓練模型MASS
    5月10日消息,微軟亞洲研究院的研究員在ICML 2019上提出了一個全新的通用預訓練方法MASS(Masked Sequence to Sequence Pre-training),在序列到序列的自然語言生成任務中全面超越BERT和GPT。在微軟參加的WMT19機器翻譯比賽中,MASS幫助中-英、英-立陶宛兩個語言對取得了第一名的成績。
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    機器之心報導參與:一鳴昨日,機器之心報導了 CMU 全新模型 XLNet 在 20 項任務上碾壓 BERT 的研究,引起了極大的關注。而在中文領域,哈工大訊飛聯合實驗室也於昨日發布了基於全詞覆蓋的中文 BERT 預訓練模型,在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。
  • 微軟認知AI團隊提出視覺詞表預訓練超越...
    傳統的看圖說話方法主要有兩種:一種是模板生成,一種是基於 Transformer 的圖像文本交互預訓練。為解決這些問題,微軟認知服務團隊的研究人員提出了一種名為視覺詞表預訓練(Visual Vocabulary Pre-training,簡稱VIVO)的解決方案。
  • Pytorch-Transformers 1.0 發布,支持六個預訓練框架,含 27 個預...
    哪些支持PyTorch-Transformers(此前叫做pytorch-pretrained-bert)是面向自然語言處理,當前性能最高的預訓練模型開源庫。該開源庫現在包含了 PyTorch 實現、預訓練模型權重、運行腳本和以下模型的轉換工具:1、谷歌的 BERT,論文:「BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding」,論文作者:Jacob Devlin, Ming-Wei
  • NLP領域預訓練模型的現狀及分析
    預訓練的方法最初是在圖像領域提出的,達到了良好的效果,後來被應用到自然語言處理。預訓練一般分為兩步,首先用某個較大的數據集訓練好模型(這種模型往往比較大,訓練需要大量的內存資源),使模型訓練到一個良好的狀態,然後下一步根據不同的任務,改造預訓練模型,用這個任務的數據集在預訓練模型上進行微調。
  • NeurIPS|既能理解又能生成自然語言,微軟提出統一預訓練新模型
    選自arXiv作者:Li Dong、Nan Yang、Wenhui Wang 等機器之心編譯參與:Panda自然語言是人工智慧正在攻克的一大難關,而微軟的研究者最近發布了一種統一的預訓練語言模型 UniLM
  • PTMs|2020最新NLP預訓練模型綜述
    提出了一種預訓練模型的分類體系,通過四種分類維度來劃分目前已有的預訓練模型。nlp中的預訓練模型就是這樣一類能夠在大規模語料上進行無監督訓練,學習得到通用的語言表徵,有助於解決下遊任務的nlp模型。「那麼什麼是好的語言表徵呢」?作者引用了Bengio的話,「好的表徵能夠表達非特定任務的通用先驗知識,能夠有助於學習器來解決AI任務.」
  • 微軟提出新型通用神經機器翻譯方法,挑戰低資源語言翻譯問題
    微軟提出的系統使用遷移學習方法將不同源語言中詞彙級別和句子級別的表徵共享到一個目標語言中。該設置假設多種源語言包括高資源語言和低資源語言。微軟的主要目標是能夠共享所學的模型,以便幫助低資源語言。該系統架構對神經機器翻譯(NMT)的編碼器-解碼器框架新增了兩個修改,以實現半監督通用神經機器翻譯。主要修改了編碼器部分,如圖 2 所示。
  • 一文讀懂最強中文NLP預訓練模型ERNIE
    基於飛槳開源的持續學習的語義理解框架ERNIE 2.0,及基於此框架的ERNIE 2.0預訓練模型,在共計16個中英文任務上超越了BERT和XLNet, 取得了SOTA效果。本文帶你進一步深入了解ERNIE的技術細節。
  • 預訓練圖像處理Transformer:華為諾亞、北大等提出IPT模型,刷榜多...
    例如 OpenAI 的 iGPT、Facebook 提出的 DETR 等,這些跨界模型多應用於圖像識別、目標檢測等高層視覺任務。而華為、北大、悉大以及鵬城實驗室近期提出了一種新型預訓練 Transformer 模型——IPT(Image Processing Transformer),用於完成超解析度、去噪、去雨等底層視覺任務。
  • GPT-GNN:圖神經網絡的生成式預訓練方法
    事實上,在NLP任務中也同樣存在著類似的問題,作者利用自然語言處理中預訓練的思想: "從大量的未標記語料庫中訓練一個模型,然後將學習到的模型轉移到只有少量標記的下遊任務",嘗試通過對圖神經網絡進行預訓練,使得GNN能夠捕獲輸入圖的結構和語義屬性,從而輕鬆地將其推廣到任何下遊任務。預訓練的目標是允許一個模型(通常是神經網絡)用預訓練的權重初始化它的參數。
  • NLU新裡程碑,微軟DeBERTa登頂SuperGLUE排行榜,顯著超越人類
    機器之心報導參與:小舟、陳萍在最新的 NLU 測試基準 SuperGLUE 中,微軟提出的 DeBERTa 登頂榜單,並超越人類。去年 6 月,來自微軟的研究者提出一種新型預訓練語言模型 DeBERTa,該模型使用兩種新技術改進了 BERT 和 RoBERTa 模型。8 月,該研究開源了模型代碼,並提供預訓練模型下載。最近這項研究又取得了新的進展。
  • 騰訊提出NumNet+模型,超越谷歌登DROP排行榜第一名
    除了最核心的 NumGNN 模塊外,NumNet+還結合了預訓練模型 RoBERTa。 具體來說,問題和文本進入模型後需要先進行 encoding,NumNet+ 中用預訓練模型替換了 NumNet 中的未經過預訓練的 Transformer 作為 encoder。
  • 【微軟】大型神經語言模型的對抗性訓練,Adversarial Training
    對抗性訓練可以增強魯棒性,但是過去的工作常常發現它不利於推廣。在自然語言處理(NLP)中,預訓練大型神經語言模型(例如BERT)在針對各種任務的通用化方面顯示出令人印象深刻的收益,而從對抗性微調中得到了進一步的改進。但是,這些模型仍然容易受到對抗性攻擊。在本文中,我們表明對抗性預訓練可以同時提高泛化性和魯棒性。
  • 1.6萬億參數的語言模型:谷歌大腦提出Switch Transformer,預訓練...
    此外,他們提出的訓練技術還提高了訓練的穩定性,首次表明大型稀疏模型也可以用低精度(bfloat16)進行訓練。models)預訓練可擴展性在預訓練期間,研究者對 Switch Transformer 的可擴展性進行了研究。
  • 大神教程乾貨:使用BERT的多類別情感分析!(附代碼)
    BERT概述BERT是用於通用「語言理解」 的深度雙向表示模型,可從左至右和從右至左學習信息。(『yelp_review_full_csv\\dev.tsv』, sep=』\t』, index=False, header=False)df_bert_test.to_csv(『yelp_review_full_csv\\test.tsv』, sep=』\t』, index=False, header=True)訓練BERT模型我們將加載經過預訓練的基於BERT的Uncased
  • 乾貨| BERT fine-tune 終極實踐教程
    一個是訓練語言模型(language model)的預訓練(pretrain)部分。另一個是訓練具體任務(task)的fine-tune部分。在開源的代碼中,預訓練的入口是在run_pretraining.py而fine-tune的入口針對不同的任務分別在run_classifier.py和run_squad.py。其中run_classifier.py適用的任務為分類任務。
  • 復旦邱錫鵬超全NLP預訓練模型綜述論文:兩張圖帶你梳理完整脈絡
    最近一兩年,大量的研究工作表明,大型語料庫上的預訓練模型(PTM)已經可以學習通用的語言表徵,這對於下遊的 NLP 相關任務是非常有幫助的,可以避免大量從零開始訓練新模型。而隨著算力的發展、深層模型(Transformer)出現以及訓練技能的不斷提高,PTM 體系結構已然從淺層發展到了深層。