Multi-Task Deep Neural Networks for Natural Language Understanding【MT-DNN模型】

背景

機構:微軟亞洲研究院 NLP 組與 SDRG(微軟雷德蒙德語音對話研究組)
作者:Xiaodong Liu、Pengcheng He
發佈地方:arxiv
面向任務:自然語言理解任務(NLU)的學習表示
論文地址:https://arxiv.org/abs/1901.11504
論文代碼:https://github.com/namisan/mt-dnn
更多代碼版本參見:https://paperswithcode.com/paper/multi-task-deep-neural-networks-for-natural

微軟已經在GitHub開源MT-DNN包,其中包含了預訓練的模型、源代碼,並描述瞭如何重現MT-DNN論文中報告的結果,以及如何通過domain adaptation使預訓練的MT-DNN模型適應任何新任務。

導讀

微軟新研究提出一個新的多任務深度神經網絡模型——MT-DNN。MT-DNN結合了BERT的優點,並在10大自然語言理解任務上超越了BERT,在多個流行的基準測試中創造了新的最先進的結果。

語言嵌入是將自然語言符號文本(如單詞、短語和句子)映射到語義向量表示的過程。這是自然語言理解(NLU)深度學習方法的基礎。學習對多個NLU任務通用的語言嵌入是非常必要的。

學習語言嵌入有兩種流行方法,分別是語言模型預訓練多任務學習(MTL)。前者通過利用大量未標記的數據學習通用語言嵌入,但MTL可以有效地利用來自許多相關任務的有監督數據,並通過減輕對特定任務的過度擬合,從正則化效果中獲益,從而使學習的嵌入在任務之間具有通用性

最近,微軟的研究人員發佈了一個用於學習通用語言嵌入的多任務深度神經網絡模型——MT-DNN。MT-DNN結合了MTL和BERT的語言模型預訓練方法的優點,並在10個NLU任務上超越了BERT,在多個流行的NLU基準測試中創造了新的最先進的結果,包括通用語言理解評估(GLUE)、斯坦福自然語言推理(SNLI)和SciTail。

MT-DNN的架構:MT-DNN擴展了微軟在2015年提出的多任務DNN模型(Multi-Task DNN),引入了谷歌AI開發的預訓練雙向transformer語言模型BERT。

 

摘要

本文提出了一種多任務深度神經網絡 (MT-DNN) ,用於跨多種自然語言理解任務的學習表示。MT-DNN 一方面使用了大量跨任務數據,另一方面得益於正則化效果,這種效果使得學習到的表示具有更強的泛化能力,有助於使用到新的任務和領域。MT-DNN是基於Liu et al.(2015)工作基礎上,融合擴展引入了預先訓練的雙向轉換語言模型BERT。MT-DNN在十個**自然語言理解(NLU)**任務上取得了state-of-the-art的成果,包括SNLI、SciTail和GLUE任務中的八個。MT-DNN將GLUE baseline推至82.2 % (提升了1.8 % )。我們還使用SNLI和Sc-iTail數據集證明,與預先訓練的BERT表示相比,MT-DNN學習到的表示在特定領域內標籤數據較少的情況下展現更好的領域適應性。相關的代碼和預先訓練好的模型將公之於衆(截止目前,2019年5月14號,官方尚未公佈。)
介紹

學習文本(eg.詞和句子)的向量空間表示,是許多自然語言理解(NLU)任務的基礎。兩種流行的方法是多任務學習和語言模型的預訓練。本文試圖通過提出一種新的多任務深度神經網絡(MT-DNN)來綜合兩種方法的優點。

