1行定義
Transformerとは、RNNや畳み込みを使わず、Attentionを中心に系列内の関係をとらえる、2017年に提案されたニューラルネットワークのことです。
くわしく
Transformerは、2017年にGoogleの研究者らが論文「Attention Is All You Need」で発表したモデルです。それまでの機械翻訳は、RNNを使うSeq2SeqにAttentionを加える形が主流でした。Transformerは、RNNも畳み込みも使わず、Attentionを中心に組み立てました。
構造
翻訳元の文を読むエンコーダと、訳文を1語ずつ出力するデコーダからなります。元の論文では、どちらも同じ構造の層を6つ重ねています。
- エンコーダの層:Self-Attentionと、位置ごとの全結合ネットワーク
- デコーダの層:後ろの単語を隠すマスク付きSelf-Attention、エンコーダの出力を参照するSource-Target Attention、位置ごとの全結合ネットワーク
Attentionはすべて、Multi-Head Attentionです。各部分には残差接続とレイヤー正規化が加わります。
位置エンコーディング
Self-Attentionは、単語の並び順を区別しません。このままでは「犬が猫を追う」と「猫が犬を追う」を見分けられません。そこで、位置を表すベクトルを単語の埋め込みに足して入力します。元の論文では、周波数の異なるサイン関数とコサイン関数でこのベクトルを作ります。
強みと弱み
前の単語の計算を待たずに、学習時に全位置を並列に計算できます。離れた単語どうしも直接結びつくため、長い文の関係も捉えやすくなりました。この性質が、大規模な学習を後押ししました。弱みは、計算量が文の長さの2乗に比例することです。
その後の広がり
エンコーダ部分を使うBERT、デコーダ部分を使うGPTシリーズなど、その後の言語モデルの多くがTransformerを土台にしています。画像を小さなパッチに分けて単語のように扱うVision Transformerにより、画像認識にも広がりました。
G検定での出題
出題のされ方
RNNを使わずAttentionで系列を処理する点、並列計算しやすい点、位置エンコーディングが必要な理由、エンコーダとデコーダの役割、BERTやGPT、Vision Transformerの土台であることが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| Transformerこのページの用語 | RNNや畳み込みを使わず、Attentionを中心に系列内の関係をとらえる、2017年に提案されたニューラルネットワーク |
| Seq2Seq | エンコーダが入力の系列を読み込んでベクトルにまとめ、デコーダがそれをもとに別の系列を1つずつ生成するモデル |
違いを表で比べる
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
Transformerは、RNNのように単語を1つずつ順番に処理しないため、学習時に系列内の全位置の計算をまとめて並列に行いやすい。
答えを見る
答え ◯ 正しい
Self-Attentionは全位置を一度に計算できます。GPUの並列計算を生かせるので、大量のデータで学習しやすくなりました。
-
Transformerでは、RNNと同じく前の時刻の隠れ状態を次の時刻に受け渡すことで、単語の並び順を表現している。
答えを見る
答え × 誤り
Transformerには、時刻ごとに状態を受け渡す構造がありません。並び順は、位置を表すベクトル(位置エンコーディング)を単語の埋め込みに加えて表します。
-
Transformerの各層では、Attentionや全結合ネットワークの出力に、その入力をそのまま足し合わせる残差接続が使われている。
答えを見る
答え ◯ 正しい
元の論文では、入力とサブ層の出力を足してからレイヤー正規化をかける、LayerNorm(x + Sublayer(x))の形です。ResNetのスキップ結合と同じ考え方で、深い層でも学習しやすくします。