【あてんしょんきこう】

アテンション機構 とは?

最終更新:
💡 文脈に応じた重みで、情報を混ぜ合わせる

クエリと各情報の対応度から重みを計算し、情報を重み付きで混ぜて出力を作るニューラルネットワークの仕組み。トランスフォーマーでは、トークン間の関係を扱う中心的な要素となる。

📌 このページのポイント
対応度から重みを作り、情報を混ぜる例:「猫・が・座る」の自己アテンション各トークンの表現から Q・K・V を作る各語から3種類のベクトルへ変換Q・K内積 → 尺度調整 → softmax「座る」の重みの仮の例猫が座る0.80.10.1重みの合計は 1重み付き和各語の V を重みで混ぜる↓新しい表現V濃い色ほど大きい重み(値は説明用)重みは「人間の注意」と同じ意味ではない全組合せを見る標準方式は系列長の二乗規模
Q・Kからsoftmaxで重みを作り、Vの重み付き和を出力する代表的な方式。数値は説明用で、実モデルの分析結果ではありません。
ひよこ ひよこ
どうしてアテンションが使われるようになったの?
ペンギン先生 ペンギン先生
翻訳では、入力文を一つの固定長ベクトルだけに詰め込むと情報が不足しやすいという課題があったんだ。出力する単語に応じて入力の各部分へ重みを付ける方法が提案されたよ。現在は翻訳以外でも、系列内や系列間の情報を結び付けるために使われる。
ひよこ ひよこ
Q・K・Vは何をするの?
ペンギン先生 ペンギン先生
トランスフォーマーの代表的な方式では、Queryは情報を探す側、Keyは対応度を比べる側、Valueは混ぜる情報を表すベクトルだよ。QとKの内積を尺度調整し、softmaxで重みに変え、その重みでVを足し合わせる。単に最も似た一つの単語を選ぶだけではないんだ。
ひよこ ひよこ
自己アテンションと交差アテンションは違う?
ペンギン先生 ペンギン先生
自己アテンションは同じ系列からQ・K・Vを作り、系列内の関係を扱うよ。交差アテンションではQとK・Vが別の系列に由来する。翻訳の出力側が入力側の情報を見るのはその例。次のトークンを予測する自己アテンションでは、未来のトークンを見ないように制限することもある。
ひよこ ひよこ
マルチヘッドなら文法担当と意味担当がいる?
ペンギン先生 ペンギン先生
複数の学習した変換でアテンションを並行計算し、結果を結合する仕組みだよ。異なる関係を捉えられるけれど、各ヘッドの仕事をあらかじめ「文法担当」などと決めているわけではない。どんな関係を学ぶかは学習の結果によるんだ。
ひよこ ひよこ
長い文章の計算は重いの?
ペンギン先生 ペンギン先生
全トークンの組合せを見る標準的な自己アテンションは、他の条件を固定すると系列長Nに対して二乗で計算量が増えるよ。実行時間が常にぴったり4倍になるという意味ではない。FlashAttentionはメモリーとのデータ転送を減らす工夫で、全組合せの計算量そのものが線形になるわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「アテンション機構」って出てきたら「文脈に応じた重みで情報を混ぜる仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Attention Mechanism」 = 注意機構
💬 Attentionは注意を向けるという意味だよ。ここでは情報に重みを付ける計算を表し、人間と同じ意識や注意があるという意味ではないんだ。

参考資料

← 用語集にもどる