Transformer と seq2seq with attention の違いは?【Q&A記事】

Question

Transformer seq2seq with atteniton の違いは?」という疑問について,この記事では著者なりに答えたい.

Answer

Transformer
図1 Transformer
seq2seq with attention
図2 seq2seq with attention

まず,以下の図1,図2に,Transformer [Vaswani et al., 2017] とseq2seq with atteniton [Bahdanau et al., 2015], [Luong et al.,2015] の記事から,メインの全体図を示しておく.この2者は,機械翻訳などの系列対系列変換問題において用いられる,現世代モデル(Transformer)と,それ以前によく使われていた前世代モデル(seq2seq with attention)という関係性である.今は,普通(研究や大規模なモデルでは)Transformerを系列対系列変換に用いる.

さてAnswerであるが,「Transformer世代と,seq2seq with atteniton 世代には,系列対系列変換モデルとして,以下の3つの相違点が主に上げられる(これが実質Answerである):

  • 相違点(1): 系列全体アテンション中心の系列対系列変換モデルを実現 (畳み込み・再帰処理を排除し脱CNN・脱RNN)
  • 相違点(2): サブワードも含めたトークンベクトルにより,系列同士を変換(語彙外の単語に強い)
  • 相違点(3): アテンション化や並列化の高速化により,モデルが大規模にスケールした.

端的に言えないので,それぞれ上記(1)~(3)について,以下の各節で,詳細を述べていきたい.

相違点(1) 系列全体アテンションが中心のモデルを実現

seq2seq with attention を発展させるかたちで,「アテンション機構」中心の,CNNの畳み込み層やRNNの再帰構造を一切排除したTranformer」として,大規模な系列対系列変換モデルを,最初は機械翻訳向けに学習できるようになった.その後,Tranformerは,seq2seq with attentionの後継変換モデルとして,自然言語処理向けに限らず,画像や音響音声処理など,他のドメインでもよく応用される展開になった.

Transformerでは,具体的に以下の3点を導入することで,トークンベクトル系列同士の変換を「アテンション機構中心」のモデルに替えることができた (※ それぞれついて,詳しくはTranformerの記事を参照):

  1. 自己アテンション(=マルチヘッドアテンション)を,系列内の符号化に導入 (N回スタックして繰り返す).(※ 系列間の黒須アテンションは,seq2seq with attentionで既に使われていた)
  2. 毎回の自己アテンション後に,各トークンのベクトルを,同一のFFNNにより非線形変換する.
  3. 位置符号化(Positional Encoding)を導入した.これにより,各トークンの系列内位置情報を,トークン埋め込みに加算合成して使用できるようになった.これで,なるべくアテンションだけの設計で,(位置情報をもたらしてくれていた)畳み込み・再帰がなくても,系列変換モデルを設計できた.

これら3点の貢献により,( seq2seq with attention世代でも同様であったが) アテンション機構の強みである「系列内全体(=グローバル)トークンベクトルとの関連度を予測に使える」という利点が,ソース系列内全体(=グローバル)と,ターゲット系列内全体(=グローバル)でも得られるようになった.時間方向1D畳み込み層やRNNでは,ローカルな単語間の関係しか毎フレームで見れない.それが,系列内も系列間アテンション化したTransformerは「系列内・系列間全体」の関係が,それぞれ「自己アテンション・相互アテンション」へと,学習できるようになった点で有利である.

ただしTransformerは「マルチヘッドアテンション + FFN」の同一構造ブロックを,6回ずつ繰り返すゆえ,ブロック単位の構造は,再帰的である.ブロック構造は同じだが,毎回の6ブロックでは異なるマルチヘッドアテンションとFFNの重みが学習される.よって,RNN方式の「全フレーム同じ重みで再帰的に予測」という仕組みはなくなったものの,同じブロック構造を繰り返している構造である意味では,再帰(構造)がまだ完全には取り払われたわけではない点に注意したい.このせいで,初期Transformerは,長い系列同士の変換はうまく学習できない(Transformer著者による自己注意の相対位置符号化 [ ]や, アテンションをクラスタリングし,セグメントへ分割した小文章で学習するTransformer-XLなどの,改善提案も出てくる).

※ Transformer Decoder の「マスク化アテンション」は,seq2seq世代同様の「未来予測モデル」に替えるための工夫であった.Tranformerの記事を参照.

