オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Multi Head Attention

Attention まとめ yhayato1320.hatenablog.com

Index

Multi Head Attention

Multi Head Attention は、Transformer で利用されている仕組み.

yhayato1320.hatenablog.com

Multi Head

Multi Head Attention は、Query、Key、Value の組みを複数用意しておき、 それぞれの組に対して、Attention 機構(Transformer では、Scaled Dot Product Attention)を適用し、 最後に出力を一つに集約するような手法.


yhayato1320.hatenablog.com

Attention では、入力  x_i に対し、行列  W^{Q},\ W^{K},\ W^{V} を適用して Query、Key、Value の組を取得していた.
以下のように複数行列の組を用意し、
 W_{l}^{Q},\ W_{l}^{K},\ W_{l}^{V},\ l\ =\ 1,\ \cdots,\ h
Query、Key、Value の組を複数作成することができる.


複数のAttention の出力  a_{i}^{l} を取得後、ベクトルとして連結し、重み  W^{o} で行列変換する. 最終的な出力は以下のようになる.

 a_{i}\ =\ (a_{i}^{1},\ \cdots,\ a_{i}^{h})\ W^{o}
 A\ =\ (a_{1},\ \cdots,\ a_{n})

計算の効率化

出力  A を計算する前に、各組の出力  A^{l} を計算してから、行列変換を行えば、行列計算をまとめられる.

A^{l}\ =\ (a_{1}^{l},\ \cdots,\ a_{n}^{l})
 A\ =\ (A^{1},\ \cdots,\ A^{h})\ W^{o}

参考