Attentionは『ソフトな辞書引き』— カーネル回帰(Nadaraya-Watson推定)との等価性で本質を理解する

「その動物は疲れていたので、道を渡れなかった」——この文の「その動物」が何を指すか、私たちは前後の言葉に目を向けて判断します。Transformerのなかで、この「関連するものに目を向けて情報を集める」役割を担うのがAttentionです。ところがAttentionの数式 $\text{softmax}(QK^\top)V$ を見ても、「なぜこの計算で情報が集まるのか」はなかなか腹に落ちません。

この記事のゴールはひとつです。Attentionの正体は、統計学に古くからある「カーネル回帰(Nadaraya-Watson推定)」とまったく同じものだ、ということを納得することです。カーネル回帰は「近いデータほど強く混ぜて予測する」という素朴な発想の手法で、その重みの作り方がAttentionのsoftmaxと寸分違わず一致します。この橋を渡ると、次のことが一気に見通せるようになります。

  • Attentionは「なめらかな検索」「局所的な加重平均」だとわかる — ブラックボックスだった計算が、統計の言葉で説明できるようになります。
  • 温度(スケーリング)やスパース化の意味が腹落ちする — softmaxの温度が「カーネルのバンド幅」に対応し、鋭さ・なめらかさ・過平滑を統一的に理解できます。

Attentionをカーネル回帰として見る視点は、単なる比喩ではありません。この対応を出発点に、線形Attention(Performer など)やカーネル選択の議論が展開されています。まずは1次元のごく素朴な回帰から始めて、それがAttentionに化ける瞬間を、数式とPythonで一緒に確かめていきましょう。

本記事の内容

  • ハードな辞書引き→ソフトな辞書引きという直感
  • Nadaraya-Watsonカーネル回帰の定義と、valueの加重平均という本質
  • Attentionのsoftmax重みがNW推定と等価であることの導出
  • 内積カーネル $e^{q\cdot k}$ とガウスカーネルの関係、温度=バンド幅の対応
  • Pythonで「NW推定=Attention」を数値的に確認し、温度で鋭さを制御する実験

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

ハードな辞書引きから、ソフトな辞書引きへ

Attentionをつかむ一番の近道は、辞書引き(連想配列・ハッシュテーブル)を思い浮かべることです。プログラミングの辞書 d["みかん"] は、キー「みかん」が完全に一致したときだけ、その値「橙色の果実」を返します。少しでも綴りが違えばヒットしません。これを「ハードな検索」と呼びましょう。キーが合えば1、合わなければ0、という白黒はっきりした引き方です。

ハードな辞書引きとソフトな辞書引き(Attention)の概念図

左の図がハードな辞書引きです。「みかん」という問い合わせは「みかん」のキーだけにヒットし、対応する「橙色の果実」だけを返します。ほかのキーの値は一切混ざりません。ところが、右の図のように「柑橘っぽいもの」という曖昧な問い合わせをしたらどうでしょう。完全一致するキーはありません。そこで発想を変えます。「みかん」に最も近く、次に「りんご」、少しだけ「ぶどう」——というように、近いキーほど大きな重みをつけて、すべての値を混ぜて返すのです。これが「ソフトな検索」であり、これこそがAttentionの正体です。

重要なのは、ソフトな検索では出力が「どれかひとつの値」ではなく「値たちの加重平均」になる点です。重みは「問い合わせと各キーの近さ」で決まり、全部足すと1になるように正規化されます。この「近さで重みをつけた加重平均」という枠組みは、実は機械学習を学ぶ前、統計学の世界ですでに完成していました。それが次に見るNadaraya-Watson回帰です。

Nadaraya-Watsonカーネル回帰 — 近いデータほど強く混ぜる

いま、ノイズの乗ったデータ点 $(x_1, y_1), \dots, (x_N, y_N)$ が手元にあり、新しい点 $x$ での $y$ の値を予測したいとします。もっとも素朴なアイデアは、「$x$ に近いデータ点の $y$ を見て、その平均をとる」というものです。ただし「近い/遠い」を白黒で切るのではなく、近いデータほど強く、遠いデータほど弱く重みをつけて平均する。この直感を数式にしたのが、1964年に NadarayaとWatsonがそれぞれ独立に提案したカーネル回帰です。

予測式は次のように書けます。

$$ \begin{equation} \hat{f}(x) = \frac{\sum_{i=1}^{N} K(x, x_i)\, y_i}{\sum_{j=1}^{N} K(x, x_j)} \end{equation} $$

