1. 系列変換モデル と アテンション機構 [概要]
系列変換モデルとアテンション機構について,この記事では同時に解説する.系列変換モデルのうち,seq2seqの応用・発展として登場した順どおりに,以下の3つについて解説する.
- 2節 seq2seq with attention
- 3節 画像キャプション生成
- 4節 Transformer
系列変換モデル (seq2seq translation) とは,系列Encoderと系列Decoderの2つを直列に連結したEncoder-Decoder」を構成することにより,ドメイン・モーダルが異なるベクトル系列間の表現変換を学習する問題である.機械翻訳目的の seq2seq [Sutskever et al., 2014]において,系列変換モデルその基本的な仕組みが提案された.もとの「sequence-to-sequence (系列から系列への変換)」を省略して,seq2seq という通称で呼ばれるのが一般的となった.
アテンション機構 (Attention Mechanism) とは,入力の各ベクトルの重要度として重みづけする「アテション係数」を,毎フレーム動的に変更させる.系列変換モデル向け拡張機構である(図1) [Bahdanau et al., 2015].認知科学の「視覚的注意(visual attention)」にインスパイアされたものであり,それを「特定の入力ベクトル群にだけ強く注意を向ける = 重みを高くする」という仕組みで行う.ゆえに名前もなぞらえて,Attention(=注意)機構と名付けられた.
アテンション機構は「ベクトル間類似度で推定したアテンション重み係数を用いて,(RNNなどの)毎フレームの予測で,各入力特徴ベクトルを(再)重みづけを行い,重みづけられたベクトル群を予測に活用する.仕組みが非常に単純な,seq2seqむけの拡張機構である.使いやすい単純な技術でありながら大きな威力を発揮するので,またたくまに,深層学習で人気技術となった.
アテンション機構は,当初seq2seq の改善案 seq2seq with attention むけに提案・応用された(図1) [Bahdanau et al., 2015].その後,系列変換モデル以外の問題でも広く応用されている.とりわけ,Transformer(とその部品マルチヘッドアテンション)は広範囲で活用されていった.系列変換モデルと一緒に用いると,Decoder側の各予測フレームにおいて,全入力ベクトルのアテンション先(重要付け具合)を,動的に変更することができる構成を実現できる.しかも,自動的な「入-出力間の単語間関係性の位置合わせ(alignment)」も,学習ペア群だけから,教師なし学習できる利点がある [Bahdanau et al., 2015] [Vinyals et al., 2015] .たとえばseq2seq with attentionでは「入力語彙 v.s. 出力系列語彙」 のあいだで「アテンション係数の行列(=ベクトル間の関連度行列)」を可視化することで(1.3節),中身の理解・デバッグも行いやすい(1.4節).シンプルな「対応付け重み係数」という仕組みが,デバッグ・可視化においても利点が出てくるのである
※ シンプルさによるメリットまで,ちゃんと説明できているテキストや記事は意外と少ない.
そのようシンプルな仕組みながら,予測・変換問題の精度向上に大きく寄与するゆえに,アテンション機構は近年のDNNの主要部品となっていった.画像キャプション生成や,Text-to-Speechなど,モーダル間のアテンションを活用してモーダル間変換を行う課題でも,アテンション機構が広く応用されていくこととなった.また,Transformer 登場以降は,BERT・GPTや,コンピュータビジョンの Vision Transformer やDETR (※) などでも,Transformer-EncoderとTransformer-Decoderがネットワークモデルとして採用された.これにより,(2021年ごろ以降) ビジョン分野においても,Transformerとその部品である (マルチヘッド)アテンション や 位置符号化が,広く応用される展開になってきている.
※ DETRでは,Transformer-Decoderを非自己回帰化して,集合同時出力ができるようにアレンジしている
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] とアテンションの登場
- 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 系列変換モデル (seq2seq translation) の概要
系列対系列変換モデルは「ドメイン・モーダルの異なる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は,系列対系列間の変換問題や,集合対集合間の変換問題で用いられるようになった.例えば,機械翻訳,音声認識,音声合成,画像キャプション生成 (3節)などVision-LauguageやText-to-Sppechなどでも用いられていった.また,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は,入力文と予測文の間において,単語ペア同士のアテンション係数を,行列に可視化したものである[Luong et al., 2015].翻訳先の「ドイツ語」で,次の1単語を予測する時に,入力文の「英単語」のうちどの単語が,次の予測との関連度が高いかの重み係数(=アテンション係数)を,スコア関数が推定した結果である(白いほどアテンション値が高い).
このように,seq2seqにアテンション機構を追加すると,入出力言語間で,単語同士の対応付け(アラインメント)を,重みスカラー係数として(可視化もでき),シンプルに把握することができる利点がある.なおかつ,そのアテンション係数を,入力単語ベクトル群の重み付けとして用いるので,重要な箇所にだけ注意(アテンション)をしぼった予測も,実行できる (2.2節).
1.3.2 画像キャプション生成における例
一方,画像キャプション生成(3節)における,アテンション係数の可視例を,図2 [Xu et al. 2015]でみてみよう.図3では「人がフリスビーを投げている」画像を入力とし,出力としてキャプション文 “A woman is throwing a frisbee in a park.” を生成している.ここで,出力側RNNが単語「frisbee」を予測する時には,画像中の,対応する「フリスビー」領域のグリッド特徴ベクトルが,高いアテンション係数値が推定されていることがわかる (図3,右画像).また,単語「woman」を出力する時には,対応する「女性領域」の各グリッドのアテンション係数が,高い値として推定されている.
このように,出力単語を予測する時ごとに,関連度の高い画像領域のアテンション係数が適応的に変化する.つまり,画像を用いているものの,1.3.1の機械翻訳の場合と,アテンション機構が実現していることは全く同じである.
1.4 アテンション機構の2大利点
2節以降に入る準備として,1節冒頭の概要でも少し述べた,アテンション機構の「2大利点」を,先に列挙して整理しておく:
- 動的コンテキストの追加:
- 「特定の単語だけを重要視し,逆にそれ以外を無視する」ように,元のモデルにコンテキストベクトルも補助入力として,追加した予測ができるようになる.
- 毎フレームの次単語の予測時に,入力系列中で注目すべき単語の箇所 (図1のようなアテンション係数)を,動的に変えられるので,変換モデルとしての表現力が高まる (seq2seqだけではできなかったこと).
- 解釈可能性の向上:
- 変換前後の単語同士の対応づけ(alignment)も,対応付けのラベルなしで,単語ベクトル間類似度と入出力データから弱教師あり学習的に対応付け学習(図2,図3).
- 入力の全フレームの特徴 (単語や画像局所領域)に,アテンション係数が割り当てられることにより,モデルの解釈可能性が高まる(どの入力単語に注目して予測したかすぐわかる).
- 言語系列変換だけでなく,画像認識CNNと共にアテンションを使用しても,モデルに説明可能性がつく付加価値が出てくる( [山下 2019])
2. seq2seq with attention による機械翻訳
機械翻訳向けに提案されたseq2seq with attention [Bahdanau et al. 2015] (2.2節)は,seq2seqにアテンション機構を追加したものである.デコーダ側で次の単語を毎フレーム予測する際に,毎フレームで,エンコーダ側の全単語へのアテンション係数を計算し直し,各フレームごとに適応的に変化するアテンションを用いて単語を予測する.
2.1 Attention の登場前夜:「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:最初のアテンション機構
[Bahdanau et al., 2015] は,seq2seqにアテンション機構を追加した seq2seq with attention (図1) を機械翻訳向けに提案した.また [Luong et al., 2015] は,それを更にシンプルに改良したものを提案した.アテンションの追加により,毎フレームの予測時に,入力系列の全ての単語(or トークン)ベクトルを,アテンション係数で重みづけして合成したコンテキストベクトルを計算する.これにより,「次フレームの予測において,各入力単語のどれが重要か」を示す入力系列全体(グローバル)のコンテキスト(ベクトル)も使用しての予測が可能になった.
また,各フレームで各単語(or トークン)への重みづけが毎回変わるのも重要点である,重みづけ(= attendする入力の各単語)を各フレームで変化させることが可能になった.つまり,次の一単語の予測に,関連性が高い(重要度が高い)入力単語にのみ大きなアテンション係数が出るようになり,その他の関連性が低い単語の重み係数(アテンション係数)は小さい値に抑えて計算した,コンテキスト(ベクトル)も用いて,次フレームの単語を予測できるようになったのである.
3. 画像キャプション生成への応用
画像キャプション生成でも,seq2seq with attentionが(素直に) 応用された.この記事では,画像キャプション生成のうち,seq2seq with attention が活用された初期のみについて簡単に触れたい(より詳細は,上記の関連記事にて).
2節で紹介したseq2seq with attention [Bahdanau et al., 2015] を応用した画像キャプション生成フレームワークとして “Show, Attend and Tell” [Xu et al., 2015] が提案された (図5).この研究で提案されたのは,seq2seq with attentionの前半の文章RNN-Encoderの代わりに,画像を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でエンコードしグローバル平均プーリングしたあとの「画像全体に対する単一特徴ベクトル」を,seq2seqにより後半の文章生成RNNLMへと入力していた.
上述の2014~2015年頃は,CNNによる物体検出システムはまだ黎明期であり,それほど頑健なモデルではなかった.しかし Faster R-CNN の登場後の画像キャプション生成では,画像からFaster R-CNNで物体領域ROIを検出し,その各領域をROI Poolingした領域特徴を,アテンション機構を通じて,説明文中の「物体単語」へと対応付ける手法が提案されていく.以後は「物体検出結果を,物体単語の生成に,明示的に活用するアプローチ [Anderson et al., 2018 など] 」も主流となっていった.
4. Transformer を用いた系列変換モデル
Transformer は,マルチヘッドアテンションが主部品として採用することで,系列間/系列間の全トークンを一括計算するようにしたseq2seq with attentionの改良モデルである[Vaswani et al. 2017].Transformerは「(1)マルチヘッドアテンション」と「(2)順伝搬ニューラルネットワーク(トークンごとの非線形変換を担当)」から構成される「Transformerブロック」を,EncoderにもDecoderにも6個ずつスタックした構成の,残差接続を活用して深くした,Encoder-Decoderである(図6-a).
メイン部品であるマルチヘッドアテンション (図6-b)内の各アテンションは,「系列トークン全体的に対する行列変換(= QKVアテンション)」となっている.これにより,系列内の全トークンのコンテキストを考慮しながらも,行列計算で効率的に「複雑な系列内のベクトル間の変換関係」を一気に使用できるようになった.
4.1 Transformerと seq2seq with attentionの違い
ここで,旧系列変換モデルである,seq2seq with attentionと,それを差し替えていったTransformerの2者を簡単にだけ比較したい.(より詳しい比較は以下の記事でおこなっている)
2節・3節のモデルのうち,RNNでは,系列全体のうち,前のフレームの単語も元に,次のフレームの単語を予測する,(2フレーム間の)ローカルな自己回帰的な符号化を行うモデルであった.
※ただしアテンション機構は,入力単語全体をアテンション係数によって加味できる「グローバルな処理」である.
それに対して,Transformerでは,系列中のトークンK個全体の変換を,マルチヘッド(自己)アテンションを用いて,ブロック内では一気に変換する方式が採用された.「逐次的に毎フレーム」(自己回帰で)符号化していく,RNNベースのseq2seq with attention と比べて,Transformerでは,系列全体のグローバル一括計算が中心的となったことで,処理が効率的になった.
つまり,Transformerは処理全体を「マルチヘッドアテンションでの連続変換」で構成することで,「(1)系列全体を考慮したコンテキスト処理(のスタック)」かつ「(2)いっぺんに系列全体の処理が済む効率的な処理」に替えることができた.
従って,論文タイトルも「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を好んで使いこんでおられたが,その彼らが近年アテンションを使い倒してきていたのは,両者が似た技術であることを示す顕著な例である.ただし,アテンションは,その特徴ベクトルの重みづけ機能を,拡張機構として任意のネットワークに追加できるというのが,より優れているところであると思う.
また,彼らの研究室は,同じくこの記事で説明してきた,「アテンション等の説明可能性応用」についても,よく研究されている.アテンションの説明可能性の高さも,アテンション機構の嬉しい特性である.また,(grad-CAMなども含めて,) これらの技術は画像認識だけでなく,1.2.2節・3節の画像キャプション生成などの,クロスモーダルな技術でも有用である.クロスモーダル問題では,視覚アテンションが,単語や音セグメントなどの相手モーダルの意味単位のかたまりとアテンションを通して直接結びつけられるので,人間の意味単位に近い解釈をアテンションの重みが与えてくれるようになる.この意味で,クロスモーダル下でも,アテンション機構の追加は有効であることが再確認できると思う.
関連書籍
- Pythonで学ぶ画像認識 (機械学習実践シリーズ) 【📖紹介記事】, 田村 雅人, 中村 克行, インプレス, 2023.
- 第4章 画像分類
- 3節 Vision Transformer を実装してみよう
- アテンション機構 (p132) ※ Transformerの「QKV型アテンション」
- 3節 Vision Transformer を実装してみよう
- 第6章 画像キャプショニング
- 4節 アテンション機構による手法 – Show, Attend and Tell を実装してみよう (p315 ~)
- 第4章 画像分類
- 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之,講談社,2022.
- 第2版になりseq2seq やアテンション,Transformerの章が追加されている
- 6章 系列データのためのネットワーク
- 6.4 自己回帰モデル (p137)
- 7章 集合・グラフのためのネットワークと注意機構
- 7.2 注意機構 (p149)
- 7.3 トランスフォーマー (p153)
- 深層学習による自然言語処理(機械学習プロフェッショナルシリーズ) 坪井祐太, 海野裕也, and 鈴木潤. 講談社, 2017.
- Deep learning for NLP and speech recognition, Kamath, Uday, John Liu, and James Whitaker. Springer, 2019.
- 7.5 Extensions of Recurrent Networks
- 7.5.1 sequence-to-sequence
- 7.5.2 Attention
- 7.6 Language Models
- 7.6.8 Neural Machine Translation
- 7.5 Extensions of Recurrent Networks
- IT Text 自然言語処理の基礎 岡﨑直観, 荒瀬由紀, 鈴木潤, 鶴岡慶雅, 宮尾祐介 .オーム社,2022.
- 5章 言語モデル・系列変換モデル
- 5.6 系列変換モデル(p124) (と注意機構(p128~))
- 5章 言語モデル・系列変換モデル
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 京都
参考外部サイト
- seq2seq ICML2017 tutorial by Oriol Vinyals
- Overview of Attention Mechanism – Paper With Code
- Idan Schwartz, Seunghak Yu, Tamir Hazan, Alexander Schwing, “Attention Models for Vision and Language” Israel Computer Vision Day 2019. (video)
- Lil’s log : Attention? Attention!
- 中部大学 MRPG:Attention機構による判断根拠の解析と応用
- Seq2seq pay Attention to Self Attention: Part 1
関連記事
- [まとめページ] 機械学習 (Machine Learning) のおすすめ書籍