微軟提出新預訓練語言模型DeBERTa:僅需一半數據且效果優於BERT、RoBERTa

在自然語言處理領域,預訓練語言模型在多項NLP任務都獲得了不錯的提升。從ELMo、GPT、BERT到XLNet、RoBERTa,預訓練語言模型在GLUE、SQuAQ和RACE三個榜單頻頻刷新紀錄。最近,微軟提出了一種新的預訓練語言模型“DeBERTa”。它從兩方面改進BERT和RoBEARTa,實驗表明,DeBERTa在許多下游NLP任務上表現都優於RoBERTa和BERT。本文是AI前線第109篇論文導讀,我們將對這項研究工作進行詳細解讀。

概覽

Transformer已經成爲神經語言建模中最有效的神經網絡結構。與按順序處理文本的遞歸神經網絡(RNNs)不同,Transformers應用自關注並行地計算輸入文本中的每個單詞的注意力權重,該權重衡量每個單詞對另一個單詞的影響,從而能夠實現比RNNs更好的並行大規模模型訓練。自2018年以來,我們看到了一組基於Transformer的大規模預訓練語言模型(PLMs)的興起,如GPT、BERT、RoBERTa、XLNet、UniLM、ELECTRA、T5、ALUM、StructBERT和ERINE。這些PLMs使用特定於任務的標籤進行了微調,並在許多下游自然語言處理(NLP)任務中實現了新的突破。

本文提出了一種新的基於Transformer的神經語言模型DeBERTa(Decoding enhanced BERT with discentanged attention),它被證明比RoBERTa和BERT作爲PLM更有效,並且經過微調後,在一系列NLP任務中取得了更好的效果。

DeBERTa對BERT模型做了兩個修改:

  • 第一,與BERT不同,DeBERTa使用一種分離的注意機制來進行自我注意。在BERT中,輸入層中的每個單詞都是用一個向量表示的,這個向量是單詞(內容)嵌入和位置嵌入的總和,而DeBERTa中的每個單詞都是用兩個向量表示的,這兩個向量分別對其內容和位置進行編碼,並且單詞之間的注意力權重是根據單詞的位置和內容來計算的內容和相對位置。這是因爲觀察到一對詞的注意力權重不僅取決於它們的內容,而且取決於它們的相對位置。例如,當單詞“deep”和“learning”相鄰出現時,它們之間的依賴性要比出現在不同句子中時強得多。
  • 第二,DeBERTa在預訓練時增強了BERT的輸出層。在模型預訓練過程中,將BERT的輸出Softmax層替換爲一個增強的掩碼解碼器(EMD)來預測被屏蔽的令牌。這是爲了緩解訓練前和微調之間的不匹配。在微調時,我們使用一個任務特定的解碼器,它將BERT輸出作爲輸入並生成任務標籤。然而,在預訓練時,我們不使用任何特定任務的解碼器,而只是通過Softmax歸一化BERT輸出(logits)。因此,我們將掩碼語言模型(MLM)視爲任何微調任務,並添加一個任務特定解碼器,該解碼器被實現爲兩層Transformer解碼器和Softmax輸出層,用於預訓練。

我們將通過一個綜合的實證研究表明,這兩種技術大大提高了訓練前的效率和下游任務的執行。與RoBERTa Large相比,使用一半訓練數據訓練的DeBERTa模型在一系列NLP任務中的表現都比較好,在MNLI上提高了+0.9%(90.2% vs 91.1%),在SQuAD v2.0上提高了+2.3%(88.4% vs 90.7%),在RACE提高了+3.6%(83.2% vs 86.8%)。

方法

分散注意力機制

對於序列中位置i處的令牌,我們使用兩個向量{H i}和{P i | j }來表示,這兩個向量分別表示在j的位置,令牌的內容和其的相對位置。令牌i和j之間交叉注意力得分的計算可以分解爲四個部分,如下所示

也就是說,一個詞對的注意力權重可以計算爲四個注意力得分的總和,使用在其內容和位置上的分散矩陣作爲內容到內容、內容到位置、位置到內容和位置到位置。

現有的相對位置編碼方法[19,21]在計算注意力權重時使用單獨的嵌入矩陣來計算相對位置偏差。這相當於僅使用(2)中的內容對內容和內容對位置項計算注意力權重。我們認爲,詞對的注意力權重不僅取決於詞對的內容,而且取決於詞對的相對位置,因此詞對的位置對內容項也很重要,只有同時使用內容對位置和位置對內容項才能完全建模。由於我們使用了相對位置嵌入,因此位置到位置項不提供太多附加信息,並且在我們的實現中從(2)中移除。

