Transformerで用いられるSelf-Attentionと、RNNとを比較した説明として、最も適切なものはどれか。
- 1RNNは時刻方向の計算を並列化しやすいため、一般にTransformerよりGPUでの学習を高速化しやすい。
- 2Self-Attentionの計算量は系列長に対して線形に増えるため、系列が長いほどRNNより計算面で有利になる。
- 3Self-Attentionは直前の位置の情報だけを順に受け渡すため、離れた位置どうしの依存関係を捉えにくい。
- 4Self-Attentionは系列内のすべての位置の組を直接関連付けるため、離れた位置の依存関係を捉えやすく時刻方向の並列計算もしやすいが、計算量は系列長の2乗に比例して増える。
正解と解説を見る
正解:4
Self-Attentionは、系列内のすべての位置の組についてクエリとキーの類似度を計算します。そのため距離に関係なく依存関係を直接捉えられ、各位置の計算を並列に実行できます。一方、すべての組を計算するので計算量は系列長nに対してn²のオーダーで増え、長い系列では負担が大きくなります。RNNは前の時刻の隠れ状態を待って順に計算するため、時刻方向の並列化が難しく、遠い位置の情報も伝わりにくい構造です。Self-Attentionは「長距離依存と並列化に強いが、計算量は系列長の2乗」と押さえておきましょう。
根拠:Self-Attentionの計算量(系列長nに対してO(n²))とRNNの逐次計算