Up Multi-Head Attention 作成: 2025-05-17
更新: 2025-05-17


    Q, K, V は LEN(S)×D 行列であるが,Transformer の実装では,計算を並列処理 (ヘッド数 : H ) で効率化するために,W_Q, W_K, W_V を D / H 列のブロック H 個に,等分する:
      D × D/H 行列
      (W_Q)_1, ‥‥, W_Q)_H ( ← W_Q )
      (W_K)_1, ‥‥, W_K)_H ( ← W_K )
      (W_V)_1, ‥‥, W_V)_H ( ← W_V )

    即ち,重み付け計算は,つぎのようになる:
      LEN(S) × D/H 行列
      (Q)_k = X(S) (W_Q)_k
      (K)_k = X(S) (W_K)_k
      (V)_k = X(S) (W_V)_k
          k = 1, ‥‥, H
    そしてこれを,後でまとめて,
      Q = X(S) W_Q
      K = X(S) W_K)
      V = X(S) W_V
    にする。

    この方法を,「Multi-Head Attention」と謂う。
    しかし「最後は同じ」ということで,ここでは「Single-Head」で論を進める。