系列対系列変換(seq2seq translation)とアテンション機構

1. 系列対系列変換(seq2seq translation)とアテンション機構とは [概要]

系列対系列変換(seq2seq translation, sequence-to-sequence translation) は,系列Encoderネットワークと系列Decoderネットワークの2つを結合することで,ドメイン・モーダルが異なる2系列間の変換を学習するディープラーニング向けの問題である.機械翻訳目的のseq2seq [Sutskever et al., 2014]において,その基本的な仕組みが提案された .日本語圏では系列変換モデルと呼ぶ方も多いが,seq2seqなので系列対系列変換と私は翻訳することにしている(画像対画像変換や,pix2pixなどもこのA-to-Bの呼び方に統一されているので).

アテンション機構 (Attention Mechanism, 注意機構) は,seq2seq の変換能力を向上させる改善案としたseq2seq with attentionむけに提案された,特徴ベクトル群の重みづけを用いたニューラルネットワークむけ拡張機構である [Bahdanau et al., 2015].認知科学の「視覚注意」にインスパイアされ,特定のベクトル群にだけ注意を向ける予測を行う仕組みであるので,「attention(=注意)機構」と名付けられた.

その後,アテンション機構は,系列対系列変換以外の問題でもパターン認識関連分野で広く応用されている.特に,アテンションを大々的に活用したネットワークであるTransformer(とその部品であるマルチヘッドアテンション)は,非常に広範囲で活用されていった.

seq2seq with attentionでは「入力語彙 v.s. 出力系列語彙」 のあいだで「アテンション係数の行列(=ベクトル間の関連度行列)」を可視化することで(1.3節),中身の理解・デバッグもしやすい利点も持っている(1.4節).そのように「応用・可視化しやすい,単純な機構」でありながら,予測・変換問題の精度向上に大きく寄与するゆえに,アテンション機構は近年のDNNの主要な部品となっていった.

Transformer 登場以降は,TransformerをEncoderやDecoderに用いる「BERT・GPT」や,コンピュータビジョンの「DETR」「ViT」などで,Transformerが基盤設計モデルとして採用されたことににより,Transformerを通して(マルチヘッド)アテンション機構が,非常に広範囲で利用されることになった.

1.1 記事の構成

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

  • 1節: 導入
    • 1.2 系列対系列変換モデルの概要
    • 1.3 応用: アテンションによる動的対応付けの可視化
    • 1.4 アテンション機構の,2大利点
  • 2節: seq2seq with attention によるニューラル機械翻訳
    • 2.1節: アテンション登場の元となった seq2seq [Sutskever et al., 2014]
    • 2.2節: seq2seq with attention [Bahdanau et al., 2015] によるアテンションの登場 (2.2節)
  • 3節: seq2seq with attention の画像キャプション生成への応用
  • 4節: Transformer [Vaswani et al., 2017]

この記事は,あくまで「系列対系列変換モデルの変遷」を主眼にしているが,2~4節では,各モデルや応用でのアテンションの使われ方も紹介していく(詳しい内容は各子記事を参照).

逆に以下の「系列対系列変換問題以外へのアテンション活用例」は,この記事では取り上げない:

  • 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つを接続したネットワーク」と「アテンション機構」の組み合わせにより実施する.RNNと同じで,seq2seqもRNNを2つ繋げた,自己回帰(auto regressive)なモデルとなっている.すなわち,まず入力系列を全てEncodeしたのち,Decoderでは前フレームの予測単語も用いながら1フレームずつ次の単語を(自己回帰で)予測していく.

最初は,機械翻訳向け提案として,seq2seqがアテンション機構なしのものとして提案された [Sutskever et al., 2014] (2.1節).入力系列のRNNモデル(Encoder)と,出力系列生成用のRNNLM (Decoder)の2つを,潜在変数間で橋渡ししただけのシンプルなモデルである.これだと,前半RNNの最後のフレームの隠れ表現しか後半RNNに渡せないので,精度がいまひとつであった.

seq2seqの精度を改善したいので,これにアテンション機構を追加した seq2seq with attention が登場した(2.2節.アテンション機構の最初の提案 ).seq2seq with attentionでは,seq2seqと一緒に学習しておいた「スコア関数」をもとに,テスト時に「アテンション係数」を予測する.このアテンション係数は,Decoder-RNN による単語予測において,現在のDecoderの隠れ状態と,入力単語のどの隠れ表現$\bm{h}_i$が関連が強いかを示した重み係数(=注意の強さ)に相当する.

この仕組みにより,テスト時には「次の予測に強く関連する」入力単語の隠れベクトルのみを重要視するように重みづけした「コンテキストベクトル」も,予測の追加で入力に使用可能となり,seq2seqよりも予測精度を向上させることができた.特に,毎フレームの予測で,注視する入力単語群を動的に変更できる)性質が便利である(=各入力単語へのアテンション係数が,毎回の予測単語次第で,動的に中止箇所が変化する).この仕組みで,学習中に「関連が強い単語間の対応付け(alignment) 」が可能になり,なおかつその可視化も用意なので,便利な仕組みである.

以降,seq2seq with attentionは,系列対系列間の変換問題や,集合対集合間の変換問題で用いられるようになった.例えば,機械翻訳,音声認識,音声合成,画像キャプション生成 などのV&L(3節)などで用いられていった.

