Scaled Dot-Product Attentionは、Transformerモデルにおける注意機構(Attention Mechanism)のコア部分であり、自然言語処理や画像処理などで広く利用されています。このメカニズムは、ある単語やトークンが他のどの単語やトークンに注意を向けるべきかを決定するための手法です。
以下は、Scaled Dot-Product Attentionの主要なステップです:
- クエリ (Query)、キー (Key)、バリュー (Value) の計算:
- 入力されたシーケンス(例えば、単語の埋め込みベクトル)から、クエリ、キー、バリューと呼ばれる3つのベクトルを計算します。これらは、通常、線形変換(行列乗算)を通じて得られます。
- ドット積の計算:
- クエリとキーのドット積を計算します。これにより、各トークンが他のトークンにどれだけ「関連性があるか」が計算されます。
- スケーリング:
- クエリとキーのドット積の結果を、キーの次元数の平方根で割ります。これは、値のスケールを調整し、勾配消失や勾配爆発を防ぐために重要です。
- ソフトマックス適用:
- スケーリングされた結果にソフトマックス関数を適用し、注意の重み(アテンションウェイト)を計算します。この重みは、あるトークンが他のトークンにどれだけ注意を向けるべきかを示します。
- バリューとの加重平均:
- 計算された注意の重みをバリューに適用し、それぞれのトークンの加重平均を計算します。この結果が最終的な出力となり、これが次のレイヤーや最終的な予測に使用されます。
このプロセスが「Scaled Dot-Product Attention」と呼ばれる理由は、クエリとキーのドット積が計算され、その後でスケーリング(標準化)が行われるからです。この注意メカニズムは、Transformerモデル(例えばBERTやGPTシリーズ)の基本的な構成要素であり、複雑な依存関係を捉えるのに非常に効果的です。