
書記が数学やるだけ#889 Transformer-XL,XLNet
問題

説明
Transformer-XL は、従来の Transformer モデルを改良したものであり、前のセグメントの隠れ状態(hidden state)を再利用することによって、より長い文脈(系列)を記憶できる点が特徴である。

XLNet は、BERT と Transformer-XL の利点を組み合わせた言語モデルである。BERT のように単語の左側と右側の両方の文脈を利用するが、BERT と異なり [MASK] トークンは用いず、順列言語モデリング(Permutation Language Modeling)という手法を採用している。

解答
Transformer-XL
Transformer との主な違いは,自己注意(Self-Attention)機構において,現在の入力だけでなく過去のセグメントの hidden state もキーとバリューとして使う点である。これにより,従来の Transformer よりも長い系列を処理できる。

Attention スコアは,現在のクエリに対して,過去のキーと現在のキーの両方に注意を向ける形で計算される。ここで,第2項と第4項でPositional EncodingをRelative positional encodingに変更し,第3項と第4項でquery部分のpositional encodingは位置に依存しないように固定してkey部分で調整するようになっている。

XLNet
Autoregressive(AR)モデル(例:GPT)は,単語を左から右へ順番に予測することで系列全体の正確な尤度を計算できる。ただし,この方法では文の右側の文脈(未来の単語)を利用できない。
一方,Autoencoding(AE)モデル(例:BERT)は,文中の一部をマスクして予測するため,両側の文脈を使えるが,マスクされた単語を独立に予測するという仮定をしており,正確な尤度は求められない。


XLNet は,トークン順列を入れ替えて何通りも学習するPermutation Language Modelingを導入することで,ARモデルと同様に正確な尤度を保持しながら,BERT のような双方向の文脈も利用可能にしている。

例として,「I eat apples」という文の中で,真ん中の単語 eat を予測するとき,各モデル(GPT・BERT・XLNet)がどの単語を使って予測するか(=文脈)を比較する。
・GPT(ARモデル)では,左側の単語 I だけを使って eat を予測する。右側の apples は使えない。
・BERT(AEモデル)では,eat をマスクして、両側の単語 I と apples の両方を使って予測する。
・XLNet(PLMモデル)では,単語の順番をランダムに並べて学習するので,eat を予測するときに使える文脈は順番によって変わる。I だけのときもあれば,apples だけのときもあり,両方使えるときもある。
このように,XLNet はさまざまな文脈での予測ができるため,より柔軟で自然な言語表現を学ぶことができる。


本記事のもくじはこちら: