Hierarchical Attention Networks for Document Classification (2016)

December 26, 2021

Hierarchical Attention Network(HAN)は、単語は文から文書は文からなる文書の構造をアーキテクチャに反映し、単語の注意から文の注意を、文の注意から文書の注意を計算する。 順方向と逆方向の2つのGRUでエンコードした単語の分散表現から注意を計算し、文ごとに、単語の注意の重みつき和を計算し文の分散表現とする。 さらに、文の分散表現を別の順、逆方向GRUにあたえ、単語とおなじように各文の注意を計算し、その重みつき和を文書の分散表現としてあつかう。 最後に、文書の分散表現を全結合層に入力し、ソフトマックス関数で文書のクラスを推定する。 単語の文の注意を推定できるため、単語と文の2つの粒度で文書の重要な箇所を可視化することができる。

アーキテクチャは、以下の図のように、単語と文それぞれについて、エンコードの層と注意の層がある。 以下では、文書に\(L\)の文があり、文\(s_i\)には\(T_i\)個の単語\(w_{it} (t \in [1, T])\)があるとする。 han 単語の注意層にあたえる隠れ状態\(h_{it}\)は順方向のGRU(\(\overrightarrow{\text{GRU}}\))と逆方向のGRU(\(\overleftarrow{\text{GRU}}\))の隠れ状態を結合したベクトル\(h_{it}=[\overrightarrow{h}_{it}, \overleftarrow{h}_{it}]\)であり、以下の計算でもとめる。 $$ \begin{align} x_{it} &= W_ew_{it}, t\in [1, T]\\ \overrightarrow{h}_{it}&=\overrightarrow{\text{GRU}}(x_{it}), t\in[1, T]\\ \overleftarrow{h}_{it}&=\overleftarrow{\text{GRU}}(x_{it}), t \in [T, 1] \end{align} $$ 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} $$

論文をこちらからダウンロードできます。