以單頭注意爲例,標準的自我注意力可以表述爲:

其中,H ∈ R Nxd表示輸入隱藏向量,Ho ∈ R Nxd 表示自我注意的輸出,Wq,Wk,Wv ∈R d x d表示投影矩陣,A ∈ R NxN表示注意力矩陣,N表示輸入序列的長度,d表示隱藏狀態的維數。

k表示爲最大相對距離,δ (i,j )∈ [0,2k ) 作爲從令牌 i 到令牌 j的相對距離,定義爲:

我們可以將具有相對位置偏差的分散自注意力表示爲(4),其中Qc、Kc和Vc分別是使用投影矩陣Wq,c ,Wk,c,Wv,c ∈ R dxd生成的投影內容向量,P ∈ R 2k xd表示跨所有層共享的相對位置嵌入向量(即在正向傳播期間保持不變),Qr和Kr分別是使用投影矩陣Wq,r,Wk,r ∈ R d x d生成的投影相對位置向量。

A^i,j是注意矩陣A^的元素,表示從令牌i到令牌j的注意力得分。Qci是Qc的第i行。Kcj是Kc的第j行。Krδ(i,j)是關於相對距離δ(i,j)的Kr的第i行的δ(i,j)。Qrδ(j,i)是關於相對距離δ(j,i)的Qr的第i行δ(j,i)。注意,這裏我們使用δ(j,i)而不是δ(i,j)。這是因爲對於給定的位置i,位置到內容計算j處的關鍵內容相對於i處的查詢位置的注意力權重,因此相對距離是δ(j,i)。位置到內容項計算爲K(c j) Qrδ(j,i) (T)。內容到位置的項以類似的方式計算。

最後,對於穩定模型訓練(尤其是對於大型PLMs)而言,應用一個比例因子1/√(3d)在A^上非常重要。

高效實現

對於長度N的輸入序列,需要O(N^2d)的空間複雜度來存儲每個令牌的相對位置嵌入。然而,以內容到位置爲例,我們注意到由於δ(i,j) ∈[0,2k) 以及所有可能的相對位置的嵌入始終是Kr ∈ R 2k x d的子集,因此我們可以在所有查詢的注意力計算中重用Kr。

在實驗中,我們將訓練前的最大相對距離k設置爲512。算法1可以有效地計算出分散的注意力權重。根據(3)設δ爲相對位置矩陣,即δ[i,j]=δ(i,j)。我們沒有爲每個查詢分配不同的相對位置嵌入矩陣,而是將每個查詢向量Qc[i,:]乘以K T r ∈ R d x2k,如第3行5所示。然後,我們使用相對位置矩陣δ作爲索引來提取注意力權重,如第6-10行所示。爲了計算內容注意得分的位置,我們通過將每個鍵向量Kc[j,:]乘以Q T r來計算A^p->c[:,j],即注意矩陣A^p->c的列向量,如第11行13所示。最後,我們通過相對位置矩陣δ作爲索引提取相應的注意力得分,如第14行和第18行所示。這樣,我們不需要分配內存來存儲每個查詢的相對位置嵌入,從而將空間複雜度降低到O(kd)(用於存儲Kr和Qr)。

增強型掩碼解碼器

在標準的BERT預訓練期間,我們通過詞彙表將與掩碼令牌對應的最終隱藏向量輸送給輸出Softmax層。在微調過程中,我們將BERT輸出輸入到一個特定於任務的解碼器中,該解碼器具有一個或多個特定任務的解碼層,如果輸出是概率,則再加上一個Softmax層。爲了減少預訓練和微調之間的不匹配,我們將MLM和其他下游任務一樣對待,並用包含一個或多個Transformer層和一個Softmax輸出層的增強型掩碼解碼器(EMD)替換BERT的輸出Softmax。這使得結合BERT和EMD進行預訓練的DeBERTa成爲一個編碼器-解碼器模型。

爲滿足多個需求,我們設計了用於預訓練的DeBERTa模型體系結構。首先,編碼器應該比解碼器深得多,因爲前者用於微調。其次,編解碼模型的參數個數需要與BERT的參數個數相似,使得預訓練耗費與BERT相同。第三,DeBERTa的預訓練編碼器應該類似於BERT,這樣它們在下游任務上的微調成本和性能是可比較的。

以12層BERT基模型爲基線進行比較。實驗中使用的預訓練DeBERTa結構由11層Transformer組成的編碼器,2層Transformer共享參數的解碼器和一個Softmax輸出層組成。因此,該模型具有與BERT-base相似的自由參數。在對DeBERTa模型進行預訓練後,我們對11層編碼器和1層解碼器進行疊加,以恢復標準的BERT基結構進行微調。

