セルフアテンション - 文脈を理解する仕組み

セルフアテンションは、文中の各単語が他のすべての単語との関係を計算する仕組みです。Transformerの理解を深めましょう。

編集・検証: AIパスポートスタディ編集部 公式情報: GUGA 生成AIパスポート公式ページ 制作・検証方針
戸倉 ジャスミン(普段) 戸倉 ジャスミン

そういえばこの前の試合、あたしがボール出したとき、つむぎちゃんが応援席にいたの気づいてさ——

深見 つむぎ(あせる) 深見 つむぎ

ち、違うから!
たまたま通りかかっただけ!

雪村 ましろ(笑顔) 雪村 ましろ

えへへ、つむぎちゃん顔赤い。

香月 リサ 先生(笑顔) 香月 リサ 先生

ふふ、楽しそうね。
でも今の雑談、ちょうど今日のテーマにつながるわよ?
「つむぎちゃんが応援席にいた」って文を理解するとき、あなたたち自然に「つむぎ=応援してた」と結びつけたでしょ。
文中の単語同士が関係を持つ——これを機械に学ばせるのがSelf-Attentionよ。

深見 つむぎ(普段) 深見 つむぎ

つまり、前回の Attention は入力と出力の橋渡しでしたが、Self-Attention は「同じ文の中」で関係を取る——という理解で合っていますか?
補足すると、Transformer の中核技術ですね。

香月 リサ 先生(普段) 香月 リサ 先生

正解。
例として有名なのが「The cat sat on the mat because it was tired」。
代名詞「it」は「cat」を指すわよね?
Self-Attention は「it」の Query と「cat」の Key の類似度を高く学習して、代名詞解決を可能にするの。

雪村 ましろ(笑顔) 雪村 ましろ

わぁ、なんかすごい…文の中のぜんぶの単語が、お互いに「あなた誰?」って確認しあってるみたい。

戸倉 ジャスミン(笑い) 戸倉 ジャスミン

それって要は、部員全員がお互いのプレーを見ながらポジション決めるパス回しみたいなもんじゃん。

深見 つむぎ(普段) 深見 つむぎ

ジャスミンちゃん、今日のたとえは秀逸ですね。
全員が全員を見る全結合的な関係性計算、ということですね。

香月 リサ 先生(普段) 香月 リサ 先生

さらに Transformer ではマルチヘッドアテンションと言って、Self-Attention を並列に複数(8〜96個など)走らせるの。
あるヘッドは文法関係、別のヘッドは意味関係、別のヘッドは位置関係——と役割分担が生まれるわ。

戸倉 ジャスミン(笑い) 戸倉 ジャスミン

一人で見るより、複数の目で見たほうが見落としが減るのって試合と同じだね!
すごい仕組みじゃん。

深見 つむぎ(普段) 深見 つむぎ

補足ですが、Self-Attention は系列長 N に対して O(N²) の計算量がかかる性質があり、これが長文処理のボトルネック。
最近はこれを緩和する Sparse Attention、FlashAttention、さらには Transformer とは異なる State Space Model(Mamba など)や Linear Attention 系統の研究も活発です。
長いコンテキストを扱うときに効率面でここが効いてきます。

香月 リサ 先生(普段) 香月 リサ 先生

つむぎさん、補足ありがとう。
試験では「同じ文内の単語同士の関係を計算する」というコア機能を押さえれば十分だけど、現場では計算量の話も付いてまわるの。
だから後の記事で扱う量子化や長大なコンテキストウィンドウの工夫が重要になってくるのよ。
Self-Attention ってアイデアはシンプルだけど、Transformer を支える柱だから「なぜ必要?」「どう計算する?」「何が課題?」の3点をちゃんと言語化できるかが、試験対策的にも実務的にも鍵ね。

確認クイズ

セルフアテンションの特徴として最も適切なものはどれか。

  1. 異なる言語間の対応を計算する
  2. 同じ文中の単語同士の関係を計算する
  3. 画像の特徴を抽出する
  4. 時系列データを圧縮する
こたえを見る

正解: 2. 同じ文中の単語同士の関係を計算する

セルフアテンションは同じ文の中で各単語が他のすべての単語との関係を計算する仕組みです。異言語間対応は機械翻訳のクロスアテンション、画像特徴はCNN/ViT、時系列圧縮はRNN/LSTMの説明です。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。