また,seq2seq with attention の実質的な後継モデルとして Transformer (4節)が2017年に登場し,2018年ごろ以降は,系列対系列変換モデルの決定版として,広く用いられている.

1.3 応用: アテンションによる動的対応付けの可視化

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

アテンションを使用した場合,そこに学習された「入出力系列間ので対応付け結果の可視化」をよく行うが,この結果例を先に見ておくと2節以降の理解がすんなり進みやすいのもあり,1.3節ではその例として機械翻訳(1.3.1)と画像キャプション生成(1.3.2)での2つを,先に見せておきたい.

1.3.1 機械翻訳における例

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

「英語からドイツ語」への翻訳を行う seq2seq with attention (2節)では,英語とドイツ語の間での変換を学習する.図1のアテンション係数の可視化例は,入力文と予測文の間において,単語ペア同士のアテンション係数を,行列に可視化したものである[Luong et al., 2015].

翻訳先の「ドイツ語」で,次の1単語を予測する時に,入力文の「英単語」のうちどの単語が,次の予測との関連度が高いかの重み係数(=アテンション係数)を,スコア関数が推定した結果である(白いほどアテンション値が高い).

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

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

画像キャプション生成での視覚アテンションの例
図2 画像キャプション生成での視覚アテンション([Xu et al. 2015] より引用).

一方,画像キャプション生成(3節)における,アテンション係数の可視例を,図2 [Xu et al. 2015]でみてみよう.図2では,「人がフリスビーを投げている」状態の画像を入力とし,出力としてキャプション文 “A woman is throwing a frisbee in a park.” を生成している.

ここで,出力側RNNが単語「frisbee」を予測する時には,画像中の,対応する「フリスビー」領域のグリッド特徴ベクトルが,高いアテンション係数値が推定されていることがわかる (図2,右画像).また,単語「woman」を出力する時には,対応する「女性領域」の各グリッドのアテンション係数が,高い値として推定されている.

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

1.4 アテンション機構の,2大利点

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

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

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

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

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

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

アテンション登場の前夜,DNNを用いた初めての機械翻訳システムのseq2seq(sequence-to-sequence) [Sutskever et al., 2014]が,RNNによる再帰型ニューラル言語モデル [Mikolov et al. , 2011], [Sutskever et al., 2010] を直列に2つ並べた,言語間変換モデルとして提案された.(OpenAI のIlya Sutskeverの代表的研究の1つである)

要するに「RNN2つを,直列に結合したEncoder-Decoder モデル」であり,文章をEncode(=入力)し,別モーダルの文章をDecode(=生成)できる.入力言語を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と各論文では呼び分けている.

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 を引用).

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でエンコードしグローバル平均プーリングしたあとの「画像全体に対する単一特徴ベクトル」を,後半の文章生成RNNに入力していた.

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

4. Transformer

Transformerとマルチヘッドアテンション
図8 Transformer と マルチヘッドアテンション

Transformer [Vaswani et al. 2017] は,マルチヘッドアテンションが主部品として採用することで,系列間/系列間の全トークンを一括計算するようにしたseq2seq with attentionの改良モデルである.

Transformerは「(1)マルチヘッドアテンション」と「(2)順伝搬ニューラルネットワーク(トークンごとの非線形変換を担当)」から構成される「Transformerブロック」を,EncoderにもDecoderにも6個ずつ積んだ深いEncoder-Decoderである(図8-a).

マルチヘッドアテンション内の各アテンションは,「系列トークン全体的に対する行列変換(= QKVアテンション)」となっている.これにより,系列内の全トークンのコンテキストを考慮しながらも,行列計算で効率的に「複雑な系列内のベクトル間の変換関係」を一気に使用できるようになった.

系列内全体の各トークン表現ベクトルは,マルチヘッド自己アテンションにより一気に変換する.また,系列間の変換も,マルチヘッド相互アテンションにより行う.このようにTransformerは,マルチヘッドアテンションを使って,系列内変換(自己アテンション)も,系列間予測(相互アテンション)も,両方ともアテンションで処理する構成のモデルである.

4.1 Transformerと seq2seq with attentionの違い

2節・3節のモデルのうち,RNNでは,系列全体のうち,前のフレームの単語も元に,次のフレームの単語を予測する,(2フレーム間の)ローカルな自己回帰的な符号化を行うモデルであった. (※ただしアテンション機構は,入力単語全体をアテンション係数によって加味できる「グローバルな処理」である.)

それに対して,Transformerでは,系列中のトークンK個全体の変換を,マルチヘッド(自己)アテンションを用いて,ブロック内では一気に変換する方式が採用された.「逐次的に毎フレーム」(自己回帰で)符号化していく,RNNベースのseq2seq with attention と比べて,Transformerでは,系列全体のグローバル一括計算が中心的となったことで,処理が効率的になった.つまり,Transformerは,マルチヘッドアテンション中心の設計に変えることで,「全体的な処理かつ」,「いっぺんで効率的な処理」に替えたというものである.

従って,論文タイトルも「Attention is all you need系列変換モデルに必要なのはアテンションだけ」となっている.しかし,その後,Transformer-XL や,Conformer(音声でよく使われる),など,RNN式のフレーム間再帰や,畳み込み層は,結局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 京都

参考外部サイト

関連記事