此外,在將編碼器輸出向量輸入EMD進行MLM預訓練時,我們對其進行了一個雖小但重要的修改。BERT的作者建議不要用[MASK]令牌替換所有掩碼令牌,保持10%不變。儘管這是爲了緩解微調和預訓練之間的不匹配,因爲在下游任務的輸入中從來沒有出現過[MASK],但是該方法遭受信息泄漏的影響,即預測以令牌本身爲條件的掩碼令牌。爲了解決這個問題,我們在將這些被掩碼但未改變的令牌輸入解碼器進行預測之前,將它們的編碼器輸出向量替換爲相應的絕對位置嵌入向量。

實驗

這一節將對DeBERTa在各種NLP任務上的表現進行評估。

主要結果

根據之前關於BERT、RoBERTa和XLNet的論文,我們使用大型和基模型來報告結果。

1 大型模型的性能表現

我們按照BERT的設置預訓練我們的大型模型,不過我們使用的是BPE詞彙表。對於訓練數據,我們使用Wikipedia(English Wikipedia dump;12GB)、BookCorpus(6GB)、OPENWEBTEXT(public Reddit content;38GB)和STORIES(CommonCrawl的子集;31GB)。重複數據消除後的總數據大小約爲78GB。我們使用6臺DGX-2機器和96個V100 GPU來訓練模型。單個模型訓練,batch size 設置爲2K,1M的steps,大約需要20天的時間。

我們在表1中總結了8個GLUE任務的結果,其中比較了DeBERTa和以前的模型(參數約爲350M)的BERT、RoBERTa和XLNet。注意,RoBERTa和XLNet使用160G訓練數據,而DeBERTa使用78G訓練數據。RoBERTa和XLNet被訓練了500K步,一步8K個樣本,超過訓練樣本40億次。我們對DeBERTa進行100萬步的訓練,每一步有2千個樣本。這相當於其訓練樣本的20億次pass,約佔RoBERTa或XLNet的一半。

表1顯示,與BERT和RoBERTa相比,DeBERTa在所有任務中始終表現得更好。同時,DeBERTa在八項任務中有六項優於XLNet。特別是,MRPC(1.7%超過XLNet,1.6%超過RoBERTa)、RTE(2.2%超過XLNet,1.5%超過RoBERTa)和CoLA(0.5%超過XLNet,1.5%超過RoBERTa)的改進非常顯著。

注意,MNLI經常被用作一項指示性任務,以監測預訓練的進度。DeBERTa在MNLI上的表現明顯優於所有現有相同參數量的模型,並打破了一個新的state-of-the-art(SOTA)。

我們根據額外的基準來評估DeBERTa:(1)問答:SQuAD v1.1、SQuAD v2.0、RACE、ReCoRD和SWAG;(2)自然語言推理:MNLI;(3)NER:CoNLL-2003。爲了進行比較,我們還將Megatron分爲三種不同的模型尺寸:Megatron 336M、Megatron 1.3B和Megatron 3.9B,它們使用與RoBERTa相同的數據集進行訓練。請注意,Megatron336M的模型大小與上述其他模型相似。

我們將結果總結在表2中。與之前的SOTA模型(包括BERT、RoBERTa、XLNet和Megatron336M)相比,DeBERTa在這7項任務中的表現始終更優。以RACE爲例,DeBERTa的性能明顯優於之前的SOTA XLNet,提高了1.4%(86.8% vs 85.4%)。儘管Megatron1.3B是DeBERTa的3倍大,但我們觀察到,DeBERTa在四個基準中的三個方面仍然可以超過Megatron1.3B。結果表明,在不同的下游任務中,DeBERTa算法都具有較好的性能。我們相信,DeBERTa在更大的模型尺寸下可以表現得更好,未來我們將繼續這個方向的研究工作。

2 Base模型的性能表現

Base模型預訓練的設置與大型模型的設置類似。Base模型結構遵循BERT的Base模型結構,即L=12,H=768,A=12。我們使用帶有64個V100 GPU的4個DGX-2來訓練Base模型,batch size 爲2048,step爲1M,訓練Base模型大約需要10天。我們使用相同的78G文本數據訓練DeBERTa,並將其與使用160G文本數據訓練的RoBERTa和XLNet進行比較。

我們將結果總結在表3中。在這三項任務中,DeBERTa的表現超越了RoBERTa和XLNet,在大型機型上的改進要比後者更多。例如,在MNLI-in-domain設置(MNLI-m)中,DeBERTa base比RoBERTa base獲得1.2%(88.8% vs 87.6%),比XLNetbase獲得2%(88.8% vs 86.8%)。

