TransformerのScaled Dot-Product Attentionでは、クエリとキーの内積を( ア )で割ってからソフトマックス関数に入力する。ベクトルの次元が大きいと内積の絶対値が( イ )なりやすく、ソフトマックス関数の出力が( ウ )、勾配が非常に小さくなるのを防ぐためである。( ア )〜( ウ )に入る語句の組み合わせとして、最も適切なものを1つ選べ。
正解と解説を見る
解説
正解 A
この問題の論点:内積をスケーリングする理由
ポイント
内積をキーの次元数の平方根で割るのは、ソフトマックス関数の出力が極端に偏り、勾配が小さくなるのを防ぐためです。
選択肢ごとの解説
- A
適切 正解
成分が平均0・分散1で互いに独立なら、次元数d_kのベクトルどうしの内積の分散はd_kになります。√d_kで割ると分散が1にそろい、ソフトマックス関数の出力が極端に偏るのを防げます。
- B
不適切
次元数d_kそのもので割ると、内積の分散は1/d_kまで小さくなり、次元が大きいほど重みが均等に近づいてしまいます。内積の標準偏差が√d_kなので、平方根で割ります。
- C
不適切
内積の大きさを左右するのはベクトルの次元数で、系列の長さではありません。1組のクエリとキーの内積は、系列が長くなっても足し合わせる成分の数が変わらないためです。
- D
不適切
内積は成分どうしの積を次元の数だけ足し合わせるため、次元が大きいほど絶対値は大きくなりやすくなります。小さくなって重みが均等になるという説明は、向きが逆です。
試験での狙われ方
スケーリングに使う値と、その理由(ソフトマックス関数の出力が偏ると勾配が小さくなること)を穴埋めで問う形が考えられます。
参考
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目23 Attention)
- Vaswani et al., Attention Is All You Need (2017)