[19.06] XLNet
雙流注意力機制
XLNet: Generalized Autoregressive Pretraining for Language Understanding
BERT 的成功帶給後續研究人員大量的研究空間。
在早些時日,這篇論文的作者群已經發表了 Transformer-XL 這篇論文,提出了一種新的 Transformer 架構,能夠捕捉長距離依賴關係。
但顯然地,作者覺得這還不夠,因為 Transformer-XL 無法同時考慮到所有的上下文。
定義問題
在語言模型中有兩大主流方法:自回歸(autoregressive)和自編碼(autoencoding)。
自編碼的代表作就是 BERT,而自回歸的代表作則是 GPT,各有各的優缺點。
-
自回歸模型
自回歸的自監督的訓練方式就是預測序列中的下一個詞,也就是我們常講的文字接龍。
給定一個文字序列 ,自回歸語言模型透過前向自回歸分解來最大化似然函數:
其中, 是由神經網路生成的上下文表示,而 表示字詞的嵌入。
這樣的訓練方式有一個缺點:無法同時考慮到所有的上下文。如果遇到「語言理解」的任務,效果就會打折扣。因為在理解任務中,我們需要同時考慮到所有的上下文,才能做出正確的判斷。
-
自編碼模型
自編碼的自監督訓練方式則是遮蔽語言模型(Masked Language Model, MLM),這是 BERT 提出來的最著名的方法,在訓練中隨機使用
[MASK]
標記來預測被遮蔽的詞彙。並根據這個被遮蔽的序列 來重建被遮蔽的文字 ,其目標函數為:其中, 表示 被遮蔽, 是 Transformer 網路產生的隱藏向量序列 。
這樣的訓練方式可以同時考慮到所有的上下文,但是會帶來一個問題:模型在預測時不存在
[MASK]
標記,這樣的訓練方式會導致模型在訓練和預測時的不一致。不僅如此,也因為 BERT 的設計方式,模型無法像是 AR 模型這樣,使用乘積規則對聯合機率進行建模。
所以作者希望可以做一個「自回歸」的語言模型,但又要同時可以考慮到所有的上下文:
這個方法就是 XLNet!
解決問題
置換語言建模
置換語言建模,Permutation Language Modeling,是作者所提出的一種新的訓練目標。
目的是同時保留自回歸模型的優勢(依賴於序列上下文進行詞語預測),但又能像 BERT 那樣捕捉到雙向上下文(可以從任意方向理解文本)。
舉例來說,對於一個長度為 的序列(例如 "The cat sat on the mat" 有 6 個詞),有 種不同的排列方式可以進行自回歸分解。
排列1: "sat the on mat cat The"
排列2: "on The mat the cat sat"
排列3: ...
在這個過程中,我們為模型引入一個排列 ,這個排列代表模型在訓練時所選擇的排列順序。模型會在每次訓練中隨機選擇一個排列,然後依照這個排列預測下一個詞。
假設 是所有可能的長度為 的索引序列的置換集合,則置換語言建模目標可以表達為: