XLNet 論文筆記
- 2019 年 10 月 5 日
- 筆記
作者:太子長琴(NLP演算法工程師)
XLNet, Generalized Autoregressive Pretraining for Language Understanding Note
zihangdai/xlnet: XLNet: Generalized Autoregressive Pretraining for Language Understanding
XLNet 的核心思想:PermutationLM 使用雙向上下文 + Transformer-XL 對架構進行改進。
Abstract
BERT 忽略了屏蔽位置之間的依賴關係,會有預訓練和 Fine-tuning 效果的差異。
XLNet:
- 通過最大化因式分解順序所有可能排列的對數似然,學習雙向語境資訊。
- 依靠自回歸克服了 BERT 的缺點。
此外,XLNet 還將最先進的自回歸模型 Transformer-XL 的思想整合到預訓練中。
Introduction
兩大成功使用的預訓練模型:
- autoregressive (AR) language modeling,給定序列 X = (x1, …, xT),基於前向或後向語境建模:
- 前向:
- 後向:
- autoencoding (AE),不明確地進行密度估計,而是嘗試從損壞的輸入中重建原始數據。
- 比如 BERT 的 MASK,因為密度估計不是目標的一部分,所以可以進行雙向語境建模。
- BERT 人為製造的 MASK 出現在預訓練環節,但卻沒有在 Fine-tuning 環節,因此造成差異。
- 此外,由於輸入中預測的 token 也被 MASK,因此 BERT 不能像 AR 中那樣使用乘積法則對聯合概率進行建模。也就是說,要預測的 token 在給定未 MASK 的 token 下被假設為彼此獨立,這過度簡化為自然語言中普遍存在的高階、長期依賴關係。
XLNet 既結合了兩者的優勢又避免了局限性:
- 首先,不使用 AR 中固定的前向或後向,而是最大化序列因式分解順序所有可能排列的期望對數似然,每個位置都可以學習利用所有位置的語境(上下文)資訊。
- 其次,不依賴損壞數據,所以也不會有 BERT 的預訓練與 Fine-tuning 效果差異;同時,利用 AR 中的乘積法則分解預測 token 的聯合概率,消除了 BERT 的獨立性假設。
除此之外,還改進了預訓練的架構設計:
- 將 Transformer-XL 的 segment recurrence mechanism 和 relative encoding scheme 整合到預訓練中,改進了性能,尤其是長文本序列任務。
- 對 Transformer-XL 的參數進行修改,移除因式分解順序任意導致的訓練目標模糊性。
Proposed Method
Background
AR language modeling:

hθ 是上下文的表徵,一般來自 DNN,RNN 或 Transformer。
BERT:
隨機選擇一定比例(15%)的 token 當做 MASK,從 x^
重新構建出訓練數據 x

mt=1 表示 xt 是 MASK,Hθ 是一個將文本序列 X 映射為 hidden vector 序列的 Transformer。
兩者將從以下幾個方面對比:
- 獨立性假設:BERT 假設所有 MASK 的 token 是獨立分別重建的(也就是 MASK 的 token 之間是相互獨立的);AR 使用乘積法則,並沒有這樣的假設。
- 輸入噪音:BERT 包括了真實任務中沒有的人為 MASK,AR 沒有。
- 上下文獨立性:AR 只考慮了前面的 token,BERT 則考慮了雙向的上下文。
Objective: Permutation Language Modeling
本文通過考慮給定序列所有可能的順序(序列長度的階乘種可能)來達到使用雙向的上下文資訊的目的,其直覺是:如果模型的參數在所有的順序中共享,模型自然而然能夠學習從所有位置(當然包括雙向上下文)收集資訊。
需要說明的是,這裡並不會調整序列的順序,而是使用對應於原始位置的位置編碼,並依賴 Transformer 中適當的 Attention Mask。
Architecture: Two-Stream Self-Attention for Target-Aware Representations
直接使用標準的 Transformer 並不能 work,因為沒有考慮到位置資訊,因此需要對下一個 token 的分布重新參數化(zt 為 Input 中的 position):

那麼,如何計算 gθ 呢?這裡使用了兩組 hidden representation (Two-Stream Self-Attention):
- content representation: encodes context and
x_zt
- query representation: encodes context and position (zt) 而不是內容


