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

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

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












