AI 101
トランスフォーマー・ニューラル・ネットワークとは?

トランスフォーマー・ニューラル・ネットワークの説明
トランスフォーマーは、シーケンシャルデータを処理して解釈することに特化した機械学習モデルの一種で、自然言語処理タスクに最適です。トランスフォーマー・モデルの仕組みと、それがどのように動作するかをより深く理解するために、トランスフォーマー・ニューラル・ネットワーク・アーキテクチャと、それを駆り立てるメカニズムを見てみましょう。
この記事では、以下の点について説明します:
- シーケンス・ツー・シーケンス・モデルの概要
- トランスフォーマー・ニューラル・ネットワーク・アーキテクチャ
- アテンション・メカニズム
- トランスフォーマーとRNNs/LSTMsの違い
シーケンス・ツー・シーケンス・モデルの概要
シーケンス・ツー・シーケンス・モデルは、一種のNLPモデルで、ある種のシーケンスを別の種のシーケンスに変換するために使用されます。シーケンス・ツー・シーケンス・モデルの種類は様々あります。たとえば、再帰型ニューラル・ネットワークモデルや長短期記憶(LSTM)モデルなどがあります。
この記事の主な焦点は、従来のシーケンス・ツー・シーケンス・モデルであるRNNやLSTMではありませんが、トランスフォーマー・モデルがどのように動作するか、またそれが従来のシーケンス・ツー・シーケンス・モデルよりも優れているかを理解するには、それらについての理解が必要です。
簡単に説明すると、RNNモデルとLSTMモデルは、エンコーダー・ネットワークとデコーダー・ネットワークで構成されており、入力データをさまざまなタイム・ステップで分析します。エンコーダー・モデルは、入力データの単語をエンコードした表現を形成する責任があります。各タイム・ステップで、エンコーダー・ネットワークは入力シーケンスと前のタイム・ステップからの隠れ状態を受け取り、隠れ状態の値を更新します。最後のタイム・ステップで、「コンテキスト・ベクター」が生成され、デコーダー・ネットワークに渡されます。デコーダー・ネットワークは、入力単語に対応する最も可能性の高い単語を予測して、ターゲット・シーケンスを生成するために使用されます。
これらのモデルは、「アテンション・メカニズム」の使用によって強化できます。アテンション・メカニズムは、ネットワークが入力ベクターのどの部分に焦点を当てるべきかを定義し、出力の生成に必要な情報を提供します。言い換えると、アテンション・メカニズムは、トランスフォーマー・モデルが入力の1つの単語を処理するだけでなく、他の入力単語に含まれる関連情報にも注目できるようにします。アテンション・メカニズムは、関連情報を含まない単語をマスクアウトすることもできます。
トランスフォーマー・ニューラル・ネットワーク・アーキテクチャ
アテンション・メカニズムについては後で詳しく説明しますが、まずはトランスフォーマー・ニューラル・ネットワーク・アーキテクチャの全体像を見てみましょう。
一般的に、トランスフォーマー・ニューラル・ネットワークは以下のようになります:

