ACL2020論文閱讀筆記:BART

JasonLiu1919發表於2020-09-26

背景

題目:
BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension
機構:Facebook AI
作者:Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov, Luke Zettlemoyer
論文地址:https://arxiv.org/abs/1910.13461
收錄會議:ACL 2020
程式碼:https://github.com/pytorch/fairseq/tree/master/examples/bart

摘要

文章提出一個預訓練sequence-to-sequence的去噪自編碼器:BART。BART的訓練主要由2個步驟組成:(1)使用任意噪聲函式破壞文字(2)模型學習重建原始文字。BART 使用基於 Transformer 的標準神經機器翻譯架構,可視為BERT(雙向編碼器)、GPT(從左至右的解碼器)等近期出現的預訓練模型的的泛化。文中評估了多種噪聲方法,最終發現通過隨機打亂原始句子的順序,再使用首創的新型文字填充方法(即用單個 mask token 替換文字片段,換句話說不管是被mask掉多少個token,都只用一個特定的mask token表示該位置有token被遮蔽了)能夠獲取最優效能。BART 尤其擅長處理文字生成任務,不過在自然語言理解任務中也頗有可圈可點之處。在同等訓練資源下,BART 在 GLUE 和 SQuAD 資料集上的效果與 RoBERTa 不相伯仲,並在對話摘要、問答和文字摘要等任務中斬獲得新的記錄,在 XSum 資料集上的效能比之前的最佳結果高出了6個ROUGE。在機器翻譯任務中,BART 在僅使用目標語言預訓練的情況下,獲得了比回譯系統高出 1.1 個 BLEU 值的結果。此外,文章還使用控制變數在BART 框架內使用其他預訓練機制,從而更好地評估影響下游任務效能的因素。

模型

BART結合雙向(比如BERT)和自迴歸(比如GPT) Transformer對模型進行預訓練。此外,BART參考了GPT中的啟用函式,將ReLU也改為GeLU。BART、BERT和GPT之間的對比如 Figure 1所示。
在這裡插入圖片描述

(a)BERT:用掩碼替換隨機 token,雙向編碼文件。由於缺失 token 被單獨預測,因此 BERT 較難用於生成任務。(b)GPT:使用自迴歸方式預測 token,這意味著GPT可用於生成任務。 但是,該模型僅基於左側上下文預測單詞,無法學習雙向互動。
©BART:編碼器輸入與解碼器輸出無需對齊,即允許任意噪聲變換。使用掩碼符號替換文字段,從而破壞文字。使用雙向模型編碼被破壞的文字(左),然後使用自迴歸解碼器計算原始文件的似然(右)。至於微調,未被破壞的文件是編碼器和解碼器的輸入,研究者使用來自解碼器最終隱藏狀態的表徵。

BART的base版中的encoder和decoder都是6層網路,large則分別12層。BART與BERT還有2點不同(1)decoder中的每一層都與encoder最後隱藏層執行交叉關注(cross-attention,就像在transformer序列到序列模型中一樣)。(2)BERT在預測token之前接一個前饋網路,而BART沒有。總的來說,BART比同等大小的BERT模型多了大約10%的引數。

BART的一個關鍵優勢是噪聲的隨意性,可以動用任何方式(包括改變長度)對原始文字進行破壞。這種方式讓模型學習更多地考慮句子的整體長度,並對輸入進行更大範圍的轉換,從而將BERT中MLM和NSP目標統一起來。此外,BART也為微調開創了一個新思路。BART做機器翻譯的時候,將BART堆疊在一些額外的Transformer層之上,這些附加的Transformer層實質上是把其他語種翻譯成帶噪的英語,再通過BART模型,從而將BART作為一個預訓練好的目標端語言模型。這種方法在WMT Romanian-English資料集上高出回譯系統1.1個BLEU。

預訓練

BART的損失函式是decoder的輸出與原始文字之間的交叉熵。與其他去噪自編碼器(一般需要定製特定的噪聲方案)不同的是BART可以使用任何的加噪方式。在極端情況下,源資訊都可以全部缺失,此時的BART就蛻化成了一個語言模型。文章中用到的加噪方案(即原始文字如何被破壞)如Figure 2所示。
在這裡插入圖片描述

Figure 2:對輸入進行噪聲化的變換方法。這些變換方法可以組合使用。

