アテンション機構(attention)と系列対系列変換 [seq2seq~Transformer]

1. 系列対系列変換と attention 機構の概要

アテンション機構 (Attention Mechanism, 注意機構) は,入力ベクトル系列(or 集合)の重みづけベクトルを,追加コンテキストベクトルとして作成して予測入力に追加することができる,主にディープニューラルネット(DNN)向けの拡張機構である.認知科学の「視覚注意」にインスパイアされた仕組みなので「 attention(=注意)機構」と名付けられた.

そして,「 系列対系列変換(sequence-to-sequence translation)問題」において,そのアテンション機構が中心的な部品として用いられる.NLP分野の「機械翻訳」向けの seq2seq [Sutskever et al., 2014] の変換能力を向上させる仕組みとして,アテンション機構は当初提案された [Bahdanau et al.,2015].その後,系列対系列変換以外のネットワークでも,アテンション機構は広く応用されるようになった.

この記事では以下の順で,系列対系列変換モデルを登場順に紹介する.それを通じて「系列対系列変換モデルの変遷」と「アテンション機構」の2つについて,同時に理解を深めてもらう構成にした:

  1. seq2seq [Sutskever et al., 2014](2.1節)
  2. seq2seq with attention [Bahdanau et al., 2015] (2.2節)
  3. seq2seq with attention の画像キャプション生成への応用(3節)
  4. Transformer [Vaswani et al., 2017](4節)

seq2seq with attention(2.2節)でアテンション機構が初提案されたことで,機械翻訳の精度は飛躍的に伸びた.アテンション機構単体についても,説明可能性がありシンプルな仕組みで,汎用性が高い.よって,seq2seq with attentionは,それ以後,音声認識や音声合成,Vision and Language(V&L)など,非常に広範囲の分野の系列対系列変換で,応用されていく展開となっていった.その後 Transformer が登場すると,系列対系列変換問題はTransformerで主に取り組まれていく.

また,系列対系列変換モデル以外でも,様々な問題でアテンション機構が活用されるようになっていった.画像認識CNNでも,画像用のアテンション機構の提案が多く行われる(ただしそれらの系列対系列変換以外におけるアテンション応用は,この記事の対象外).

1.1 記事の構成

この記事では,以下の構成で,系列対系列変換モデルの変遷と,アテンション機構について紹介する:

  • 1節: 概要
    • 1.2 系列対系列変換の概要
    • 1.3 応用先と可視化の例.
    • 1.3 アテンションの利点.
  • 2節:seq2seq with attentionによる機械翻訳(アテンション機構の初提案)
  • 3節:画像キャプショニングでの応用 (V&Lでの初期応用例).
  • 4章:Transformer:アテンションをメインにした系列対系列変換モデル

あくまで「系列対系列変換モデルの変遷」を主眼にしており,その中でのアテンションの使われ方も紹介していく(詳しくは各子記事を参照).

