Transformer
概要

従来、時系列に変化するデータや文章やプログラムコードのように要素の並び順に意味がある系列データは、リカレントニューラルネットワーク(RNN)のように入力データを端から順番に扱う構造を用いるのが一般的だった。しかし、文章が長くなると最初の方の情報を忘れてしまい、順番に計算する必要があるため並列処理が難しく学習に多大な時間がかかるという課題があった。
Transformerは、先頭から順番に処理していく手順を排除し、データのどの部分に注目すべきかを計算する「アテンション」(Attention:注意機構)と呼ばれる仕組みを採用している。Transformerで用いられるアテンションは「セルフアテンション」(Self-Attention:自己注意機構)と呼ばれる種類で、入力された文章の中の各単語が、同じ文章内の他の単語とどのような関係にあるかを計算するものである。
例えば、「私は猫が好きです。その猫は白いです。」という文章について、文中の2番目の「猫」が1番目の「猫」を指していることを、「その」など文中の他の単語との結びつきの強さから判断する。この仕組みにより、文中の離れた位置にある単語同士の依存関係を、直接的かつ効率的に捉えることが可能になった。すべての単語について独立に、並列に処理するため、単語の文中での位置を忘れないよう「位置エンコーディング」という要素が追加されている。
ニューラルネットワークとしての基本的な構造はエンコーダ・デコーダ型で、入力からエンコーダが特徴を抽出して抽象的な内部表現に変換し、その特徴に基づいてデコーダが別の形式のデータに変換していく。例えば、機械翻訳のために対訳データで学習させたモデルであれば、ある言語の文章をエンコーダが特徴表現に変換し、その表現からデコーダが翻訳先の文章を生成する。
Transformerはその高い表現力と汎用性、並列処理を活かした高速な学習プロセスから、多様な派生モデルを生み出してきた。エンコーダのみを用いる構成は文章分類や情報検索などの理解タスクに利用され、デコーダのみを用いる構成は文章生成や対話システム、コード生成などに応用されている。また、画像を小さな領域(パッチ)単位でトークン化して入力する「Vision Transformer」のように、言語以外のデータ形式にも適用範囲が拡張されている。