相違点(2) サブワードも含めたトークンベクトルで,系列同士を変換

当時,機械翻訳界隈で流行しつつあった「サブワードにも分割できるトークン化」という潮流が出ていた(例:Google NMT [Wu et al., 2016] など).サブワードも含めたトークン化を,Transformer元論文でも採用されたことで,Transformerを仕様したNLPモデルでは「語彙外の未知語や,未知文章に強くなる(汎用性の向上)」利点を,サブワード分割により備えることとなった (詳しくは Transformerの4.1節「サブワード分割の使用」を参照).

正確に言うと,seq2seq with attention世代終盤の,例えば,Google NMT [Wu et al., 2016] あたりの時期には,既にサブワードトークンを採用した機械翻訳(系列対系列変換)が提案されていた.ただし,seq2seq with attention世代の自然言語処理研究の多くは,まだWord2vecGloveなど,事前学習済みの単語分散ベクトル(もしくはそれを学習中にfine-tuningした埋め込み層)を単語ベクトル表現に用いることが主流であった.

ちなみに,Transformerでは,位置符号化(Positonal Encoding)で与えるトークンの「系列内位置情報」もこの話に関わってくる.ただし,著者の意見としては,位置符号化は,いまだよい対案が出てきていないがなんとなくうまくいってしまっている技術であり,その「位置符号化」に「サブワード含むトークン」が加わって,Transformerの入力埋め込みベクトル(512次元)が構成されているゆえ,サブワードトークン化がどれくらい寄与しているかは,(NLPでは)いまだ掴みきれていない感がある.直感的でない謎の関数で位置を符号化してしいるゆえ,位置符号化は「自然言語文シーケンスの短中長の変化」に,うまく対応できているかまだあやしい,謎な技術であると(管理人は)思っている.

Vision Transformerでも,パッチ位置の符号化に使用することになるが,同様に「伸び縮みに対応できているか」の観点で気になる.ただ,画像(に映る物体)の方が,16 × 16パッチがトークン単位なので,位置符号化でうまく位置関係が学習できていそうではある.

他モーダルのTransformerでも重要な「トークン化」

ちなみに「サブワードも含めたトークン化」という考え方は,言語以外のモーダルでTransformerを応用する際にも重要となる.最近の画像認識研究の主フォーカスであるViT(Vision Transformer) [Dosovitskiy et al., 2021] [Touvron et al., 2020] でも,画像内の小パッチを,埋め込み層からいきなりトークンに変換する.そのように,いきなりローレベルな元データの局所部分を入力としてトークンとみなし,高精度で大規模な変換モデルであるTransformer全体を学習できるのも,以前の世代との違いである.(BERTやGPTも,同じく「言語モデル全体を学習する」点が,それまでの言語モデルと異なる点である)

例えば画像キャプション生成を実現する際のseq2seq with attention (※正確には画像入力は系列ではないのでimg2seq)においては,VGGNetResNetなどを使って,(抽象度の高い)画像表現を,しっかり抽出しておき,その各小領域の局所特徴ベクトルを,生成する言葉の単語ベクトルと対応付けていた.それと違い,低レベルの画像パッチから,いきなり埋め込み層も含めて変換モデル全体も一緒に学習できるのが,Transformer世代の相違点である

ただし,そのぶんTransformer自体は,モデル規模が巨大で,パラメータ数も1億個以上となっている.ゆえにTransformerを用いた各モデルには,メモリ容量や計算コストを大量に必要とするデメリットがある(以下の相違点(3)とも関連する観点).

相違点(3): アテンション化や並列化などにより,モデルが大規模にスケールした.

1, 2の結果として生じた利点であるが,Transformerは,処理が並列高速化し,モデルもアテンション中心でスケールしやすいので,規模が巨大なデータセットから変換モデルを学習しやすくなった.このおかげで,Transformerを部品に用いたBERT・GPTや,更にはCLIPなどの自己教師有り学習でも,更に大きな規模の学習データを学習できることになった.

読者対象の中級者の中でも,論文書いているプロの皆様はご存知のとおり,(2022年現在までの)ここ数年BERT・GPTやCLIP・DALL-Eなどの自己教師有り学習の事前学習は,,深層学習界隈を席巻していることから,この相違点(3)も,Transformer世代に映ったことによる重要な進歩の1つであると言えよう.