ここで $K(x, x_i)$ はカーネルと呼ばれ、「点 $x$ と点 $x_i$ の近さ」を測る関数です。近いほど大きな値を返します。分子は「近さ×そのデータの $y$」の総和、分母はカーネルの総和で、これで割ることで重みの合計を1に正規化しています。分数全体を、重み $w_i$ を使って書き直すと本質が見えます。

$$ \begin{equation} \hat{f}(x) = \sum_{i=1}^{N} w_i\, y_i, \qquad w_i = \frac{K(x, x_i)}{\sum_{j=1}^{N} K(x, x_j)} \end{equation} $$

つまりNW推定とは、カーネルで測った近さを正規化した重み $w_i$ による、$y_i$ の加重平均にほかなりません。$\sum_i w_i = 1$ かつ $w_i \ge 0$ なので、これは正真正銘の「重み付き平均」です。カーネルとして最もよく使われるのがガウスカーネル(RBFカーネル)です。

$$ \begin{equation} K(x, x_i) = \exp\!\left(-\frac{(x – x_i)^2}{2h^2}\right) \end{equation} $$

$h$ はバンド幅と呼ばれ、「どのくらい離れたデータまで近いとみなすか」を決めるつまみです。$h$ が小さいと、ごく近いデータだけが大きな重みを持ち、少し離れただけで重みは急速にゼロに落ちます。$h$ が大きいと、遠いデータにもそれなりの重みが残り、広い範囲を平均します。カーネルの形と、それを正規化して得られる重みを図で確認しておきましょう。

ガウスカーネルの形と正規化された重み

左の図は、評価点 $x_q=2.5$ を中心に置いたガウスカーネルです。評価点に近いデータ点ほどカーネル値が大きく、離れるとなめらかにゼロへ落ちます。右の図は、そのカーネル値を全データで割って正規化した重み $w_i$ です。合計はきっちり $1.000$ になっており、評価点近くのデータ点に重みが集まっています。この「近さで重みをつけ、合計1に正規化する」という操作が、あとで見るsoftmaxとぴったり重なります。

このバンド幅がどう効くかを、実際のデータで見てみましょう。

バンド幅で変わる、過適合と過平滑

真の関数 $f(x) = \sin(2x) + 0.3x$ にノイズを乗せたデータを用意し、NW推定のバンド幅 $h$ を変えてフィットの様子を観察します。まずは $h$ が小さいときです。

Nadaraya-Watson回帰 バンド幅小 過適合

$h=0.08$ と狭くすると、推定曲線は各データ点をほぼ通ろうとしてギザギザになります。近いデータ点しか見ないので、ノイズまで拾ってしまう過適合の状態です。予測は「ほとんど最近傍のデータそのもの」に近づきます。逆に $h$ を大きくしすぎるとどうなるでしょう。

Nadaraya-Watson回帰 バンド幅大 過平滑

$h=1.5$ と広くすると、今度は遠くのデータまで一様に混ざり、曲線は真の $\sin$ の起伏をならして平坦になってしまいます。これが過平滑です。細かい構造が消え、全体の傾向しか残りません。ちょうどよいバンド幅は、この両極端の中間にあります。

Nadaraya-Watson回帰 バンド幅適度

$h=0.35$ では、ノイズには過剰反応せず、真の関数のなめらかな起伏をよく捉えています。バンド幅は「ノイズを平均で消す」効果と「本当の構造をぼかしてしまう」副作用のトレードオフを決めるつまみだとわかります。この過適合と過平滑のバランスを、真の関数に対する二乗誤差(MSE)で定量化してみます。

バンド幅と真の関数に対するMSE

横軸にバンド幅 $h$、縦軸に真の関数に対するMSEをとると、はっきりとU字型になります。$h$ が小さすぎる左側では過適合でノイズを拾って誤差が大きく、$h$ が大きすぎる右側では過平滑で構造を消して誤差が大きい。その谷底、この例では $h \approx 0.26$ 付近が最良のバンド幅です。この「小さすぎず大きすぎず」という感覚は、あとでAttentionの温度スケーリングの話にそのまま効いてきます。

ここまではあくまで統計の回帰の話でした。ここで視点を変えます。この「カーネルで近さを測り、正規化して加重平均する」計算を、Attentionの言葉で書き直してみると、驚くほどぴったり重なります。

Attentionの重みは、正規化されたカーネルそのもの