模型分析

在這一節中,我們首先提出了一個消融研究,以量化不同要素在DeBERTa中的相對貢獻。接下來,對DeBERTa和RoBERTa在注意力模式上的差異展開說明。最後,我們研究了模型訓練效率的收斂性。我們使用基模型設置運行分析實驗,其中Wikipedia+圖書語料庫數據用於模型預訓練,並且模型可以在帶有16 V-100 GPU的DGX-2機器上在7天內進行1 M步 batch size 爲256的預訓練。

1 消融研究

爲了驗證我們的實驗設置,我們從頭開始訓練RoBERTa基模型。我們稱之爲重新訓練的RoBERTa RoBERTa-ReImp base。爲了研究DeBERTa中不同成分的相對貢獻,我們設計了三種變體:

  • EMD是沒有EMD的DeBERTa基模型。
  • C2P是沒有等式4中的內容定位項(c)的DeBERTa基模型。
  • P2C是沒有位置到內容項(式4中的(b))的DeBERTa基模型。由於XLNet也使用相對位置偏差,該模型接近XLNet+EMD。

表4總結了四個基準數據集的結果。

首先,比較RoBERTa和RoBERTa-ReImp,我們發現它們在所有四個基準數據集上的性能表現相似。因此,我們可以確信的將RoBERTa-ReImp作爲比較的堅實基線。其次,我們看到刪除DeBERTa中的任何一個組件都會導致所有基準測試的性能下降。例如,去除EMD(-EMD)在SQuAD v2.0上 分別導致1.4%(71.7% vs 70.3%)、0.3%(92.1% vs 91.8%)、1.2%(82.5% vs 81.3%)、0.2%(86.3% vs 86.1%)和0.1%(86.2% vs 86.1%)的損失。類似地,刪除內容到位置或位置到內容都會導致所有基準的一致性能下降。正如預期的那樣,刪除兩個組件會導致性能更嚴重的惡化。

2 注意力機制模式

爲了理解爲什麼DeBERTa的表現不同於RoBERTa,我們在圖1的最後一個自我注意力層中展示了他們的注意力模式,在這裏我們還描述了三個DeBERTa變體的注意力模式以進行比較。

比較RoBERTa和DeBERTa,我們發現兩個明顯的差異。

首先,RoBERTa有一個清晰的對角線效應,讓令牌關注自己,這在DeBERTa是沒有觀察到的。這可以歸因於EMD的使用,在EMD中,被屏蔽但未更改的令牌的向量被其位置嵌入替換。這似乎可以通過檢測DeBERTa-EMD的注意力模式來驗證,其中對角線效應比原始DeBERTa要亮。第二,RoBERTa注意力模式中存在垂直條帶,主要是由高頻的functional令牌(如“a”、“the”或標點符號)引起的。

對於DeBERTa,條帶出現在第一列中,表示[CLS]標記。我們推測,對於一個好的預訓練模型來說,對[CLS]標記的重點關注是可取的,因爲該標記的向量通常用作下游任務中整個輸入序列的上下文表示。我們還觀察到,垂直條帶效應在三個DeBERTa變體的模式中相當明顯。

3 預訓練模型的有效性

爲了研究模型預訓練的收斂性,我們將微調後的下游任務的性能繪製爲預訓練步驟數的函數。如圖2所示,對於RoBERTa-ReImp base模型和DeBERTa base模型,我們每100K個預訓練步驟 dump 一個檢查點,然後在兩個下游任務(MNLI和SQuAD v2.0)上微調檢查點,並分別報告準確性和F1分數。

作爲參考,我們複製了原始RoBERTa基模型[5]和XLNet基模型[6]的最終模型性能,並將它們繪製爲平面點線。結果表明,在預訓練的訓練過程中,DeBERTa的表現一直優於RoBERTa-ReImp,並且收斂速度更快。

結論

本文提出了兩種改進BERT預訓練的方法:第一種方法是分散注意機制,該機制使用兩個向量分別對每個單詞的內容和位置進行編碼來表示每個單詞,並使用分散矩陣計算單詞之間在內容和相對位置上的注意力權重;第二個方法是一個增強的掩碼解碼器,它取代了輸出的Softmax層來預測用於MLM預訓練的掩碼令牌。使用這兩種技術,新的預訓練語言模型DeBERTa在許多下游NLP任務上表現都優於RoBERTa和BERT。

這項工作展示了探索自我注意的分散詞表示的潛力,以及使用任務特定解碼器改進語言模型預訓練的潛力。

論文原文鏈接:

https://arxiv.org/pdf/2006.03654.pdf

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