AIの基礎

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

mm
Unite.AI を Google の優先ソースに追加

トランスフォーマー・ニューラル・ネットワークの説明

トランスフォーマーは、シーケンシャルデータを処理および解釈することに特化したタイプの機械学習モデルであり、自然言語処理タスクに最適です。トランスフォーマー・モデルとは何か、それらがどのように動作するかをより深く理解するために、トランスフォーマー・モデルとそれらを駆動するメカニズムを詳しく見てみましょう。

この記事では、以下の内容を扱います:

  • シーケンス・ツー・シーケンス・モデル
  • トランスフォーマー・ニューラル・ネットワーク・アーキテクチャ
  • アテンション・メカニズム
  • トランスフォーマーとRNNs/LSTMsの違い

シーケンス・ツー・シーケンス・モデル

シーケンス・ツー・シーケンス・モデルは、シーケンスを別のタイプのシーケンスに変換するために使用されるNLPモデルの一種です。シーケンス・ツー・シーケンス・モデルには、再帰型ニューラル・ネットワークモデルや長短期記憶(LSTM)モデルなど、さまざまなタイプがあります。

伝統的なシーケンス・ツー・シーケンス・モデルであるRNNsとLSTMsは、この記事の主な焦点ではありませんが、トランスフォーマー・モデルがどのように動作するか、そしてなぜ伝統的なシーケンス・ツー・シーケンス・モデルよりも優れているかを理解するには、これらのモデルを理解する必要があります。

簡単に説明すると、RNNモデルとLSTMモデルは、エンコーダー・ネットワークとデコーダー・ネットワークで構成されています。エンコーダー・モデルは、入力データの単語をエンコードした表現を形成する責任があります。各タイムステップで、エンコーダー・ネットワークは入力シーケンスと前のタイムステップからの隠れ状態を受け取り、隠れ状態の値はネットワークを通じて更新され、最後のタイムステップで「コンテキスト・ベクター」が生成されます。コンテキスト・ベクターは、デコーダー・ネットワークに渡され、各タイムステップで入力単語とペアになる最も可能性の高い単語を予測するために使用されます。

これらのモデルは、「アテンション・メカニズム」の使用によって拡張できます。アテンション・メカニズムは、ネットワークがどの入力ベクターの部分に焦点を当てるべきかを定義します。言い換えると、アテンション・メカニズムにより、トランスフォーマー・モデルは、他の入力単語に含まれる関連情報に注目しながら、1 つの入力単語を処理できます。アテンション・メカニズムは、関連情報を含まない単語をマスクアウトします。

トランスフォーマー・ニューラル・ネットワーク・アーキテクチャ

アテンション・メカニズムについては後で詳しく説明しますが、まずトランスフォーマー・ニューラル・ネットワークのアーキテクチャを高レベルで見てみましょう。

一般的に、トランスフォーマー・ニューラル・ネットワークは以下のようになります。

この一般的な構造は、ネットワークによって異なる場合がありますが、基本的なコンポーネントは同じままです:位置エンコーディング、単語ベクター、注意メカニズム、フィードフォワード・ニューラル・ネットワーク。

位置エンコーディングと単語ベクター

トランスフォーマー・ニューラル・ネットワークは、入力シーケンスを2つの別のシーケンスに変換します。トランスフォーマーは、単語ベクター・エンベディングのシーケンスと位置エンコーディングのシーケンスを生成します。

単語ベクター・エンベディングは、単語をニューラル・ネットワークが処理できる数値形式で表したものです。一方、位置エンコーディングは、入力文の中で現在の単語の位置に関する情報を含むベクター表現です。

他のテキストベースのニューラル・ネットワーク・モデルであるRNNsとLSTMsも、入力データの単語をベクターで表します。ただし、これらのベクター・エンベディングは、単語を一定の値にマップしますが、これは制限があります。単語はさまざまなコンテキストで使用される可能性があるためです。トランスフォーマー・ネットワークは、単語の値をより柔軟にすることでこの問題を解決します。単語の位置に応じて、単語ベクターが異なる値を取ることができるためです。

これにより、ニューラル・ネットワーク・モデルは、トランスフォーマー・ネットワークを通過した後でも、入力単語の相対的な位置に関する情報を保持できます。

位置エンコーディングと単語ベクター・エンベディングは、合計してエンコーダー・ネットワークとデコーダー・ネットワークの両方に渡されます。トランスフォーマー・ニューラル・ネットワークは、RNNsとLSTMsと同様にエンコーダー/デコーダー・スキーマを使用しますが、主な違いは、すべての入力データが同時にネットワークに渡されることです。一方、RNNsとLSTMsでは、データはシーケンシャルに渡されます。

エンコーダー・ネットワークは、ネットワークが学習できる表現に入力を変換する責任があります。一方、デコーダー・ネットワークは、エンコーディングを出力シーケンスの確率分布に変換します。両方のエンコーダー・ネットワークとデコーダー・ネットワークには、アテンション・メカニズムがあります。

