INSIDE THE ATTENTION MECHANISM
アテンションを、分解する
テキスト生成編で見た「単語が単語を見る」アーク——その内側では何が計算されているのか。 Query・Key・Valueの実際の数値を、ステップ実行で追いかける上級章です。 数式はsoftmaxひとつだけ。でも、ぜんぶ本物の計算です。
はじめる ↓ひとつのトークン、3つの顔QUERY / KEY / VALUE
アテンションの前に、各トークンの埋め込みベクトルは学習済みの3つの行列で変換され、 Q(探しもの)・K(名札)・V(渡す情報)という3つの顔を持ちます。 図書館に例えると——Qは検索キーワード、Kは本の背表紙、Vは本の中身。 ここでは意味が読めるよう、4次元に単純化して表示します(実物は数百次元)。
ONE TOKEN, THREE VECTORS — 「猫 が 魚 を 食べた」
相性を、点数にするSCALED DOT-PRODUCT
「食べた」のQと、各トークンのKの内積を取ると「相性の点数」が出ます。 同じ次元が両方大きいほど高得点——「生き物を探すQ」×「生き物ですのK」=高スコア。 ボタンを順に押して、内積→スケール→softmaxの3段変換を実際の数値で確かめてください。
ATTENTION SCORES — softmax( q·k / √d )
Attention(Q, K, V) = softmax( QKᵀ / √d ) · V
絵の具のように、意味を混ぜるWEIGHTED SUM OF VALUES
softmaxの重みで、各トークンのV(中身)を加重平均します。 これがアテンションの出力——絵の具の混色と同じです。 「食べた」の新しいベクトルには、魚が48%、猫が33%…と文脈が物理的に混ざり込む。 STEP 02で注目トークンを変えると、ここも連動します。
CONTEXT MIXING — 重み × V の合成
順番を、思い出させるPOSITIONAL ENCODING
実はアテンションには重大な弱点があります——全トークンを一度に見るため、語順を知りません。 「犬が人を噛んだ」と「人が犬を噛んだ」は、単語の集合としては完全に同一。 解決策は、各トークンに位置の情報を足しておくこと。切り替えて確かめてください。
WORD ORDER EXPERIMENT — モデルにはこう見えている
SINUSOIDAL ENCODING — 位置ごとの「指紋」(原論文方式)
各行がひとつの位置のベクトル。周波数の違うsin/cos波を束ねると、どの位置も固有の縞模様になる——時計の長針と短針で時刻が一意に決まるのと同じ原理です。
層を重ねて、理解が深まるLAYERS & HEADS
ここまでが1層ぶんの計算。実際のモデルはこれを数十層積み重ねます。 層ごとにアテンションの「見るもの」が変わっていく—— 浅い層は隣を、中間層は文法を、深い層は意味を。 「それ」が何を指すか解決される瞬間を、アテンション行列で見てください。
ATTENTION MATRIX BY DEPTH — 「彼女は紅茶を淹れた。それは熱かった」