Attention
論文解説 Attention Is All You Need (Transformer) external_link を参照。
メモ
-
Attentionは、大きく分けて2種類ある。
-
seq2seqで使用するSource-Target-Attentionと、自分自身に対するSelf-Attention
-
Attentionは、Mapからキーを元に値を選択する処理である。
-
どこに注意すればよいかを、キーから選択させるようにする。
-
よい選択ができるようにMapデータを学習させる。
-
学習させるためには、勾配計算するため、微分できる必要がある。
-
そのため、単なるMapの選択操作をするのではなく、キーから割合をまとめて、値と掛け合わせて合算する。
-
その結果を元に損失関数で計算し、よい値になるようにMapを調整していく。
-
Mapのキーは、内積計算を行い類似度の高いものを高くする。
-
類似度が高いものが、結果的に損失関数の評価がよくなるように調整していく。
Selft-Attention
- Selft-Attentionは、自分自身のシーケンスデータの関連度を取得する。
- CNN(畳み込みネットワーク)の場合は、フィルタ(カーネル)サイズの範囲で、評価を行う。
- フィルタサイズが上限となるが、Attentionの場合は、シーケンスデータの全体を評価することができる。
- CNNの場合、学習はよいフィルタを作りあげることだが、Attentionの場合は、よいMapを作りあげることである。
- 自然言語処理のAttentionの場合、キーは単語ベクトルとなるため、単語ベクトルの分散表現の類似度が調整される。