logo logo

May 15, 2019 15:06

論文要約:Hierarchical Attention Networks for Document Classification

動機

テキスト分類において、ある種の説明性を担保してくれる手段として本手法に興味がでてきた。
実業務ではこちらのモチベーション如何によらず、説明性を確保できないかというのを要望されることは非常に多い。
興味のある方は関連する記事もご参照ください。

本手法はテキスト文書をシーケンスデータと見なした上で、ディープでの言語処理ではもはやスタンダードとなっているGRUをベース技術に適用しつつ、分類の判断根拠としてどの箇所(例えば単語単位)に注目してネットワークが分類根拠としているかが可視化できるようになる。

要約

本提案手法では文章>文>単語という階層構造を反映したモデルを構築している。LSTMを簡略化したGRUを基本ユニットとしている。規格化した注目度を割り当てることで、文章中のどの箇所に注目しているかがわかるようにした。

技術の詳細

ネットワークのスキーマティックな構成は以下のような感じ。

入力層近くではGRUによって近接する単語間の情報を含みながら、よりリソースフルな特徴へとエンコードされる。彼らの論文ではこうして得られた$i$番目の文章の$t$番目の単語を$h _{it}$と記述している(順方向と逆方向それぞれでエンコードしている)。これらを入力としてに注目度スコア$\alpha _{it}$と文ベクトル$s _{i}$が次のように計算される。

$$u _{it} = \tanh{(W _{w}h _{it} + b _{w})},$$
$$\alpha _{it} = \frac{\exp{(u _{it}^{T}u _{w})}}{\sum _{t}\exp{(u _{it}^{T}u _{w})}},$$
$$s _{i} = \sum _{t}\alpha _{it}h _{it}$$

全く同様の方法で、後続のネットワークレイヤーにおいて、文レベルの注目度スコアも算出される。


memo:図中の$L$をどうやって決めるのかよくわかっていなかったが、HAN実装ブログを見ると、あらかじめデータセットの最大文数に合わせて(あるいはそれに足る数なら良さそう)設定しておくようだ。文レイヤーでは$i$番目の文の特徴量をエンコードしつつ、その注目度もまた逆誤差伝搬法で学習していく。

主要結果

関連リソース

元論文とソースコード

用語解説

Gated Recurrent Unit (GRU):ニューラルネットワークにおいて、系列データの周辺情報をエンコードするユニットであるLSTMを簡略化した実装。時刻$t$において入力データは最終的に次のように出力される。
$$h _{t} = (1 - z _{t}) \odot h _{t-1} + z _{t} \odot \tilde{h} _{t},$$
ここで$z _{t}$は過去と現在の情報の重要度を制御する重みパラメータで、
$$z _{t} = \sigma(W _{z}x _{t} + U _{z}h _{t-1} + b _{z}),$$
と計算される。そして候補状態と呼ばれる$\tilde{h} _{t}$は、シンプルなRNNと似た方法で、
$$\tilde{h} _{t} = \tanh{(W _{h}x _{t} + r _{t} \odot (U _{h}h _{t-1}) + b _{h})},$$
と計算される。ここで$r _{t}$は候補状態に過去の情報をどの程度与えるかを制御し、リセットゲートと呼ばれる。これもまた
$$r _{t} = \sigma(W _{r}x _{t} + U _{r}h _{t-1} + b _{r}).$$
と計算される。このユニットの全体のアーキテクチャを以下に示す。(retrieved from wikipedia)