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

Question

Transformer seq2seq with atteniton の違いは?」という疑問について,管理人なりの回答(もとい両者の比較)を答えたい.

つまり,新旧2つの系列対系列変換ネットワーク(with アテンション機構)である, seq2seq with atteniton (旧)と,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を用いる(※ データの規模感がない問題では,もちろんbi-LSTMを使って学習してもよい).

seq2seq with atteniton の旧世代とくらべると,Transformer世代には,以下の3つの相違点が主に上げられる(これら3点が実質この記事のAnswer):

  • 相違点(1): 系列全体アテンションが中心のモデルを実現
    • 系列全体コンテキストに加えて,効率的に系列全体で(ほぼ)行列計算で変換処理をおこなうマルチヘッドアテンションを,処理の中心にすえた
    • seq2seq with attenitonによる機械翻訳では,LSTMGRU1D畳み込み層で「局所範囲のNフレームをコンテキスト」とする,フレームごとの符号化・復号化処理をしていた(※ ただし各フレームでは個別にアテンション).
  • 相違点(2): サブワードも含むトークナイザ
    • トークナイザを使用し,サブワードも含めたトークンベクトルにより,系列同士を変換(語彙外(Out-of-Vocabulary)の単語に強い変換が可能).
  • 相違点(3): マルチヘッドアテンションにより,モデルが大規模にスケールした.
    • 「系列全体処理化」とそのボトルネック並列化により,モデルが大規模にスケールした.

端的に言えないので,それぞれ上記(1)~(3)について,以下の各節で,詳細を述べていきたい.なにより重要なのは,主部品であるマルチヘッドアテンションの導入と,その自己アテンションとしての使用である.

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

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

Transformerでは,具体的には以下の3点を導入することで,トークンベクトル系列同士の変換を「アテンション機構中心」のモデルに替えることができた (※ それぞれついて,詳しくはTransformerの記事を参照.文字や図への着色も,この記事やマルチヘッドアテンション記事と連動している):

  1. マルチヘッド自己アテンションを,系列内符号化に導入
    • [自己アテンション × N回 ]のスタック処理で,トークン系列内を自己回帰的にアテンションで符号化するようにした.
    • 重み(アテンション係数)を推定して,元のValueベクトルに重みづけするだけの軽量なアテンション計算の繰り返しだけで,系列変換の符号化復号化が十分に学習できるようになったのが革命である.(マルチヘッドアテンションだけ見ると)行列積計算繰り返しているだけなのに,複雑な系列変換問題をTransformerに学習できるようになった.
  2. 各トークン表現ベクトルを,同一のFFNNにより,個別に非線形変換.
    • 各アテンションは線形処理.この各3層MLPが,非線形化を担当.
  3. 位置符号化(Positional Encoding)を導入.
    • 各トークンの系列内位置情報を,トークン埋め込みに加算合成して使用できるようになった.
    • これまで位置情報を担当していたが,「RNNのフレーム間再帰」「1D畳み込み層」がなくても,アテンションだけで系列対系列変換のEncoder-Decoderを設計できるようになった.
    • 位置埋め込み層を学習しないでも,決め打ちの関数での符号で十分いけてるのがミソ.

これら3点の貢献により,(seq2seq with attention世代でも同様に) アテンション機構の強みである「系列内全体(=グローバル)トークンベクトルとの関連度を予測に使える」利点が,ソース系列内全体(=グローバル)と,ターゲット系列内全体(=グローバル)でも得られるようになった.逆に,相互アテンションの強みは継続で,マルチヘッド化されただけである.

Transformer内の各アテンションの「自己 or 相互」や「Q,K,Vがどこから入力されるか」の違いは,以下の記事に,図つきでまとめてある:

相違点(2) サブワードも含むトークナイザ

当時,機械翻訳界隈で流行しつつあった「サブワードにも分割できるトークン化」という潮流が出ていた (例:fastText, WordPieceに,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)で与えるトークンの「系列内でトークンがどの位置にいるか」の情報も,この話に関係する.ただし,著者の意見としては,位置符号化は,いまだよい(学習しないで符号化で済ます)対案が出てきていないものの,ずっと使っていてなんとなくうまくいってしまっている技術である印象がある (※ ちゃんとトークン埋め込みも学習した方が,トークン表現としてはデータドリブンで直感的にはわかりよい.ViTは,位置情報に関しては,位置埋め込み層を学習する).

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

ちなみに「サブワードも含めたトークン化」という考え方は,言語以外のモーダルでTransformerを応用する際にも重要となる.最近の画像認識研究の主フォーカスであるViT(Vision Transformer) [Dosovitskiy et al., 2021] [Touvron et al., 2020] でも,画像内の小パッチを,埋め込み層で,いきなりトークンに変換する.

そのように,いきなりローレベルな元データの局所部分(画像)を入力トークンとみなし,高精度で大規模な変換モデルのTransformer全体を学習できるのも,以前の世代との違いである BERTやGPTも,同じく「言語モデル全体をデータから学習する」点が,それまでの「単語モデル」と「系列変換モデル」が分離していた世代とは異なる点である.Word2VecGloVeのように,単語(分散)埋め込みを分離したりしないで,Transformer内に統合されているわけである(※ 非常に重要な相違点).

例えば画像キャプション生成を実現する際の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つであると言える.

またT5(T5X)(Text-to-Text Transfer Transformer)の登場以降,異なる変換タスクを,ひとつにまとめて学習することもできるようにもなった.我々のビジョン業界では,物体検出などでマルチタスク学習ヘッドはよく研究されてきたが,T5の「マルチ入力→マルチ出力」は,更にモデルの規模および担当するタスクの規模をスケールすることにつながっている.

とはいえ,ニッチなラベルやニッチな領域むけのパターン認識では,データ・ラベル規模はスケールしないので,以前の中規模ネットワークで十分である場面も多い.BERTやViTで学習した大規模事前表現が効いてくるタスクにはこれらは当然強力であるが,中規模データと中規模向けモデルでそのまま学習してもあまり精度が大差がない場合は,以前として大規模事前学習なしの少し前の世代のモデルで通用するので,自分の目的が「いつでもなるべく高精度」か「小~中規模の独自データで高精度」かによって,それにあった片方を賢く選択したいところである.

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

おまけとして,そもそもの「(一般的な)アテンション機構の利点」についても,簡単にだけ復習しておく(※ 系列対系列変換とアテンション機構の記事にも書いてある内容).それによりTransformerの利点を更によく理解できるようにしておきたい.(のちに,ここだけ個別記事に切り出すかも?)

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

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

以上のように,系列対系列変換ネットワークにアテンションを導入すると「全体コンテキストを観察できるうえに,各単語の重みづけもできる」という利点と,「畳み込みで符号化していくよりも,ベクトル間類似度係数(=アテンション) × ベクトル の線形計算なので,計算量をおさえやすい」という利点が効いてくる.よって,Transformerはなるべく多くの部品をアテンション化しようとしたわけである.

ただし,Transformer-XLに,Google Conformerや,Google ConvMixerなど,結局はマルチヘッドアテンションだけでなく,畳み込み層RNN再帰を使ったTransformer改善モデルの性能がよくなっているので,元論文が示したように,Attention is All you needではなかった.

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.

参考外部リンク