Transformerアーキテクチャ

スケールドドット積アテンション すけーるどどっとせきあてんしょん

Scaled Dot-Product AttentionQueryKeyValuesoftmaxアテンション
スケールドドット積アテンションについて教えて

簡単に言うとこんな感じ!

「この単語と、文中の他のどの単語が一番関係が深い?」を数値で計算する仕組みだよ!「スケールド」は計算値が大きくなりすぎないよう調整することで、「ドット積」は単語ベクトル同士を掛け合わせる操作のこと。Transformerの心臓部なんだ!


スケールドドット積アテンションとは

スケールドドット積アテンション(Scaled Dot-Product Attention) とは、Query(Q)・Key(K)・Value(V)の3つのベクトルを用いて、各トークンが他のトークンにどれだけ「注目」すべきかを計算する仕組みです。マルチヘッドアテンションの各ヘッドで使われる基本演算で、2017年の「Attention Is All You Need」論文で提案されました。

計算ステップは①QとKの内積(ドット積)でスコア算出、②スコアを√d_kで割ってスケール調整、③Softmaxで確率分布に変換、④Vとの加重平均で出力生成、という流れです。「スケール」処理がなければ次元数が大きいときにSoftmaxが極端な値になり学習が不安定になるため、この除算は重要です。


計算式とステップ

Attention(Q, K, V) = softmax( Q・Kᵀ / √d_k ) ・ V

ステップ解説:
  1. Q・Kᵀ          → 各トークン間の「関連度スコア」行列
  2. / √d_k          → スコアを次元数の平方根でスケール調整
  3. softmax(...)    → 合計が1になる確率分布(アテンション重み)に変換
  4. × V            → 重みに従ってValueを加重平均し出力

例)「彼女はリンゴを食べた」
  「食べた」のQueryは「彼女」のKeyと高いスコア → 主語関係を学習

歴史と背景

  • 2015年:BahdanauのAttention機構が登場(RNNベース)
  • 2017年:Google「Attention Is All You Need」でスケールドドット積アテンションを定式化
  • 2018年以降BERTGPTで実用化、NLP精度が飛躍的に向上
  • 2022年以降Flash Attentionなど効率化実装が登場し長文対応が進化

マスクアテンションとの違い

種類マスク用途
全結合アテンションなしエンコーダーの自己アテンション
因果マスクアテンション未来トークンをマスクデコーダーの自己アテンション(GPT等)
パディングマスク空白トークンをマスクバッチ処理時の余白除去

関連用語