[注意] 2018年現在の一般化
-
-
queryと複数のkeyの束であるKeysがある
-
queryとKeysを引数にとってそれぞれのkeyに対する注意の強さを返す関数Fがある
-
その結果を何らかの方法で合計が1になるように正規化して注意強度を得る(だいたいsoftmaxだが see ハード注意機構)
-
その注意強度でValuesを重み付け平均する
-
図解
-
FはKeyの個数を知らない。はKeyのshapeに依存しない。
- 数学語でどう表現するのが良いかわからない。
- 一つのqueryと一つのkeyを受け取る関数fがあって
[f(query, key) for key in Keys]
2014年 加法注意 1409.0473 Neural Machine Translation by Jointly Learning to Align and Translate
- Func := Feed-Forward Network
-
By letting the decoder have an attention mechanism, we relieve the encoder from the burden of having to encode all information in the source sentence into a fixedlength vector. With this new approach the information can be spread throughout the sequence of annotations, which can be selectively retrieved by the decoder accordingly.
- RNNの隠れ状態は固定長のベクトルで、文章全体のデータをそこに詰め込んで覚えておくのは負担
- 注意機構は任意長のデータから情報を取り出すことができるのでその負担を軽減する
2015年 内積注意 1508.04025 Effective Approaches to Attention-based Neural Machine Translation
- queryとkeyを単に内積したもので良いという割り切り
- もちろんこの内積は論文によっては行列積で表現されたりしている
- 関連 双線形
- 当初、注意機構はRNNと組み合わせて使うことが想定されていた
- Encoder-Decoder構成でのEncoderの隠れ状態を保存しておき、注意機構によってその隠れ状態の中から選択する
- この構成だとKey, ValueはEncoderから、queryはDecoderから来る
- この種の構成をソースターゲット注意と呼ぶ
- (Sequence Generation with Target Attention(2017)でsource-target attentionとtarget-target attentionという形で比較議論されている)
- KとVを合わせてMemoryと呼ぶ
- 対義語が[自己注意]
古い解説