Multi-Head Attentionとは
MHA / マルチヘッドアテンション
Attentionを複数のヘッドに分けて並列に計算し、異なる観点の関係を同時に捉えて結合する仕組み
最終更新:
概要
Multi-Head Attentionは、Attentionの計算を複数の「ヘッド」に分けて並列に実行し、その結果を連結して線形変換する仕組み。Transformerの中核となる構成要素。 各ヘッドは入力をそれぞれ別の重みでQuery・Key・Valueに射影し、低い次元の空間でScaled Dot-Product Attentionを計算する。ヘッドごとに異なる射影を学習するため、構文的な関係、近い位置への注目、意味的な対応関係など、異なる種類の関係を別々のヘッドが捉えられる。ヘッド数を増やしても各ヘッドの次元を小さくするため、全体の計算量は単一ヘッドのAttentionと同程度に収まる。 推論時にはヘッドごとにKeyとValueをKVキャッシュに保持する必要がある。メモリ使用量を減らす派生として、KeyとValueをヘッド間で共有するMulti-Query AttentionやGrouped-Query Attention、低ランクに圧縮するMulti-Head Latent Attentionが提案されている。
歴史
2017年にVaswaniらが論文「Attention Is All You Need」でTransformerの構成要素として提案した。
利点
- 複数の種類の関係を異なるヘッドで同時に捉えられる
- ヘッドごとの計算を並列に実行できる
欠点
関連する用語
参考文献
- Research PaperAttention Is All You Need (Vaswani et al., 2017)
- Documentationtorch.nn.MultiheadAttention (PyTorch)