Web教科書

Self-Attention

Self-Attention (自己注意機構)

解説:文脈を「自分の中」で解決する

Self-Attention(自己注意機構)は、「入力された一つの文章(自分自身)」の中で、単語同士が互いにどう関係しているかを計算する仕組みです。現在最強の言語モデルと言われるTransformerやBERTの中核となる技術です。

従来のAttentionは「翻訳元(日本語)」と「翻訳先(英語)」という異なるデータ間での関連を見ていましたが、Self-Attentionは「同じ文の中での単語の関係」を見ます。

例文:「その動物は道を渡った。なぜなら それ はおなかがすいていたからだ。」この文をAIが読むとき、「それ(it)」が何を指すのかを判断する必要があります。

  • Self-Attentionは、「それ」と文中の全単語(動物、道、渡る…)との関連度(内積)を一気に計算します。
  • 文脈から「それ」=「動物」であるという強い関連(重み)を発見し、意味を正しく理解します。
Self-Attentionの計算イメージ

なぜRNNより優れているのか?

Self-Attentionの最大の発明は、「距離の壁」「時間の壁」を壊したことです。

比較項目 RNN (LSTM) Self-Attention (Transformer)
計算の仕方 前から順番に計算。
(前の計算が終わるまで次へ行けない)
並列計算が可能。
(全単語を一斉に計算できるため爆速)
長距離の依存 距離が離れると忘れてしまう。
勾配消失のリスク)
距離に関係なく直接参照。
(どんなに離れていても1ステップで繋がる)

G検定対策

出題ポイント

  • 定義:Q(クエリ)、K(キー)、V(バリュー)の全てを「同じ入力データ」から生成して計算するAttentionである。
  • メリット:文中の離れた位置にある単語同士の関係(長期的な依存関係)を捉えることができる。
  • 計算:Softmax関数を使って重みを正規化し、バリュー(V)の加重和として出力を得る。

ひっかけ対策

  • × 異なる言語間(英語と日本語など)の関係を計算する
    (解説)それは通常のAttention(またはSource-Target Attention / Cross Attention)の説明です。Self-Attentionはあくまで「同一言語(同一データ)内」での計算です。
  • × 単語の語順(位置情報)を自動的に認識できる
    (解説)Self-Attention自体には順序を認識する能力がありません(「私は猫」と「猫は私」が同じ計算結果になってしまう)。そのため、必ずPosition Encoding(位置エンコーディング)とセットで使われます。
タイトルとURLをコピーしました