補足解説と,参考になるサイト内記事

Transformerやseq2seq with attentionについて,まだよく分かっていないまま検索でこの記事に到達した方は,ここまでの内容はちんぷんかんぷんであると思うので,以下の記事と,その各子記事で学んでいただきたい:

この記事でも紹介してあるように,系列対系列変換モデルは,以下の3世代に分かれている:

  1. seq2seq (最初はアテンションなし.2がすぐに出るので流行らず)
  2. seq2seq with attention (この世代が3年くらい主流で続く)
  3. Transformer (2018年頃以降はTransformer中心)

そして,この記事のQuestionは,「2 seq2seq with attention」から, 「3 Transformer世代」には,技術内容・仕組み・利点的にどこが変わったかの相違点がわからないという疑問であった.そのAnswerを(1)~(3)の観点で整理したのが前述の答えである.

付録:「アテンション機構の利点」

おまけとして,「(一般的な)アテンション機構の利点」についても,簡単にだけ復習しておく.それによりTransformerの利点を更によく理解できるようにしておきたい.

アテンション機構には,(系列対系列変換向けに限らず)以下の利点がある:

  • 単語ベクトル間の「重み」のスカラー係数を学習して,「重み × 特徴ベクトル」を,補助コンテキストに追加し,予測に利用できる.よって,重み係数をベクトル全体にかけるだけの,線形予測になり,例えば畳み込み中心に予測ネットワークを構成する時に比べて,予測モデルが軽くなる.
  • 入力系列の各ベクトルと出力系列の各ベクトル間の関係を,そのまま重みとして学習・位置合わせできる.よって,その位置合わせされた,単語・トークン間の関係も,可視化・把握しやすくなり,モデルのデバッグ性が向上する.画像ベクトル向けにアテンションを用いても,入出力での単語・トークン間の対応関係が,アテンション係数として把握しやすくなる(例:画像キャプション生成など).
  • 出力系列予測中の各フレームで,各入力単語へのアテンション係数値(=予測に対する各単語へのフォーカス度合い)は,動的に変化する.よって,seq2seqのように,入力系列全体の最終出力隠れベクトル1つだけから,出力系列を予測するのでなく,毎フレーム異なる入力単語に重みを変えた「動的なフォーカス変更(入力単語コンテキストの毎回の変更)」を,軽い計算量ながら実現可能となり,おいしい(seq2seq with attentionの提案から生まれたメリット).

(他にも利点はあるが)以上のように,アテンションを導入すると「全体コンテキストを観察できるうえに,各単語の重みづけもできる」という利点と,「畳み込みで符号化していくよりも,係数×ベクトルの計算なので計算量を少なくしやすい」という利点が効いてくる.

Transformerは,FFNモジュール・位置符号化以外の部分は,全てマルチヘッドアテンションで構成される.よって,上記のアテンションの利点が,かなり効いたモデルにできたことにより,旧来の系列対系列変換のseq2seq with attentionより,使い良いモデルとなった.とりわけseq2seq with attentionではなかった,自己アテンションの繰り返しを,EncoderとDecoderで用いるようになったことが大きい.

参考書籍

References

  • [Bahdanau et al., 2015] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. “Neural machine translation by jointly learning to align and translate.” In ICLR, 2015.
  • [Luong et al., 2015] M.-T. Luong, H. Pham, and C. D. Manning, Effective approaches to attention-based neural machine translation. In EMNLP, 2015.
  • [Dosovitskiy et al., 2021] Alexey Dosovitskiy et al., . An image is worth 16×16 words: Transformers for image recognition at scale. In ICLR, 2021.
  • [Touvron et al., 2020] Touvron, H., Cord, M., Douze, M., Massa, F., Sablayrolles, A., and Jégou, H. Training data-efficient image transformers & distillation through attention. arXiv preprint arXiv:2012.12877. (2020).
  • [Wu et al., 2016] Yonghui Wu, et al. Google’s neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144, 2016.
  • [Vaswani et al., 2017] Ashish Vaswani, et al. Attention is all you need. In NIPS, 2017.

参考外部リンク

SNSでシェアやブックマークを行う