Transformerは、再帰構造を使わずアテンション機構だけで系列を処理するモデルです。BERTやGPT、Vision Transformerなど現代の主要モデルの土台であり、E資格でも最重要級の項目です。

📖 概要

Transformerは2017年に「Attention Is All You Need」という論文で提案された、エンコーダ・デコーダ型の系列変換モデルです。従来のseq2seqがRNNやLSTMを基盤としていたのに対し、Transformerは再帰構造を完全に排し、アテンション機構のみで系列内・系列間の依存関係を捉えます。これにより系列の各位置を並列に計算でき、学習を大幅に高速化・大規模化できるようになりました。

中核となるのがSelf-Attentionで、その具体的な計算方式がScaled Dot-Product Attentionです。これを複数並列に行うのがMulti-Head Attention、デコーダ側で未来の情報を隠すのがMasked Attention、エンコーダとデコーダをつなぐのがSource Target Attentionです。また、再帰構造を持たないため語順の情報が失われる問題を、Positional Encodingで補います。これらの部品の役割と計算の流れを押さえることが本項目の目標です。

🔍 キーワード解説

Self-Attention

Self-Attention(自己注意)は、同一系列内の要素同士の関連度を計算する仕組みです。各トークンのベクトルから、クエリ(Q)・キー(K)・バリュー(V)という3種類のベクトルを重み行列との積で作り、あるトークンのQと全トークンのKの類似度を計算して、その重みでVを混ぜ合わせます。これにより「it が何を指すか」のような文中の離れた単語同士の依存関係を、距離によらず1ステップで捉えられます。

Scaled Dot-Product Attention

Scaled Dot-Product Attentionは、TransformerのAttentionの具体的な計算式で、Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) V と表されます。QとKの内積で関連度スコアを求め、キーの次元数d_kの平方根で割ってからソフトマックスで正規化し、Vの重み付き和をとります。sqrt(d_k)で割る(スケーリングする)のは、次元が大きいとき内積の値が大きくなりすぎ、ソフトマックスの勾配が極端に小さくなるのを防ぐためです。この式は計算問題としても問われやすい重要ポイントです。

Source Target Attention

Source Target Attentionは、デコーダがエンコーダの出力を参照するためのアテンションです。クエリQをデコーダ側の系列から、キーKとバリューVをエンコーダ側の出力から作る点が特徴で、従来のseq2seqにおけるエンコーダ・デコーダ間アテンションに相当します。Self-AttentionがQ・K・Vをすべて同じ系列から作るのに対し、Source Target AttentionはQとK・Vの由来が異なる、という対比で整理できます。

Masked Attention

Masked Attentionは、デコーダのSelf-Attentionで使われる仕組みで、各位置が自分より後(未来)の位置を参照できないようにマスクをかけます。具体的には、未来の位置に対応するスコアをソフトマックスの前に負の無限大相当の値に置き換え、重みを実質ゼロにします。デコーダは学習時に系列全体を並列処理しますが、推論時は左から右へ1トークンずつ生成するため、学習時にも未来の正解を「カンニング」できないようにする必要があるのです。

Multi-Head Attention

Multi-Head Attentionは、Q・K・Vをそれぞれ異なる重み行列で複数組(複数ヘッド)に線形変換し、ヘッドごとにScaled Dot-Product Attentionを並列実行して、結果を連結・線形変換する仕組みです。ヘッドごとに異なる部分空間で注意を計算するため、文法的関係や意味的関係など、多様な観点の依存関係を同時に捉えられると解釈されています。

Positional Encoding

Positional Encoding(位置符号化)は、トークンの位置情報を埋め込みベクトルに加算する仕組みです。Attentionの計算自体は語順を区別しない(並べ替えても同じ結果になる)ため、位置情報を明示的に与える必要があります。原論文では周期の異なるsin関数とcos関数の値を次元ごとに割り当てる方式が使われました。学習可能な位置埋め込みを使うモデル(BERTなど)もあります。

📝 試験でのポイント

💡 ポイント
  • Scaled Dot-Product Attentionの式と「なぜsqrt(d_k)で割るのか」(内積の値が大きくなりソフトマックスの勾配が消失するのを防ぐ)は最頻出
  • Self-Attention/Source Target Attentionの違いを「Q・K・Vをどの系列から作るか」で判別できるようにする
  • Masked Attentionが「デコーダで未来の情報を参照させないため」の仕組みであることを押さえる
  • Positional Encodingが必要な理由(Attentionは語順情報を持たない)を説明できるようにする
  • RNNとの対比(並列計算が可能、長距離依存を直接捉えられる)も選択肢として問われやすい

📚 まとめ

Transformerは再帰構造を捨て、Self-Attention(実体はScaled Dot-Product Attention)を軸に系列を並列処理するモデルです。Multi-Headで多様な関係を捉え、デコーダではMasked AttentionとSource Target Attentionを使い分け、Positional Encodingで語順を補います。各部品の役割と数式を対応づけて理解しましょう。