Attentionメカニズムと記憶ネットワーク|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #4

f:id:lib-arts:20190506200344p:plain

近年猛威を振るっているDeepLearningの言語処理への応用についてまとめていければと思います。
#1では深層学習による自然言語処理」の内容、#2では対話(dialog)問題を取り扱う統合的なフレームワークのParlAIと具体的なタスク、#3では言語処理における事前学習とBERTについて取り扱いました。

#4,#5では#3で流してしまったTransformerについて取り扱うにあたり、「Attention Is All You Need」を読んでいければと思います。

[1706.03762] Attention Is All You Need
事前知識についてまとめていたら長くなってしまったので、#4では論文を読み進めるにあたっての事前知識についてまとめていきます。以下目次になります。

1. 注意機構(attention mechanism)の概要
2. 記憶ネットワークの概要
3. まとめ

 

1. 注意機構(attention mechanism)の概要
まずは前提知識の整理として、注意機構について取り扱います。Transformerは論文のタイトルが"Attention Is All You Need"であることからもわかるように、Attentionにフォーカスが当てられています。
最初から難しい話をすると大変なので、1節では「深層学習による自然言語処理」の4.1節の要約を行えればと思います。
======
・注意機構(4.1)
系列変換モデルでは系列情報をRNNで固定長のベクトルに変換を行いますが、LSTMなどの仕組みを使ってもやはり短い系列に比べて長い系列の方が難しくなります。この課題に対処するために、より直接的に入力情報を出力時に利用する仕組みである注意機構について以下まとめます。

・ソフト注意機構(4.1.1)
複数のベクトルがあった時に、どのベクトルを重要視するかも含めて学習させる仕組みのことを注意機構(attention mechanism)と言います。この時、複数のベクトルの重み付き平均を使う方法をソフト注意機構(soft attention mechanism)と呼びます。数式としては符号化(encode)にあたっての隠れ層をh_{i}^{(s)}とすると注意機構の復号化(decode)にあたって用いる\overline{h}は下記のように表すことができます。
\overline{h}=\sum a_{i}h_{i}^{(s)}
この時にa_{i}は隠れ層の重み付け平均の\overline{h}を計算するにあたっての重みとなっています。このa_{i}は隠れ層のスケールを変更しないために総和が1である必要があるので、以下のようなソフトマックス関数で正規化を行います。
a_{i}=\frac{exp(e_{i})}{\sum exp(e_{j})}
この式におけるe_{i}は関数Ωによって符号化(encode)にあたっての隠れ層h_{i}^{(s)}と、復号化(decode)にあたっての隠れ層h_{j}^{(t)}の間の重みを計算する式です。下記の数式で表すことができます。
e_{i}=Ω(h_{i}^{(s)},h_{j}^{(t)})
Ωの取り方には様々ありますが、一番簡単な方法には単に内積を取るという関数の設定の仕方もあります。
またここまでは系列変換モデルの枠組みでの説明でしたが、もう少し一般化して重み計算のための情報をc_{i}として下記のように考えることもできます。
a_{i}=\frac{exp(Ω(c_{i}))}{\sum exp(Ω(c_{j}))}
上記のように重み付け計算した値を用いることで、直接的に入力情報を出力時に利用することができます。

・ハード注意機構(4.1.2)
ハード注意機構(hard attention mechanism)はソフト注意機構の特殊なバージョンとして考えることができます。a_{i}の導出にあたってsoftmax関数ではなく、max関数を用いることで実現することができます。
=======
上記が「深層学習による自然言語処理」の4.1で言及されている注意機構の要約になります。系列のモデリングではなく、重み付け平均で捉えていることが注意機構(attention mechanism)の肝と捉えておくと良さそうです。

 

2. 記憶ネットワークの概要
Transformerの注意機構で用いられている"Scaled Dot-Product Attention"と"Multi-Head Attention"はどちらもV(Value),K(Key),Q(Query)が用いられています。

f:id:lib-arts:20190506212253p:plain
上図のようにV,K,Qが用いられています。こちらについては、Key-ValueのMemory Networkがベースとなっているようです。

[1606.03126] Key-Value Memory Networks for Directly Reading Documents
したがって、Transformerについて理解するにあたっては記憶ネットワークについても概要はつかんでおくと良さそうです。(Transformerの論文の2節のBackgroundにMemory Networksについての言及があります)
以下では「深層学習による自然言語処理」の4.2節について簡単にまとめます。
=======
・記憶ネットワーク(4.2)
LSTMやRNNなどの内部状態を使うことで文の状態は記憶することができますが、記憶の内容は固定長のベクトルで限定的です。
一方でより直接的に記憶の仕組みをモデル化する研究が行われており、記憶ネットワーク(memory network)はその一つです。記憶ネットワークでは、記憶したい事例を書き込み必要な時に読み込む操作をモデル化しており、全体としては「記憶を行うこと」「記憶を呼び出すこと」「記憶を使って外からの問い合わせに答えること」を行うためのネットワークをモデル化します。

・記憶ネットワークのモデル(4.2.1)
記憶ネットワークでは内部をI,G,O,Rに分解してモデル化します。
=======


3. まとめ
#4ではAttention Is All You Needを読み解いていくにあたっての事前知識についてまとめました。
#5では実際に論文を読み解いていければと思います。