この一般的な構造は、ネットワークによって異なる場合がありますが、基本的な要素は同じままです。位置情報のエンコーディング、単語ベクター、注意メカニズム、フィード・フォワード・ニューラル・ネットワークです。
位置情報のエンコーディングと単語ベクター
トランスフォーマー・ニューラル・ネットワークは、入力シーケンスを2つの別のシーケンスに変換します。トランスフォーマーは、単語ベクター・エンベッディングのシーケンスと位置情報のエンコーディングのシーケンスを生成します。
単語ベクター・エンベッディングは、単語を数値形式で表現したもので、ニューラル・ネットワークが処理できる形式です。一方、位置情報のエンコーディングは、入力文の中で現在の単語の位置に関する情報を含むベクター表現です。
他のテキストベースのニューラル・ネットワーク・モデル、たとえばRNNやLSTMも、入力データの単語をベクターで表現します。これらのベクター・エンベッディングは、単語を一定の値にマップしますが、単語は異なるコンテキストで使用されることがあります。トランスフォーマー・ネットワークは、単語の値をより柔軟にし、単語ベクターが文の中での単語の位置に応じて異なる値を取ることができるように、正弦関数を使用します。
これにより、ニューラル・ネットワーク・モデルは、入力単語の相対的な位置に関する情報を保持できます。ベクターがトランスフォーマー・ネットワークの層を通過する際に、位置情報のエンコーディングと単語ベクター・エンベッディングは加算され、エンコーダー・ネットワークとデコーダー・ネットワークの両方に渡されます。トランスフォーマー・ニューラル・ネットワークは、RNNやLSTMと同様にエンコーダー/デコーダー・スキーマを使用しますが、主な違いは、すべての入力データが同時にネットワークにフィードされることです。一方、RNNやLSTMでは、データはシーケンシャルに処理されます。
エンコーダー・ネットワークは、入力をネットワークが学習できる表現に変換する責任があります。一方、デコーダー・ネットワークは、エンコーディングを出力シーケンスの確率分布に変換する責任があります。重要な点は、エンコーダー・ネットワークとデコーダー・ネットワークの両方にアテンション・メカニズムが含まれていることです。
GPUは並列処理が可能なため、複数のアテンション・メカニズムが並列に使用され、入力単語のすべての関連情報を計算します。この「マルチ・ヘッド・アテンション」と呼ばれる機能により、ニューラル・ネットワークは文の中での単語のコンテキストを学習し、RNNやLSTMよりも優れた性能を実現します。
アテンション・メカニズム
アテンション・メカニズムは、トランスフォーマー・ネットワークの最も重要な部分です。アテンション・メカニズムは、トランスフォーマー・モデルが従来のRNNやLSTMの注意限界を超えることを可能にします。従来のシーケンス・ツー・シーケンス・モデルは、すべての中間状態を破棄し、デコーダー・ネットワークを初期化するために、最終的な状態/コンテキスト・ベクターのみを使用します。
最終的なコンテキスト・ベクターのみを使用するアプローチは、入力シーケンスが比較的短い場合には機能します。しかし、入力シーケンスの長さが増加すると、モデルの性能は低下します。これは、長い入力シーケンスを単一のベクターにまとめることが非常に困難になるためです。解決策は、モデルの「注意」を高め、デコーダー・ネットワークがコンテキスト・ベクターを構築するために、エンコーダーの中間状態を使用することです。
アテンション・メカニズムは、エンコーディングの作成時に、他の入力トークンの重要性を定義します。たとえば、「it」は、性別が不明な動物を指す一般的な代名詞です。アテンション・メカニズムにより、トランスフォーマー・モデルは、入力文のすべての関連単語を考慮して、「it」が現在のコンテキストでリスを指すことを判断できます。
アテンション・メカニズムは、3つの方法で使用できます。エンコーダーからデコーダーへのアテンション、エンコーダーのみのアテンション、デコーダーのみのアテンションです。
エンコーダーからデコーダーへのアテンションにより、デコーダーは出力の生成時に入力シーケンスを考慮できます。一方、エンコーダーのみのアテンションとデコーダーのみのアテンションにより、ネットワークはそれぞれ前のシーケンスと現在のシーケンスのすべての部分を考慮できます。
アテンション・メカニズムの構築は、5つのステップに分けることができます:
- すべてのエンコーダー状態のスコアを計算する。
- アテンション・ウェイトを計算する。
- コンテキスト・ベクターを計算する。
- 前のタイム・ステップの出力でコンテキスト・ベクターを更新する。
- デコーダーで出力を生成する。
最初のステップは、デコーダーがすべてのエンコーダー状態のスコアを計算することです。これは、デコーダー・ネットワークをトレーニングすることで実現されます。デコーダー・ネットワークは、基本的なフィード・フォワード・ニューラル・ネットワークです。入力シーケンスの最初の単語に対してデコーダーをトレーニングするとき、内部/隠れ状態はまだ作成されていないため、エンコーダーの最後の状態が通常、デコーダーの前の状態として使用されます。
アテンション・ウェイトを計算するには、ソフトマックス関数を使用して、アテンション・ウェイトの確率分布を生成します。
アテンション・ウェイトが計算されたら、コンテキスト・ベクターを計算する必要があります。これは、アテンション・ウェイトと隠れ状態をすべてのタイム・ステップで乗算することで実現されます。
コンテキスト・ベクターが計算されたら、前のタイム・ステップで生成された単語とともに、出力シーケンスの次の単語を生成するために使用されます。最初のタイム・ステップでは、デコーダーには参照する前の出力がないため、特殊な「スタート」トークンが代わりに使用されます。
トランスフォーマーとRNNs/LSTMsの違い
RNNとLSTMの違いについて簡単に説明します。
RNNは、入力をシーケンシャルに処理し、隠れ状態ベクターを維持して更新します。RNNの隠れ状態には、以前の入力に関するあまり関連のない情報が含まれています。新しい入力は、現在の状態を上書きすることが多く、情報の損失を引き起こし、時間の経過とともに性能が低下します。
一方、トランスフォーマー・モデルは、入力シーケンスをすべて一度に処理します。アテンション・メカニズムにより、出力の各単語が入力と隠れ状態のすべての情報に基づいて生成され、長いテキストの処理に信頼性が高くなります。
LSTMは、RNNの改良版で、より長い入力シーケンスを処理するために調整されています。LSTMアーキテクチャには、「ゲート」と呼ばれる構造があり、「入力ゲート」、「出力ゲート」、「忘却ゲート」があります。ゲートの設計は、RNNモデルに共通する情報の損失に対処します。データはシーケンシャルに処理され、アーキテクチャの再帰的設計により、LSTMモデルは並列コンピューティングを使用してトレーニングするのが困難で、トレーニング時間が長くなります。
LSTMエンジニアは、ネットワークにアテンション・メカニズムを追加することがよくありました。これは、モデルの性能を向上させることが知られていました。しかし、最終的に、アテンション・メカニズムのみが精度を向上させることが発見され、GPUを使用した並列コンピューティングを活用するトランスフォーマー・ネットワークの開発につながりました。








