Hierarchical Attention Networks for Document Classification (2016)
December 26, 2021Hierarchical Attention Network(HAN)は、単語は文から文書は文からなる文書の構造をアーキテクチャに反映し、単語の注意から文の注意を、文の注意から文書の注意を計算する。 順方向と逆方向の2つのGRUでエンコードした単語の分散表現から注意を計算し、文ごとに、単語の注意の重みつき和を計算し文の分散表現とする。 さらに、文の分散表現を別の順、逆方向GRUにあたえ、単語とおなじように各文の注意を計算し、その重みつき和を文書の分散表現としてあつかう。 最後に、文書の分散表現を全結合層に入力し、ソフトマックス関数で文書のクラスを推定する。 単語の文の注意を推定できるため、単語と文の2つの粒度で文書の重要な箇所を可視化することができる。
アーキテクチャは、以下の図のように、単語と文それぞれについて、エンコードの層と注意の層がある。
以下では、文書に\(L\)の文があり、文\(s_i\)には\(T_i\)個の単語\(w_{it} (t \in [1, T])\)があるとする。
単語の注意層にあたえる隠れ状態\(h_{it}\)は順方向のGRU(\(\overrightarrow{\text{GRU}}\))と逆方向のGRU(\(\overleftarrow{\text{GRU}}\))の隠れ状態を結合したベクトル\(h_{it}=[\overrightarrow{h}_{it}, \overleftarrow{h}_{it}]\)であり、以下の計算でもとめる。
GRUは、リセットゲートを\(r_t\), 更新ゲートを\(z_t\)として以下の式をとる。
$$ \begin{align} h\_t &= (1-z\_t)\odot h\_{t-1} + z\_t \odot \tilde{h}\_t\\\\ z\_t &= \sigma(W\_zx\_t + U\_z h\_{t-1}+b\_z)\\\\ \tilde{h}\_t &= \tanh(W\_hx\_t + r\_t \odot (U\_hh\_{t-1}) + b\_h)\\\\ r\_t &= \sigma (W\_rx\_t + U\_rh\_{t-1} + b\_r) \end{align} $$文の分散表現\(s_i\)は、単語の注意\(\alpha_{it}\)の重み\(h_{it}\)つき和である。 \(u_w\)をランダムに初期化し、学習時に同時に更新するパラメタとして、次のようにもとめる。
$$ \begin{align} u\_{it}&=\tanh(W\_wh\_{it} + b\_w)\\\\ \alpha\_{it}&=\frac{\exp (u^\top\_{it} u\_w)}{\sum\_t \exp (u^\top\_{it}u\_w)}\\\\ s\_i&=\sum\_t \alpha\_{it}h\_{it} \end{align} $$単語と同じく、文の分散表現についても、順、逆方向2つのGRUに入力し、隠れ状態\(h_i =[\overrightarrow{h}_i, \overleftarrow{h}_i]\)を計算する。 \(h_i\)は、文\(i\)を中心にその周辺の情報をもつ。
$$ \begin{align} \overrightarrow{h}\_i &= \overrightarrow{\text{GRU}}(s\_i), i\in[1, L] \\\\ \overleftarrow{h}\_i &= \overleftarrow{\text{GRU}}(s\_i), t\in [L, 1] \end{align} $$文の注意層では、単語のときと同様に、\(u_s\)をランダムに初期化し、文書の分散ベクトル\(v\)をえる。
$$ \begin{align} u\_{i}&=\tanh(W\_sh\_{i} + b\_s)\\\\ \alpha\_{i}&=\frac{\exp (u^\top\_{i} u\_s)}{\sum\_i \exp (u^\top\_{i}u\_s)}\\\\ v&=\sum\_i \alpha\_{i}h\_{i} \end{align} $$最後に全結合層がある。
$$ p=\text{softmax}(W\_cv+b\_c) $$以下の目的関数をもちいて学習する。
$$ L=-\sum\_d\log p\_{dj} $$論文をこちらからダウンロードできます。