Attention Mechanism のバックアップ(No.18)


Attention Mechanism
カテゴリCategory/Info
状態執筆中

概要

 Attention Mechanism (注意機構)は、データのどこに注目するかを利用した機械学習のモデル。RNNには、離れた位置の情報が反映されにくいという弱点があり、これを解決するためにRNNに付け加えられる形で登場した。

 注意点を示すという性質から、自然言語処理だけでなく画像処理などにも使われる。また、RNNを利用せず、Attention Mechanism を主とした機械学習モデル (Transformer) が発明され、高性能な自然言語処理(BEAT等)の基礎となった。

モデル(大まかな機構)

文脈
\( \displaystyle \mathbf{c}_\tau= \sum_t a_{\tau t} \mathbf{v}_t = \mathbf{a}_\tau^\top V \)
つまり \( \displaystyle C= A^\top V \)
正規化
\( \displaystyle \mathbf{a}_\tau^\top = f_{norm}(\mathbf{s}_\tau^\top) \)
つまり\( \displaystyle A^\top = f_{norm}(S^\top) \)
または \( \displaystyle a_{\tau t} = f_{norm}(s_{\tau t}) \)
類似度
\( \displaystyle \mathbf{s}_\tau^\top = f_{sim}(\mathbf{q_\tau},K) \)
つまり \( \displaystyle S^\top = f_{sim}(Q,K) \)
 

\( Q \)
分析の対象(query)。縦ベクトル\( \mathbf{q}_\tau \) を並べたもの。翻訳では、訳出中の内部状態にあたる。また、入力・応答関連のシステムにおては、応答中の内部状態にあたる。

\( V \)
value。縦ベクトル\( \mathbf{v}_t \) を並べたもの。
これに重み付き係数を掛けると取得すべき文脈\( \mathbf{c}_\tau \)となる。
自然言語処理においては、入力文の個々の単語(とRNN等)から作られた縦ベクトル\( \mathbf{v}_t \)を並べたもの。
出力(output)と呼ばれることもあるが、これをそのまま出力するわけではない。

\( K \)
key。縦ベクトル\( \mathbf{k}_t \) を並べたもの。
これを使って分析の対象\( Q \)との関係を算出する。翻訳器ならば、\( K \)が原文から作った縦ベクトルを並べたもの、\( Q \)が今訳すべき部分の状態である。
\( V=K \)の場合が多い。
また、\( V=K=Q \)の場合はSelf-Attentionと呼ばれる。

\( C \)
context。
文脈ベクトル\( \mathbf{c}_\tau \) を並べたもの。
\( Q, V, K \)に対する文脈。これが次のモジュールに渡される。

\( A \)
重みベクトル\( \mathbf{a}_\tau \)を並べたもの。
要素\( {a}_{\tau t} \)\( \mathbf{v}_t \)対して定まる。
 

以上より、Attention のモデルは以下3つの観点から分類できる。

  • \( Q,V,K \)などの分析対象・状態・関係
  • 正規化\( f_{norm} \)の方法
  • 類似度\( f_{sim} \)の方法

Q,V,Kなどの対象の状態・関係からの分類

Source-Target Attention
\( Q \neq V=K \)の場合。
Self-Attention
\( Q=V=K \)の場合。
自然言語処理ならば、各単語間の関係の強さを取得したいときに使う。
Multi-Head Attention
複数のAttentionを用意する。同じ単語でも位置によって関係性が異なる場合などに使う。

正規化の方法の分類

\( \displaystyle \mathbf{a}_\tau = f_{norm}(\mathbf{h}_\tau) \)の具体的な方法によって分類できる。


softmax関数
\( \displaystyle \mathbf{a}_\tau = \frac{\exp(\displaystyle \mathbf{h}_\tau)}{\displaystyle \sum_\tau \exp(\mathbf{e}_\tau)} \)

類似度の方法の分類

\( \displaystyle \mathbf{s}_\tau^\top = f_{sim}(\mathbf{q}_\tau,K) \)あるいは\( \displaystyle S^\top = f_{sim}(Q,K) \)にはいくつかの方式がある。

Dot-Product Attention(内積注意)

\( \displaystyle s_{\tau t} = q_{\tau t} \mathbf{k}_t \)
すなわち
\( \displaystyle \mathbf{s}_\tau^\top = \mathbf{q}_\tau^\top K \)
すなわち
\( \displaystyle S^\top = Q^\top K \)

Scaled Dot-Product Attention(正規化内積注意)

\( \mathbf{k}_t \)の次元を\( d_k \)とするとき、
\( \displaystyle s_{\tau t} = \frac{q_{\tau t} \mathbf{k}_t}{\sqrt{d_k}} \)
すなわち
\( \displaystyle \mathbf{s}_\tau^\top = \frac{ \mathbf{q}_\tau^\top K}{\sqrt{d_k}} \)
すなわち
\( \displaystyle S^\top = \frac{Q^\top K}{\sqrt{d_k}} \)

Dot-Product Attention と softmax 正規化を用いた場合、勾配が小さくなりすぎる問題を回避するため\( \sqrt{d_k} \)で正規化している。
Transformerで採用されている方式。
(横ベクトル表記だと、若干数式に違いがあるので注意。)

additive attention (加法注意)

\( f_{a}() \)を活性化関数としたとき、

\( \displaystyle \displaystyle s_{\tau t} = \mathbf{w} f_{a} ( W_1 \mathbf{q}_{\tau} + W_2 \mathbf{k}_t + \mathbf{b} ) \)

general

\( s_{\tau t} = \mathbf{q}_\tau^\top W \mathbf{k}_t \)
あるいは
\( \mathbf{s}_{\tau}^\top = \mathbf{q}_\tau^\top W K \)
あるいは
\( S^\top = Q^\top W K \)

巻末

履歴

2020 5/25:半分くらい書いた

コメント

コメントはありません。 Comments/Attention Mechanism

お名前: URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White