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の場合、キーは単語ベクトルとなるため、単語ベクトルの分散表現の類似度が調整される。 CNN/Attention

参考情報