GPUは並列処理が可能なため、複数のアテンション・メカニズムが並列に使用され、すべての入力単語の関連情報が計算されます。この「マルチヘッド・アテンション」により、ニューラル・ネットワークは、単語のコンテキストを文の中で学習できます。これは、トランスフォーマー・ネットワークがRNNsとLSTMsよりも優れている主な利点の1つです。

アテンション・メカニズム

アテンション・メカニズムは、トランスフォーマー・ネットワークの最も重要な部分です。アテンション・メカニズムにより、トランスフォーマー・モデルは、従来のRNNまたはLSTMモデルよりもアテンションの限界を超えることができます。伝統的なシーケンス・ツー・シーケンス・モデルは、すべての中間状態を破棄し、デコーダー・ネットワークを初期化するために、最終的な状態/コンテキスト・ベクターのみを使用します。

中間状態を破棄するというアプローチは、入力シーケンスが比較的短い場合には機能しますが、入力シーケンスの長さが増加すると、モデルのパフォーマンスは低下します。これは、長い入力シーケンスを1つのベクターにまとめることが非常に難しいためです。解決策は、モデルの「アテンション」を高め、エンコーダーの中間状態を使用してデコーダーにコンテキスト・ベクターを構築することです。

アテンション・メカニズムは、エンコーディングを生成するときに、モデルがどの入力トークンを重要視するかを定義します。たとえば、「it」は、動物の性別が不明な場合に使用される一般的な代名詞です。アテンション・メカニズムにより、トランスフォーマー・モデルは、現在のコンテキストで「it」がどの単語を参照しているかを判断できます。

アテンション・メカニズムは、3つの方法で使用できます:エンコーダーからデコーダーへのアテンション、エンコーダーのみのアテンション、デコーダーのみのアテンション。

エンコーダーからデコーダーへのアテンションにより、デコーダーは出力を生成するときに入力シーケンスを考慮できます。一方、エンコーダーのみのアテンションとデコーダーのみのアテンションにより、ネットワークはそれぞれ前のシーケンスと現在のシーケンスのすべての部分を考慮できます。

アテンション・メカニズムの構築は、5つのステップに分けることができます:

  1. すべてのエンコーダー状態のスコアを計算する
  2. アテンション重みを計算する
  3. コンテキスト・ベクターを計算する
  4. コンテキスト・ベクターを前のタイムステップの出力で更新する
  5. デコーダーで出力を生成する

最初のステップは、デコーダーがすべてのエンコーダー状態のスコアを計算することです。これは、デコーダー・ネットワークをトレーニングすることで実現されます。デコーダーが入力シーケンスの最初の単語でトレーニングされている場合、内部/隠れ状態はまだ生成されていないため、エンコーダーの最後の状態が通常デコーダーの前の状態として使用されます。

アテンション重みを計算するには、ソフトマックス関数を使用してアテンション重みの確率分布を生成します。

アテンション重みが計算されたら、コンテキスト・ベクターを計算する必要があります。これは、アテンション重みと隠れ状態を掛け合わせることで行われます。

コンテキスト・ベクターが計算されたら、前のタイムステップで生成された単語とともに、次の出力単語を生成するために使用されます。デコーダーには、最初のタイムステップで参照する前の出力がないため、代わりに「開始」トークンが使用されます。

トランスフォーマーとRNNs/LSTMsの違い

RNNsとLSTMsの違いについて簡単に説明しましょう。

RNNsは、隠れ状態ベクターを維持しながら入力をシーケンシャルに処理します。隠れ状態は、ネットワークを通じて入力単語によって更新されます。ただし、RNNの隠れ状態には、以前の入力に関する関連情報がほとんど含まれません。新しい入力は、現在の状態を上書きすることが多く、情報の損失を引き起こし、時間の経過とともにパフォーマンスが低下します。

一方、トランスフォーマー・モデルは、入力シーケンスをすべて一度に処理します。アテンション・メカニズムにより、すべての出力単語がすべての入力と隠れ状態によって情報を得ることができます。つまり、ネットワークは、長いテキストの信頼性が高くなります。

LSTMsは、RNNsの改良版で、長い入力シーケンスを処理するために調整されています。LSTMアーキテクチャは、「ゲート」と呼ばれる構造を使用します。「入力ゲート」、「出力ゲート」、「忘却ゲート」があります。ゲートの設計は、RNNモデルに共通する情報の損失に対処します。ただし、データはシーケンシャルに処理され、再帰的な設計により、LSTMモデルは並列コンピューティングを使用してトレーニングするのが困難です。これにより、トレーニング時間が長くなります。

LSTMエンジニアは、モデルのパフォーマンスを向上させるために、アテンション・メカニズムをネットワークに追加することがよくありました。ただし、最終的に、アテンション・メカニズムだけが精度を向上させることが発見されました。この発見により、GPUの並列コンピューティングを使用するアテンション・メカニズムを使用するトランスフォーマー・ネットワークが開発されました。

ブログ作家およびプログラマーで、 Machine Learning Deep Learning のトピックを専門としています。Danielは、AIの力を社会のために利用する手助けを他者に与えることを希望しています。