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 分別是對應的兩個排列,然後基於排列 ,我們處理第一個分割,然後將每個 layer m 的 content representation h˜(m) 存起來。那麼對於分割 x

因為位置編碼只依賴原始序列的實際位置,所以此 Attention 的更新在獲得 h˜(m) 後與 獨立,這允許在不知道上一個分割的序列順序的情況下重複使用 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均可。