らんだむな記憶

blogというものを体験してみようか!的なー

ゼロつく 2 (13)

Attention の部分の説明は 8 章の pp.338-340 辺りが導入部と思う。[1409.0473] Neural Machine Translation by Jointly Learning to Align and Translate では式 (5) と (6) 辺りが該当すると思う。特に (6) 式は softmax である。(5) 式では隠れ状態とアノテーションの間の alignment model による係数 $e_{ij}$ を softmax に通して得る重み $\alpha_{ij}$ をアノテーションを掛けこんで文脈ベクトルを作っている。その感じはゼロつく 2 の p.333 図8-8 とも符合する。

この段階でピッタリとゼロつく 2 と対応づけられないが、alignment model としてゼロつく 2 では内積をとっていると考えるとなんとなく似たようなことをやっているような気持ちになる。なお、[1409.0473] Neural Machine Translation by Jointly Learning to Align and Translate では内積ではなく、A.1.2 の通りに何と表現して良いのかわからない関数を適用している。

[1508.04025] Effective Approaches to Attention-based Neural Machine Translation によると、attention の考えは前からあった様子だが、ニューラル機械翻訳に適用したのは [1409.0473] Neural Machine Translation by Jointly Learning to Align and Translate が初めてというように読める。[1508.04025] Effective Approaches to Attention-based Neural Machine Translation の 3.1 Global Attention の score 関数を見ると、dot, general, concat の 3 つが考えられているが、[1409.0473] Neural Machine Translation by Jointly Learning to Align and Translate では concat を、ゼロつく 2 では dot を使っているという感じだろうか。この辺は経験値が低過ぎて中身が理解できない。必要に応じて関連文献を読み込んでいくしかないな・・・。
score についてはゼロつく 2 p.339 の以下が参考になる:

なお、この s正則化前の値であり、「スコア」と呼ぶこともあります。

Attention の分類については ざっくり理解する分散表現, Attention, Self Attention, Transformer - Qiita と比較すると上で書いたことはそれほどずれてなさそうに思える。Transformer の論文では、確かに “Scaled Dot-Product Attention” というキーワードが出てくる。この時点で「Attention はドット積による実装のみ」という誤解をしなくて良かった。ドット積(内積)で類似度を計測するという考えは、正規化の有無はさておき、コサイン類似度と通じるものがあるので理解しやすい。

図8-16 におけるドット積(内積)がちょっと分かりにくかったので追記した図を作成してみた。

f:id:derwind:20211107221826p:plain:w250