From Google Brain and CMU.

Authors: Zhilin Yang?, Zihang Dai?, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le

Title: XLNet: Generalized Autoregressive Pretraining for Language Understanding.

Preprint at 2019.6.20.

Introduction

這篇論文建立在Transformer-XL【作者們ACL2019的工作】的基礎之上。看過Transformer-XL的同學應該知道其編碼方式其實已經有了挺大的改進,對長文本的編碼優於Vanilla Transformer。本文引入了PLM(Permutation Language Model,排列語言模型【Permutation: a way, especially one of several possible variations, in which a set or number of things can be ordered or arranged.】)而拋棄BERT的Mask LM,然後引入Masked Two-Stream Self-Attention解決PLM出現的目標預測問題【見Motivation】,最後用三倍於BERT的語料進行預訓練,刷榜SQuAD、GLUE、RACE等。

Motivation

文章從AR(autoregressive,自回歸)和AE(autoencoding,自編碼)的角度出發,解釋論文動機。

AR LM,即自回歸語言模型。具體而言,給定一個序列,當前token/時刻只知道前面的信息,而不知道後面的信息,即使分成正向和反向計算當前token時刻的概率分布,也是同樣的原則,ELMo、GPT是屬於這個範疇。對於一些自然語言理解任務而言,是給定上下文的,即使ELMo把兩個的方向計算的信息concat,但也是獨立計算,對上下文的編碼是有缺陷的。

AE LM,即自編碼語言模型。BERT通過預測原始數據里MASK掉的token來預訓練語言模型,預測[MASK]使用了上下文信息,彌補了AR LM的缺陷。但是[MASK]只在預訓練的時候用到,finetune的時候是不用的,這使得pretrain/train不一致【這點頂一下BERT,我覺得這樣更能體現泛化能力】。並且,BERT假定每個[MASK]與其他[MASK]是相互獨立的,不能計算序列、長期依賴的聯合概率。即使BERT的NSP預訓練任務一定程度上給了模型建模句間關係的能力,但是還是對長文本不敏感。

本文結合AR LM和AE LM,在Transformer-XL的基礎上提出generalized autoregressive method,XLNet。

  • 所有的分解序列作為一個集合,對所有採樣序列,XLNet按照AR LM的計算方式求對數似然期望的極大值。通常,當前token的上文包含left和right的tokens:比如原始序列為1-2-3-4,分解序列中採樣一個為2-4-1-3,那麼如果當前token為3,XLNet的方式就可以看到所有的信息【當然這也是理想情況】,而AR LM只能看到1和2。
  • 引入Transformer-XL的segment recurrence mechanism和relative encoding scheme。
  • 引入Masked Two-Stream Self-Attention解決PLM出現的目標預測歧義【the ambiguity in target prediction】問題。舉個例子,比如分解序列中採樣一個為2-4-6-1-3-5的序列,假設要預測[1]的token,按照經典的Transformer來計算next-token的概率分布,位置[1]的token的概率就是通過[2,4,6]位置上的tokens來計算softmax,不會把[1]作為輸入來計算的。但是如果以這種方式去預測next-token,這對[3,5]的預測就會產生影響,因為如果[1]的預測出現錯誤會把錯誤傳給後面。對後面每一個token的預測,需要建立在之前token都已知的條件下。因此本文計算了兩個self-attention計算方式,一個mask當前詞,attention值記為g;一個已知當前詞,attention值記為h。最後假設self-attention一共有M層,用第M層、t時刻的g_t,去預測詞x_t。

Model

Permutation Language Modeling

首先會根據輸入序列的長度採樣排列集合,然後用Transformer中attention mask的方式實現每個排列情況,如果原始序列長度為T,那麼理論上一共有T的階乘種情況。PLM的目標函數就是所有排列情況(論文里設定:統共T種,如何採樣的並沒有說,只是說大概率上下文會出現在被預測詞的前面)的期望最大:

