Up Self-Attention がしていること 作成: 2025-05-17
更新: 2025-06-25


    Transformer の処理/アルゴリズムのゴールは,所期の [ p_1, ‥‥, p_m ] を得ることである。

    これは,つぎの流れになる:

      テクストS
        ↓トークン分割
     T = [ t_1, ‥‥, t_m ], m = LEN(S)
        ↓対応するトークン点
     X = [ x_1, ‥‥, x_m ]
        │← 位置エンコーディングを加算
        │
        ├───────────┐
        │         ( Self-Attention )
        │    ┌──────┿──────┐
        │    ↓線型変換  ↓      ↓
        │ Q_i = x_i W_Q  K_i = x_i W_K  V_i = x_i W_V
        │    └──┬───┘      │
        │       ↓          │
        │ α_i = sim( Q_i ; K_1, ‥‥, K_m )  │
        │       │          │
        │       └───┬──────┘
        │          z_i = α_i V
        │← Residual ─────┘
        │
        │← LayerNorm (正規化)
        │
        ├───────────┐
        │          ( FFN )
        │           ↓
        │    z'_i = σ( x_i W_1 + b_1) W_2 + b2
        │← Residual ─────┘
        │
        │← LayerNorm
        ↓ 
      X^(2) = [ x^(2)_1, ‥‥, x^(2)_m ] 
        ↓
        :
        ↓
      X^(n+1) = O = [ o_1, ‥‥, o_m ] 
        ↓
       logis
        ↓
      P = [ p_1, ‥‥, p_m ]
        ↓(誤差逆伝播)


  • Self-Attention
    x_i から
       z_i = α_i V
    を生成する行程を,Self-Attention という。

    Self-Attention は,形式的にはつぎのことをしている:
    • x_i それぞれに対し,
        V_1j, ‥‥ V_mj
      の加重平均 z_ij ( j = 1, ‥‥, D ) をつくる。
    • その加重平均に使う確率分布 α_i を,
         sim( Q_i ; K_1, ‥‥, K_m )
      としてつくる。

    "sim( Q_i ; K_1, ‥‥, K_m )" の記号 sim (similarity, 類似度) は,「よい定義を課題化している」の意趣である。
    Transformer は,sim( Q_i, K_j ) をつぎのように定める:
      α_i = sim( Q_i ; K_1, ‥‥, K_m )
        = softmax( Q_i (K_1)^T/√D, ‥‥ , Q_i (K_m)^T/√D ) )
      ここで, √D が「スケーリング因子」に相当。

    そうすると,つぎが V_1j, ‥‥ V_mj の加重平均になる:
      z_ij = α_i1 V_1j + ‥‥ + α_im V_mj


  • Self-Attention は何をしているか
    Self-Attention から重み行列を除くと,つぎのようになる:

             ( Self-Attention )
        ┌──────┿──────┐
        ↓      ↓      ↓
        x_i      x_i      x_i
        └──┬───┘      │
           ↓          │
     α_i = sim( x_i ; x_1, ‥‥, x_m )  │
           │          │
           └───┬──────┘
        z_i = ( Σα_ik x_k1, ‥‥ Σα_ik x_kD )

    z_i は,x_i の移動ベクトル。
    そしてこの内容は,つぎのようになっている:
    • 移動を,次元ごとに同形式で調整する。
    • その形式は, 《 x_1, ‥‥, x_m それぞれに対する x_i のいまの近さの程度 α_i を反映させる》。


  • 通説の意味論を退ける
    W_Q, W_K, W_V の Q, K, V は,それぞれ Query, Key, Value と読まれる。
    通説は, Query, Key, Value を意味づけるが,本論考はこの立場を取らない。
       通説の「Query・Key・Value」解釈


  • 並列処理
    Self-Attention は,x_1, ‥‥, x_m を並列に処理する: