AttentionとTransformerの仕組み
Transformerは、入力の各位置が他の位置の情報を参照しながら表現を更新するニューラルネットワークです。Attentionだけで全てが動くわけではなく、位置情報、非線形変換、残差接続などを組み合わせて計算します。
各位置から参照先を計算する
文章をトークンに分けてベクトルにしたとき、ある位置を理解するのに他の位置の情報が役立ちます。自己注意では、同じ系列からQuery(問い合わせ)、Key(照合する手掛かり)、Value(集める内容)を作ります。これらは通常、入力の表現に学習可能な行列を掛けて求めます。QueryとKeyの対応の強さから重みを計算し、Valueを重み付きで合計します。「問い合わせ」などは役割をつかむための名前で、内部で自然言語の質問文や辞書のキーがそのままやり取りされているという意味ではありません。
重み付き平均の数値例
代表的な式はAttention(Q,K,V)=softmax(QKᵀ/√dₖ)Vです。dₖはKeyの次元数で、softmaxは参照可能な位置に対する重みを正規化します。説明用に、正規化後の二つの重みが0.75、0.25、Valueが(2,0)、(0,6)なら、出力は0.75(2,0)+0.25(0,6)=(1.5,1.5)です。これは重みが与えられた仮想例で、単語の意味を手作業で二成分に設定した実モデルではありません。参照できない位置をマスクする場合は、その位置が重み付き合計に入らないようにします。
複数のヘッドと位置情報
複数のヘッドは、それぞれの射影行列で異なる注意計算を行い、結果を結合します。どのヘッドが何を担当するかは学習の結果であり、あらかじめ「主語担当」「動詞担当」と決めているわけではありません。位置の情報がなければ、注意計算だけでは語順を十分に区別できないため、位置埋め込みや相対的な位置を扱う仕組みを組み合わせます。さらに各位置の非線形な変換、残差接続、正規化などを重ねます。実際のモデルにはさまざまな変更があり、すべてのTransformerが原論文と同じ順序や位置表現を持つわけではありません。
エンコーダーと生成用のマスク
原論文では入力を処理するエンコーダーと、出力系列を生成するデコーダーを組み合わせています。文章生成用のデコーダーでは、次のトークンを予測するときに先の正解トークンを見ないよう、通常は因果マスクを使います。訓練では正解系列の各位置に対する損失をまとめて計算できても、通常の自己回帰生成では生成済みの結果を次の入力に加えるため段階的な処理になります。翻訳のように別の入力系列へ注意を向ける交差注意もあり、同じ系列を参照する自己注意との違いを押さえます。
長い文脈と注意の解釈に注意する
すべての位置の組を扱う標準的な密な自己注意では、系列長をnとすると位置同士の組はn²になります。ただし実際のメモリ量や速度は実装や構造の工夫にも左右され、n²という一言だけで機種ごとの速度を予測できません。注意の重みを色で表示すると参照の傾向が見えますが、それだけが回答の原因を完全に説明するわけではありません。複数の層、Valueの内容、他の計算も最終出力へ影響します。長い文章を入力できることと、その全域から必要な事実をいつも正確に使えることも区別します。
確認問題
Attentionの重みが0.75、0.25、Valueが(2,0)、(0,6)なら、重み付き和は何ですか。
解答と考え方を見る
0.75(2,0)+0.25(0,6)=(1.5,1.5)です。重みはValueへ掛け、成分ごとに足します。QueryとKeyは重みを計算する側、Valueは集約される内容という役割の違いがあります。
参考資料・次に読む資料
- Vaswaniほか:Attention Is All You Need注意機構、複数ヘッド、位置情報、エンコーダーとデコーダーの原論文。
- Goodfellow・Bengio・Courville:Deep Feedforward Networks多層ネットワーク、活性化関数、計算グラフ、連鎖律と逆伝播。
資料確認日:2026-11-03。