Attention Mechanism のバックアップソース(No.11)

CENTER:|>|BGCOLOR(#ACFA58):CENTER:Attention Mechanism|
|BGCOLOR(#E0F2F7):CENTER:カテゴリ|[[Category/Info]]|
|BGCOLOR(#E0F2F7):CENTER:状態|''&color(Red){執筆中};''|

#CONTENTS

// ''[[概要>#Overview]]''
// **隣接地域 [#ContiguousRegion]
// ''[[安全情報>#SafetyInformation]]''
// ''[[行政区画>#AdministrativeDivision]]''
// ''[[地域名>#Regions]]''
// **ランドマーク・施設・集落・小地名等 [#Landmark]
// ''[[事項>#Events]]''
// **資料 [#Sources]
// ''[[リンク>#ExternalLink]]''
// ''[[その他>#Others]]''


**概要 [#Overview]
 Attention Mechanism (注意機構)は、データのどこに注目するかを利用した機械学習のモデル。[[RNN>Recurrent Neural Network]]には、離れた位置の情報が反映されにくいという弱点があり、これを解決するために[[RNN>Recurrent Neural Network]]に付け加えられる形で登場した。~
 注意点を示すという性質から、自然言語処理だけでなく画像処理などにも使われる。また、[[RNN>Recurrent Neural Network]]を利用せず、Attention Mechanism を主とした機械学習モデル (Transformer) が発明され、高性能な自然言語処理([[BEAT>Bidirectional Encoder Representations from Transformers]]等)の基礎となった。
**モデル(大まかな機構) [#bcc831c3]


:文脈|&mathjax{\displaystyle \mathbf{c}_\tau= \sum_t a_{\tau t} \mathbf{v}_t = \mathbf{a}_\tau^\top V};
つまり &mathjax{\displaystyle C=  A^\top V};
:正規化|&mathjax{\displaystyle \mathbf{a}_\tau^\top = f_{norm}(\mathbf{e}_\tau^\top)};
つまり&mathjax{\displaystyle A^\top = f_{norm}(\mathscr{E}^\top)};
または &mathjax{\displaystyle a_{\tau t}^\top = f_{norm}(e_{\tau t}^\top)};
:類似度|&mathjax{\displaystyle \mathbf{e}_\tau^\top = f_{norm}(\mathbf{q_\tau},K)};
つまり &mathjax{\displaystyle \mathscr{E}^\top = f_{sim}(Q,K)};
 ~

このとき、
:&mathjax{t};|&mathjax{V,K};の縦ベクトルの番号。自然言語では単語数にあたることがある。
:&mathjax{\tau};|&mathjax{Q};の縦ベクトルの番号。
:&mathjax{Q};|分析の対象(query)。縦ベクトル&mathjax{\mathbf{q}_\tau}; を並べたものと考えてもいい。
:&mathjax{V};|value。これに重み付き係数を掛けると取得すべき文脈&mathjax{c};となる。
自然言語処理においては、入力文の個々の単語(とRNN等)から作られた縦ベクトル&mathjax{\mathbf{v}_t};を並べたもの。
出力(output)と呼ばれることもあるが、これをそのまま出力するわけではない。
:&mathjax{K};|key。これを使って分析の対象&mathjax{Q};との関係を算出する。翻訳器ならば、&mathjax{K};が原文から作った縦ベクトルを並べたもの、&mathjax{Q};が今訳すべき部分の状態である。
&mathjax{V=K};の場合が多い。
また、&mathjax{V=K=Q};の場合はSelf-Attentionと呼ばれる。
:&mathjax{\mathbf{c}_\tau};|&mathjax{\mathbf{q}_\tau};に対する文脈。これが次のモジュールに渡される。
:&mathjax{\mathbf{a}_\tau};|重みベクトル。要素&mathjax{{a}_{\tau t}};は&mathjax{\mathbf{v}_t};対して定まる。
 

以上より、Attention のモデルは以下3つの観点から分類できる。~
-&mathjax{Q,V,K};などの分析対象・状態・関係
-正規化&mathjax{f_{norm}};の方法
-類似度&mathjax{f_{sim}};の方法

**Q,V,Kなどの対象の状態・関係からの分類 [#kb9f5032]
:Source-Target Attention|&mathjax{Q \neq V=K};の場合。

:Self-Attention|&mathjax{Q=V=K};の場合。
自然言語処理ならば、各単語間の関係の強さを取得したいときに使う。

:Multi-Head Attention|複数のAttentionを用意する。同じ単語でも位置によって関係性が異なる場合などに使う。

**正規化の方法の分類 [#lcf99c64]
&mathjax{\displaystyle \mathbf{\alpha} = f_{norm}(\mathbf{e})};

**類似度の方法の分類 [#rfcf1f23]
&mathjax{\displaystyle \mathbf{e} = f_{sim}(Q,K)};

**リンク [#ExternalLink]

-[[Neural Machine Translation by Jointly Learning to Align and Translate&BR;Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio&BR;Submitted on 1 Sep 2014 (v1), last revised 19 May 2016 (this version, v7):https://arxiv.org/abs/1409.0473]]
-[[Attention Is All You Need&BR; (Vaswani et al, 2017):https://arxiv.org/abs/1706.03762]]
-[[論文解説 Attention Is All You Need (Transformer)&BR;ディープラーニングブログ| 2017-12-21:http://deeplearning.hatenablog.com/entry/transformer]]
-[[自然言語処理における、Attentionの耐えられない短さ&BR;Qiita:https://qiita.com/icoxfog417/items/f170666d81f773e4b1a7]]
-[[深層学習界の大前提Transformerの論文解説!&BR;Qiita:https://qiita.com/omiita/items/07e69aef6c156d23c538]]
-[[ざっくり理解する分散表現, Attention, Self Attention, Transformer&BR;Qiita:https://qiita.com/norihitoishida/items/2fead107792b504eaccf]]
-[[作って理解する Transformer / Attention&BR;Qiita|@halhorn|2018年12月05日に更新:https://qiita.com/halhorn/items/c91497522be27bde17ce]]
-[[Attentionで拡張されたRecurrent Neural Networks&BR;DeepAge:https://deepage.net/deep_learning/2017/03/03/attention-augmented-recurrent-neural-networks.html]]
-[[自然言語処理の巨獣「Transformer」のSelf-Attention Layer紹介&BR;Neil Wu|Oct 7, 2019 · 10 min read:https://medium.com/lsc-psd/%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86%E3%81%AE%E5%B7%A8%E7%8D%A3-transformer-%E3%81%AEself-attention-layer%E7%B4%B9%E4%BB%8B-a04dc999efc5]]


**巻末 [#k8686439]
***履歴 [#d6235c4c]
2020 5/27:半分くらい書いた
***コメント [#ga1736e6]
#pcomment