ホームページ  >  記事  >  テクノロジー周辺機器  >  自然言語処理における NLP のアテンション メカニズムの応用

自然言語処理における NLP のアテンション メカニズムの応用

王林
王林転載
2024-01-23 16:12:05610ブラウズ

自然言語処理における NLP のアテンション メカニズムの応用

アテンションの概念

アテンションの概念は、ニューラル機械翻訳の seq2seq モデルでよく知られています。エンコーダーからデコーダーに渡される情報量は限られており、モデルのパフォーマンスが制限されます。ただし、アテンションを導入すると、このボトルネックが克服され、モデルが長い文や複雑なセマンティクスをより適切に処理できるようになります。

簡単に言えば、モデルはデコード段階でエンコーダのすべての隠れ状態を利用し、最終的な隠れ状態を初期隠れ状態としてデコーダに供給します。この利点は、モデルがデコード中により多くの情報を利用でき、入力シーケンスの最も関連性の高い部分に「注意を払う」ことができ、出力シーケンスのさまざまな部分を生成するときにより正確な予測を行うことができることです。

アテンションの一般的なフレームワークのアイデア

アテンションのメカニズムはアーキテクチャや実装の詳細によって異なりますが、共通点もあります。たとえば、特定のアーキテクチャのニューラル ネットワークを使用して予測を行うシナリオを考えてみましょう。この場合、エンコードされた情報を含むベクトルを取得します。このベクトルは、完全接続層に入力し、ソフトマックス層を通じて処理するなど、予測に使用できます。特定の処理手順は異なる場合がありますが、基本的な考え方はアーキテクチャが異なっても同様です。

しかし、その予測結果は満足できるものではありませんでした。多くの理由が考えられますが、次のような考えが考えられます:

1. 使用されるベクトルには、適切な予測を達成するために役立つすべての情報が含まれているわけではありません。

多くの場合、適切な予測を行うために必要な情報は、マーカーによってエンコードされた一連のベクトルが存在する NLP タスクの場合など、多くのベクトルに分散されます。分散された情報はすべて考慮されていますが、一部の情報はニューラル ネットワーク内を深く流れるにつれて必然的に失われます。

2. 有用なのは、これらのベクトルに含まれる個々の情報だけでなく、現在のベクトルとの関係も重要です。

現在のベクトルは、他のベクトルと相互作用して通信し、どの情報を渡すかを決定するのに役立つ必要がある場合があります。したがって、潜在的に有用なベクトルをすべて組み合わせて、より良い予測を行うために何に注意を払うべきかをモデルが学習できるようにする、より賢い方法が必要です。

これら 2 つの点を考慮した後、そのようなベクトルと他の修飾ベクトルが存在すると仮定します。これらのベクトルは予測を行うために重要であり、この情報を処理する方法は一般的なフレームワークです。注意を払うために。

このフレームワークでは、クエリを受け入れ、キーと 1 つずつ対話させます:

1. クエリ間の特定の関係それぞれの主要な相互作用は、内積、接続の追加または組み合わせ、小さなニューラル ネットワークへのフィードなどになります。クエリの異なるキーはそれぞれ、バックプロパゲーションでトレーニングされた同じパラメーターを使用した同じ操作を使用して処理されます。さらに、これらの操作後の最終出力は単一の値である必要があります。これらの出力値をエネルギーと呼びます。クエリとすべてのキー ベクトルに対してこのプロセスを繰り返すと、一連のエネルギーが取得されます。
2. ソフトマックス層を使用して、すべてのエネルギーを正規化します。
3. 値ベクトルの重み付き合計を実行すると、重みが正規化されたエネルギーになります。これにより、インテリジェントな方法で結合されたすべての要素に関する情報を含む値ベクトルと同じ次元のコンテキスト ベクトルが生成されます。
4. コンテキスト ベクトルとクエリ ベクトルを一緒に使用して予測を行うことができます (たとえば、それらを連結し、必要に応じてニューラル ネットワークに供給し、続いてソフトマックス層に供給します)。

上記は注意の一般的なフレームワークのプロセスですが、このフレームワークがさまざまなタスクにどのように適用されるかを見てみましょう。

感情分析タスク

感情分析タイプのタスクは分類タスクであり、入力はテキストであり、出力はそれに対応します。考えられる感情のラベルの 1 つに。テキストがニューラル ネットワークに入力される前に、テキストをクリーニング、フォーマット、トークン化して、一連の語彙ベースのインデックスに変換する必要があります。これは seq2seq ではなく seq2one ですが、アテンション メカニズムは引き続き適用され、パフォーマンスの向上に役立ちます。

通常の一方向または双方向の LSTM ベースのネットワークを使用して、このタスクを実行できます。この場合、最後の層の最終隠れ状態 (単方向) または 2 つの最終隠れ状態 (双方向、前方から 1 つと後方から 1 つ) のみが、分類ヘッド (全結合層やソフトマックスなど) に渡されて予測に使用されます。 。最終的な隠れ状態によってのみ保持される情報が限られているため、モデルのパフォーマンスにボトルネックが生じます。

日付変換タスク

日付変換は、文字レベルの seq2seq タスクの例です。このタスクの目標は、人間が読める日付 (「2022 年 12 月 27 日」など) を入力として受け取り、入力と同じ日付を表す機械が読める日付 (「2022-12-27」など) を出力することです。

アテンションベースのモデルには、デコーダの LSTM ユニットの前にアテンション ブロックがあります。各ループ ステップで、注目ブロックの出力コンテキスト ベクトルと最後のステップの出力が連結され、LSTM ユニットに供給されます。アテンションの別の実装は、アテンション ブロックを、LSTM ユニットの後の現在のステップの出力ベクトルと出力コンテキスト ベクトルと連結することです。これは、次のトークンを予測するために完全に接続された層に供給されます。ここでのアテンション ブロックは一般的なフレームワークに従い、キー ベクトルと値ベクトルは同じベクトルのセット、つまりエンコーダーの最後の層の隠れ状態であり、クエリと各キーの間の相互作用は小さなニューラル ネットワークです。

デコード段階中、一方向 LSTM は一度に 1 つのトークンを予測するため、各ステップへの入力には 2 つの選択肢があります: 前のステップから現在のステップによって予測されたトークン出力またはグランドトゥルース。ここでは、ハイパーパラメーターを定義して、トレーニング中に使用される入力トークンの何パーセントがグラウンド トゥルースであるかを制御し、モデルのパフォーマンスを最適化するために実験することができます。

以上が自然言語処理における NLP のアテンション メカニズムの応用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は163.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。