文体のパターンの繰返しで深層学習する論文を読む

ランニングできず   英語できず

(1) 文体のパターンの繰返しで深層学習する論文を読む

 「Dynamic Evaluation of Neural Sequence Models」 https://arxiv.org/abs/1709.07432

   一般に自然言語の深層学習では単語間の繋がりをLSTMで学習することが殆どですが、近年構文を学習するHocherのモデルや意味データベースを使って解析を強化するモデルも出現してきています。

   この論文は長文の構造が似た文体が繰返し出現することに注目し、文体を表す隠れ変数\theta_lで生成される文が連結して構成されるとして解釈するモデルです。

 このモデルをdynamic evalと称しています。

 文体を表す隠れ変数\theta_lを仮定すると文章の尤度は次式となります。

  P(x|\theta_g) = \Pi_{k=1}^N P(s_k| \theta_l^k) \cdot P(\theta_l^k)

        x = \{s_1,s_2,\dots,s_N \}

       ここで

   x:文章全体

            s_k:文  or  固定長の文字列

            \theta_l:文体を表す隠れ変数

            \theta_g:文章全体を表す隠れ変数

 

 このモデルでは下図の様にRMSprop型を修正した深層モデルで

    隠れ変数\theta_l^k \ \theta_gを解いています。

 この論文では明記されていませんが下図のmodel(si,θi)はLSTMと解釈されます。

f:id:mabonki0725:20171004002831p:plain

 (1.1)手法

 自然言語の深層学習にはRNNやLSTMを使うのが一般的ですが、文体間の生成モデルなので深層学習のパラメータ更新タイプのRMSpropの更新規則を改修し使っています。

 このパラメータの調整は一般のニューロモデルと同じです。最終的に生成した文章と実際の文章の相違より逆伝播してパラメータを調整しています。

 但しパラメータの更新規則はRMSpropの修正版を使っています。

 RMSpropの更新規則は以下です。

         h_{t} = \alpha h_{t−1} + (1 - \alpha) \nabla E(\mathbf{w}^{t})^{2}

         \eta_{t} = \frac{\eta_{0}}{\sqrt{h_{t}} + \epsilon}

         \mathbf{w}^{t+1} = \mathbf{w}^{t} - \eta_{t} \nabla E(\mathbf{w}^{t})

 このRMSpropを以下に置き換えしています。

   h_{t-1} \to MS_{t-1}

         \nabla E(\mathbf{w}^t)^2  \to (\nabla \theta_l^t)^2

 また 文体の連鎖を計算するため以下を計算します。

   \mathcal{L}(s_t)\theta_l^tの生成規則で生成した文と実際の文s_tとの相違による損失量          

 ここからRMSpropの各項を計算します。

        \nabla \theta_l^t = \frac{\partial \mathcal{L}(s_t)}{\partial \theta_l^t}

     MS_t = (\nabla \theta_i^t)^2  

   よって上記の置き換えを適用すると

           MS_t = \alpha MS_{t-1} + (1 - \alpha) (\nabla \theta_l^t)^2

     \eta_t = \frac{\eta_{0}}{\sqrt{MS_{t}} + \epsilon}

           \theta_l^t \leftarrow \theta_l^{t-1} - \eta_t \nabla \theta_l^{t-1}

 各\theta_lは文章全体の隠れ変数\theta_gに収束する必要があるので、

 上式のRMSpropの更新規則に正則化項としてこの制限を追加しています。

   \theta_l^t \leftarrow \theta_l^{t-1} - \eta \frac{\nabla \theta_l^{t-1}}{\sqrt{MS_g}+\epsilon} + \lambda(\theta_g - \theta_l^{i-1}) \cdot RMS_{norm}

            ここで

                RMS_{norm} = \frac{\sqrt{MS_g}}{avg(\sqrt{MS_g})}

                MS_g= \frac{1}{N} \sum_{k=1}^N (\nabla \theta_l^k)^2

 

(1.2) 結果

 Penn Treebank の文章でのPerplexityは以下の結果となっています。

    Perplexityは文の複雑性を表し少ない程よいとされています。 

f:id:mabonki0725:20171003223428p:plain

     ここで LSTM + dynamic evalとあるのは下図の構成になっているからです。

           「Generating sequence withe recurrent neural networks」Graves (2013) より

f:id:mabonki0725:20171004072755p:plain

 (1.3) 感想

 ・\theta_gの更新規則は記述に無い様です。この辺は読み落としかもしれません。

 ・簡単なロジックなので実装は容易かもしれませんが、LSTMの調整が難しそうです。