多任務學習( MTL )的靈感來自於人的學習活動。在人類的學習活動中,人們經常應用從以前的任務中學到的知識來幫助學習新的任務。例如,在學習滑冰這件事情上,一個知道如何滑雪的人比什麼都不知道的人容易。同樣,**聯合學習多個(相關)**任務也很有用,這樣在一個任務中學習到的知識有益於其他任務。近年來,越來越多的研究人員使用深層神經網絡( DNNs )來對MTL任務進行表徵學習。 有兩個原因。首先,DNNs的監督學習需要大量特定任務的標記數據,這些數據並不總是可用的。MTL提供了一種有效的方法來利用來自許多相關任務的監督數據。第二,多任務學習通過正則化效應,能夠減輕對特定任務的過度擬合,使得所學習的表示在任務間更加通用。

與多任務學習不同,語言模型預訓練已經被證明對學習通用語言表示很有用,因爲這樣可以輕易利用大量的無監督文本,比如elmo,gpt和bert。BERT基於多層雙向transformer,並在純文本上進行訓練,訓練目標是屏蔽單詞預測和下句預測任務。爲了將預訓練好的模型應用於特定的自然語言任務,經常需要使用特定任務的訓練數據,通過附加的特定任務層來微調每個任務的模型。BERT可以通過這種方式進行微調,爲一系列NLU任務創建最好的模型,例如問答和自然語言推理。

本文認爲MTL和預訓練語言模型是互補的技術,可以結合起來提高文本表徵的學習效果,進而提高各種自然語言處理任務性能的表現。爲此,本文擴展了MT-DNN,將BERT作爲共享的文本編碼層。如圖1所示,底層(即文本編碼層)在所有任務中共享,而頂層是特定於任務的,結合了不同類型的自然語言理解任務,例如單句分類、成對文本分類、文本相似性和相關性排序。與BERT模型相似,MT-DNN的訓練分爲兩個階段:預訓練和微調。與BERT不同,MT-DNN在微調階段,在模型架構中用多個特定於任務的層進行MTL。

