2017年中旬、Googleが発表した論文**「Attention is all you need」**で提案されたモデル、Transformer(トランスフォーマー)は、深層学習の自然言語処理(NLP)分野でデファクトスタンダードとして使用されている。トランスフォーマーは過去のNLPで多く使われる再帰型ニューラルネットワーク(RNN)や畳み込みニューラルネットワーク(CNN)を「Self-Attention Layer」に入れ替えたモデルと説明することができる。

トランスフォーマーはリカレント・ニューラル・ネットワーク(RNN)と同様に、翻訳やテキスト要約などの作業において、自然言語のような逐次データを扱うように設計されている。しかし、RNNとは異なり、トランスフォーマーは逐次データを順番に処理する必要がない。例えば、入力データが自然言語の文であれば、トランスはその文の先頭から最後まで処理する必要はない。この特徴により、トランスフォーマーはRNNよりもはるかに多くの並列化を可能にし、その結果、学習時間を短縮することができる。

トランスフォーマーは導入されて以来、LSTM(long short-term memory)のような古いリカレント・ニューラル・ネットワーク・モデルに取って代わり、NLPの多くの問題に取り組むためのモデルとして選ばれるようになりました。トランスフォーマーモデルは訓練中の並列化を容易にするため、導入前よりも大きなデータセットでの訓練が可能になった。これにより、BERT(Bidirectional Encoder Representations from Transformers)やGPT(Generative Pre-trained Transformer)のような事前訓練済みシステムが開発され、巨大な一般言語データセットで訓練され、特定の言語タスクに微調整することができるようになった。

背景

トランスフォーマーが導入されるまで、ほとんどの最先端のNLPシステムは、LSTMやゲーテッドリカレントユニット(GRU)などのゲーテッドリカレントニューラルネットワーク(RNN)に注意メカニズムを加えたものに頼っていた。Transformerは、RNN構造を使用せずにこれらの注目技術をベースに構築されており、再帰的な逐次処理を行わずに、注目機構だけで注目機構付きRNNの性能を達成するのに十分強力であるという事実を強調している。

ゲーテッドRNNは、トークンを順次処理し、各トークンの後に見られるデータの表現を含む状態ベクトルを維持する。理論的には、あるトークンからの情報は、すべての時点でそのトークンに関する情報を符号化し続けていれば、シーケンスの下の任意の場所に伝搬することができる。しかし、実際にはこのメカニズムは不完全だ。バニシング・グラジエント問題のために、長い文の最後にあるモデルの状態は、しばしば初期のトークンについての正確で抽出可能な情報を含んでいない。

この問題は、 アテンションメカニズムの導入によって解決されました。アテンションメカニズムは、モデルが文中の任意の早い時点の状態を直接見て、そこから情報を引き出すことを可能にする。アテンション層は、以前のすべての状態にアクセスし、現在のトークンとの関連性の学習された尺度に従ってそれらを重み付けし、遠く離れた関連するトークンについてのより鋭い情報を提供します。アテンションの有用性の明確な例として、翻訳があります。英語からフランス語への翻訳システムでは、フランス語の出力の最初の単語は、ほとんどの場合、英語の入力の先頭に大きく依存する。

しかし、古典的なエンコーダ - デコーダLSTMモデルでは、フランス語出力の最初の単語を生成するために、モデルは最後の英語の単語の状態ベクトルだけを与えられる。理論的には、このベクトルは英語文全体に関する情報を符号化し、モデルに必要なすべての知識を与えることができるが、実際にはこの情報はよく保存されていないことが多い。アテンションメカニズムが導入された場合、モデルはフランス語の出力の先頭を生成する際に、初期の英語トークンの状態に注意を払うことを学習し、自分が何を翻訳しているのかについてより良い概念を与えることができる。

RNNにアテンションメカニズムを追加すると、パフォーマンスが大幅に向上した。トランスフォーマーの導入により、注意メカニズムはそれ自体が強力であり、注意を伴うRNNの性能向上を達成するためには、データの逐次再帰処理は必要ないという事実が明らかになった。トランスフォーマーはRNNではなくても注目メカニズムを利用しており、すべてのトークンを同時に処理し、それらの間で注目度の重みを計算している。トランスフォーマーは逐次処理に頼らず、並列化に非常に適しているため、トランスフォーマーをより大きなデータセットでより効率的に学習させることができる。

アーキテクチャ

それ以前に発明されたモデルと同様に、トランスフォーマーはエンコーダ - デコーダアーキテクチャ。エンコーダは、入力を次々と反復的に処理するエンコーディング層のセットで構成され、デコーダは、エンコーダの出力に対して同じことを行うデコーディング層のセットで構成されている。

各エンコーダ層の機能は、入力を処理して、入力のどの部分が互いに関連しているかについての情報を含むエンコーディングを生成することである。エンコーダのセットを入力として次のエンコーダ層に渡す。各デコーダ層はこれとは逆のことを行い、すべてのエンコーディングを受け取り、それらに組み込まれた文脈情報を使用して出力シーケンスを生成するためにそれらを処理する。これを達成するために、各エンコーダとデコーダ層は注意メカニズムを利用しています。エンコーダ層とデコーダ層の両方には、出力の追加処理のためのフィードフォワードニューラルネットワークがあり、残差接続と層の正規化ステップが含まれている。

エンコーダ

各エンコーダは、自己注意メカニズムとフィードフォワードニューラルネットワークという2つの主要なコンポーネントで構成されている。自己注意メカニズムは、前のエンコーダから入力された一連の入力エンコーディングを取り込み、それらの相互の関連性を計量して出力エンコーディングのセットを生成する。その後、フィードフォワードニューラルネットワークは、各出力エンコーディングを個別に処理します。これらの出力エンコーディングは、最終的にデコーダと同様に入力として次のエンコーダに渡される。

最初のエンコーダは、エンコーディングではなく、入力シーケンスの位置情報とエンベッディングを入力として受け取ります。位置情報は、トランスの他の部分がこれを利用しないため、トランスがシーケンスの順序を利用するために必要だ。

デコーダ

各デコーダは 3 つの主要なコンポーネントから構成されている。自己注意機構、エンコーディング上の注意機構、フィードフォワードニューラルネットワーク。デコーダはエンコーダと同様に機能するが、追加の注意メカニズムが挿入されており、その代わりにエンコーダによって生成されたエンコーディングから関連情報を引き出す。

最初のエンコーダと同様に、最初のデコーダはエンコーディングではなく、位置情報と出力シーケンスの埋め込みを入力とする。しかし、トランスは出力を予測するために現在または将来の出力を使用してはならないので、この逆の情報の流れを防ぐために、出力シーケンスは部分的にマスクされなければならない。 最後のデコーダには、最終的な線形変換とソフトマックス層が続き、ボキャブラリーにわたる出力確率が生成される。

参考文献

  1. Ashish Vaswani et al. Attention Is All You Need. arXiv:1706.03762. [Submitted on 12 Jun 2017 (v1), last revised 6 Dec 2017 (this version, v5)]

Photo by Joel Naren on Unsplash