主要有:
(1)Token Masking:與 BERT 一樣,BART 隨機取樣 token,並用 [MASK] 這一預定義的特殊token進行替換。
(2)Token Deletion:從輸入中隨機刪除 token。與 Token Masking不同,模型必須同時確定輸入中缺失的位置。
(3)Text Infilling:取樣多個文字片段,每個文字片段長度服從λ = 3的泊松分佈。每個文字片段用單個[MASK] token替換。從泊松分佈中取樣出長度為 0 的文字片段對應 插入 [MASK] token。這種文字填充方法的思想源於SpanBERT,但SpanBERT取樣的文字片段長度服從的是幾何分佈,且用等長的[MASK] token 序列替換掉文字片段。因此,BART能夠迫使模型學習到一個片段中所缺失的token數量。
(4)Sentence Permutation:這裡的句子排列變換是指按句號將文件分割成多個句子,然後隨機打亂這些句子。
(5)Document Rotation:隨機均勻地選擇 一個token,再旋轉文件使文件以該 token 作為起始。該任務的目的是訓練模型識別文件開頭。

Fine-tuning

BART在文字分類和翻譯任務中的微調如Figure 3所示。以下具體介紹 BART 在各個下游任務的微調。
在這裡插入圖片描述

Figure 3:a:當使用 BART 解決分類問題,用相同的輸入文字輸入到encoder和decoder,使用最終輸出的表徵。b:對於機器翻譯任務,訓練一個額外的小型encoder來替換 BART 中的詞嵌入。新encoder可使用不同的詞彙。

序列分類任務
同一個輸入同時輸入到encoder 和decoder,將最後decoder的token的最終隱層狀態被輸入到一個新的多類別線性分類器中。該方法與 BERT 中的 CLS token 類似,不過 BART 在decoder最後額外新增了一個 token,如此該 token 在decoder中的表徵可以關注到完整輸入的decoder狀態(見Figure 3a)。

token 分類任務
token的分類任務,比如SQuAD中答案端點的分類。將完整文件輸入到encoder和decoder中,使用decoder最上方的隱狀態作為每個token的表徵以判斷該 token 的類別,比如是否為答案端部。

序列生成任務
由於 BART 具備自迴歸解碼器,因此可以直接應用到序列生成任務(如生成式問答和文字摘要)進行微調。在這兩項任務中,從輸入複製經過處理的資訊,這與去噪預訓練目標緊密相關。encoder的輸入是輸入序列,decoder以自迴歸的方式生成輸出。

機器翻譯
BART用以機器翻譯的時候,將整個BART(包括encoder和decoder)作為一個單獨的預訓練decoder,並增加一系列的從雙語語料學習而得的encoder,如 Figure 3b所示。具體是用一個新的隨機初始化encoder替換 BART encoder的嵌入層。該模型以端到端的方式訓練,即訓練一個新的encoder將外來詞對映到輸入(BART可將其去噪為英文)。這個新的encoder可以使用不同於原始 BART 模型的詞彙。

源encoder的訓練分兩步,均需要將BART模型輸出的交叉熵損失進行反向傳播。
(1)凍結 BART 的大部分引數,僅更新隨機初始化的源encoder、BART 位置嵌入和 BART encoder第一層的自注意力輸入投影矩陣。
(2)將所有模型引數進行少量迭代訓練。

實驗

預訓練目標對比

文章中還充分對比了不同預訓練目標的影響,包括:
(1)語言模型:與GPT類似,訓練一個從左到右的Transformer語言模型。該模型相當於BART的decoder,只是沒有交叉注意(cross-attention)。
(2)排列語言模型:該模型基於XLNet,取樣1/6的token,並以自迴歸的隨機順序生成。為了與其他模型保持一致,這裡沒有引入相對位置編碼和XLNet中的片段級的迴圈注意力機制。
(3)帶遮蔽的語言模型:與BERT相同,15%的token用 [MASK] token替換,訓練模型重建出這些被遮蔽掉的token。
(4)多工遮蔽的語言模型:與 UniLM 一樣,使用額外self-attention mask訓練帶遮蔽的語言模型。自注意力遮蔽按如下比例隨機選擇:1/6從左到右;1/6從右到左;1/3未遮蔽;剩餘的1/3中前50%的未遮蔽,其餘的從左到右遮蔽。
(5)帶遮蔽的seq-to-seq:與MASS模型類似,遮蔽一個片段中50%的token,並訓練一個序列到序列模型預測被遮蔽的tokens。
實驗過程對比了兩種方案:
(1)將所有任務視為sequence-to-sequence問題,source端輸入到encoder,decoder端的輸出即為target結果。
(2)在decoder端將source作為target的一個字首,且只在序列的target部分有損失函式。
實驗發現前者對BART模型更有效,後者對其他模型更有效。更加詳細的實驗結果如 Table 1所示。

在這裡插入圖片描述

Table 1:預訓練目標對比。各個預訓練目標源於BERT, MASS, GPT, XLNet和UniLM。對比的模型都是尺寸近似,訓練步數都是1M,預訓練使用的資料也相同。

從中可以看出使用文字填充方案(Text Infilling)的BART戰績斐然。從中可以得出以下結論:
(1)在不同的任務中,預訓練方法的表現有顯著差異。換句話說,預訓練方法的有效性高度依賴於任務本身。比如,一個簡單的語言模型在ELI5資料集上可以奪冠,但是在SQUAD上的結果卻是最差的。
(2)遮蔽Token至關重要。只使用旋轉文件或句子組合的預訓練目標則效果較差,效果較好的都是使用了token的刪除或遮蔽作為預訓練目標。此外,在生成任務上,刪除token似乎比遮蔽token更勝一籌。
(3)從左到右的預訓練目標有助於文字生成任務。遮蔽語言模型和排列語言模型在文字生成任務上不如其他模型。而這兩種模型在預訓練階段都沒有用到從左到右的自迴歸語言模型。
(4)對於SQuAD而言雙向的encoder至關重要。因為上下文在分類決策中至關重要,BART僅用雙向層數的一半就能達到BERT類似的效能。
(5)預訓練目標並不是唯一重要的因素。這裡的排列語言模型略遜於XLNet,其中一些差異可能是由於沒有使用XLNet架構中的其他的改進,如相對位置編碼和片段級的迴圈機制。
(6)純語言模型在ELI5資料集上技壓群雄,其困惑度遠優於其他模型。這表明當輸出僅受到輸入的鬆散約束時,BART較為低效。

總而言之,使用文字填充預訓練目標的BAR在多項任務上(除了ELI5之外)效果都很好。

Large版模型對比

自然語言理解任務

由於更大模型和更大batch size有助於下游任務效能的提升,所以文章還進一步對比各模型的large版。Large版的BART,encoder和decoder分別有12層,隱層大小為1024,batch size與RoBERTa一樣都是8000,模型預訓練了500000個step。tokenized方法借用 GPT-2 中的位元組對編碼(BPE)。各個模型在GLUE上的實驗對比結果如 Table 2所示。

在這裡插入圖片描述

Table 2:Large版模型在 SQuAD 和 GLUE 上的實驗結果。BART 的效果可比肩 RoBERTa 和 XLNet,這表明 BART 的單向decoder層並不會降低模型在判別任務上的效能。

各個模型在SQuAD上的對比結果如Table 3所示。
在這裡插入圖片描述

Table 3:BART的結果與XLNet和RoBERTa不相伯仲。

總體而言,BART在自然語言理解任務上與其他先進模型不相上下。這表明BART在生成任務上的進一步突破並不是以犧牲自然語言理解效能為代價。

自然語言生成任務

在文字生成任務中選用了摘要生成(CNN/DailyMail 和XSum)、對話(CONVAI2)和生成式問答(ELI5,是一個長篇問答資料集)中對應的資料集進行評測,結果如 Table 4所示。
在這裡插入圖片描述
Table 4:在兩個標準摘要資料集上的結果。

從結果可以看出,在這兩個摘要任務上,BART 在所有度量指標上均優於之前的模型。BART在更抽象的 XSum 資料集上的比之前最優的RoBERTa高出3.5個點(所有的ROUGE指標)。此外,從人工評測的角度來看,BART也大幅優於之前的模型。但是,與人類的摘要結果仍然有差距。

各模型在CONVAI2上的實驗結果如Table 5所示。
在這裡插入圖片描述
Table 5:BART 在對話生成任務上的效能優於之前的研究。其中困惑度基於 ConvAI2 官方 tokenizer 進行了重新歸一化。

在ELI5資料集上的評測結果如Table 6所示。
在這裡插入圖片描述
Table 6:BART在具有挑戰性的ELI5生產式問答資料集上達到了最先進的結果。

發現BART的效能比之前最好的工作(指Seq2Seq Multi-task)高出1.2個 ROUGE-L。因為該資料集中的問題只對答案進行了微弱的指定,從而提升了該資料集的難度。
leader board結果如下:
在這裡插入圖片描述

機器翻譯任務

BART在WMT16 Romanian-English上與其他模型的對比結果如Table 7所示。
在這裡插入圖片描述

Table 7:BART 和基線模型(Transformer)在機器翻譯任務上的效能對比情況。

參與對比的模型使用資料集包括 WMT16 RO-EN 和用回譯系統做的擴增資料。可以看出BART使用單語英文預訓練,效能結果優於基線模型。

總結

文字介紹了一種預訓練模型:BART。該模型是一個預訓練sequence-to-sequence的去噪自編碼器。BART不同於一些只能針對特定的噪聲的去噪自編碼器,可以使用任意方式破壞原始文字,最極端的情況下,源文字資訊全部喪失,此時BART蛻變為一個語言模型。BART模型中的文字填充方法讓模型學習更多地考慮句子的整體長度,並對輸入進行更大範圍的轉換,從而將BERT中MLM和NSP目標統一起來,加大了模型學習難度。BART在自然語言理解任務上與先進模型不相伯仲,但是在文字生成任務上可以碾壓其他模型,一枝獨秀。

相關文章