デジタルゲームのための自然言語処理 第5回 Transformer とは①:Transformer以前の技術とその課題

2023年9月11日 13:00

 大規模言語モデル(large language models, LLM)の技術的な基礎としてよく知られているのが、2017年に Vaswani らの論文 "Attention Is All You Need" [参考文献1] で提案された "Transformer" アーキテクチャです。それまで、自然言語処理(NLP)では、 "Recurrent Neural Network (RNN)" を用いるのが一般的でしたが(注1)、Transformer の登場により、これが一気に塗り替わっていくことになりました。その後、画像や音楽など、テキスト以外も Transformer で扱えることが確認され、自然言語処理のみに留まらないアーキテクチャとして扱われるようになっています。

 今回からは、この Transformer について見ていきたいと思います。語ることが多く、数回に渡る長丁場になるかと思いますが、宜しくお付き合いください。

 なお、Transformer についての内容は、AI部のメンバーが2023年08月23日にCEDEC 2023 で行ったチュートリアル講演『デジタルゲームのための自然言語処理(NLP) ゲームの「ことば」のあそびかた』とも関わるものです。ぜひ、合わせてご確認をいただければ嬉しく思います。


・Transformer 登場の背景

 さて、Transformer の何が革命的だったのかをお伝えするために、それ以前のモデルにはどんな制約があったのかを、概観したいと思います。
 Transformer は、まず機械翻訳タスクにおいてその性能を世に知らしめましたので、ここでも機械翻訳を例に挙げることにしましょう。

図1 日本語文を英語文に翻訳するタスクのイメージ。「私はゲームがとても好きです」。という文を、英語に訳している過程を想定したもの


 図1のように、「私はゲームがとても好きです。」という日本語の文を、英語に翻訳することを考えます。出力はトークンごとに行われ、現在は "I like" までが出力されて、その次のトークンを出力しようとしているところです。このとき、入力の日本語文の情報をうまく参照することで、 "games" が続く確率が高いと判定されるようになり、対応する訳文が得られます(注2)。

 では、入力文の情報をまとめるところを見ていきましょう。RNN は、 "Recurrent (再帰的)" と名前にある通り、再帰的な処理を行うことで、これらの処理を実現します。


図2 テキストの再帰的な処理


 この処理では、直前までの処理が終わったときの RNN の「状態」を前提として、次の処理を行います。たとえば、「とても」を処理するためには、「が」までの処理が終わっている必要があります。「とても」の処理が完了してから、「好き」の処理を行うことができます。これを、「私」から「。」までのすべてのトークンに順番に行い、最終的な RNN の「状態」を得ることができます(このような「状態」のことを、「隠れ状態」と呼びます。入力文や出力文とは異なり、モデルの内部で扱われるもので、外部からは隠れているためです)。

 このような再帰的な処理は、テキストの長さによらず同様の処理を適用できるという利点があります。10単語のテキストでも、10,000単語のテキストでも、仕組みの上では同様に扱うことができるのです。

 しかし、「前のトークンの処理が終わってから、次のトークンの処理を行う」という都合上、深層学習で当たり前になっていた「計算を並列化し、GPU で高速に行列演算を行う」というアプローチが取りづらいという欠点がありました。また、トークン間の位置関係が強く反映されすぎてしまい、遠いトークンとの関わりが扱えず、近いトークンの影響が大きくなってしまうという問題もありました。

 こうした問題へのアプローチとして、Transformer は登場しました。厳密には、まず再帰的処理を補助するものとしての "Attention" が登場し、あくまで補助的な役割だった Attention が主役となって、Transformer へと結実していくことになるのですが、それは次回以降に語っていくことにしましょう。


 今回は、Transformer の何がすごいのか、その背景について概説しました。次回は、self-attention や、それを実用化する上での様々な工夫(Multi-head attention 、Decoder 側で行われるマスク処理)などについて、お話ししたいと思います。



(注1)RNN には、 "Long-Short Term Memory (LSTM)" [参考文献2] や "Gated Recurrent Unit (GRU)" [参考文献3]などの派生がありますが、ここでは詳述しません。

 

(注2)ここでは、イメージを伝えるため、 "I like " から次の単語に延びている矢印に、入力文の情報が足されているような図にしていますが、"Encoder" で入力文の情報をまとめ、それを出力側である "Decoder" の先頭に入れるような形で図式されることが一般的です。Sequence-to-sequence の論文[参考文献4]では、以下のように、エンコードされた情報が出力の毎ステップで参照されるような数式が書かれています(下の画像は、論文中のものを参考に作成したものです)。

図3 数式


参考文献

[1] 
論文タイトル:"Attention is all you need"
著者:Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, and Illia Polosukhin..
発表学会もしくは論文誌: In Proceedings of the 31st International Conference on Neural Information Processing Systems, 2017.

[2] 
論文タイトル:"Long Short-Term Memory"
著者:Sepp Hochreiter, Jürgen Schmidhuber.
発表学会もしくは論文誌:Neural Computation, 1997.

[3] 
論文タイトル:"Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling"
著者:Junyoung Chung, Caglar Gulcehre, KyungHyun Cho, and Yoshua Bengio, 
発表学会もしくは論文誌:Deep Learning and Representation Learning Workshop (in NeurIPS 2014).

[4] 
論文タイトル:"Sequence to Sequence Learning with Neural Networks"
著者:Ilya Sutskever, and Oriol Vinyals, and Quoc V Le., 
発表学会もしくは論文誌:Proceedings of the 27th International Conference on Neural Information Processing Systems , 2014.

関連する記事

2023年11月29日 11:00
ストリーミング版"SQUARE ENIX AI Tech Preview: THE PORTOPIA SERIAL MURDER CASE" リリース!
2023年7月12日 15:00
デジタルゲームのための自然言語処理 第4回 「ことば」を数値化する(後編)
2023年6月14日 00:00
デジタルゲームのための自然言語処理 第3回 「ことば」を数値化する(前編)