在GLUE(General Language Understanding Evaluation,通用語言理解評估)基準的9個自然語言理解(NLU)任務中,我們用MT-DNN有刷新了其中8個任務的新記錄。將GLUE基準分數提高到82.2 %,比BERT提高了1.8 %。多補充幾句,GLUE是九種(英語)語言理解任務的集合,包括文本蘊涵、情感分析和語法判斷等。其設計目的是覆蓋足夠大的NLP領域,以使得只有開發出足夠通用的工具,才能在這一基準上表現良好;這樣也有助於解決未來可能新遇到的語言理解問題。但是隨着模型的不斷升級,現在已經對 GLUE 指標進行更新,升級爲SuperGLUE。保留了兩項 GLUE 任務,另外又加入了其它五項新任務。回到正題,此外本文還將MT-DNN擴展應用到SNLI(Bowman et al.,2015a) 和SciTail((Khot et al., 2018)任務。與預訓練的BERT表示相比,MT-DNN學習到的表示對領域內的標註數據量要求更少,因爲它有更好的領域適應性。MT-DNN模型在SNLI上的準確率爲91.1 %,在SciTail上的準確率爲94.1 %,分別比之前最先進的性能高出1.0 %和5.8 %。即使只有0.1%或1.0%的原始訓練數據, MT-DNN在SNLI和SciTail數據集上的性能也相當好,遠遠優於許多現有模型。這些都足以說明MT-DNN結合多任務學習和預訓練後其泛化能力得到了大大的提升。


任務

MT-DNN聯合處理四種類型NLU任務:單句分類,成對文本(pairwise text)分類,文本相似度打分,相關性排序。舉例如下:
單句分類:CoLA任務是預測英語句子是否合乎語法,SST-2任務預測電影評論是正向還是負向。
文本相似度:這是一個迴歸任務。對於給定的句子對,模型計算二者之間的相似度。在GLUE中只有STS-B這個任務是處理文本相似度。
成對文本分類(文本蘊含):對於給定的句子對,推理兩個句子之間的關係。RET和MNLI是語言推理任務,推理句子之間是否存在蘊含關係、矛盾的關係或者中立關係。QQP和MRPC是預測句子是否語義等價。
相關性排序:給定一個問題和一系列候選答案,模型根據問題對所有候選答案進行排序。QNLI是斯坦福問答數據集的一個版本,任務是預測候選答案中是否包含對問題的正確答案。儘管這是一個二分類任務,但我們依舊把它當作排序任務,因爲模型重排了候選答案,將正確答案排在更前。


模型介紹

MT-DNN的體系結構如下圖1所示。底層在所有任務中共享,頂層代表特定任務的輸出(輸入X可以是一個句子或一對句子,其中的每個單詞都先被表示爲一個嵌入向量序列,表示爲l_1。然後,基於transformer的編碼器捕獲每個單詞的上下文信息,並在l_2中生成共享的上下文嵌入向量。最後,對於每個任務,額外的 task-specific 的層生成特定於任務的表示,然後是分類、相似度評分或相關性排序所需的操作。MT-DNN使用BERT來初始化它的共享層,然後通過MTL改進它們)。

輸入X是一個單詞序列(一個句子或一對組合在一起的句子對),首先在l_1中表示爲一系列embedding向量,每個單詞對應一個向量。然後輸入到特徵提取器transformer,transformer通過self-attention在l_2中生成一系列上下文表示(語境嵌入序列)。

圖 1:表徵學習 MT-DNN 模型的架構。下面的網絡層在所有任務中都共享,上面的兩層是針對特定任務。輸入 X(一句話或句子對)首先表徵爲一個序列的嵌入向量,在l_1​ 中每個詞對應一個向量。然後 Transformer 編碼器捕捉每個單詞的語境信息並在l_2中生成共享的語境嵌入向量。最後,針對每個任務,特定任務層生成特定任務的表徵,而後是分類、相似性打分、關聯排序等必需的操作。

3.1 訓練過程

MT-DNN 的訓練程序包含兩個階段:預訓練和多任務微調。預訓練階段遵循 BERT 模型的方式。lexicon encoder和Transformer encoder參數的學習是通過兩個無監督預測任務:掩碼語言建模(masked language modeling)和下一句預測(next sentence pre-
diction)。
在多任務微調階段,我們使用基於minibatch的隨機梯度下降(SGD)來學習模型參數(也就是,所有共享層和任務特定層的參數),算法流程如下圖所示。每個epoch,選擇一個mini-batch b_t(在9個GLUE任務中),再對特定任務k進行模型參數的更新。這近似地優化所有多任務的和。

實驗

我們在 GLUE、斯坦福自然語言推理(SNLI)和 SciTail 三個流行的自然語言理解基準上評估了 MT-DNN。對比MT-DNN 與現有的包括 BERT 在內的 SOTA 模型,在 GLUE 上證明了 MTL 進行模型微調的有效性,在 SNLI 和 SciTail 上證明了 MTL 的領域適應性(領域自適應結果:評估語言嵌入的通用性的一種方法是測量嵌入適應新任務的速度,或者需要多少特定於任務的標籤才能在新任務上獲得不錯的結果。越通用的嵌入,它需要的特定於任務的標籤就越少。MT-DNN論文的作者將MT-DNN與BERT在領域自適應(domain adaption)方面的表現進行了比較。在域適應方面,兩種模型都通過逐步增加域內數據(in-domain data)的大小來適應新的任務。SNLI和SciTail任務的結果如下表和圖所示。可以看到,在只有0.1%的域內數據(SNLI中爲549個樣本,SciTail中爲23個樣本)的條件下,MT-DNN的準確率超過80%,而BERT的準確率在50%左右,這說明MT-DNN學習的語言嵌入比BERT的更加通用)。

與BERT相比,MT-DNN在SNLI和SciTail數據集上的精度更高。

 

在GLUE、SNLI和SciTail 3個benchmarks上的結果

 

實驗細節

在MT-DNN中採用的是PyTorch版本的BERT,優化器選用的是AdaMax,學習率設置爲5e−5,batch size設置爲32,epoch數最大設置爲5。

實驗結果

(1)test數據集

MT-DNN在GLUE中除了WNLI之外的全部任務都超越了已有的系統,獲得SOTA結果,並將該benchmark推到了新高度:82.2%,超出了$BERT_{large}1.8

1.8BERT_{large}$在共享層被使用,MT-DNN性能的提升是來自於在微調階段使用MTL。多任務學習(MTL)對於領域內數據集較少的情況,特別有用。從上表可以看出,對於相同任務,MT-DNN在少數據量時候取得超出BERT的指標。例如對於NLI任務:RTE任務和MNLI任務,再比如對於釋義任務:MRPC和QQP。在test數據集上的結果:

在GLUE測試集的結果,MT-DNN在10個任務上的結果均超越了BERT

 

(2)dev數據集

MT-DNN優越的性能也得益於其靈活的模型框架,其框架的靈活性使得其可以方便地引入特定任務的模型框架和訓練方法。這些框架和訓練方法都已經被研究人員在單一特定任務上做了充分研究,能夠被有效地利用起來。文本在此,以2個例子進一步說明。其一是SAN的回答模塊被引入到文本蘊含分類任務中,另一個是在QNLI任務(在GLUE中是一個二分類任務)中引入pairwise ranking loss。爲了充分證明上述2個模型設計的選擇有助於提升MT-DNN,本文設計了不同版本的MT-DNN,並在dev set上進行對比。在dev 數據集上的結果如下:

這裏的MT-DNN中的共享層採用的是BERTbaseBERTbase​。對比表3可以看出,在dev set上的結果與表2是一致的。MT-DNN優於BERT。ST-DNN是Single-Task DNN,在模型框架上與MT-DNN保持一致。所不同的是,ST-DNN不在所有任務上所微調,而僅僅在本領域數據集上做微調。如此,就形成了多個ST-DNNs。對於文本蘊含(pairwise text classification )分類任務,ST-DNNs和BERT的唯一區別在於特定任務的輸出模塊。在MNLI, QQP和MRPC任務上ST-DNNs超越BERT,這也證明了SAN回答模塊的有效性。【RTE任務遜色於BERT,這是爲什麼???
在QNLI上也對比了ST-DNN和BERT,ST-DNN使用pairwise ranking loss進行微調,BERT將QNLI視爲一個二分類任務,並在交叉熵損失函數上進行微調。結果ST-DNN遠遠超過BERT。

新領域的泛化結果

構建實用系統的一個重要標準就是對新任務和領域的快速適應力。收集標註數據是非常昂貴的,我們經常只能有很小的數據集甚至可能沒有用以訓練的數據集。

爲了評估新領域的適用性,基於2個NLI任務數據集:SNLI和SciTail,進行說明。具體操作步驟如下:

    1、微調MT-DNN在八個GLUE任務上(除了WNLI)。
    2、已經已經訓練過的MT-DNN,分別訓練SNLI和SciTail數據集。
    3、用各自的任務中的test set對模型評估
    對於預訓練的BERT也是採用相同的處理流程,針對這2個任務分別構建模型。

MT-DNN和BERT在不同訓練樣本量下的表現:

上圖2對應的具體指標:

從上圖可以看出,在訓練數據少的情況下,MT-DNN一直比BERT優越。

 

參考:

(1)https://blog.csdn.net/Magical_Bubble/article/details/89517709

(2)https://blog.csdn.net/ljp1919/article/details/90269059

(3)https://blog.csdn.net/Magical_Bubble/article/details/89524404

(4)https://blog.csdn.net/tMb8Z9Vdm66wH68VX1/article/details/88802234

(5)https://blog.csdn.net/malefactor/article/details/83961886

(6)https://blog.csdn.net/TgqDT3gGaMdkHasLZv/article/details/84332619

(7)https://blog.csdn.net/sinat_26917383/article/details/81913790

 

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