Attention(スケール付きドット積Attention)の1本の出力は、次のように定義されます。クエリ $\bm{q}$、キー $\bm{k}_1,\dots,\bm{k}_N$、バリュー $\bm{v}_1,\dots,\bm{v}_N$ に対して、

$$ \begin{equation} \text{Attention}(\bm{q}) = \sum_{i=1}^{N} \alpha_i\, \bm{v}_i, \qquad \alpha_i = \frac{\exp\!\left(\bm{q}\cdot \bm{k}_i / \sqrt{d}\right)}{\sum_{j=1}^{N}\exp\!\left(\bm{q}\cdot \bm{k}_j / \sqrt{d}\right)} \end{equation} $$

$\alpha_i$ がAttention重みで、softmaxによって合計1に正規化されています。この式(4)を、さきほどのNW推定の式(2)と並べてみましょう。

$$ \hat{f}(x) = \sum_{i=1}^{N} w_i\, y_i, \qquad w_i = \frac{K(x, x_i)}{\sum_{j=1}^{N} K(x, x_j)} $$

構造が完全に同じです。対応関係を整理します。

Nadaraya-Watson回帰 Attention
評価点 $x$ クエリ $\bm{q}$
データ点の位置 $x_i$ キー $\bm{k}_i$
データ点の出力 $y_i$ バリュー $\bm{v}_i$
カーネル $K(x, x_i)$ $\exp(\bm{q}\cdot \bm{k}_i / \sqrt{d})$
正規化した重み $w_i$ Attention重み $\alpha_i$
予測 $\hat{f}(x)$ Attentionの出力

つまりAttentionは、カーネルを $K(\bm{q}, \bm{k}_i) = \exp(\bm{q}\cdot \bm{k}_i / \sqrt{d})$ にとったNadaraya-Watson推定そのものです。「クエリという評価点で、キーという位置にあるバリューを、カーネルで測った近さで加重平均する」——ハードな辞書引きが完全一致した1個の値を返すのに対し、Attentionはカーネルで近さを測ってすべてのバリューをなめらかに混ぜる。冒頭の「ソフトな辞書引き」が、そのまま統計のカーネル回帰だったわけです。

softmaxの正規化(分母の $\sum_j \exp(\cdot)$)は、NW推定の分母 $\sum_j K(x,x_j)$ と完全に同じ役割です。どちらも「重みの合計を1にする」ためのもの。softmaxはカーネル回帰の正規化を、指数カーネルという特定の選び方で実装したものだと理解できます。

ここで自然な疑問がわきます。NW推定でよく使うのは $\exp(-(x-x_i)^2/2h^2)$ という距離ベースのガウスカーネルなのに、Attentionは $\exp(\bm{q}\cdot\bm{k}_i)$ という内積ベースです。この2つは本当に同じ仲間なのでしょうか。

内積カーネル $e^{q\cdot k}$ とガウスカーネルの関係

鍵になるのは、内積とユークリッド距離を結ぶ次の恒等式です。ベクトルの二乗距離を展開すると、

$$ \begin{equation} \|\bm{q} – \bm{k}\|^2 = \|\bm{q}\|^2 + \|\bm{k}\|^2 – 2\,\bm{q}\cdot\bm{k} \end{equation} $$

となります。この式を $\bm{q}\cdot\bm{k}$ について解くと、

$$ \bm{q}\cdot\bm{k} = \frac{1}{2}\left(\|\bm{q}\|^2 + \|\bm{k}\|^2 – \|\bm{q}-\bm{k}\|^2\right) $$

です。これをガウスカーネルの指数の中に入れてみます。ガウスカーネルは(バンド幅を $h=1$ として)

$$ \exp\!\left(-\frac{\|\bm{q}-\bm{k}\|^2}{2}\right) = \exp\!\left(-\frac{\|\bm{q}\|^2 + \|\bm{k}\|^2}{2}\right)\cdot \exp\!\left(\bm{q}\cdot\bm{k}\right) $$

と分解できます。前半の因子 $\exp(-\|\bm{q}\|^2/2)$ はクエリごとに決まる定数で、softmaxの分子・分母の両方に共通で掛かるため、正規化すると約分されて消えます。同様に $\exp(-\|\bm{k}_i\|^2/2)$ は、すべてのキーのノルムが揃っているとき($\|\bm{k}_i\| = $ 一定)には $i$ によらない定数となり、これも約分されます。すると残るのは $\exp(\bm{q}\cdot\bm{k}_i)$ だけ。つまり、

キー(とクエリ)のノルムが一定なら、RBF(ガウス)カーネルのsoftmaxと、内積カーネルのsoftmaxは完全に一致する

内積が大きい=二乗距離が小さい、という単調な対応があるからです。実際に、ノルムを一定にして角度だけを変えたときの2つのカーネルを比べてみます。

内積カーネルとRBFカーネルの対応

左の図は、$\|\bm{q}\|=\|\bm{k}\|$ を固定して両者のなす角を $0$ から $180$ 度まで変えたときの、規格化したカーネル値です。内積カーネル $e^{\bm{q}\cdot\bm{k}}$(実線)とRBFカーネル $e^{-\|\bm{q}-\bm{k}\|^2/2}$(破線)がぴったり重なっています。右の図は対数をとったもので、ノルム一定のもとでは対数カーネルが内積 $\bm{q}\cdot\bm{k}$ の一次式になり、両者が同じ傾きの直線に乗ることを示します。Attentionの内積カーネルは、ノルムが揃っていればガウスカーネルと本質的に同じというわけです。

実務のTransformerではキーのノルムは厳密には一定でないので、内積カーネルとRBFカーネルは完全には一致しません。それでも「内積が大きいキーほど近いとみなして重く混ぜる」というAttentionの挙動は、ガウスカーネル回帰の直感でよく近似できます。LayerNormがベクトルのスケールをそろえる効果も、この「ノルムを揃えるとRBFに近づく」という話と地続きです。

ここまでで、Attentionがカーネル回帰だという骨格が見えました。では次に、NW推定で「バンド幅 $h$」が果たしていた役割は、Attentionでは何に対応するのでしょうか。

温度=バンド幅 — softmaxの鋭さを決めるつまみ

NW推定のガウスカーネル $\exp(-(x-x_i)^2/2h^2)$ に戻り、これをsoftmaxの形で書き直します。スコアを $s_i = -(x-x_i)^2/(2h^2)$ と置くと、正規化した重みは

$$ \begin{equation} w_i = \frac{\exp(s_i)}{\sum_j \exp(s_j)} = \text{softmax}(s)_i \end{equation} $$

となり、これはまさにAttentionのsoftmaxです。ここでバンド幅 $h$ は、スコアを $1/(2h^2)$ 倍する係数として現れています。つまり $h$ が小さいほどスコアが大きくスケールされ、softmaxは鋭くなる(勝者総取りに近づく)。$h$ が大きいほどスコアは平坦にスケールされ、softmaxはなだらかになる(一様平均に近づく)。

これはAttentionの温度(あるいはスケーリング係数 $1/\sqrt{d}$)とまったく同じ役割です。softmaxを $\text{softmax}(s/\tau)$ と温度 $\tau$ で書けば、$\tau$ が小さい=バンド幅が小さい=鋭い、$\tau$ が大きい=バンド幅が大きい=なめらか、と対応します。$1/\sqrt{d}$ でスコアを割るのは、次元が高いと内積が大きくばらついてsoftmaxが鋭くなりすぎる(重みがほぼ0/1になり勾配が消える)のを防ぐ、いわば「バンド幅の自動調整」だと読めます。実際に温度(バンド幅)を変えて、ひとつの評価点での重み分布がどう変わるか見てみましょう。

温度によるAttention重みの鋭さ変化

評価点 $x_q=2.5$ に対する各キー位置の重みを、$h=0.1, 0.35, 1.2$ で描いたものです。$h=0.1$(青)では評価点直近の1〜2点にほとんどの重みが集中し、鋭いピークになります。最近傍探索に近い挙動です。$h=1.2$(赤)では重みが広く薄く分散し、多くのキーをほぼ均等に混ぜています。重みの散らばりぐあいをエントロピーで測ると、$h=0.1$ で約 $1.08$、$h=0.35$ で約 $2.41$、$h=1.2$ で約 $3.52$ と、バンド幅が大きいほど重みがなだらか(高エントロピー)になることが数値でも確認できます。この鋭さの変化を、評価点全体にわたって俯瞰したのが次のヒートマップです。

温度によるAttention重みのヒートマップ