max _{	heta} quad mathbb{E}_{mathbf{z} sim mathcal{Z}_{T}}left[sum_{t=1}^{T} log p_{	heta}left(x_{z_{t}} | mathbf{x}_{mathbf{z}_{<t}}
ight)
ight]

這樣pretrain和finetune階段就一樣了,輸入都是原始序列,通過attention mask實現隨機產生的排列。例如排列是2-4-3-1,那麼在預測X3的時候就只有2、4作為先驗,並且2、4的位置信息是通過Zt來體現的,這樣也保留了排列的時序信息。下圖是排列語言模型的表現形式:?

?註:假設要預測t=3的詞,按照不同的排列順序,h_3的上文都不一樣,用attention-mask的方式得到t=3的上文。

Two-Stream Self-Attention for Target-Aware Representations

上面是構造輸入,這裡就是自回歸地得到每一時刻的概率分布,示意圖如下:?

動機部分已經介紹過為什麼要計算兩個self-attention。

(a)代表context stream self-attention,以[1,t]時刻的詞作為K、V,t時刻的詞作為Q計算當前詞的信息,把排列之後的原始序列信息用h記憶起來。

(b)代表query stream self-attention,mask掉當前詞,以[1,t-1]時刻的詞作為K、V,t時刻的詞作為Q預測當前詞,得到概率分布。

(c)代表通過多層的masked two-stream attention,最後用t時刻的 g_t 來預測 x_t

t時刻的概率分布如下:

p_{	heta}left(X_{z_{t}}=x | mathbf{x}_{z_{<t}}
ight)=frac{exp left(e(x)^{	op} g_{	heta}left(mathbf{x}_{mathbf{z}_{<t}}, z_{t}
ight)
ight)}{sum_{x^{prime}} exp left(eleft(x^{prime}
ight)^{	op} g_{	heta}left(mathbf{x}_{mathbf{z}<t}, z_{t}
ight)
ight)}

其中, z_t 表示的是位置向量,用以保留採樣排列的位置信息,在mask self-attention的時候就知道當前需要預測詞的位置。

如果沒有z_t,當詞的位置不同,但是上文一樣時,兩個詞算出來的概率是一樣的。例如2-3-1-4-5和2-3-1-5-4,兩個排列中,4和5的上文一樣,算概率的時候就會一樣【如下公式】,很顯然這是錯誤的,不同位置的概率分布在ground-truth里是不一樣的:

underbrace{p_{	heta}left(X_{i}=x | mathbf{x}_{mathbf{z}_{<}}
ight)}_{z_{t}^{(1)}=i, mathbf{z}_{<t}^{(1)}=mathbf{z}_{<t}}=underbrace{p_{	heta}left(X_{j}=x | mathbf{x}_{mathbf{z}_{<t}}
ight)}_{z_{t}^{(1)}=j, mathbf{z}_{<t}^{(2)}=mathbf{z}_{<t}}=frac{exp left(e(x)^{	op} hleft(mathbf{x}_{mathbf{z}<t}
ight)
ight)}{sum_{x^{prime}} exp left(eleft(x^{prime}
ight)^{	op} hleft(mathbf{x}_{mathbf{z}<t}
ight)
ight)}

g_{	heta} 的計算公式如下:

g_{z_{t}}^{(m)} leftarrow 	ext { Attention }left(mathbf{Q}=g_{z_{t}}^{(m-1)}, mathbf{K V}=mathbf{h}_{mathbf{z}_{<t}}^{(m-1)} ; 	heta
ight)

h_{z_{t}}^{(m)} leftarrow 	ext { Attention }left(mathrm{Q}=h_{z_{t}}^{(m-1)}, mathrm{KV}=mathbf{h}_{mathrm{z}_{ leq t}}^{(m-1)} ; 	heta
ight)

其中, g_{i}^{(0)}=w ?, h_{i}^{(0)}=eleft(x_{i}
ight) ?,分別是隨即初始化的向量和詞向量。

引入位置向量之後,最終在預訓練的時候也沒有每一個token都預測,作者設置了一個超參數K,設定只預測序列最後1/K=的詞[c+1, |z|]:

max _{	heta} quad mathbb{E}_{mathbf{z} sim mathcal{Z}_{T}}left[log p_{	heta}left(mathbf{x}_{mathbf{z}_{mathbf{Z}}>c} | mathbf{x}_{mathbf{z}_{ leq c}}<br />
ight)<br />
ight]=mathbb{E}_{mathbf{z} sim mathcal{Z}_{T}}left[sum_{t=c+1}^{|mathbf{z}|} log p_{	heta}left(x_{z_{t}} | mathbf{x}_{mathbf{z}_{<t}}
ight)
ight]

Transformer-XL

確定好目標函數之後,框架確定為Transformer=XL自回歸語言模型。特點是relative positional encoding scheme和segment recurrence mechanism,更好地處理長文本,提升計算效率。具體不介紹了,詳見參考文獻[2]。

Pretraining and Implementation

XLNet-Large和BERT-Large的參數量是差不多的,24層的Transformer-XL。經過處理,最終得到Wikipedia-2.78B,BooksCorpus-1.09B,Giga5-4.75B,ClueWeb-4.30B和Common Crawl respectively-19.97B,一共32.89B,近3倍於BERT的語料作為模型輸入。序列長度512,memory維度384,batch-size為2048,用512塊TPU v3跑了500K step用了2.5天。一般我種子才會設置成2048。

XLNet-Base和BERT-Base用的語料一樣。但是貌似沒說參數量一樣。更詳細的參數設置見論文補充材料[1]A.3。

Experiment

第一個實驗是在RACE多選型閱讀理解數據集上,單模型比第二名準確率提高了7.6%。

第二個實驗是在SQuAD抽取式閱讀理解數據集上,單模型效果相對於BERT,v1的F1值提高3.6,v2的F1值提高7.0。

?

第三個實驗是在文本分類數據集上,評價指標是錯誤率。單模型已經達到SOTA。

第四個實驗是在GLUE,包括9個自然語言理解任務,評價指標是準確率。單模型比BERT在每個任務上都有提升,並且在NLI類任務、MRPC、RTE、STS-B提升顯著,只有QQP、CoLA上沒有ALICE好。

第五個實驗是文檔排序任務,根據query重排序出Top-100的文檔,效果比BERT好一些。?

?第六個實驗是去除實驗:2.只用Transformer-XL+DAE效果比BERT(Transformer+DAE)好,說明了Transformer-XL的有效性。3和4說明了PLM的有效性,但是K這個超參數是經驗值,也沒有與K=1的情況相比。5-8應該是在4的基礎上,重要性逐漸減小:5說明了Transformer-XL里memory機制的有效性,6說明了片段預測的有效性,7說明正反向輸入數據對結果影響不大,8說明了BERT的NSP任務對XLNet並不是很奏效,影響也不大。?

?Conclusion

首先文章動機很明確,指出了當前AR LM和AE LM的缺點,在Transformer-XL的基礎上結合AE捕獲上下文的有點。

1. 提出了PLM預訓練,用mask attention的方法實現factorization order的輸入,大概率得到上下文信息。

2. 用two-stream self-attention,彌補自回歸語言模型中目標預測歧義的缺陷。

本文實現factorization order的方式就很巧妙,保證了pretrain/finetune的一致性。但是這樣以來,其實弱化了自然語言本身的時序信息,實驗結果表明:更好地編碼上下文更重要。不過XLNet刷榜各大自然語言理解數據集,特別是RACE和SQuAD提升很大,但是用的計算資源真是令人嘆為觀止。

都是個人的理解,如有錯誤,評論區或者E-mail展開討論。

Reference

[1]. Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov and Quoc V. Le. XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv preprint arXiv:1906.08237, 2019.

[2]. Zihang Dai, Zhilin Yang, Yiming Yang, William W Cohen, Jaime Carbonell, Quoc V Le, and Ruslan Salakhutdinov. Transformer-xl: Attentive language models beyond a ?xed-length context. arXiv preprint arXiv:1901.02860, 2019.

推薦閱讀:

相关文章