UNIVERSAL TRANSFORMERS まとめ

UNIVERSAL TRANSFORMERS まとめ

UNIVERSAL TRANSFORMERSについてまとめてみました。
また、早くUNIVERSAL TRANSFORMERSについて理解したいという方は、この記事ではなく、下記記事を読むことが最速だと思います。
Universal Transformers を使ってみた (その1)

【論文】
Universal Transformers

【コード】
https://github.com/tensorflow/tensor2tensor

 

論文概要

この論文では、Transformerをより汎用化したUniversal Transformerが提案されている。
具体的には、TranformerとRNNを組み合わせたモデルが、Universal Transformerという理解です。

Attentionについては、下記記事で簡単にまとめています。
Attention Is All You Need まとめ

 

Universal Transformer

上記でも書きましたが、TransformerとRNNを組み合わせたモデルです。
Encoder と Decoderをベースに実装されています。

Universal Transformerモデル概要図
Image from Gyazo
論文より引用

 

Transformerとの違い

Transformerと何が違うのかを書いていきたいと思います。

RNNが導入されている

上記の図を見ると、「For T steps」が確認できます。
この同じ変数である「T」を持つレイヤを繰り返し適用する、RNNに似た形となっています。

Adaptive Computation Time (ACT)

各入力シンボルの処理に必要な計算ステップ数を動的に調整するためのアルゴリズムです。

詳細は、下記記事が非常に参考になります。
ACT (Adaptive Computation Time)

 

実験・結果

データセット

6つのデータ・セットを用いて実験を行っています。
個々では、サンプルとして「LAMBADA LANGUAGE MODELING」というものを紹介したいと思います。
下記論文で紹介されているデータセットですね。
The LAMBADA dataset: Word prediction requiring a broad discourse context

【LAMBADA LANGUAGE MODELING】
個々では、2つ評価を行っています。
①単語を予測する
②文章の理解
なので、用意されたテキストをどれだけ理解しているかを確認するためのタスクになります。
実際のデータセットは、下記のような感じです。

Image from Gyazo
The LAMBADA dataset..の論文より引用

結果

下記がLAMBADA LANGUAGE MODELINGを使った結果になります。
8steps, 9stepsは、6stepsよりも精度は高いですが、ACTを組み合わせたモデルよりも精度が落ちています。
いくつかの入力シンボルに対してはより少ない数のステップを奨励し、他のものに対してはより多くの計算を可能にすることが、
良い感じにモデルを正則化してくれていると論文では書かれています。
Image from Gyazo
論文より引用

 

参考になる記事

Universal Transformers を使ってみた (その1)
ACT (Adaptive Computation Time)