在文本理解任務(wù)(Natural Language Understanding)上,預(yù)訓(xùn)練模型已經(jīng)取得了質(zhì)的飛躍,語言模型預(yù)訓(xùn)練+下游任務(wù)fine-tune基本上已經(jīng)成為標(biāo)配。
很多人曾經(jīng)嘗試將 BERT 等預(yù)訓(xùn)練語言模型應(yīng)用于文本生成任務(wù)(Natural Language Generation),然而結(jié)果并不理想。究其原因,是在于預(yù)訓(xùn)練階段和下游任務(wù)階段的差異。
BART這篇文章提出的是一種符合生成任務(wù)的預(yù)訓(xùn)練方法,BART的全稱是Bidirectional and Auto-Regressive Transformers,顧名思義,就是兼具上下文語境信息和自回歸特性的Transformer。那么它的細(xì)節(jié)和效果如何呢,就讓我們一起來看看吧
論文名稱:《BART: Denoising Sequence-to-Sequence Pre-training for NaturalLanguage Generation, Translation, and Comprehension》
論文鏈接:https://arxiv.org/pdf/1910.13461.pdf
1. 從GPT,BERT到BART
GPT:是一種 Auto-Regressive(自回歸)的語言模型。它也可以看作是Transformer model的Decoder部分,它的優(yōu)化目標(biāo)就是標(biāo)準(zhǔn)的語言模型目標(biāo):序列中所有token的聯(lián)合概率。GPT采用的是自然序列中的從左到右(或者從右到左)的因式分解。
BERT:是一種Auto-Encoding(自編碼)的語言模型。它也可以看作是Transformer model的Encoder部分,在輸入端隨機(jī)使用一種特殊的[MASK]token來替換序列中的token,這也可以看作是一種noise,所以BERT也叫Masked Language Model。
表1. GPT和BERT的對比
BART:吸收了 BERT 的 bidirectional encoder 和 GPT 的 left-to-right decoder 各自的特點;是建立在標(biāo)準(zhǔn)的 seq2seq Transformer model 的基礎(chǔ)之上,這使得它比 BERT 更適合文本生成的場景;此外,相比GPT也多了雙向上下文語境信息。在生成任務(wù)上獲得進(jìn)步的同時,它也可以在一些文本理解類任務(wù)上取得SOTA。
圖1. BERT、GPT和BART對比
1.1. 關(guān)于BART的討論
Loss Function 就是重構(gòu)損失, 也就是decoder的輸出和原文ground truth之間的交叉熵。
BART 的結(jié)構(gòu)在上圖中已經(jīng)很明確了:就是一個BERT+GPT的結(jié)構(gòu);但是不同之處在于(也是作者通篇在強(qiáng)調(diào)的),相對于BERT中單一的noise類型(只有簡單地用[MASK] token進(jìn)行替換這一種noise),BART在encoder端嘗試了多種noise。其原因和目的也很簡單:
BERT的這種簡單替換導(dǎo)致的是encoder端的輸入攜帶了有關(guān)序列結(jié)構(gòu)的一些信息(比如序列的長度等信息),而這些信息在文本生成任務(wù)中一般是不會提供給模型的。
BART采用更加多樣的noise,意圖是破壞掉這些有關(guān)序列結(jié)構(gòu)的信息,防止模型去“依賴”這樣的信息。
1.2. BART中的多種Noise
Token Masking: 就是BERT的方法----隨機(jī)將token替換成[MASK]。
Token Deletion: 隨機(jī)刪去token。
Text Infilling: 隨機(jī)將一段連續(xù)的token(稱作span)替換成一個[MASK],span的長度服從 的泊松分布。注意span長度為0就相當(dāng)于插入一個[MASK]。
Sentence Permutation: 將一個document的句子打亂。
Document Rotation: 從document序列中隨機(jī)選擇一個token,然后使得該token作為document的開頭。
表2. 不同noise及其作用
注意這里不同的noising變換方式還可以組合。
2. BART在下游任務(wù)上的應(yīng)用
2.1. Sequence Classification Task
將該序列同時輸入給encoder端和decoder端,然后取decoder最后一個token對應(yīng)的final hidden state作為label,輸入給一個線性多分類器。
圖2. BART用于序列分類任務(wù)
注意在序列的最后要加一個token,保證seq2seq模型輸出的label包含序列中每一個token的信息,這是因為decoder的輸入是right-shifted的,不這樣做的話label將不包含最后一個token的信息。
2.2. Token Classification Task
這一類問題意思是,將序列的所有token都看作獨立的選項,序列長度為M,那么選項的個數(shù)就是M,在序列的所有token中選擇k個。屬于這類的經(jīng)典問題有SQuAD,即answer endpoint classification。
將該序列同時輸入給encoder端和decoder端,使用decoder的final hidden states作為每個token的向量表征,該向量表征作為分類問題的輸入,輸入到分類系統(tǒng)中去。
2.3. Sequence Generation Task
由于BART本身就是在sequence-to-sequence的基礎(chǔ)上構(gòu)建并且預(yù)訓(xùn)練的,它天然比較適合做序列生成的任務(wù),比如概括性的問答,文本摘要,機(jī)器翻譯等。
2.4. Machine Translation
具體的做法是將BART的encoder端的embedding層替換成randomly initialized encoder,新的encoder也可以用不同的vocabulary。
通過新加的Encoder,我們可以將新的語言映射到BART能解碼到English(假設(shè)BART是在English的語料上進(jìn)行的預(yù)訓(xùn)練)的空間。具體的finetune過程分兩階段:
第一步只更新randomly initialized encoder + BART positional embedding + BART的encoder第一層的self-attention 輸入映射矩陣。
第二步更新全部參數(shù),但是只訓(xùn)練很少的幾輪。
圖3. BART用于機(jī)器翻譯
3. 實驗1: 不同預(yù)訓(xùn)練目標(biāo)的比較
論文對不同的pretrain objective,在多個下游任務(wù)上進(jìn)行了比較嚴(yán)謹(jǐn)詳盡的實驗對比。模型結(jié)構(gòu): Transformer-base。
不同的Pre-train Objective有:
GPT: (Auto-Regressive) Language model
XLNET: Permuted Language Model
BERT: Masked Language Model
UniLM: Multitask Masked Language Model
MASS: Masked Seq-to-Seq
對比實驗涉及的下游任務(wù)有:
SQuAD: 將context和question連在一起輸入Encoder和Decoder,輸出的是context中的span。
MNLI: 將2個句子連在一起輸入Encoder和Decoder(中間加上[EOS]表示隔開),模型輸出的是兩個句子之間的關(guān)系,是典型的序列分類問題。
ELI5: 抽象的問答,將context和question連在一起輸入,模型輸出抽象摘要文本。
XSum: 新聞?wù)扇蝿?wù)
ConvAI2: 對話生成任務(wù)
CNN/DM:摘要生成任務(wù)
3.1 結(jié)論
不同預(yù)訓(xùn)練方法各有千秋,在不同下游任務(wù)上的效果差異很大:比如說Language Model在ELI5任務(wù)上最好,但是在SQuAD任務(wù)上是最差的。
BART預(yù)訓(xùn)練中的Token Masking作用很關(guān)鍵:Token Masking包括Token Masking,Token Deletion,Text Infilling。從表中可以看出,只做Document Rotation / Sentence Shuffling的預(yù)訓(xùn)練模型效果很差。另外,Deletion比Masking效果好。
Left-to-Right Pretraining會提升生成任務(wù)的效果:和Masked Language Model和Permuted Language Model相比,包含Left-to-Right預(yù)訓(xùn)練的模型在生成任務(wù)上表現(xiàn)更好。
Masked Language Model和Permuted Language Model相比于包含Left-to-Right Auto-regressive Pre-training的模型,在生成任務(wù)上明顯表現(xiàn)要差一些
雙向的encoder對于SQuAD任務(wù)很重要
ELI5任務(wù)上單純的Language Model (Left-to-Right AR Language Model)表現(xiàn)最好,一個可能的解釋是該任務(wù)的輸出和輸入關(guān)系不大,因此BART沒有優(yōu)勢。
預(yù)訓(xùn)練目標(biāo)不是唯一的重要因素,比如表中的Permuted Language Model的效果不如XLNet,作者提到,可能的原因有XLNet中有一些結(jié)構(gòu)上的改進(jìn)(比如relative-position embedding和segment-level recurrence)
4. 實驗2: 大規(guī)模實驗
實驗發(fā)現(xiàn),在discriminative任務(wù)(NLU)上和RoBERTa/XLNet效果持平,在生成任務(wù)上顯著高于BERT, UniLM, XLNet, RoBERTa等模型
4.1. Discriminative Tasks
BART并沒有因為單向的decoder而影響在文本理解類任務(wù)上的效果:
4.2. Generation Tasks
BART得益于單向的decoder,在三大類生成任務(wù)上效果拔群:
摘要生成:
摘要任務(wù)上的對比
對話生成:
對話生成任務(wù)上的對比
抽象問答
抽象問答任務(wù)上的對比
4.3. 翻譯
-
語言模型
+關(guān)注
關(guān)注
0文章
487瀏覽量
10201 -
機(jī)器翻譯
+關(guān)注
關(guān)注
0文章
139瀏覽量
14837 -
Transformer
+關(guān)注
關(guān)注
0文章
135瀏覽量
5944
原文標(biāo)題:4. 實驗2: 大規(guī)模實驗
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論