Self Attentionは、系列内の各要素がクエリ・キー・バリューに基づく関連度(重み)を全要素に対して計算し、その重み付き和で自分の表現を更新する仕組み。
## なぜ必要?
Self-Attentionは「離れた単語どうしの関係を、距離に関係なく一発で結びつけつつ(最長経路 O(1))、並列に高速学習でき、しかも入力内容に応じて“どこを見るか”を動的に変えられる」から必要です。
主な理由
* **長距離依存の獲得**:RNN/CNNでは難しい遠距離の関係(代名詞と指示先など)を直接重み付けして結ぶ。
* **並列化による効率**:再帰をなくし、系列全体を一度に計算できて学習が速い。
* **動的な受容野**:固定サイズの畳み込み窓ではなく、入力ごとに重要な位置へ重みを振り分けられる(マルチヘッドで多様な関係も同時に見る)。
* **アライメントと解釈性**:翻訳や要約で「どこを参照したか」を重みとして可視化しやすい。