縦軸が評価点(クエリ)、横軸がキーの位置、色が重みです。$h=0.1$(左)では対角線上(クエリ=キーの近く)だけが明るく、各クエリが自分の最近傍のキーだけを見ていることがわかります。$h$ を大きくするほど明るい帯が横に広がり、$h=1.2$(右)ではぼんやりと広い範囲に重みが散らばります。温度が「どれだけ局所を見るか/どれだけ大域を平均するか」を連続的に制御しているわけです。この両極端で予測曲線そのものがどう変わるかを確かめると、Attentionの本質がさらにはっきりします。

温度の両極端 最近傍と全体平均

$h\to0$(青)では、予測は最も近いデータ点の値をそのまま返す階段状(最近傍法)になります。$h\to\infty$(赤)では、すべてのバリューを均等に混ぜるため、予測はデータ全体の平均値という定数に潰れます(点線のデータ平均に重なっています)。Attention/NW推定は、この2つの極端のあいだをバンド幅ひとつでなめらかにつなぐ手法だ、と理解できます。温度が小さいほどハードな検索(辞書引き)に、大きいほど大雑把な平均に近づく——冒頭のソフト辞書引きの絵が、そのまま数式と一致しました。

理論の対応が見えたので、最後にPythonで「NW推定=Attention」が数値レベルでも完全一致することを確かめ、これまで示した数値を実測で裏づけます。

Pythonで確かめる — NW推定とAttentionの数値一致

まず、共通のノイズありデータと2種類のガウスカーネル計算(NW推定用)を用意します。真の関数は $f(x)=\sin(2x)+0.3x$ です。

import numpy as np

rng = np.random.default_rng(0)
def true_f(x):
    return np.sin(2.0 * x) + 0.3 * x

N = 40
xi = np.sort(rng.uniform(0.0, 5.0, size=N))          # データ点の位置
yi = true_f(xi) + rng.normal(0.0, 0.35, size=N)      # ノイズ付き出力
xg = np.linspace(0.0, 5.0, 300)                       # 評価点

def gauss_kernel(a, b, h):
    d2 = (a[:, None] - b[None, :]) ** 2               # (M, N) の二乗距離
    return np.exp(-d2 / (2.0 * h ** 2))

def nw_predict(xq, xi, yi, h):
    K = gauss_kernel(xq, xi, h)                        # カーネル行列
    W = K / K.sum(axis=1, keepdims=True)              # 行ごとに正規化
    return W @ yi, W                                   # 加重平均

nw_predict は式(1)をそのまま実装しています。カーネル行列を各行(各評価点)で正規化し、バリュー yi との行列積で加重平均をとるだけです。次に、まったく同じ計算をAttentionの言葉で書きます。スコアを $-\|x-x_i\|^2/(2h^2)$ とし、softmaxで重みにして、バリュー yi を加重平均します。

def attention_predict(xq, xi, yi, h):
    # スコア = -||xq - xi||^2 / (2h^2)、softmax で重みに、value=yi を加重平均
    score = -(xq[:, None] - xi[None, :]) ** 2 / (2.0 * h ** 2)
    score = score - score.max(axis=1, keepdims=True)  # 数値安定化(最大値を引く)
    e = np.exp(score)
    W = e / e.sum(axis=1, keepdims=True)               # softmax
    return W @ yi, W

h = 0.35
yhat_nw, _ = nw_predict(xg, xi, yi, h)
yhat_at, _ = attention_predict(xg, xi, yi, h)
maxdiff = np.max(np.abs(yhat_nw - yhat_at))
print(f"NW推定とAttentionの最大差 = {maxdiff:.3e}")

これを実行すると、出力は次のようになります。

NW推定とAttentionの最大差 = 6.661e-16

最大差は $6.7\times10^{-16}$、これは浮動小数点の丸め誤差レベルで、実質的に完全一致です。NW推定の「正規化したガウスカーネル」と、Attentionの「softmaxされたスコア」は、同じ数式を別の書き方で表しただけなのですから、当然の結果です。この一致を図で重ねると次のようになります。

NW推定とAttentionが完全に一致する図

太い緑の線(NW推定)と赤い破線(Attention)が完全に重なっています。統計学の1964年のカーネル回帰と、現代Transformerのsoftmax Attentionが、1次元のこの図の上で文字どおり同じ曲線を描くのです。続いて、本文で述べたバンド幅とMSEの関係、および温度による重みの鋭さを実測で確認します。

# バンド幅を変えて真の関数に対する MSE を計算
hs = np.linspace(0.03, 2.0, 60)
mses = np.array([np.mean((nw_predict(xg, xi, yi, h)[0] - true_f(xg)) ** 2)
                 for h in hs])
