セルフアテンションはニューラル ネットワークで使用される基本的なメカニズムであり、特にトランスフォーマー モデルで顕著であり、連続データを効果的に処理できるようになります。これにより、モデルはシーケンス内の異なる単語や要素を異なる方法で重み付けできるようになり、計算中に関連部分に重点を置くことができます。
自己注意の構成要素
-
クエリ、キー、値: セルフアテンションでは、入力シーケンスは 3 つのベクトル (クエリ、キー、および値) に変換されます。これらのベクトルは、入力シーケンスから 線形変換を通じて取得され、注意スコアの計算に使用されるコンポーネントを生成します。
-
注意スコア: これらのベクトルが取得されると、クエリ ベクトルとキー ベクトルの間の類似性を測定することによって注意スコアが計算されます。 シーケンス内のすべての要素の*。これは通常、ドット積を使用して行われ、その後スケーリング**し、ソフトマックス関数を適用して各要素のアテンションの重みを取得します。
-
重み付けされた合計: 取得された注意の重みは、値ベクトルの重み付けに使用されます。それぞれの注意の重みに基づいて、これらの値の重み付き合計により、自己注意層の出力が得られます。
-
マルチヘッド アテンション: 単語または要素間のさまざまな関係をキャプチャするために、複数セットのクエリ、キー、および値変換が並行して実行され、複数のセットのアテンション ウェイトと出力ベクトルが生成されます。これらはその後連結され、再度変換されて最終出力が得られます。
長期的な依存関係の学習を促進する
Self-attention は、シーケンス内のすべての要素間の相互作用を直接モデル化できるため、シーケンス内の長距離依存関係を捉えるのに優れています。リカレント ニューラル ネットワーク (RNN) などの従来のアーキテクチャは、勾配の消失または爆発の問題に悩まされており、長距離の依存関係を学習する能力が制限されています。一方、自己注意は、これらの問題を発生させることなく、離れた単語や要素間の関係を捉えることができるため、シーケンス内の文脈や関係をより効果的に理解できるようになります。
従来のアーキテクチャと比較した利点
-
並列化: セルフアテンションにより、シーケンス内のすべての要素のアテンション スコアの並列計算が可能になり、RNN での逐次処理よりも効率的になります。
-
長距離依存関係: 逐次的な性質により長距離にわたる依存関係を捕捉するのに苦労する RNN とは異なり、セルフアテンションはこれらの依存関係を効果的に捕捉できます。
-
パス長の短縮: セルフアテンションはシーケンス内のすべての要素を直接接続し、離れた要素間のパス長を短縮し、トレーニング中の勾配フローを改善します。
制限と計算の複雑さ
-
二次計算量: 自己注意には、シーケンス内のすべての要素間のペアごとの比較が含まれ、シーケンスの長さが増加するにつれて計算量が 2 次的に増加します。非常に長いシーケンスの場合、これは計算コストが高くなる可能性があります。
-
メモリ要件: トランスフォーマーはセルフアテンション メカニズムにより、CNN や RNN などの単純なアーキテクチャと比較してより多くのメモリを必要とすることがよくあります。
-
アテンション マスキング: 可変長のシーケンスを処理するには、アテンション マスクを使用してパディングを処理する必要があり、モデルとトレーニング プロセスが複雑になる可能性があります。
これらの制限にもかかわらず、自己注意は自然言語処理タスクにおいて非常に効果的なメカニズムであることが証明されており、進行中の研究は、効率とスケーラビリティをさらに向上させるためにその計算の複雑さに対処することを目的としています。