以下の,系列対系列変換問題以外への活用例は,この記事では取り上げない:

  • Neural Turing Machine(NTM)などの「メモリー拡張付きネットワーク」
  • 点間の対応づけを学習できる「Pointer Network」
  • 画像認識CNNでのアテンションの活用.(CBAM [Woo et al., 2018] などの チャンネル単位アテンション(Channel-wise attention)や,画像入力向けの自己アテンション Non-Local Neural Networks [Wang et al., 2018] など.

1.2 系列対系列変換モデルの概要

系列対系列変換モデルは「ドメインの異なる2つの系列データ間の変換」を,Encoder-Decoder型の「RNN2つを接続したネットワーク」と,「アテンション機構」の組み合わせにより実施する.まず,アテンション無しの,最初の機械翻訳向け提案として,seq2seqが提案された(2.1節).RNN言語モデルを,潜在変数間で橋渡ししただけのシンプルなモデルである.よって,前半RNNの最後のフレームの隠れ表現しか後半RNNに渡せないので,精度がいまひとつであった.

これを改善するため,seq2seqにテンション機構を追加した seq2seq with attention が登場した(この研究がアテンション機構の最初の提案である)(2.2節).seq2seq with attentionでは,seq2seqと一緒に学習した「スコア関数」,テスト時に「アテンション係数」を予測する.この係数は,Decoder-RNNによる次フレームの単語予測において,現在のDecoderの隠れ状態と,入力単語のどの隠れ表現$\bm{h}_i$が関連が強いかを示した重み係数(=注意の強さ)に相当する.これにより,テスト時には「次の予測に強く関連する」入力単語の隠れベクトルのみを重要視した「コンテキストベクトル(入力RNNの隠れ層を,アテンションで重みづけ和したベクトル」も,予測の入力の補助コンテキストとして追加で使用可能になり,seq2seqよりも予測精度を向上させることができた.また,注視する入力単語群を,毎フレームの予測で,動的に変更できる(=アテンションの値は毎フレーム変化する)ので,更に予測性能を向上させることができる.そのアテンション係数も,単なる「スカラーの重み係数」なので,その可視化と理解も楽であり,予測モデルの説明可能性も向上する(1.3節の可視化を参照).

こうした利点を多数持つことから,seq2seq with attentionは,系列対系列間の変換問題や,集合対集合間の変換問題で用いられるようになった.例えば,機械翻訳,音声認識,音声合成,画像キャプション生成 などのV&L(3節)などで用いられる.そして,アテンション機構は,seq2seq以外の分野でも,画像認識やNLP,音声音響認識なので広くつかわれていく.

また,seq2seq with attention の実質後継モデルとして Transformer (4節)が2017年に登場し,2018年ごろ以降は,系列対系列変換モデルの決定版として,広く用いられている.Transformerは,並列型にアテンションを使用する「マルチヘッドアテンション」と,「トークンごとの変換を行うFFNN」2つを基本ブロック単位とし,それらを残差ブロック化させてResNetを構成しているという,Encoder-Decoderdモデルである.並列計算で,高速に系列全体のコンテキストを考慮した処理をアテンションにより行えるので,機械翻訳や,その他の系列対系列変換の精度・速度を同時に向上させた.

1.3 応用: attention の可視化例

アテンション機構は,NLP以外でも使用可能な,汎用的なDNN向け拡張機構であり,NLP以外の様々な問題で応用されており,画像と文章をつなぐV&Lでもアテンション機構の応用も盛んである [岡崎 2018].たとえば画像キャプション生成(3節)では,CNN特徴マップの各局所特徴ベクトルと,生成文章中の単語埋め込みベクトルとの間で,アテンションを学習する.

2節以降,数式できちんとアテンション機構を定義して説明していくが,その前に,ここで「アテンション係数の視覚化の例」を図で先に見ておきたい2節以降の理解がすんなり進みやすい.よって,機械翻訳と,画像キャプション生成(3節)での視覚化例を見ていきたい.

1.3.1 機械翻訳における例

「英語からドイツ語」への翻訳を行う seq2seq with attention(2節)の例をみてみたい.英語のLSTMをエンコーダに使用し,ドイツ語のLSTMをデコーダとして使用する.エンコーダLSTMでエンコードされた英語文の情報をもとに,デコーダLSTMによりドイツ語の単語を,1単語ずつ先頭から順に予測して生成する.

seq2seq with attentionを用いた機械翻訳における,2言語間のアテンション係数の可視化
図1 機械翻訳seq2seq with attentionにおける単語間アテンション係数の可視化([Luong et al. , 2015] から引用)

図1は [Luong et al., 2015] からの引用で,変換前の文と予測文の間において,単語ペア同士の全アテンション係数を表に可視化したものである.翻訳先の「ドイツ語」で,次の1単語を予測する時に,入力文の「英単語」のうち,どの単語と予測の関連度が高いかの重み係数(=アテンション係数)を,スコア関数が推定した結果を,テーブル上に可視化している(白いほどアテンション係数の値が高い).

このようにseq2seqにアテンション機構を追加すると,言語間の単語同士の対応付(アラインメント)を,重み係数としてシンプルに把握することができ(図1).なおかつ,そのアテンション係数を重み付けに用いるので,重要な箇所にだけ注意(アテンション)をしぼった予測を実行できる (2.2節).

1.3.2 画像キャプション生成における例

一方,画像キャプション生成(3節)におけるseq2seq with attentionの使用例について,以下の図2 [Xu et al. 2015] の可視化をみてみよう.

画像キャプション生成での視覚アテンションの例
図2 画像キャプション生成での視覚アテンションの例([Xu et al. 2015] より引用).左側が入力画像で,下の文章が出力文.そして右側画像が,下線を引いた単語 (frisbee) を出力する際の(視覚)アテンション係数を可視化したもの.

図2では,「人がフリスビーを投げている」状態の画像を入力とし,出力としてキャプション文 “A woman is throwing a frisbee in a park.” を生成している.この時,出力側RNNが単語「frisbee」を予測する時には,画像中のフリスビー領域のグリッド特徴ベクトルが,高いアテンション係数値が推定されていることがわかる(図2,右画像).また,単語「woman」を出力する時には,女性領域に相当する各グリッド特徴ベクトルのアテンション係数が,高い値として推定される.

このように,出力単語を予測する時ごとに,関連度の高い画像領域のアテンション係数が適応的に変化する.つまり,画像を用いているものの,1.2.1の機械翻訳の場合と,アテンション機構が実現していることは全く同じである.

1.3 attention の利点と大まかな仕組み

2節以降に入る準備として,1節冒頭の概要でも少し述べた,アテンション機構の「利点」を,先に整理しておきたい.

  1. 動的コンテキストの追加:
    • コンテキストベクトル(アテンション係数で重みづけした各入力単語埋め込みの和である)も,補助入力に用いる.
    • 「特定の単語だけを重要視し,逆にそれ以外を無視する」ように,元のモデルにコンテキスト入力を追加できる
    • また,毎フレームの予測時に,その注目箇所(=アテンション係数)が動的に変えられるので,変換モデルとしての表現力が高まる(アテンションがなくseq2seqだけだとこれができない)
  2. 解釈可能性の向上
    • 入力の全フレームの特徴(単語や画像局所領域)に,アテンション係数が割り振られることで,モデルの解釈可能性が高まる(= 図1・図2のように,可視化・数値化されており,デバッグしやすい).
    • 図1,図2の例のように変換前後の単語同士の対応づけ(alignment)も,(そのラベルなしで)学習できる.
    • 画像認識CNNで使用すると,モデルに説明可能性が加わる付加価値が出てくる [山下 2019].

2. seq2seq with attention によるニューラル機械翻訳

機械翻訳向けに提案されたseq2seq with attention [Bahdanau et al. 2015] (2.2節)は,seq2seqにアテンション機構を追加したものである.デコーダ側で次の単語を毎フレーム予測する際に,毎回エンコーダ側の各単語へのアテンション係数を計算し直し,各フレームごとに適応的に変化するアテンションを用いて単語を予測する仕組みが提案された.

アテンション機構は,その後seq2seq以外の問題にも,汎用的な拡張機構として応用されていく.1節でも述べたように,seq2seq(with attention)は機械翻訳以外にも,画像のキャプショニングやテキストからの音声合成(Text-to-Speech)などで応用されていた.ただし,Transformer(4節)の登場以降,それらの系列変換問題もTransformerで実現されることが主流になってきている.

2.1 Attention の登場前夜:「seq2seqによる機械翻訳」の登場

seq2seqによるニューラル機械翻訳
図3:seq2seqによるニューラル機械翻訳.

アテンション登場の前夜,DNNを用いた初めての機械翻訳システムのseq2seq(sequence-to-sequence) [Sutskever et al., 2014] が登場した.seq2seq [Sutskever et al., 2014] は,RNNによる再帰型ニューラル言語モデル [Mikolov et al. , 2011], [Sutskever et al., 2010] に直列に2つ並べた言語間変換モデルである.要するに「RNN2つを,直列に結合したEncoder-Decoder モデル」であり,文章をEncode(=入力)し,別モーダルの文章をDecode(=生成)できる.

seq2seqにより,入力言語がRNNによってEncodeされた結果の潜在変数ベクトルを入力として,出力言語のDecoder-RNNが,出力言語の単語を1ずつ生成する処理を繰り返すことにより,入力文と同じ意味の翻訳済み文章を出力する(定式化は,子記事 にて)

2.2 seq2seq with attention:最初のアテンション機構

seq2seq with attention
図4:seq2seq with attention.

[Bahdanau et al., 2015] は,seq2seqにアテンション機構を追加した seq2seq with attention(図4) を,ニューラル機械翻訳向けに提案した.また,同時期の [Luong et al., 2015] は,そのseq2seq with attention をシンプルに改良したものを提案した.

を用いたニューラル機械翻訳 [Bahdanau et al., 2015], [Luong et al., 2015]を,定式化し,seq2seq with attentionの一般系として紹介する(3節,4節で紹介する応用•発展系の基本形).

argmaxで,最大アテンション係数値のベクトルだけを,コンテキストベクトルとして採用するHard Attentionに対して,全ての入力ベクトルのアテンション重み付け和(or 平均)からコンテキストベクトルを計算するこの方法をSoft Attentionと各論文では呼び分けている.

本:コンピュータ・IT

3. 画像キャプショニングにおける seq2seq with attention の応用.

画像キャプニング(Image Captioning)は,「写真的な主たる撮影対象が映っている画像」を入力として,その主たる対象(人や動物,物)が何をしているか,どう配置されているかの「キャプション文」を自動生成する技術である.

画像キャプショニングはseq2seqの初期頃に登場した研究問題設定であり,その初期にseq2seqとseq2seq with attentionが(素直に)応用された問題である.この記事はその初期のみ触れたい(詳細は,関連記事にて)

Show Attend and Tellの Attention の可視化
図6: Show, Attend and Tell [Xu et al., 2015] のブロック図(論文中Figure 1 を引用).まず画像識別CNNから,14 $\times$ 14のグリッドの特徴量を抽出する.その後,各ステップにおいて,次の予測単語に関連する各画像グリッドのアテンションを推定し,アテンションで重み付けされた画像コンテキストも用いたLSTMで次の単語を生成する.

2節で紹介した seq2seq with attention [Bahdanau et al., 2015] を応用した画像キャプショニングとして “Show, Attend and Tell” [Xu et al., 2015]が提案された(図6).この研究で提案されたのは,seq2seq with attentionの前半の文章RNNの代わりに,画像をCNNでEncodeした結果の,$14 \times14$特徴マップの各グリッド位置特徴 $ \bm{x}^{(i)} (i = 1, \ldots, 14 \times 14)$ に,アテンション係数を1つずつ割り当てる.前身であるインスパイア元の”Show and Tell“[Vinyals et al., 2015] に,アテンション機構を挿入して拡張したものである.”Show and Tell“の時点では,アテンション機構は用いず,画像識別CNNでエンコードしGlobalプーリングしたあとの「画像全体に対する単一特徴ベクトル」を,後半の文章生成RNNに入力していた.

また,初期の画像キャプショニングシステムが提案された2015年頃は,物体検出システムが今ほど頑健でなかった.しかしFaster R-CNN の登場後,画像からFaster R-CNNで物体領域検出し,その各領域をアテンション機構で説明文中の物体単語に対応付ける手法が提案されていく.以後は「物体検出結果を,物体単語の生成に,明示的に活用するアプローチ [Anderson et al., 2018 など] 」も主流となっていく.

4. Transformer

Transformer [Vaswani et al. 2017] は,アテンションを多層化・並列化したマルチヘッドアテンションを主要部品に用いて系列表現(エンコードおよびデコード)・系列変換をどちらも学習する,系列対系列変換モデルである.「系列内をRNNで再帰的にコーディングしていた」2節・3節のローカルな予測モデルと異なり,TransformerではEncoding・Decodingもマルチヘッドアテンションに頼ることで,「系列全体」におけるグローバルなトークン間の関係性を学習できる.それでいて,各マルチヘッドアテンション層は並列構成なので,高速な学習・テストも実施できる.

マルチヘッドアテンションは,行列ベースで効率的なスケール化ドット積アテンションを並列に学習して,それの出力ヘッドの表現を最後に結合する層である.これにより,高速計算ながら,高精度でスケーラブルなモデルの学習を可能とした.

ここでは,Transformerで重要な「自己アテンション (4.1節)」 に触れたあと,Transformer(4.2節)について簡単にだけ紹介する(更なる詳細は,子記事を参照).

4.1 自己アテンション

自己アテンション (self-attention)
図7 自己アテンション(self-attention)

自己アテンション(self-attention)[Cheng et al, 2016] [Parikh et al, 2016]は,名前の通り「系列自身内で,単語ベクトル間同士間の関係性の強さを学習するアテンション機構」である.

自己アテンションでは (図7-a)のように,入力文(系列)内で,全単語間同士のアテンション係数を学習する.つまり,文章自分自身の中で学習する単語間のアテンションである.それに対して,2.2節の seq2seq with attention では,入力文(日本語)と出力文(英語)の「入出力文間での」単語同士の関連度を,スコア関数へ学習した(図7-b).

4.2 Transformer: アテンションを中心部品に構成した系列対系列変換モデル

Transformerとマルチヘッドアテンション
図8 Transformerの構造(a) と,その主部品(b)マルチヘッドアテンション

Transformer [Vaswani et al., 2017] (図8-a)は,EncoderとDecoderのメイン部品として構成した,文章系列対系列変換モデルである.EncoderとDeoderの構成ブロックに,マルチヘッドアテンション(図8-5)を用いた構成となっている.

Transformerは「マルチヘッドアテンション(線形変換)」と,「順伝搬ニューラルネットワーク(による非線形変換)」から構成されるコーディングブロックが,EncoderにもDecoderにも6個ずつ積んである.コーディングブロックを6回ずつ繰り返すことで,系列間の単語ベクトル間の複雑な単語間関係性を学習する.

このようにTransformerは「(再帰型接続や,畳込み層無しに) アテンション機構を主部品にして,機械翻訳向けの系列対系列変換を達成できた」という提案である.従って,論文タイトルも「Attention is all you need系列変換モデルに必要なのはアテンションだけ」となっている.

4.2.1 マルチヘッドアテンション層(Multi-Head Attention)

Transformerの主要部品マルチヘッドアテンション(図8-b)は,スケール化ドット積アテンションを並列ヘッド化(h=8)したのち,そのヘッド表現を合成するというブロックである.QKV方式の行列積で高速化しやすいドット積アテンションを使用している上に,その8並列化により高速さを保ちながらも表現力を向上させている.

4.2.2 Transformer の構造

Transformerの構造(図8-a)は,以下の2種の部品を残差接続したブロックを単位として構成されている:

  1. マルチヘッドアテンション.
  2. トークン位置ごとに順伝搬ネットワーク(FNN)

かなり深いネットワークであるが,これらのモジュールに,残差接続とレイヤー正規化を加えることで,学習可能にしてある.EncoderもDecoderもN回,モジュールを繰り返すように直列に積んである (デフォルトではN = 6回).従って,Transformerはかなりの重み総数を持つ大規模モデルである.

また,入力系列と出力系列のあいだも,マルチヘッドアテンション層を用いて,ソース言語Aとターゲット言語Bの間の変換を学習する. 

ただし,データセットの規模,シーケンス長,使用するデータモーダルなど,条件次第ではTransformerの方がseq2seq with attentionより高性能にはならない場合もある点には注意.音声や動画などでも単語同様にまずトークン化して埋め込みベクトルにする必要があるが,NLPのような「良い単語トークンの埋め込み空間」が,音声や画像などの他モーダルにおいては,事前に手に入っているとは限らないのも理由のひとつである.

4.2.3 位置符号化

トークンの各特徴ベクトルに,「文章中の単語位置を示す特徴ベクトル」も結合する位置符号化(Positional Encoding)したベクトルを加算して,位置情報もベクトルに付与することを提案した.

再帰も畳み込み層も使わず,マルチヘッドアテンションだけでTransformerを構成してしまうと,各トークンの系列中の何番目のトークンであるかの「位置情報」が欠落してしまうことが理由である.

5. まとめ

この記事では,機械翻訳用に登場した「系列対系列変換モデル」の変遷と,そこでよく使用される「アテンション機構」について紹介した.

seq2seq with attention(2節)と,その画像キャプショニングへの応用(3節)を紹介し,最後に,Transformer(4節)について紹介した.

スコア関数のバリエーション等についてまとめが欲しい方は,参考書籍の Deep learning for NLP and speech recognition や,参考記事の「Lil’s log : Attention? Attention!」にもまとめられているので,参照にされたい.

5.1 過去の,特徴選択や特徴重みづけ技術との,類似点および相違点

以上のように,アテンション機構は,シンプルな「入力ベクトル群の,線形重みづけ」であったわけだが,この役割は,昔のBoostingやRandom Forestのような「特徴選択や特徴重みづけ機構がある予測モデル」と目的・役割が似ている.

たとえば,以前から管理人も何かとお世話になり倒している中部大学の藤吉先生・山下先生の研究室は,近年Visualアテンションを好んで使い倒している.この研究室は,昔はBoostingやRandom Forestを好んで使いこんでいたわけだが,その彼らが近年アテンションを使い倒してきていたのは,両者が似た技術であることを示す顕著な例である.ただし,アテンションは,その特徴ベクトルの重みづけ機能を,拡張機構として任意のネットワークに追加できるというのが,より優れているところであると思う.

また,藤吉先生と山下先生の研究室は,同じくこの記事で説明してきた「アテンションの説明可能性の高さの応用」についても,よく研究されている.これも,アテンション機構特有の嬉しい点であるが,これは画像認識だけでなく,1.2.2節・3節の画像キャプション生成などの,クロスモーダルな技術でも有用である.クロスモーダル問題では,視覚アテンションが,単語や音セグメントなどの相手モーダルの意味単位のかたまりとアテンションを通して直接結びつけられるので,人間の意味単位に近い解釈をアテンションの重みが与えてくれるようになる.この意味で,クロスモーダル下でも,アテンション機構の追加は有効であることが再確認できると思う.

参考書籍

References

  • [Anderson et al., 2018] Anderson P, et al. Bottom-up and top-down attention for image captioning and visual question answering. In CVPR 2018.
  • [Bahdanau et al., 2015] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. “Neural machine translation by jointly learning to align and translate.” In ICLR, 2015.
  • [Cheng et al., 2016] Jianpeng Cheng, Li Dong, and Mirella Lapata. Long short-term memory-networks for machine reading. In EMNLP, 2016.
  • [Luong et al., 2015] M.-T. Luong, H. Pham, and C. D. Manning, Effective approaches to attention-based neural machine translation. In EMNLP, 2015.
  • [Mikolov et al., 2010] Mikolov T et al. Recurrent neural network based language model. In, InterSpeech, 2010.
  • [Parikh et al., 2016] Ankur P. ,et al. A decomposable attention model. In EMNLP, 2016.
  • [Sutskever et al., 2011] Sutskever I, Martens J, Hinton GE. Generating text with recurrent neural networks. In ICML, 2011.
  • [Sutskever et al., 2014] Sutskever, I., Vinyals, O., and Le, Q. V. Sequence to sequence learning with neural networks. In NIPS, 2014.
  • [Vaswani et al., 2017] Ashish Vaswani, et al. Attention is all you need. In NIPS, 2017.
  • [Vinyals et al., 2015] Oriol Vinyals, Alexander Toshev, Samy Bengio, Dumitru Erhan. Show and Tell: A Neural Image Caption Generator. In, CVPR 2015.
  • [Wang et al., 2018] Wang, X., Girshick, R., Gupta, A. and He, K.,. Non-local neural networks. CVPR 2018
  • [Woo et al., 2018] Woo, S., Park, J., Lee, J.Y. and Kweon, I.S. Cbam: Convolutional block attention module. In , ECCV 2018.
  • [Xu et al., 2015] Xu, K., Ba, J., Kiros, R., Cho, K., Courville, A., Salakhudinov, R., Zemel, R., Bengio, Y. Show, Attend and Tell: Neural Image Caption Generation with Visual Attention. In ICML, 2015.
  • [岡崎 2018] 岡崎 直観「自然言語による状況理解」 SSII2018 OS2-2
  • [山下 2019] ICML2019 読み会 in Kyoto「CNNを用いた画像認識における判断根拠と精度向上への活用方法」ICML 2019 読み会 in 京都

参考外部サイト

関連記事

↓ ためになった方は,記事をSNSでシェアをしてくださると,管理人の記事執筆モチベーションが上がります