Self-Attention Animation

Click "Play" or "Step" to start.
d_k = 4, √d_k = 2.00
Input (X)
Wq
Wk
Wv
Query (Q = X·Wq)
Key (K = X·Wk)
Value (V = X·Wv)
Scores (Q·K^T / √d)
Attention (softmax)
Output (Attention · V)
Attention(Q,K,V) = softmax(Q·K^T / √d_k) · V
Self-Attention: Each position attends to all positions in the sequence

Self-Attentionとは

Self-Attention(自己注意機構)は、Transformerモデルの中核をなす仕組みです。 シーケンス内の各要素が、他のすべての要素との関連性を計算し、文脈を理解します。

処理の流れ

Phase 1: Q, K, V の生成

入力 X に対して、3つの重み行列を掛けて Query, Key, Value を生成します。

  • Query (Q): 「何を探しているか」を表す
  • Key (K): 「何を持っているか」を表す
  • Value (V): 「実際の情報」を表す

Phase 2: Attention Score の計算

Query と Key の内積を計算し、類似度スコアを求めます。

Score = Q · K^T / √d_k

√d_k で割るのは、次元が大きくなると内積が大きくなりすぎるのを防ぐためです(スケーリング)。

Phase 3: Softmax の適用

スコアを確率分布に変換します。各行の合計が1になります。

Attention = softmax(Score)

これにより、各位置が他の位置にどれだけ「注目」するかの重みが決まります。

Phase 4: 出力の計算

Attention重みで Value を加重平均し、最終出力を得ます。

Output = Attention · V

各位置の出力は、すべての位置の Value の重み付き和になります。

数式まとめ

Attention(Q, K, V) = softmax(Q · K^T / √d_k) · V

なぜ Self-Attention が重要か