Attention

Attention

執筆済 AILLMTransformer

入力のどこに注目するかを、重みとして計算する仕組み。

Attention(Q,K,V)=softmax(QKdk)V

3 つの役割#

記号 名前 役割
Q Query 「何を探しているか」
K Key 「自分は何であるか」
V Value 「実際に渡す情報」

辞書検索の比喩。QK内積で 一致度を測り、softmax で重みにして V を加重平均する。

「どこを見るか」を微分可能な形で表現しているのが核心。

dk で割る理由#

QK の成分が独立で分散 1 なら、 内積の分散dk になる。

dk が大きいと内積の値が大きくなり、 softmax が極端に偏る(ほぼ one-hot になる)。 すると勾配が消える

dk で割ることで分散を 1 に戻し、 softmax が適度な分布を保つ。 細かいが実用上重要な工夫。

起源#

Bahdanau らが 2014 年に機械翻訳の RNN に導入した。 それまで固定長ベクトルに押し込んでいた入力文の情報を、 必要なときに必要な部分を参照できるようにした。

Transformer はこれを RNN から切り離し、 Attention だけで系列処理を行うようにしたもの。

参考文献#

ノート一覧を閉じる