best = hs[np.argmin(mses)]
print(f"最良バンド幅 h = {best:.3f},  最小MSE = {mses.min():.4f}")
for h in [0.08, 0.35, 1.5]:
    mse = np.mean((nw_predict(xg, xi, yi, h)[0] - true_f(xg)) ** 2)
    print(f"h={h}: MSE(対 真の関数) = {mse:.4f}")

# 温度(バンド幅)による重みの鋭さ = エントロピーで測る
for h in [0.1, 0.35, 1.2]:
    _, W = attention_predict(np.array([2.5]), xi, yi, h)
    w = W[0][W[0] > 0]
    ent = -np.sum(w * np.log(w))
    print(f"h={h}: 重みエントロピー = {ent:.3f}, 最大重み = {W[0].max():.3f}")

実行結果は次のとおりです。

最良バンド幅 h = 0.264,  最小MSE = 0.0310
h=0.08: MSE(対 真の関数) = 0.0798
h=0.35: MSE(対 真の関数) = 0.0436
h=1.5: MSE(対 真の関数) = 0.4244
h=0.1: 重みエントロピー = 1.079, 最大重み = 0.542
h=0.35: 重みエントロピー = 2.414, 最大重み = 0.167
h=1.2: 重みエントロピー = 3.517, 最大重み = 0.045

数値がすべて本文の主張と一致します。MSEは最良バンド幅 $h\approx0.26$ で最小の $0.031$ をとり、狭すぎる $h=0.08$(過適合)でも広すぎる $h=1.5$(過平滑、MSE $0.42$)でも悪化しています。まさにU字型のトレードオフです。重みのエントロピーは $h$ が大きいほど増え($1.08 \to 2.41 \to 3.52$)、同時に最大重みは減っていきます($0.54 \to 0.17 \to 0.05$)。バンド幅(=温度)を上げると重みがなだらかに分散する、という図で見た挙動が、そのまま数値で裏づけられました。

Attentionをカーネル回帰として実装できるということは、逆に言えば、カーネルの選び方を変えればAttentionを設計し直せるということでもあります。指数(softmax)カーネルの代わりに、内積を特徴写像 $\phi(\bm{q})^\top\phi(\bm{k})$ で近似する線形カーネルを使えば、計算量を $O(N^2)$ から $O(N)$ に落とす線形Attention(Performer など)になります。この発想の出発点が、まさに本記事で示した「Attention=カーネル回帰」という等価性です。

まとめ

本記事では、Attentionをカーネル回帰(Nadaraya-Watson推定)として理解する視点を解説しました。

  • Attentionはソフトな辞書引き — ハードな辞書引きが完全一致した1個の値を返すのに対し、Attentionは近いキーほど強くバリューを混ぜる。出力はバリューの加重平均になる。
  • NW推定と完全に等価 — $\text{softmax}(\bm{q}\cdot\bm{k}_i/\sqrt{d})$ を重みとするバリューの加重平均は、カーネル $K(\bm{q},\bm{k}_i)=\exp(\bm{q}\cdot\bm{k}_i/\sqrt{d})$ を使ったNadaraya-Watson推定そのもの。評価点=クエリ、データ位置=キー、出力=バリューが対応する。
  • 内積カーネルとガウスカーネルは地続き — $\|\bm{q}-\bm{k}\|^2=\|\bm{q}\|^2+\|\bm{k}\|^2-2\bm{q}\cdot\bm{k}$ より、ノルムが揃っていれば $e^{\bm{q}\cdot\bm{k}}$ と $e^{-\|\bm{q}-\bm{k}\|^2/2}$ のsoftmaxは一致する。
  • 温度=バンド幅 — softmaxの温度(スケーリング $1/\sqrt{d}$)はカーネルのバンド幅に対応。小さいと鋭く最近傍的、大きいとなめらかで全体平均的になる。過平滑・過適合はバンド幅選びのトレードオフとして統一的に理解できる。
  • Pythonで数値一致を確認 — NW推定とAttentionの最大差は $6.7\times10^{-16}$。バンド幅とMSEのU字関係、温度による重みの鋭さ(エントロピー)も実測で裏づけた。

この視点を持つと、Attentionは「なぞの神経回路」ではなく「なめらかな局所平均を行うカーネル回帰」として腹落ちします。そして、カーネルの選び方を変えることで線形Attentionなどの高速化・改良につながる、という設計の入り口にもなります。

次のステップとして、以下の記事も参考にしてください。