アテンション機構(2/4)全体構成の説明

はぐれ弁理士 PA Tora-O です。前回(第1回)では、アテンション機構の概要について説明しました。改めて復習されたい方は、こちらのリンクから確認をお願いします。今回(第2回)は、アテンション機構の実装例として、“Seq2Seq with Attention” の全体構成について説明します。

エンコーダの構造

まず、エンコーダのネットワーク構造を図1に示します。

【図1】エンコーダの構造例

エンコーダは、入力層と、1層以上の再帰演算層から構成されます。再帰演算層は、単純RNN、LSTM、GRUのいずれであっても構いません。エンコーダの構造は、「アテンション無し」と全く同じです。が、唯一の違いは、出力される特徴量のデータ構造にあります。「アテンション無し」の特徴量は、最終的に生成される1つの隠れ状態ベクトルのみです。これに対して、「アテンション有り」 の特徴量は、逐次的に生成される複数の隠れ状態ベクトルの集合体です。

具体的には、エンコーダは、再帰演算を実行する度に、計算したL次元の隠れ状態ベクトルh(t) を出力します。この結果、S回の再帰演算を通じて、h(t) の時系列集合を示す(S×L)の隠れ状態行列が得られます。簡単に言えば、取り扱う情報量がS倍に増えたという程度でしょうか。

デコーダの構造

続いて、デコーダのネットワーク構造を図2、図3に示します。

【図2】デコーダの構造例

図2に示すように、デコーダは、入力層と、再帰演算層と、アテンション層と、出力層から構成されます。「アテンション無し」との大きな相違点は、再帰演算層と出力層の間に「アテンション層(機構)」が設けられていることです。アテンション層は、隠れ状態行列{H}と隠れ状態ベクトルh(t) を用いて、コンテキストベクトルc(t) を計算します。

【図3】アテンション層の構成

図3に示すように、アテンション層は、コンテキスト生成器と、全結合演算器から構成されます。ここで、コンテキスト生成器のサブ構成について簡単に説明します。

(1)特徴量保持部
 エンコーダにより生成された隠れ状態行列{H}を保持します。ちなみに、「アテンション無し」では、隠れ状態ベクトルhは、再帰演算層に投入された後、値を変えながら逐次的に更新されます。このように、符号化された特徴量をそのまま保持するという概念は、新しい特徴であると言えるでしょう。

(2)注意度演算部
 S個の隠れ状態ベクトルhに対する注意度a(t) を計算します。注意度a(t) は、隠れ状態ベクトルh、h(t) 同士の類似スコアを示すパラメータであり、S個の総和が1になるように[0,1]の範囲で正規化された値です。例えば、h(t) が2番目のベクトル(つまり、隠れ状態行列の第2行)に一致する場合、注意度は、a(t) =(0,1,0,・・・,0)、あるいは、このベクトルに近い値になります。

(3)積和演算部
 S個の隠れ状態ベクトルhに対して注意度a(t) を重み付けした積和演算を実行します。つまり、コンテキストベクトルc(t) とは、隠れ状態行列{H}をソースとして計算される中間的な特徴量とも言えそうです。

 

以上、今回(第2回)は、“Seq2Seq with Attention” の全体構成について説明しました。次回(第3回)は、アテンション機構の変形例について検討します。

↓ブログランキングに参加しています。よろしければ1クリックお願いします。

にほんブログ村 士業ブログ 弁理士へ
にほんブログ村

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村