そういえばこの前の試合、あたしがボール出したとき、つむぎちゃんが応援席にいたの気づいてさ——
ち、違うから!
たまたま通りかかっただけ!
えへへ、つむぎちゃん顔赤い。
ふふ、楽しそうね。
でも今の雑談、ちょうど今日のテーマにつながるわよ?
「つむぎちゃんが応援席にいた」って文を理解するとき、あなたたち自然に「つむぎ=応援してた」と結びつけたでしょ。
文中の単語同士が関係を持つ——これを機械に学ばせるのが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点をちゃんと言語化できるかが、試験対策的にも実務的にも鍵ね。
確認クイズ
セルフアテンションの特徴として最も適切なものはどれか。
- 異なる言語間の対応を計算する
- 同じ文中の単語同士の関係を計算する
- 画像の特徴を抽出する
- 時系列データを圧縮する
こたえを見る
正解: 2. 同じ文中の単語同士の関係を計算する
セルフアテンションは同じ文の中で各単語が他のすべての単語との関係を計算する仕組みです。異言語間対応は機械翻訳のクロスアテンション、画像特徴はCNN/ViT、時系列圧縮はRNN/LSTMの説明です。