5-7-4 Transformerとは何か

ここまで見てきたように、Attentionは、たくさんの情報の中から、今大事な部分に注目する仕組みでした。
そしてその考え方は、RNNが苦手としていた、長い系列の扱い、遠くの情報の保持。必要な場所への柔軟な注目を助ける大切な工夫になりました。
では、もしこのAttentionを、補助的な工夫としてではなく、モデルの中心そのものに置いたらどうなるのでしょうか。
その答えが、Transformerです。

Transformerは、Attentionを中心に組み立てられたモデルです。
それまで系列データの処理では、RNNのように、前から順番に読む、一語ずつ状態を更新するというやり方が主流でした。
でもTransformer は、そこから大きく発想を変えました。
順番に一語ずつ読まなくても、Attentionを使って文全体の関係を見ればよいのではないかと考えたのです。
これはかなり大きな転換でした。

たとえば長い文章を読むとき、RNNは、一人の読者が最初から最後まで、一語ずつ順番に読んでいくようなモデルです。
前の文脈を覚えながら次へ進むので、流れを扱うには自然です。
でも長い文章になると、どうしても時間がかかるし、遠い場所の情報を扱うのも苦しくなりやすい。
それに対して Transformerは、大きな工房でたくさんの助手が同時に文章を読み、

・この語はどの語と関係があるか
・ここは主語と述語がつながっている
・この語はずっと前の語を受けている

という関係を、同時に見ていくようなイメージです。
つまりTransformerは、順番に一つずつ処理するより、文全体の関係をまとめて見ようという発想を持ったモデルなのです。

Transformerの中心にあるのは、Self-Attentionです。
Self-Attentionでは、文の中の各単語が、同じ文のほかの単語たちとの関係を見ます。

たとえば、

彼女が読んでいた本は、とても面白かった。

という文なら、「面白かった」は「」と深く関係していますよね。

Self-Attentionは、そうしたつながりを文全体を見ながら同時に見つけることができます。
だからTransformerは、RNNのように一語ずつ順番に進まなくても、文章の中の関係性をうまく捉えやすいのです。

Transformerでは、Multi-Head Attentionも重要な役割を持ちます。
これは、一つの視点だけで文を見るのではなく、複数の視点で同時に関係を見る仕組みでした。

人が文章を読むときも、

・誰が何をしたか
・どの語がどの語にかかるか
・時間の流れはどうか
・感情の動きはどうか

など、いろいろな視点を持っていますよね。
Transformerも同じように、複数のheadがそれぞれ違う見方で文を捉えることで、より豊かな理解ができるようになります。

ここで一つ疑問が出てきます。
RNNは、一語ずつ順番に読んでいたから、自然に「順番」の情報を持てました。
でもTransformerは、文全体をまとめて見るようなモデルです。
すると、どの語が何番目にあるのかが、そのままではわかりにくくなります

そこで使われるのが位置エンコーディング(Positional Encoding)です。
位置エンコーディングは、この単語は何番目にあるか、どの位置にあるかという情報を、入力に加えて教える仕組みです。

たとえば文章でも、

「私は 犬を 好き」

「犬は 私を 好き」

では、出てくる単語が似ていても、順番が違えば意味は変わりますよね。
Transformerでは、単語そのものの情報に加えて、その単語がどこにあるかも知らせることで、順序を扱えるようにしています。

Transformerが大きな影響を与えた理由は、いくつかあります。
まず、RNNのように、一語ずつ順番に処理しなくてもよいので、並列に計算しやすいこと。
そして、Self-Attentionによって文全体の中の遠い関係も見やすいこと。
さらに、Attentionを中心に置くことで、長い系列や複雑な依存関係を扱いやすくなったこと。
つまりTransformerは、系列データを理解するためのやり方そのものを、大きく変えたモデルだったのです。

Transformerも、Seq2Seqの流れを受け継いで、EncoderとDecoderの構造を持つことがあります。

・Encoder→ 入力系列を読み、関係を整理する
・Decoder→ その情報をもとに出力系列を作る

つまり、以前見た、読む塔と書く塔の構造は残っています。
ただし、その中で動いている主役が、RNNではなくAttentionになった、という違いがあります。
だからTransformerは、Seq2Seqの考え方を受け継ぎながら、その中心を Attention に置き換えたモデルとも言えます。

Transformerは、自然言語処理の世界にとても大きな影響を与えました。
翻訳、要約、文章生成、質問応答。
そうした多くのタスクで活躍し、その後の大規模言語モデルの流れにもつながっていきます。
さらに今では、文章だけでなく、画像、音声、動画などにも応用が広がっています。
つまりTransformerは、単なる一つのモデルというより、Attentionを中心にした新しい見方を切り開いた存在なのです。

next ▶ オートエンコーダとは何か