在 finetuning 時可以丟掉 query representation,使用 content representation 作為標準 Transformer。
由於不同排列導致的 Language Modeling 優化問題,這裡只選擇預測最後一個 token,具體是將 z 分為目標和非目標兩部分 (Partial Prediction):

z > c 為 target,超參數 K 表示 1/K 的 tokens 被選中用來預測,|z| / (|z| − c) ≈ K
,對於未選中的 tokens,query representation 不需要計算。
Incorporating Ideas from Transformer-X
Transformer-XL 的兩個重要技術被融合:
- relative positional encoding scheme
- segment recurrence mechanism
上面已經討論了第一個技術,接下來討論第二個如何能夠讓模型從先前的分割中復用 hidden states。假設有一個長序列的兩個分割:x˜ = s_{1:T}
和 x = s_{T+1:2T}
,z˜
和 z
分別是對應的兩個排列,然後基於排列 z˜
,我們處理第一個分割,然後將每個 layer m 的 content representation h˜(m)
存起來。那麼對於分割 x
:

因為位置編碼只依賴原始序列的實際位置,所以此 Attention 的更新在獲得 h˜(m)
後與 z˜
獨立,這允許在不知道上一個分割的序列順序的情況下重複使用 memory。query stream 也可以用同樣的方法。


Modeling Multiple Segments
使用 Relative Segment Encodings,只關注兩個位置是否來自同一個分割,這與相對編碼的核心思想一致(只關注位置之間的關係),有兩個好處:
- 改善了泛化
- 提供了兩個以上分割 finetuning 的可能性
Discussion and Analysis
Comparison with BERT
都使用了 partial prediction,降低優化難度。例子:[New, York, is, a, city],假設 BERT 和 XLNet 都選擇了 [New, York] 作為預測目標,最大化 log p(New York | is a city)
,假設 XLNet 取樣的順序是 [is, a, city, New, York]:

更加形式化的,給定序列:X = [x1, · · · , xT ]
,給定一組目標 tokens T 和非目標 tokens N=XT
,兩個模型都需要最大化 log p(T | N)
:

T<x 表示 T 中 tokens 順序先於 x 的排列。兩個事實:
- 如果 U ⊆ N,(x, U) 能夠被兩個模型 cover
- 如果 U ⊆ N ∪ T<x 且 U ∩ T<x ≠ ∅,則只有 XLNet 能 cover
Comparison with Language Model
AR LM 順序只能從前到後,XLNet 可以 cover 所有順序,更正式的,考慮一個上下文-目標對 (x, U):
- 如果 U ∩ T<x ≠ ∅,AR 不能 cover 這種情況
- XLNet 可以 cover
Experiments
Pretraining and Implementation
2.78B, 1.09B, 4.75B, 4.30B, and 19.97B subword pieces for Wikipedia, BooksCorpus, Giga5, ClueWeb, and Common Crawl, 共 32.89B
Sequence 和 Memory 的長度分別為 512 和 384
500k steps,Adam optimizer, linear learning rate decay, batch size of 2048
bidirectional data input pipeline, partial prediction constant K as 6
span-based prediction when finetuning
RACE Dataset
從中國中學生英文考試中選出的約 100k 個問題的數據集,答案由人工專家給出。
SQuAD Dataset
包含兩個任務的大規模閱讀理解數據集,SQuAD1.1 的問題在原文中有答案,SQuAD2.0 包括了不可回答的問題。
Text Classification
benchmarks: IMDB, Yelp-2, Yelp-5, DBpedia, AG, Amazon-2, and Amazon-5
GLUE Dataset
包含 9 個自然語言理解的任務:MNLI, QNLI, QQP, RTE, SST-2, MRPC, CoLA, STS-B, WNLI
ClueWeb09-B Dataset
用來評估文檔排序。
Ablation Study
Important Design:
- memory caching mechanism
- span-based prediction
- bidirectional input pipeline
Conclusions
XLNet 使用了 permutation 語言模型來聯合 AR 和 AE 模型的優點,融合了 Transformer-XL 的思想,提出了 two-stream attention mechanism(核心),並在幾乎所有任務中達到了 sota 的結果。
相關文章:BERT論文筆記 ERNIE Tutorial(論文筆記 + 實踐指南)
原文鏈接:
https://yam.gift/2019/07/14/Paper/2019-07-14-XLNet-Paper/
本文由作者原創授權AINLP首發於公眾號平台,點擊'閱讀原文'直達原文鏈接,歡迎投稿,AI、NLP均可。