からっぽのしょこ

読んだら書く!書いたら読む!同じ事は二度調べ(たく)ない

5.5:トピック追跡モデルの崩壊型ギブズサンプリングの導出:複数時刻のパラメータの場合【青トピックモデルのノート】

はじめに

 『トピックモデル』(MLPシリーズ)の勉強会資料のまとめです。各種モデルやアルゴリズムを「数式」と「プログラム」を用いて解説します。
 本の補助として読んでください。

 この記事では、トピック追跡モデルに対する崩壊型ギブスサンプリングの数式の行間を埋めます。

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

5.5 トピック追跡モデルの崩壊型ギブズサンプリングの導出:複数時刻のパラメータの場合

 トピック追跡モデル(TTM・topic tracking model)に対する不動点反復法(固定点反復法・fixed point iteration)を用いた崩壊型ギブスサンプリング(周辺化ギブスサンプリング・collapsed Gibbs sampling)におけるパラメータの計算式を導出する。この記事では、過去の複数時刻のパラメータを利用する場合を扱う。
 トピック追跡モデルの定義や記号については「5.5:トピック追跡モデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、1時刻前のパラメータを利用する場合については「5.5:トピック追跡モデルの崩壊型ギブズサンプリングの導出:1時刻のパラメータの場合【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

パラメータの周辺化の導出

 まずは、サンプリング式や更新式の導出に用いる各変数の周辺分布の式を導出する。

結合周辺分布の設定

 時刻  t において、パラメータ  \boldsymbol{\Theta}^{(t)}, \boldsymbol{\Phi}^{(t)} を周辺化(積分消去)したときの観測変数  \mathbf{W}^{(t)} と 潜在変数  \mathbf{Z}^{(t)} の結合分布(同時分布)を求める。

 \displaystyle
\begin{aligned}
&
p(
    \mathbf{W}^{(t)}, \mathbf{Z}^{(t)}
\mid
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
\\
   &= \iint
          p(
              \mathbf{W}^{(t)}, \mathbf{Z}^{(t)}, 
              \boldsymbol{\Theta}^{(t)}, \boldsymbol{\Phi}^{(t)}
          \mid
              \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
              \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\Theta}^{(t)} \mathrm{d} \boldsymbol{\Phi}^{(t)}
\end{aligned}

 トピック追跡モデルの生成過程(依存関係)に従って、 \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布を分割する。

 \displaystyle
\begin{align}
&
p(
    \mathbf{W}^{(t)}, \mathbf{Z}^{(t)}
\mid
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
\\
   &= p(\mathbf{Z}^{(t)} \mid \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L)
      p(\mathbf{W}^{(t)} \mid \mathbf{Z}^{(t)}, \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L)
\tag{1}
\end{align}

 トピック追跡モデルの依存関係については「トピック追跡モデルの生成モデルの導出」を参照のこと。
  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} に関する周辺分布から得られることが分かった。

トピック集合の周辺分布

  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の式(1)の1つ目の項は、トピック分布のパラメータ  \boldsymbol{\Theta}^{(t)} の事前分布を用いたトピック集合  \mathbf{Z}^{(t)} の周辺分布である。
 この式について、パラメータを明示して変形する。

 \displaystyle
\begin{aligned}
p(\mathbf{Z}^{(t)} \mid \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L)
   &= \int
          p(
              \mathbf{Z}^{(t)}, \boldsymbol{\Theta}^{(t)}
          \mid
              \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\Theta}^{(t)}
\\
   &= \int
          p(\mathbf{Z}^{(t)} \mid \boldsymbol{\Theta}^{(t)})
          p(
              \boldsymbol{\Theta}^{(t)}
          \mid
              \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\Theta}^{(t)}
\\
   &= \prod_{d=1}^D \left[ 
          \int
              p(\mathbf{z}_d^{(t)} \mid \boldsymbol{\theta}_d^{(t)})
              p(
                  \boldsymbol{\theta}_d^{(t)}
              \mid
                  \boldsymbol{\alpha}_d^{(t)}, \{\hat{\boldsymbol{\theta}}_d^{(t-l)}\}_{l=1}^L
              )
          \mathrm{d} \boldsymbol{\theta}_d^{(t)}
      \right]
\\
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{n=1}^{N_d}
                  p(z_{dn}^{(t)} \mid \boldsymbol{\theta}_d^{(t)})
              \right\}
              p(
                  \boldsymbol{\theta}_d^{(t)}
              \mid
                  \boldsymbol{\alpha}_d^{(t)}, \{\hat{\boldsymbol{\theta}}_d^{(t-l)}\}_{l=1}^L
              )
          \mathrm{d} \boldsymbol{\theta}_d^{(t)}
      \right]
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: 周辺化された  \boldsymbol{\Theta}^{(t)} を明示する。
  • 2: 潜在変数  \mathbf{Z}^{(t)} とパラメータ  \boldsymbol{\Theta}^{(t)} の項を分割する。
  • 3: 文書ごとの積に分解する。
  • 4: 単語ごとの積に分解する。

 さらに、確率分布を具体的な式に置き換えて、式を整理する。

 \displaystyle
\begin{align}
p(\mathbf{Z}^{(t)} \mid \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L)
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{n=1}^{N_d}
                  \theta_{dz_{dn}^{(t)}}^{(t)}
              \right\}
              \frac{
                  \Gamma(\sum_{k=1}^K \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
              }{
                  \prod_{k=1}^K
                      \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
              }
              \left\{ \prod_{k=1}^K
                  (\theta_{dk}^{(t)})^{\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)} - 1}
              \right\}
          \mathrm{d} \boldsymbol{\theta}_d^{(t)}
      \right]
\\
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{k=1}^K
                  (\theta_{dk}^{(t)})^{N_{dk}^{(t)}}
              \right\}
              \frac{
                  \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
              }{
                  \prod_{k=1}^K
                      \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
              }
              \left\{ \prod_{k=1}^K
                  (\theta_{dk}^{(t)})^{\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)} - 1}
              \right\}
          \mathrm{d} \boldsymbol{\theta}_d^{(t)}
      \right]
\\
   &= \prod_{d=1}^D \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
          }{
              \prod_{k=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          }
          \int \prod_{k=1}^K
              (\theta_{dk}^{(t)})^{
                  N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)} - 1
              }
          \mathrm{d} \boldsymbol{\theta}_d^{(t)}
      \right\}
\\
   &= \prod_{d=1}^D \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
          }{
              \prod_{k=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          }
          \frac{
              \prod_{k=1}^K
                  \Gamma(N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          }{
              \Gamma(
                  \sum_{k=1}^K \{
                      N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
                  \}
              )
          }
      \right\}
\\
   &= \prod_{d=1}^D \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
          }{
              \prod_{k=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          }
          \frac{
              \prod_{k=1}^K
                  \Gamma(N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          }{
              \Gamma(N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)})
          }
      \right\}
\tag{2}\\
   &= \prod_{d=1}^D \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
          }{
              \Gamma(N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)})
          }
          \prod_{k=1}^K
              \frac{
                  \Gamma(N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
              }{
                  \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
              }
      \right\}
\tag{2'}
\end{align}

途中式の途中式(クリックで展開)


  • 1: 各単語のトピック  z_{dn}^{(t)} はカテゴリ分布、各文書のトピック分布のパラメータ  \boldsymbol{\theta}_d^{(t)} はディリクレ分布を仮定しているので、それぞれ定義式に置き換える。
 \displaystyle
\begin{aligned}
p(z_{dn}^{(t)} \mid \boldsymbol{\theta}_d^{(t)})
   &= \mathrm{Cat}(z_{dn}^{(t)} \mid \boldsymbol{\theta}_d^{(t)})
    = \theta_{dz_{dn}^{(t)}}^{(t)}
\\
p(
    \boldsymbol{\theta}_d^{(t)}
\mid
    \boldsymbol{\alpha}_d^{(t)}, \{\hat{\boldsymbol{\theta}}_d^{(t-l)}\}_{l=1}^L
)
   &= \mathrm{Dir} \left(
          \boldsymbol{\theta}_d^{(t)}
      \;\middle|\;
          \Bigl\{
              \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
          \Bigr\}_{k=1}^K
      \right)
    = \frac{
          \Gamma(\sum_{k=1}^K \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
      }{
          \prod_{k=1}^K
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
      }
      \prod_{k=1}^K
          (\theta_{dk}^{(t)})^{\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)} - 1}
\end{aligned}

 トピック分布のパラメータの定義  \sum_{k=1}^K \theta_{dk} = 1 より、正規化項について次の項となる。

 \displaystyle
\sum_{k=1}^K \sum_{l=1}^L
    \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
    = \sum_{l=1}^L \left\{
          \alpha_{dl}^{(t)}
          \sum_{k=1}^K
              \hat{\theta}_{dk}^{(t-l)}
      \right\}
    = \sum_{l=1}^L
          \alpha_{dl}^{(t)}
  • 2:  N_d^{(t)} 個の単語に対応するパラメータ  \theta_{dz_{dn}^{(t)}}^{(t)} について、各単語に割り当てられたトピック番号  z_{dn}^{(t)} = k を用いてトピックごとにまとめると、 N_{dk}^{(t)} 個の  \theta_{dk}^{(t)} に置き換えられる。
  • 3:  \boldsymbol{\theta}_d^{(t)} と無関係な正規化項を  \int の外に出し、 \theta_{dk}^{(t)} の項をまとめる。
  • 4: ディリクレ分布の正規化項(1.2.4項)より、積分全体を正規化項の逆数の形に置き換える。
  • 5: トピックごとの単語数の関係より、 N_d^{(t)} = \sum_{k=1}^K N_{dk}^{(t)} である。
  • 6: 不動点反復法を行うために、分母を入れ替えて  \alpha_{dl}^{(t)}, \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)} の項をそれぞれまとめる。

  \mathbf{Z}^{(t)} の周辺分布の式が得られた。

文書集合の周辺分布

  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の式(1)の後の項は、単語分布のパラメータ  \boldsymbol{\Phi}^{(t)} の事前分布を用いた文書集合  \mathbf{W}^{(t)} の周辺分布である。
 この式について、パラメータを明示して変形する。

 \displaystyle
\begin{aligned}
p(\mathbf{W}^{(t)} \mid \mathbf{Z}^{(t)}, \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L)
   &= \int
          p(
              \mathbf{W}^{(t)}, \boldsymbol{\Phi}^{(t)}
          \mid
              \mathbf{Z}^{(t)}, \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\Phi}^{(t)}
\\
   &= \int
          p(\mathbf{W}^{(t)} \mid \mathbf{Z}^{(t)}, \boldsymbol{\Phi}^{(t)})
          p(
              \boldsymbol{\Phi}^{(t)}
          \mid
              \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\Phi}^{(t)}
\\
   &= \int
          \left\{ \prod_{d=1}^D
              p(\mathbf{w}_d^{(t)} \mid \mathbf{z}_d^{(t)}, \boldsymbol{\Phi}^{(t)})
          \right\}
          \prod_{k=1}^K
              p(
                  \boldsymbol{\phi}_k^{(t)}
              \mid
                  \boldsymbol{\beta}_k^{(t)}, \{\hat{\boldsymbol{\phi}}_k^{(t-l)}\}_{l=1}^L
              )
      \mathrm{d} \boldsymbol{\Phi}^{(t)}
\\
   &= \int
          \left\{ \prod_{d=1}^D \prod_{n=1}^{N_d}
              p(w_{dn}^{(t)} \mid \boldsymbol{\phi}_{z_{dn}^{(t)}}^{(t)})
          \right\}
          \prod_{k=1}^K
              p(
                  \boldsymbol{\phi}_k^{(t)}
              \mid
                  \boldsymbol{\beta}_k^{(t)}, \{\hat{\boldsymbol{\phi}}_k^{(t-l)}\}_{l=1}^L
              )
      \mathrm{d} \boldsymbol{\Phi}^{(t)}
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: 周辺化された  \boldsymbol{\Phi}^{(t)} を明示する。
  • 2: 観測変数  \mathbf{W}^{(t)} とパラメータ  \boldsymbol{\Phi}^{(t)} の項を分割する。
  • 3: 文書・トピックごとの積に分解する。
  • 4: 単語ごとの積に分解する。

 さらに、確率分布を具体的な式に置き換えて、式を整理する。

 \displaystyle
\begin{align}
p(\mathbf{W}^{(t)} \mid \mathbf{Z}^{(t)}, \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L)
   &= \int
          \left\{ \prod_{d=1}^D \prod_{n=1}^{N_d}
              \phi_{z_{dn}^{(t)}w_{dn}^{(t)}}^{(t)}
          \right\}
          \prod_{k=1}^K \left\{
              \frac{
                  \Gamma(\sum_{v=1}^V \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
              }{
                  \prod_{v=1}^V
                      \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
              }
              \prod_{v=1}^V
                  (\phi_{kv}^{(t)})^{\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)} - 1}
          \right\}
      \mathrm{d} \boldsymbol{\Phi}^{(t)}
\\
   &= \int
          \left\{ \prod_{k=1}^K \prod_{v=1}^V
              (\phi_{kv}^{(t)})^{N_{kv}^{(t)}}
          \right\}
          \prod_{k=1}^K \left\{
              \frac{
                  \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
              }{
                  \prod_{v=1}^V
                      \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
              }
              \prod_{v=1}^V
                  (\phi_{kv}^{(t)})^{\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)} - 1}
          \right\}
      \mathrm{d} \boldsymbol{\Phi}^{(t)}
\\
   &= \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
          }{
              \prod_{v=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
          }
          \int
              \prod_{v=1}^V
                  (\phi_{kv}^{(t)})^{
                      N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)} - 1
                  }
          \mathrm{d} \boldsymbol{\phi}_k^{(t)}
      \right\}
\\
   &= \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
          }{
              \prod_{v=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
          }
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
          }{
              \Gamma(
                  \sum_{v=1}^V \{
                      N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
                  \}
              )
          }
      \right\}
\\
   &= \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
          }{
              \prod_{v=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
          }
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
          }{
              \Gamma(N_k^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
          }
      \right\}
\tag{3}\\
   &= \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
          }{
              \Gamma(N_k^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
          }
          \prod_{v=1}^V
              \frac{
                  \Gamma(N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
              }{
                  \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
              }
      \right\}
\tag{3'}
\end{align}

途中式の途中式(クリックで展開)


  • 1: 各単語の語彙  w_{dn}^{(t)} はカテゴリ分布、各トピックの単語分布のパラメータ  \boldsymbol{\phi}_k^{(t)} はディリクレ分布を仮定しているので、それぞれ定義式に置き換える。
 \displaystyle
\begin{aligned}
p(w_{dn}^{(t)} \mid \boldsymbol{\phi}_{z_{dn}^{(t)}}^{(t)})
   &= \mathrm{Cat}(w_{dn}^{(t)} \mid \boldsymbol{\phi}_{z_{dn}^{(t)}}^{(t)})
    = \phi_{z_{dn}^{(t)}w_{dn}^{(t)}}^{(t)}
\\
p(
    \boldsymbol{\phi}_k^{(t)}
\mid
    \boldsymbol{\beta}_k^{(t)}, \{\hat{\boldsymbol{\phi}}_k^{(t-l)}\}_{l=1}^L
)
   &= \mathrm{Dir} \left(
          \boldsymbol{\phi}_k^{(t)}
      \;\middle|\;
          \Bigl\{
              \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
          \Bigr\}_{v=1}^V
      \right)
    = \frac{
        \Gamma(\sum_{v=1}^V \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
    }{
        \prod_{v=1}^V
            \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
    }
      \prod_{v=1}^V
          (\phi_{kv}^{(t)})^{\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)} - 1}
\end{aligned}

 単語分布のパラメータの定義  \sum_{v=1}^V \phi_{kv} = 1 より、正規化項について次の項となる。

 \displaystyle
\sum_{v=1}^V \sum_{l=1}^L
    \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
    = \sum_{l=1}^L \left\{
          \beta_{kl}^{(t)}
          \sum_{v=1}^V
              \hat{\phi}_{kv}^{(t-l)}
      \right\}
    = \sum_{l=1}^L
          \beta_{kl}^{(t)}
  • 2:  N^{(t)} = \sum_{d=1}^D N_d^{(t)} 個の単語に対応するパラメータ  \phi_{z_{dn}^{(t)}w_{dn}^{(t)}}^{(t)} について、各単語に割り当てられたトピック番号  z_{dn}^{(t)} = k と語彙番号  w_{dn}^{(t)} = v を用いてトピックと語彙ごとにまとめると、 N_{kv}^{(t)} 個の  \phi_{kv}^{(t)} に置き換えられる。
  • 3:  \boldsymbol{\phi}_k^{(t)} と無関係な正規化項を  \int の外に出し、 \phi_{kv}^{(t)} の項をまとめる。
  • 4: ディリクレ分布の正規化項(1.2.4項)より、積分全体を正規化項の逆数の形に置き換える。
  • 5: トピックごとの単語数の関係より、 N_k^{(t)} = \sum_{v=1}^V N_{kv}^{(t)} である。
  • 6: 不動点反復法を行うために、分母を入れ替えて  \beta_{kl}^{(t)}, \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)} の項をそれぞれまとめる。

  \mathbf{W}^{(t)} の周辺分布の式が得られた。

結合周辺分布

  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の式(1)に、 \mathbf{Z}^{(t)} の周辺分布の式(2')と  \mathbf{W}^{(t)} の周辺分布の式(3')を求める。

 \displaystyle
\begin{aligned}
p(
    \mathbf{W}^{(t)}, \mathbf{Z}^{(t)}
\mid
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
   &= \prod_{d=1}^D \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
          }{
              \Gamma(N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)})
          }
          \prod_{k=1}^K
              \frac{
                  \Gamma(N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
              }{
                  \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
              }
      \right\}
\\
   &\quad * 
      \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
          }{
              \Gamma(N_k^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
          }
          \prod_{v=1}^V
              \frac{
                  \Gamma(N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
              }{
                  \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
              }
      \right\}
\end{aligned}

  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の式が得られた。

 以上で、各変数の周辺分布の式と、結合周辺分布の式が得られた。

スポンサードリンク

サンプリング式の導出

 次は、各変数の周辺分布を用いて、各潜在変数のサンプリング確率(条件付き分布)を導出する。

 時刻  t における文書  d n 番目の単語  w_{dn}^{(t)} を除いた文書集合を  \mathbf{W}_{\backslash tdn}^{(t)}、トピック集合を  \mathbf{Z}_{\backslash tdn}^{(t)} とする。全ての文書集合は  \mathbf{W}^{(t)} = \{w_{dn}^{(t)}, \mathbf{W}_{\backslash tdn}^{(t)}\}、全てのトピック集合は  \mathbf{Z}^{(t)} = \{z_{dn}^{(t)}, \mathbf{Z}_{\backslash tdn}^{(t)}\} で表せる。
 同様に、 w_{dn}^{(t)} を除く単語数を  N_{dk \backslash tdn}^{(t)}, N_{kv \backslash tdn}^{(t)}, N_{k \backslash tdn}^{(t)} で表す。

トピックの条件付き分布の設定

 時刻  t において、全単語の文書集合  \mathbf{W}^{(t)} と単語  w_{dn}^{(t)} 以外のトピック集合  \mathbf{Z}_{\backslash tdn}^{(t)} が与えられた(条件とする)ときの単語  w_{dn}^{(t)} のトピック  z_{dn}^{(t)} の条件付き分布を求める。

 \displaystyle
\begin{align}
&
p(
    z_{dn}^{(t)} = k
\mid
    \mathbf{W}^{(t)}, 
    \mathbf{Z}_{\backslash tdn}^{(t)}, 
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
\\
   &= \frac{
          p(
              w_{dn}^{(t)}, \mathbf{W}_{\backslash tdn}^{(t)}, 
              z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \mid
              \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
              \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      }{
          p(
               w_{dn}^{(t)}, \mathbf{W}_{\backslash tdn}^{(t)}, 
              \mathbf{Z}_{\backslash tdn}^{(t)}
          \mid
              \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
              \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      }
\\
   &\propto
      p(
          w_{dn}^{(t)}, \mathbf{W}_{\backslash tdn}^{(t)}, 
          z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}, 
      \mid
          \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
          \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
      )
\\
   &= p(
          z_{dn}^{(t)} = k
      \mid
          \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
      )
      p(
          w_{dn}^{(t)}
      \mid
          \mathbf{W}_{\backslash tdn}^{(t)}, 
          z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
      )
\\
   &\quad * 
      p(
          \mathbf{Z}_{\backslash tdn}^{(t)}
      \mid
          \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
      )
      p(
          \mathbf{W}_{\backslash tdn}^{(t)}
      \mid
          \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
      )
\\
   &\propto
      p(
          z_{dn}^{(t)} = k
      \mid
          \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
      )
      p(
          w_{dn}^{(t)}
      \mid
          \mathbf{W}_{\backslash tdn}^{(t)}, 
          z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
      )
\tag{4}
\end{align}

途中式の途中式(クリックで展開)


  • 1: 条件付き確率より、目的の変数  z_{dn}^{(t)} 以外の変数  w_{dn}^{(t)}, \mathbf{W}_{\backslash tdn}^{(t)}, \mathbf{Z}_{\backslash tdn}^{(t)} を条件に移した式を立てる。
  • 2:  z_{dn}^{(t)} と無関係な項を省く。
  • 3: 変数ごとの項に分割する。

 単語  w_{dn}^{(t)} に関する変数  w_{dn}^{(t)}, z_{dn}^{(t)} と単語  w_{dn}^{(t)} 以外に関する変数  \mathbf{W}_{\backslash t}^{(t)}, \mathbf{Z}_{\backslash tdn}^{(t)} の項を分割する。

 \displaystyle
\begin{aligned}
&
p(
    w_{dn}^{(t)}, \mathbf{W}_{\backslash tdn}^{(t)}, 
    z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}
\mid
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
\\
   &= p(
          w_{dn}^{(t)}, z_{dn}^{(t)} = k
      \mid
          \mathbf{W}_{\backslash tdn}^{(t)}, \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
          \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
      )
\\
   &\quad * 
      p(
          \mathbf{W}_{\backslash tdn}^{(t)}, \mathbf{Z}_{\backslash tdn}^{(t)}
      \mid
          \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
          \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
      )
\end{aligned}

 さらに前の項の、観測変数  w_{dn}^{(t)} と潜在変数  z_{dn}^{(t)} の項を分割する。

 \displaystyle
\begin{aligned}
&
p(
    w_{dn}^{(t)}, z_{dn}^{(t)} = k
\mid
    \mathbf{W}_{\backslash tdn}^{(t)}, \mathbf{Z}_{\backslash tdn}^{(t)}, 
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
\\
   &= p(
          w_{dn}^{(t)}
      \mid
          \mathbf{W}_{\backslash tdn}^{(t)}, z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
      )
      p(
          z_{dn}^{(t)} = k
      \mid
          \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
      )
\end{aligned}

 後の項の、観測変数  \mathbf{W}_{\backslash tdn}^{(t)} と潜在変数  \mathbf{Z}_{\backslash tdn}^{(t)} の項を分割する。

 \displaystyle
\begin{aligned}
&
p(
    \mathbf{W}_{\backslash tdn}^{(t)}, \mathbf{Z}_{\backslash tdn}^{(t)}, 
\mid
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
\\
   &= p(
          \mathbf{W}_{\backslash tdn}^{(t)}
      \mid
          \mathbf{Z}_{\backslash tdn}^{(t)}, 
          \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
      )
      p(
          \mathbf{Z}_{\backslash tdn}^{(t)}, 
      \mid
          \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
      )
\end{aligned}
  • 4:  z_{dn}^{(t)} と無関係な項を省く。

  z_{dn}^{(t)} に影響しない項を省いて比例関係のみに注目すると、 w_{dn}^{(t)}, z_{dn}^{(t)} に関する事後周辺分布から得られることが分かった。

トピックの事後周辺分布

  z_{dn}^{(t)} の条件付き分布の式(4)の前の項は、単語  w_{dn}^{(t)} 以外のトピック集合  \mathbf{Z}_{\backslash tdn}^{(t)} が与えられたときの単語  w_{dn}^{(t)} のトピック  z_{dn}^{(t)} の周辺分布である。
 この式は、 \mathbf{Z}^{(t)} の周辺分布の式(2)を用いて求められる。

 \displaystyle
\begin{align}
p(
    z_{dn}^{(t)} = k
\mid
    \mathbf{Z}_{\backslash tdn}^{(t)}, 
    \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
)
   &= \frac{
          p(
              z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}
          \mid
              \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
          )
      }{
          p(
              \mathbf{Z}_{\backslash tdn}^{(t)}
          \mid
              \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
          )
      }
\\
   &= \frac{
          \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
      }{
          \prod_{k'=1}^K
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }
      \frac{
          \Gamma(N_{dk \backslash tdn}^{(t)} + 1 + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          \prod_{k' \neq k}
              \Gamma(N_{dk' \backslash tdn}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }{
          \Gamma(N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)})
      }
\\
   &\qquad * 
      \prod_{d' \neq d}
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)})
          }{
              \prod_{k'=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d'k' \backslash tdn}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }{
              \Gamma(N_{d'}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)})
          }
\\
   &\quad * 
      \frac{
          \prod_{k'=1}^K
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }{
          \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
      }
      \frac{
          \Gamma(N_d^{(t)} - 1 + \sum_{l=1}^L \alpha_{dl}^{(t)})
      }{
          \prod_{k'=1}^K
              \Gamma(
                  N_{dk' \backslash tdn}^{(t)}
                  + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)}
              )
      }
\\
   &\qquad * 
      \prod_{d' \neq d}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }{
              \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)})
          }
          \frac{
              \Gamma(N_{d'}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)})
          }{
              \prod_{k'=1}^K
                  \Gamma(
                      N_{d'k' \backslash tdn}^{(t)}
                      + \sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)}
                  )
          }
\\
   &= \frac{
          (
              N_{dk \backslash tdn}^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
          )
          \Gamma(
              N_{dk \backslash tdn}^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
          )
          \prod_{k' \neq k}
              \Gamma(
                  N_{dk' \backslash tdn}^{(t)}
                  + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)}
              )
      }{
          (N_d^{(t)} - 1 + \sum_{l=1}^L \alpha_{dl}^{(t)})
          \Gamma(N_d^{(t)} - 1 + \sum_{l=1}^L \alpha_{dl}^{(t)})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_d^{(t)} - 1 + \sum_{l=1}^L \alpha_{dl}^{(t)})
      }{
          \prod_{k'=1}^K
              \Gamma(
                  N_{dk' \backslash tdn}^{(t)}
                  + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)}
              )
      }
\\
   &= \frac{
          N_{dk \backslash tdn}^{(t)}
          + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
      }{
          N_d^{(t)} - 1
          + \sum_{l=1}^L \alpha_{dl}^{(t)}
      }
\tag{5}
\end{align}

途中式の途中式(クリックで展開)


  • 1: 条件付き確率より、目的の変数  z_{dn}^{(t)} 以外の変数  \mathbf{Z}_{\backslash tdn}^{(t)} を条件に移した式を立てる。
  • 2: 式(2)を用いて、分母分子を具体的な式に置き換える。

  \mathbf{Z}^{(t)} の周辺分布(分子)は式(2)であり、 \mathbf{Z}_{\backslash tdn}^{(t)} の周辺分布(分母)は式(2)から単語  w_{dn}^{(t)} に関して取り除いた式である。

 \displaystyle
\begin{align}
p(
    z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}
\mid
    \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
)
   &= \prod_{d'=1}^D \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)})
          }{
              \prod_{k'=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d'k'}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }{
              \Gamma(N_{d'}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)})
          }
      \right\}
\tag{2}\\
p(
    \mathbf{Z}_{\backslash tdn}^{(t)}
\mid
    \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
)
   &= \prod_{d'=1}^D \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)})
          }{
              \prod_{k'=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d'k' \backslash tdn}^{(t)}  + \sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }{
              \Gamma(N_{d' \backslash tdn}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)})
          }
      \right\}
\end{align}

 ただし、次の関係である。詳しくは「トピックモデル(基本形)の一様版」を参照のこと。

 \displaystyle
\begin{aligned}
N_{dk}^{(t)}
   &= \begin{cases}
          N_{dk \backslash tdn}^{(t)} + 1
             &\quad
                (z_{dn}^{(t)} = k) \\
          N_{dk \backslash tdn}^{(t)}
             &\quad
                (z_{dn}^{(t)} \neq k)
      \end{cases}
\\
N_{d \backslash tdn}^{(t)}
   &= N_d^{(t)} - 1
\end{aligned}

  \mathbf{Z}^{(t)} の周辺分布の式について  N_{dk}^{(t)} N_{dk \backslash tdn}^{(t)} \mathbf{Z}_{\backslash tdn}^{(t)} の周辺分布の式について  N_{d \backslash tdn}^{(t)} N_d^{(t)} に置き換える。
 文書  d やトピック  k の項のみ形が異なるので、 \prod_{d=1}^D, \prod_{k=1}^K から取り出しておく。

  • 3: ガンマ関数の性質  \Gamma(x) = (x - 1) \Gamma(x - 1) より、項を変形する。
  • 4:  k に関する総乗  \prod_{k'=1}^K \Gamma(x_{k'}) = \Gamma(x_k) \prod_{k' \neq k} \Gamma(x_{k'}) なので、約分すると  d, k に関する項のみが残る。

  z_{dn}^{(t)} (に割り当てられるトピック  k )の事後周辺分布の式が得られた。

単語の事後周辺分布

  z_{dn}^{(t)} の条件付き分布の式(4)の後の項は、単語  w_{dn}^{(t)} 以外の文書集合  \mathbf{W}_{\backslash tdn}^{(t)} と全単語のトピック集合  \mathbf{Z}^{(t)} が与えられたときの単語  w_{dn}^{(t)} の周辺分布である。
 この式は、 \mathbf{W}^{(t)} の周辺分布の式(3)を用いて求められる。

 \displaystyle
\begin{align}
p(
    w_{dn}^{(t)}
\mid
    \mathbf{W}_{\backslash tdn}^{(t)}, 
    z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}, 
    \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
   &= \frac{
          p(
              w_{dn}^{(t)}, \mathbf{W}_{\backslash tdn}^{(t)}
          \mid
              z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}, 
              \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      }{
          p(
              \mathbf{W}_{\backslash tdn}^{(t)}
          \mid
              \mathbf{Z}_{\backslash tdn}^{(t)}, 
              \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      }
\\
   &= \frac{
          \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
      }{
          \prod_{v=1}^V 
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
      }
      \frac{
          \Gamma(N_{kw_{dn}^{(t)} \backslash tdn}^{(t)} + 1
          + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kw_{dn}^{(t)}}^{(t-l)})
          \prod_{v \neq w_{dn}^{(t)}}
              \Gamma(
                  N_{kv \backslash tdn}^{(t)}
                  + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
              )
      }{
          \Gamma(N_{k \backslash tdn}^{(t)} + 1 + \sum_{l=1}^L \beta_{kl}^{(t)})
      }
\\
   &\qquad * 
      \prod_{k' \neq k}
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)})
          }{
              \prod_{v=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v}^{(t-l)})
          }
          \frac{
              \prod_{v=1}^V
                  \Gamma(
                      N_{k'v \backslash tdn}^{(t)}
                      + \sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v}^{(t-l)}
                  )
          }{
              \Gamma(N_{k' \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)})
          }
\\
   &\quad * 
      \frac{
          \prod_{v=1}^V
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
      }{
          \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
      }
      \frac{
          \Gamma(N_{k \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
      }{
          \prod_{v=1}^V
              \Gamma(
                  N_{kv \backslash tdn}^{(t)}
                  + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
              )
      }
\\
   &\qquad * 
      \prod_{k' \neq k}
          \frac{
              \prod_{v=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v}^{(t-l)})
          }{
              \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)})
          }
          \frac{
              \Gamma(N_{k' \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)})
          }{
              \prod_{v=1}^V
                  \Gamma(N_{k'v \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v}^{(t-l)})
          }
\\
   &= \frac{
          (
              N_{kw_{dn}^{(t)} \backslash tdn}^{(t)}
              + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kw_{dn}^{(t)}}^{(t-l)}
          )
          \Gamma(
              N_{kw_{dn}^{(t)} \backslash tdn}^{(t)}
              + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kw_{dn}^{(t)}}^{(t-l)}
          )
          \prod_{v \neq w_{dn}^{(t)}}
              \Gamma(
                  N_{kv \backslash tdn}^{(t)}
                  + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
              )
      }{
          (N_{k \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
          \Gamma(N_{k \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_{k \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
      }{
          \prod_{v=1}^V
              \Gamma(
                  N_{kv \backslash tdn}^{(t)}
                  + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
              )
      }
\\
   &= \frac{
          N_{kw_{dn}^{(t)} \backslash tdn}^{(t)}
          + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kw_{dn}^{(t)}}^{(t-l)}
      }{
          N_{k \backslash tdn}^{(t)}
          + \sum_{l=1}^L \beta_{kl}^{(t)}
      }
\tag{6}
\end{align}

途中式の途中式(クリックで展開)


  • 1: 条件付き確率より、目的の変数  w_{dn}^{(t)} 以外の変数  \mathbf{W}_{\backslash tdn}^{(t)} を条件に移した式を立てる。
  • 2: 式(3)を用いて、分母分子を具体的な式に置き換える。

  \mathbf{W}^{(t)} の周辺分布(分子)は式(3)であり、 \mathbf{W}_{\backslash tdn}^{(t)} の周辺分布(分母)は式(3)から単語  w_{dn}^{(t)} に関して取り除いた式である。

 \displaystyle
\begin{align}
p(
    w_{dn}^{(t)}, \mathbf{W}_{\backslash tdn}^{(t)}
\mid
    z_{dn}^{(t)} = k, \mathbf{Z}_{\backslash tdn}^{(t)}, 
    \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
   &= \prod_{k'=1}^K \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)})
          }{
              \prod_{v=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v}^{(t-l)})
          }
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{k'v}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v}^{(t-l)})
          }{
              \Gamma(N_{k'}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)})
          }
      \right\}
\tag{3}\\
p(
    \mathbf{W}_{\backslash tdn}^{(t)}
\mid
    \mathbf{Z}_{\backslash tdn}^{(t)}, 
    \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
   &= \prod_{k'=1}^K \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)})
          }{
              \prod_{v=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v}^{(t-l)})
          }
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{k'v \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v}^{(t-l)})
          }{
              \Gamma(N_{k' \backslash tdn}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)})
          }
      \right\}
\end{align}

 ただし、次の関係である。詳しくは「トピックモデル(基本形)の一様版」を参照のこと。

 \displaystyle
\begin{aligned}
N_{kw_{dn}^{(t)}}
   &= \begin{cases}
          N_{kw_{dn}^{(t)} \backslash tdn} + 1
             &\quad
                (z_{dn}^{(t)} = k) \\
          N_{kw_{dn}^{(t)} \backslash tdn}
             &\quad
                (z_{dn}^{(t)} \neq k)
      \end{cases}
\\
N_k^{(t)}
   &= \begin{cases}
          N_{k \backslash tdn}^{(t)} + 1
             &\quad
                (z_{dn}^{(t)} = k) \\
          N_{k \backslash tdn}^{(t)}
             &\quad
                (z_{dn}^{(t)} \neq k)
      \end{cases}
\end{aligned}

  \mathbf{W}^{(t)} の周辺分布の式について、 N_{kv}^{(t)}, N_k^{(t)} N_{kv \backslash tdn}^{(t)}, N_{k \backslash tdn}^{(t)} に置き換える。
 トピック  k や語彙  w_{dn}^{(t)} の項のみ形が異なるので、 \prod_{k=1}^K, \prod_{v=1}^V から取り出しておく。

  • 3: ガンマ関数の性質より、項を変形する。
  • 4:  v に関する総乗  \prod_{v'=1}^V \Gamma(x_{v'}) = \Gamma(x_v) \prod_{v' \neq v} \Gamma(x_{v'}) なので、約分すると  d, v = w_{dn}^{(t)} に関する項のみが残る。

  w_{dn}^{(t)} の事後周辺分布の式が得られた。

トピックの条件付き分布

  z_{dn}^{(t)} の条件付き分布の式(4)に、 z_{dn}^{(t)} の事後周辺分布の式(5)と  w_{dn}^{(t)} の事後周辺分布の式(6)を代入する。

 \displaystyle
\begin{aligned}
p(
    z_{dn}^{(t)} = k
\mid
    \mathbf{W}^{(t)}, \mathbf{Z}_{\backslash tdn}^{(t)}, 
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
   &= \frac{
          N_{dk \backslash tdn}^{(t)}
          + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
      }{
          N_d^{(t)} - 1
          + \sum_{l=1}^L \alpha_{dl}^{(t)}
      }
      \frac{
          N_{kw_{dn}^{(t)} \backslash tdn}^{(t)}
          + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kw_{dn}^{(t)}}^{(t-l)}
      }{
          N_{k \backslash tdn}^{(t)}
          + \sum_{l=1}^L \beta_{kl}^{(t)}
      }
\\
   &= \left(
          N_{dk \backslash tdn}^{(t)}
          + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
      \right)
      \frac{
          N_{kw_{dn}^{(t)} \backslash tdn}^{(t)}
          + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kw_{dn}^{(t)}}^{(t-l)}
      }{
          N_{k \backslash tdn}^{(t)}
          + \sum_{l=1}^L \beta_{kl}^{(t)}
      }
\end{aligned}

  z_{dn}^{(t)} = k に影響しない項を省いた。他のトピックについても同様に計算でき、全てのトピックに関する和で割ると正規化できる。
  z_{dn}^{(t)} の条件付き分布の式が得られた。

 以上で、各潜在変数のサンプリング式が得られた。

スポンサードリンク

ハイパーパラメータの更新式の導出

 続いて、サンプリングしたトピック集合を用いて、全変数の結合周辺分布を最大化するハイパーパラメータを推定する。しかし、解析的に求められない。そこで、不動点反復法により結合周辺分布の下限を繰り返し更新することで最大化を行うための各分布のハイパーパラメータの更新式を導出する。

結合周辺分布の下限の設定

  \mathbf{Z}^{(t)} の周辺分布の式(2')を

 \displaystyle
\begin{align}
p(\mathbf{Z}^{(t)} \mid \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l')}\}_{l'=1}^L)
   &= \prod_{d=1}^D \left\{
          \frac{
              \Gamma(\sum_{l'=1}^L \alpha_{dl'}^{(t)})
          }{
              \Gamma(N_d^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)})
          }
          \prod_{k=1}^K
              \frac{
                  \Gamma(N_{dk}^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')})
              }{
                  \Gamma(\sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')})
              }
      \right\}
\tag{2'}\\
   &\geq
      \prod_{d=1}^D \left[
          \frac{
              \Gamma(\sum_{l'=1}^L \alpha_{dl'}^{(t)})
          }{
              \Gamma(N_d^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)})
          }
          \exp \Bigl(
              (\alpha_{dl}^{(t)} - \alpha_{dl}^{(t, \mathrm{new})})
              b_{\alpha}
          \Bigr)
          \prod_{k=1}^K \left\{
              \frac{
                  \Gamma(N_{dk}^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')})
              }{
                  \Gamma(\sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')})
              }
              (\alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})^{-a_{\alpha}}
              (\alpha_{dl}^{(t, \mathrm{new})} \hat{\theta}_{dk}^{(t-l)})^{a_{\alpha}}
          \right\}
      \right]
\end{align}

と変形し、また  \mathbf{W}^{(t)} の周辺分布の式(3')を

 \displaystyle
\begin{align}
p(\mathbf{W}^{(t)} \mid \mathbf{Z}^{(t)}, \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l')}\}_{l'=1}^L)
   &= \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{l'=1}^L \beta_{kl'}^{(t)})
          }{
              \Gamma(N_k^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)})
          }
          \prod_{v=1}^V
              \frac{
                  \Gamma(N_{kv}^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              }{
                  \Gamma(\sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              }
      \right\}
\tag{3'}\\
   &\geq
      \prod_{k=1}^K \left[
          \frac{
              \Gamma(\sum_{l'=1}^L \beta_{kl'}^{(t)})
          }{
              \Gamma(N_k^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)})
          }
          \exp \Bigl(
              (\beta_{kl}^{(t)} - \beta_{kl}^{(t, \mathrm{new})})
              b_{\beta}
          \Bigr)
          \prod_{v=1}^V \left\{
              \frac{
                  \Gamma(N_{kv}^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              }{
                  \Gamma(\sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              }
              (\beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})^{-a_{\beta}}
              (\beta_{kl}^{(t, \mathrm{new})} \hat{\phi}_{kv}^{(t-l)})^{a_{\beta}}
          \right\}
      \right]
\end{align}

と変形して、 \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の式(1)を置き換え下限  G とおく。

 \displaystyle
\begin{aligned}
p(
    \mathbf{Z}^{(t)}, \mathbf{W}^{(t)}
\mid
    \boldsymbol{\alpha}^{(t)}, \boldsymbol{\beta}^{(t)}, 
    \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l'=1}^L, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l'=1}^L
)
   &\geq
      \prod_{d=1}^D \Biggl[
          \frac{
              \Gamma(\sum_{l'=1}^L \alpha_{dl'}^{(t)})
          }{
              \Gamma(N_d^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)})
          }
          \exp \Bigl(
              (\alpha_{dl}^{(t)} - \alpha_{dl}^{(t, \mathrm{new})})
              b_{\alpha}
          \Bigr)
      \Biggr.
\\
   &\qquad \qquad * 
      \Biggl.
          \prod_{k=1}^K \Biggl\{
              \frac{
                  \Gamma(N_{dk}^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')})
              }{
                  \Gamma(\sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')})
              }
              (\alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})^{-a_{\alpha}}
              (\alpha_{dl}^{(t, \mathrm{new})} \hat{\theta}_{dk}^{(t-l)})^{a_{\alpha}}
          \Biggr\}
      \Biggr]
\\
   &\quad * 
      \prod_{k=1}^K \Biggl[
          \frac{
              \Gamma(\sum_{l'=1}^L \beta_{kl'}^{(t)})
          }{
              \Gamma(N_k^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)})
          }
          \exp \Bigl(
              (\beta_{kl}^{(t)} - \beta_{kl}^{(t, \mathrm{new})})
              b_{\beta}
          \Bigr)
      \Biggr.
\\
   &\qquad \qquad * 
      \Biggl.
          \prod_{v=1}^V \Biggl\{
              \frac{
                  \Gamma(N_{kv}^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              }{
                  \Gamma(\sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              }
              (\beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})^{-a_{\beta}}
              (\beta_{kl}^{(t, \mathrm{new})} \hat{\phi}_{kv}^{(t-l)})^{a_{\beta}}
          \Biggr\}
      \Biggr]
    \equiv
      G
\end{aligned}

 また、次のようにおいた。

 \displaystyle
\begin{aligned}
a_{\alpha}
   &= \left(
          \Psi \Bigl(
              N_{dk}^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
          \Bigr)
          - \Psi \Bigl(
              \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
            \Bigr)
      \right)
      \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
\\
b_{\alpha}
   &= \Psi \Bigl(
          N_d^{(t)}
          + \sum_{l=1}^L \alpha_{dl}^{(t)}
      \Bigr)
      - \Psi \Bigl(
          \sum_{l=1}^L \alpha_{dl}^{(t)}
        \Bigr)
\\
a_{\beta}
   &= \Bigl(
          \Psi \left(
              N_{kv}^{(t)}
              + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
          \Bigr)
          - \Psi \Bigl(
              \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
            \Bigr)
      \right)
      \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
\\
b_{\beta}
   &= \Psi \Bigl(
          N_k^{(t)}
          + \sum_{l=1}^L \beta_{kl}^{(t)}
      \Bigr)
      - \Psi \Bigl(
          \sum_{l=1}^L \beta_{kl}^{(t)}
        \Bigr)
\end{aligned}
\tag{7}

途中式の途中式(クリックで展開)


  • 1: 対数ガンマとディガンマ関数の不等式を用いて、項を置き換える。

  \hat{x} \geq 0 に対して、 x \gt 0 n \geq 0 のとき、次の関係が成り立つ。

 \displaystyle
\begin{aligned}
\frac{\Gamma(x)}{\Gamma(n + x)}
   &\geq
      \frac{\Gamma(\hat{x})}{\Gamma(n + \hat{x})}
      \exp \Bigl(
          (\hat{x} - x) b
      \Bigr)
\\
b  &= \Psi(n + \hat{x})
      - \Psi(\hat{x})
\end{aligned}

 また、 \hat{x} \geq 0 に対して、 n \geq 1 のとき、次の関係が成り立つ。

 \displaystyle
\begin{aligned}
\frac{\Gamma(n + x)}{\Gamma(x)}
   &\geq
      \frac{\Gamma(n + \hat{x})}{\Gamma(\hat{x})}
      \hat{x}^{-a}
      x^a
\\
a  &= \Bigl(
          \Psi(n + \hat{x})
          - \Psi(\hat{x})
      \Bigr)
      \hat{x}
\end{aligned}

 現在の値(中心)  \hat{x} \alpha_{dl}^{(t)}, \beta_{kl}^{(t)}、更新後の値(変数)  x \alpha_{dl}^{(t, \mathrm{new})}, \beta_{kl}^{(t, \mathrm{new})} と対応させて下限の式に変形する。


 現在の値を  \alpha_{dl}^{(t)}, \beta_{kl}^{(t)}、更新後の値を  \alpha_{dl}^{(t, \mathrm{new})}, \beta_{kl}^{(t, \mathrm{new})} とする(  a, b の添字の  \alpha, \beta は識別用で計算上の意味はない)。周辺尤度に関して  \alpha_{dl}^{(t)}, \beta_{kl}^{(t)} の周りでテイラー展開(近似)して下限として用いる。
 下限への変形については「対数ガンマ関数とディガンマ関数の不等式の導出【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の下限  G の対数をとり対数下限  F とおく。

 \displaystyle
\begin{aligned}
F  &= \log G
\\
   &= \sum_{d=1}^D \Biggl[
          \log \frac{
              \Gamma(\sum_{l'=1}^L \alpha_{dl'}^{(t)})
          }{
              \Gamma(N_d^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)})
          }
          + (\alpha_{dl}^{(t)} - \alpha_{dl}^{(t, \mathrm{new})})
            b_{\alpha}
      \Biggr.
\\
   &\qquad \qquad
      \Biggl.
          + \sum_{k=1}^K \Biggl\{
              \log \frac{
                  \Gamma(N_{dk}^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')})
              }{
                  \Gamma(\sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')})
              }
              - a_{\alpha}
                \log \Bigl(
                  \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
                \Bigr)
              + a_{\alpha}
                \log \Bigl(
                  \alpha_{dl}^{(t, \mathrm{new})} \hat{\theta}_{dk}^{(t-l)}
                \Bigr)
          \Biggr\}
      \Biggr]
\\
   &\quad
      + \sum_{k=1}^K \Biggl[
          \log \frac{
              \Gamma(\sum_{l'=1}^L \beta_{kl'}^{(t)})
          }{
              \Gamma(N_k^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)})
          }
          + (\beta_{kl}^{(t)} - \beta_{kl}^{(t, \mathrm{new})})
            b_{\beta}
      \Biggr.
\\
   &\qquad \qquad
      \Biggl.
          + \sum_{v=1}^V \Biggl\{
              \log \frac{
                  \Gamma(N_{kv}^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              }{
                  \Gamma(\sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              }
              - a_{\beta}
                \log \Bigl(
                  \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
                \Bigr)
              + a_{\beta}
                \log \Bigl(
                  \beta_{kl}^{(t, \mathrm{new})} \hat{\phi}_{kv}^{(t-l)}
                \Bigr)
          \Biggr\}
      \Biggr]
\end{aligned}

  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の対数下限の式が得られた。

トピック分布のハイパーパラメータ

  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の対数下限  F から  \alpha_{dl}^{(t, \mathrm{new})} に関する項を取り出し(無関係な項を定数  \mathrm{const.} にまとめ)関数  F(\alpha_{dl}^{(t, \mathrm{new})}) とおく。

 \displaystyle
\begin{aligned}
F(\alpha_{dl}^{(t, \mathrm{new})})
   &= - b_{\alpha} \alpha_{dl}^{(t, \mathrm{new})}
      + \sum_{k=1}^K
          a_{\alpha}
          \log \alpha_{dl}^{(t, \mathrm{new})}
      + \mathrm{const.}
\end{aligned}

 関数  F(\alpha_{dl}^{(t, \mathrm{new})}) \alpha_{dl}^{(t, \mathrm{new})} に関して微分する。

 \displaystyle
\begin{aligned}
\frac{\partial F(\alpha_{dl}^{(t, \mathrm{new})})}{\partial \alpha_{dl}^{(t, \mathrm{new})}}
   &= \frac{\partial}{\partial \alpha_{dl}^{(t, \mathrm{new})}} \left\{
          - b_{\alpha} \alpha_{dl}^{(t, \mathrm{new})}
          + \sum_{k=1}^K
              a_{\alpha}
              \log \alpha_{dl}^{(t, \mathrm{new})}
          + \mathrm{const.}
      \right\}
\\
   &= \frac{\partial}{\partial \alpha_{dl}^{(t, \mathrm{new})}} \Bigl\{
          - b_{\alpha} \alpha_{dl}^{(t, \mathrm{new})}
      \Bigr\}
      + \sum_{k=1}^K
          \frac{\partial}{\partial \alpha_{dl}^{(t, \mathrm{new})}} \Bigl\{
              a_{\alpha}
              \log \alpha_{dl}^{(t, \mathrm{new})}
          \Bigr\}
      + \frac{\partial \mathrm{const.}}{\partial \alpha_{dl}^{(t, \mathrm{new})}}
\\
   &= - b_{\alpha}
        \frac{\partial \alpha_{dl}^{(t, \mathrm{new})}}{\partial \alpha_{dl}^{(t, \mathrm{new})}}
      + \sum_{k=1}^K
          a_{\alpha}
          \frac{\partial \log \alpha_{dl}^{(t, \mathrm{new})}}{\partial \alpha_{dl}^{(t, \mathrm{new})}}
      + 0
\\
   &= - b_{\alpha}
      + \sum_{k=1}^K
          a_{\alpha}
          \frac{1}{\alpha_{dl}^{(t, \mathrm{new})}}
\end{aligned}

途中式の途中式(クリックで展開)


  • 1:  F の式全体の偏微分を考える。 \alpha_{dl}^{(t, \mathrm{new})} に関する微分なので、 \alpha_{dl}^{(t)} は定数として扱う。
  • 2: 和の微分  \{f(x) + g(x)\}' = f'(x) + g'(x) より、項ごとの微分の和に分割する。
  • 3:  \alpha_{dl}^{(t, \mathrm{new})} の係数を  \frac{\partial}{\partial \alpha_{dl}^{(t, \mathrm{new})}} の外に出す。
  • 4: 自然対数の微分  \{\log x\}' = \frac{1}{x} を行う。

  \frac{\partial F(\alpha_{dl}^{(t, \mathrm{new})})}{\partial \alpha_{dl}^{(t, \mathrm{new})}} = 0 となる  \alpha_{dl}^{(t, \mathrm{new})} を求める。

 \displaystyle
\begin{aligned}
&&
- b_{\alpha}
+ \frac{\sum_{k=1}^K a_{\alpha}}{\alpha_{dl}^{(t, \mathrm{new})}}
   &= 0
\\
\Rightarrow &&
\alpha_{dl}^{(t, \mathrm{new})}
   &= \frac{\sum_{k=1}^K a_{\alpha}}{b_{\alpha}}
\\
&&
   &= \frac{
          \sum_{k=1}^K
              \Bigl(
                  \Psi(
                      N_{dk}^{(t)}
                      + \sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')}
                  )
                  - \Psi(
                      \sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')}
                    )
              \Bigr)
              \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
      }{
          \Psi(N_d^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)})
          - \Psi(\sum_{l'=1}^L \alpha_{dl'}^{(t)})
      }
\\
&&
   &= \alpha_{dl}^{(t)}
      \frac{
          \sum_{k=1}^K
              \hat{\theta}_{dk}^{(t-l)}
              \Bigl(
                  \Psi(
                      N_{dk}^{(t)}
                      + \sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')}
                  )
                  - \Psi(
                      \sum_{l'=1}^L \alpha_{dl'}^{(t)} \hat{\theta}_{dk}^{(t-l')}
                    )
              \Bigr)
      }{
          \Psi(N_d^{(t)} + \sum_{l'=1}^L \alpha_{dl'}^{(t)})
          - \Psi(\sum_{l'=1}^L \alpha_{dl'}^{(t)})
      }
\end{aligned}

途中式の途中式(クリックで展開)


  • 1:  \frac{\partial F(\alpha_{dl}^{(t, \mathrm{new})})}{\partial \alpha_{dl}^{(t, \mathrm{new})}} 0 とおく。
  • 2:  \alpha_{dl}^{(t, \mathrm{new})} について式を整理する。
  • 3:  a_{\alpha}, b_{\alpha} に式(7)を代入する。

 不動点反復法によるハイパーパラメータの計算式が得られた。

  i 回目の更新において、 \alpha_{dl}^{(t)} を更新前の値(  i-1 回目の更新値)  \alpha_{dl}^{(t,i-1)} \alpha_{dl}^{(t, \mathrm{new})} を更新後の値(  i 回目の更新値)  \alpha_{dl}^{(t,i)} とする。また、初期値は  \alpha_{dl}^{(t,0)} とする。

 \displaystyle
\alpha_{dl}^{(t,i)}
    = \alpha_{dl}^{(t,i-1)}
      \frac{
          \sum_{k=1}^K
              \hat{\theta}_{dk}^{(t-l)} \Bigl(
                  \Psi \Bigl(
                      N_{dk}^{(t,i-1)}
                      + \sum_{l'=1}^L \alpha_{dl'}^{(t,i-1)} \hat{\theta}_{dk}^{(t-l')}
                  \Bigr)
                  - \Psi \Bigl(
                      \sum_{l'=1}^L \alpha_{dl'}^{(t,i-1)} \hat{\theta}_{dk}^{(t-l')}
                    \Bigr)
              \Bigr)
      }{
          \Psi \Bigl(
              N_d^{(t,i-1)}
              + \sum_{l'=1}^L \alpha_{dl'}^{(t,i-1)}
          \Bigr)
          - \Psi \Bigl(
              \sum_{l'=1}^L \alpha_{dl'}^{(t,i-1)}
            \Bigr)
      }

  \alpha_{dl}^{(t)} の更新式が得られた。

単語分布のパラメータ

  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} の結合周辺分布の対数下限  F から  \beta_{kl}^{(t, \mathrm{new})} に関する項を取り出し関数  F(\beta_{kl}^{(t, \mathrm{new})}) とおく。

 \displaystyle
F(\beta_{kl}^{(t, \mathrm{new})})
    = - b_{\beta} \beta_{kl}^{(t, \mathrm{new})}
      + \sum_{v=1}^V
          a_{\beta} \log \beta_{kl}^{(t, \mathrm{new})}
      + \mathrm{const.}

 関数  F(\beta_{kl}^{(t, \mathrm{new})}) \beta_{kl}^{(t, \mathrm{new})} に関して微分する。

 \displaystyle
\begin{aligned}
\frac{\partial F(\beta_{kl}^{(t, \mathrm{new})})}{\partial \beta_{kl}^{(t, \mathrm{new})}}
   &= \frac{\partial}{\partial \beta_{kl}^{(t, \mathrm{new})}} \left\{
          - b_{\beta} \beta_{kl}^{(t, \mathrm{new})}
          + \sum_{v=1}^V
              a_{\beta} \log \beta_{kl}^{(t, \mathrm{new})}
          + \mathrm{const.}
      \right\}
\\
   &= \frac{\partial}{\partial \beta_{kl}^{(t, \mathrm{new})}} \Bigl\{
          - b_{\beta} \beta_{kl}^{(t, \mathrm{new})}
      \Bigr\}
      + \sum_{v=1}^V
          \frac{\partial}{\partial \beta_{kl}^{(t, \mathrm{new})}} \Bigl\{
              a_{\beta} \log \beta_{kl}^{(t, \mathrm{new})}
          \Bigr\}
      + \frac{\partial \mathrm{const.}}{\partial \beta_{kl}^{(t, \mathrm{new})}}
\\
   &= - b_{\beta}
        \frac{\partial \beta_{kl}^{(t, \mathrm{new})}}{\partial \beta_{kl}^{(t, \mathrm{new})}}
      + \sum_{v=1}^V
          a_{\beta}
          \frac{\partial \log \beta_{kl}^{(t, \mathrm{new})}}{\partial \beta_{kl}^{(t, \mathrm{new})}}
      + 0
\\
   &= - b_{\beta}
      + \sum_{v=1}^V
          a_{\beta}
          \frac{1}{\beta_{kl}^{(t)}}
\end{aligned}

途中式の途中式(クリックで展開)


  • 1:  F の式全体の偏微分を考える。 \beta_{kl}^{(t, \mathrm{new})} に関する微分なので、 \beta_{kl}^{(t)} は定数として扱う。
  • 2: 和の微分より、項ごとの微分の和に分割する。
  • 3:  \beta_{kl}^{(t, \mathrm{new})} の係数を  \frac{\partial}{\partial \beta_{kl}^{(t, \mathrm{new})}} の外に出す。
  • 4: 自然対数の微分を行う。

  \frac{\partial F(\beta_{kl}^{(t, \mathrm{new})})}{\partial \beta_{kl}^{(t, \mathrm{new})}} = 0 となる  \beta_{kl}^{(t, \mathrm{new})} を求める。

 \displaystyle
\begin{aligned}
&&
- b_{\beta}
+ \frac{\sum_{v=1}^V a_{\beta}}{\beta_{kl}^{(t, \mathrm{new})}}
   &= 0
\\
\Rightarrow&&
\beta_{kl}^{(t, \mathrm{new})}
   &= \frac{\sum_{v=1}^V a_{\beta}}{b_{\beta}}
\\
&&
   &= \frac{
          \sum_{v=1}^V
              \Bigl(
                  \Psi(N_{kv}^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
                  - \Psi(\sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              \Bigr)
              \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
      }{
          \Psi(N_k^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)})
          - \Psi(\sum_{l'=1}^L \beta_{kl'}^{(t)})
      }
\\
&&
   &= \beta_{kl}^{(t)}
      \frac{
          \sum_{v=1}^V
              \hat{\phi}_{kv}^{(t-l)}
              \Bigl(
                  \Psi(N_{kv}^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
                  - \Psi(\sum_{l'=1}^L \beta_{kl'}^{(t)} \hat{\phi}_{kv}^{(t-l')})
              \Bigr)
      }{
          \Psi(N_k^{(t)} + \sum_{l'=1}^L \beta_{kl'}^{(t)})
          - \Psi(\sum_{l'=1}^L \beta_{kl'}^{(t)})
      }
\end{aligned}

途中式の途中式(クリックで展開)


  • 1:  \frac{\partial F(\beta_{kl}^{(t, \mathrm{new})})}{\partial \beta_{kl}^{(t, \mathrm{new})}} 0 とおく。
  • 2:  \beta_{kl}^{(t, \mathrm{new})} について式を整理する。
  • 3:  a_{\beta}, b_{\beta} に式(7)を代入する。

 不動点反復法によるハイパーパラメータの計算式が得られた。

  i 回目の更新において、 \beta_{kl}^{(t)} を更新前の値(  i-1 回目の更新値)  \beta_{kl}^{(t,i-1)} \beta_{kl}^{(t, \mathrm{new})} を更新後の値(  i 回目の更新値)  \beta_{kl}^{(t,i)} とする。また、初期値は  \beta_{kl}^{(t,0)} とする。

 \displaystyle
\beta_{kl}^{(t,i)}
    = \beta_{kl}^{(t,i-1)}
      \frac{
          \sum_{v=1}^V
              \hat{\phi}_{kv}^{(t-l)}
              \Bigl(
                  \Psi \Bigl(
                      N_{kv}^{(t,i-1)}
                      + \sum_{l'=1}^L \beta_{kl'}^{(t,i-1)} \hat{\phi}_{kv}^{(t-l')}
                  \Bigr)
                  - \Psi \Bigl(
                      \sum_{l'=1}^L \beta_{kl'}^{(t,i-1)} \hat{\phi}_{kv}^{(t-l')}
                    \Bigr)
              \Bigr)
      }{
          \Psi \Bigl(
              N_k^{(t,i-1)}
              + \sum_{l'=1}^L \beta_{kl'}^{(t,i-1)}
          \Bigr)
          - \Psi \Bigl(
              \sum_{l'=1}^L \beta_{kl'}^{(t,i-1)}
            \Bigr)
      }

  \beta_{kl}^{(t)} の更新式が得られた。

 以上で、各分布のハイパーパラメータの更新式が得られた。

スポンサードリンク

事後予測分布の導出

 最後は、各変数の周辺分布を用いて、未知(新規)の各変数の事後予測分布を導出する。

 時刻  t の既存の文書  d において新たに生成される(  N_d^{(t)}+1 番目の)単語(の語彙)を  w_d^{(t,*)}、トピックを  z_d^{(t,*)} で表す。

トピックの事後予測分布の設定

 トピック集合  \mathbf{Z}^{(t)} が与えられたときの文書  d の未知の単語  w_d^{(t,*)} のトピック  z_d^{(t,*)} の予測分布を求める。

 \displaystyle
\begin{aligned}
p(
    z_d^{(t,*)} = k
\mid
    \mathbf{Z}^{(t)}, 
    \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
)
   &= \int
          p(
              z_d^{(t,*)} = k, 
              \boldsymbol{\theta}_d^{(t)}
          \mid
              \mathbf{Z}^{(t)}, 
              \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\theta}_d^{(t)}
\\
   &= \int
          p(z_d^{(t,*)} = k \mid \boldsymbol{\theta}_d^{(t)})
          p(
              \boldsymbol{\theta}_d^{(t)}
          \mid
              \mathbf{Z}^{(t)}, 
              \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\theta}_d^{(t)}
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: サンプリングした潜在変数  \mathbf{Z}^{(t)} と事前分布のパラメータ  \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L を条件とする未観測の潜在変数  z_d^{(t,*)} とパラメータ  \boldsymbol{\theta}_d^{(t)} の結合分布を  \boldsymbol{\theta}_d^{(t)} に関して周辺化した式を立てる。
  • 2: 潜在変数  z_d^{(t,*)} とパラメータ  \boldsymbol{\theta}_d^{(t)} の項を分割する。

 右辺の後の項は、 \mathbf{Z}^{(t)} が与えられたときの文書  d のトピック分布のパラメータ  \boldsymbol{\theta}_d^{(t)} の事後分布である。つまり、左辺の項は、 \boldsymbol{\theta}_d^{(t)} の事後分布を用いたトピック  z_d^{(t,*)} の周辺分布である。

トピックの事後予測分布

  z_d^{(t,*)} の事後予測分布の式は、 \mathbf{Z}^{(t)} の周辺分布の式(2)を用いて求められる。

 \displaystyle
\begin{aligned}
p(
    z_d^{(t,*)} = k
\mid
    \mathbf{Z}^{(t)}, 
    \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
)
   &= \frac{
          p(
              z_d^{(t,*)} = k, \mathbf{Z}^{(t)}
          \mid
              \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
          )
      }{
          p(
              \mathbf{Z}^{(t)}
          \mid
              \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
          )
      }
\\
   &= \frac{
          \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
      }{
          \prod_{k'=1}^K
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }
      \frac{
          \Gamma(N_{dk}^{(t)} + 1 + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          \prod_{k' \neq k}
              \Gamma(N_{dk'} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }{
          \Gamma(N_d^{(t)} + 1 + \sum_{l=1}^L \alpha_{dl}^{(t)})
      }
\\
   &\qquad * 
      \prod_{d' \neq d}
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)})
          }{
              \prod_{k'=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d'k'}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
          }{
              \Gamma(N_{d'}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)})
          }
\\
   &\quad * 
      \frac{
          \prod_{k'=1}^K
              \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }{
          \Gamma(\sum_{l=1}^L \alpha_{dl}^{(t)})
      }
      \frac{
          \Gamma(N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{dk'}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }
\\
   &\qquad * 
      \prod_{d' \neq d}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }{
              \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)})
          }
          \frac{
              \Gamma(N_{d'}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)})
          }{
              \prod_{k'=1}^K
                  \Gamma(N_{d'k'}^{(t)} + \sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
          }
\\
   &= \frac{
          (N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          \Gamma(N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)})
          \prod_{k' \neq k}
              \Gamma(N_{dk'}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }{
          (N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)})
          \Gamma(N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{dk'}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk'}^{(t-l)})
      }
\\
   &= \frac{
          N_{dk}^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dk}^{(t-l)}
      }{
          N_d^{(t)} + \sum_{l=1}^L \alpha_{dl}^{(t)}
      }
    \equiv
        \hat{\theta}_{dk}^{(t)}
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: 条件付き確率より、未知の変数  z_d^{(t,*)} 以外の既知の変数  \mathbf{Z}^{(t)} を条件に移した式を立てる。
  • 2: 式(2)を用いて、分母分子を具体的な式に置き換える。

  z_d^{(t,*)}, \mathbf{Z}^{(t)} の周辺分布(分子)は式(2)に新たな単語  w_d^{(t,*)} に関して追加した式であり、 \mathbf{Z} の周辺分布(分母)は式(2)である。

 \displaystyle
p(
    z_d^{(t,*)} = k, \mathbf{Z}^{(t)}
\mid
    \boldsymbol{\alpha}^{(t)}, \{\hat{\boldsymbol{\Theta}}^{(t-l)}\}_{l=1}^L
)
    = \prod_{d'=1}^D \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)})
          }{
              \prod_{k'=1}^K
                  \Gamma(\sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d'k'}^{(t,*)} + \sum_{l=1}^L \alpha_{d'l}^{(t)} \hat{\theta}_{d'k'}^{(t-l)})
          }{
              \Gamma(N_{d'}^{(t,*)} + \sum_{l=1}^L \alpha_{d'l}^{(t)})
          }
      \right\}

 ここで、新規(未知)の単語  w_d^{(t,*)} を含めた数を  N_{dk}^{(t,*)}, N_d^{(t,*)} とすると、次の関係である。詳しくは「トピックモデル(基本形)の一様版」を参照のこと。

 \displaystyle
\begin{aligned}
N_{dk}^{(t,*)}
   &= \begin{cases}
          N_{dk}^{(t)} + 1
             &\quad
                (z_d^{(t,*)} = k) \\
          N_{dk}^{(t)}
             &\quad
                (z_d^{(t,*)} \neq k)
      \end{cases}
\\
N_d^{(t,*)}
   &= N_d^{(t)} + 1
\end{aligned}

  z_d^{(t,*)}, \mathbf{Z}^{(t)} の周辺分布の式について、 N_{dk}^{(t,*)}, N_d^{(t,*)} N_{dk}^{(t)}, N_d^{(t)} に置き換える。(「トピックの事後周辺分布」のときとは置き換え方が異なる点に注意。)
 文書  d やトピック  k の項のみ形が異なるので  \prod_{d=1}^D \prod_{k=1}^K から取り出しておく。

  • 3: ガンマ関数の性質より、項を変形する。
  • 4: 約分すると  d, k に関する項のみが残る。

  z_d^{(t,*)} (に割り当てられるトピック  k )の事後予測分布の式が得られた。この式を  \hat{\theta}_{dk}^{(t)} とおく。

トピック分布のパラメータ

 他のトピックについても同様に求められるので、 z_d^{(t,*)} の事後予測分布のパラメータは、次の  K 次元ベクトルになる。

 \displaystyle
\begin{aligned}
\hat{\boldsymbol{\theta}}_d^{(t)}
   &= (\hat{\theta}_{d1}^{(t)}, \hat{\theta}_{d2}^{(t)}, \cdots, \hat{\theta}_{dK}^{(t)})
\\
   &= \left(
          \frac{
              N_{d1}^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{d1}^{(t-l)}
          }{
              N_d^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)}
          }, 
          \frac{
              N_{d2}^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{d2}^{(t-l)}
          }{
              N_d^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)}
          }, 
          \cdots, 
          \frac{
              N_{dK}^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)} \hat{\theta}_{dK}^{(t-l)}
          }{
              N_d^{(t)}
              + \sum_{l=1}^L \alpha_{dl}^{(t)}
          }
      \right)
\end{aligned}

 非負の分子の総和が分母に一致するので、カテゴリ分布のパラメータの条件を満たす。
 サンプリングデータ  \mathbf{Z}^{(t)} から推定したトピック分布のパラメータ  \boldsymbol{\theta}_d^{(t)} の推定値と言える。

単語の事後予測分布の設定

 文書集合  \mathbf{W}^{(t)} とトピック集合  \mathbf{Z}^{(t)}、未知の単語のトピック  z_d^{(t,*)} が与えられたときの未知の単語(の語彙)  w_d^{(t,*)} の予測分布を求める。

 \displaystyle
\begin{aligned}
p(
    w_d^{(t,*)} = v
\mid
    \mathbf{W}^{(t)}, 
    z_d^{(t,*)} = k, \mathbf{Z}^{(t)}, 
    \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
   &= \int
          p(
              w_d^{(t,*)} = v, 
              \boldsymbol{\phi}_k^{(t)}
          \mid
              \mathbf{W}^{(t)}, 
              z_d^{(t,*)} = k, \mathbf{Z}^{(t)}, 
              \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\phi}_k^{(t)}
\\
   &= \int
          p(w_d^{(t,*)} = v \mid z_d^{(t,*)} = k, \boldsymbol{\phi}_k^{(t)})
          p(
              \boldsymbol{\phi}_k^{(t)}
          \mid
              \mathbf{W}^{(t)}, \mathbf{Z}^{(t)}, 
              \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      \mathrm{d} \boldsymbol{\phi}_k^{(t)}
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: 観測・サンプリングした変数  z_d^{(t,*)}, \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} と事前分布のパラメータ  \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L を条件とする未観測の観測変数  w_d^{(t,*)} とパラメータ  \boldsymbol{\phi}_k^{(t)} の結合分布を  \boldsymbol{\phi}_k^{(t)} に関して周辺化した式を立てる。
  • 2: 観測変数  w_d^{(t,*)} とパラメータ  \boldsymbol{\phi}_k^{(t)} の項を分割する。

 右辺の後の項は、 \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} が与えられたときのトピック  k の単語分布のパラメータ  \boldsymbol{\phi}_k^{(t)} の事後分布である。つまり、左辺の項は、 \boldsymbol{\phi}_k^{(t)} の事後分布を用いた単語  w_d^{(t,*)} の周辺分布である。

単語の事後予測分布

  w_d^{(t,*)} の事後予測分布の式は、 \mathbf{W}^{(t)} の周辺分布の式(3)を用いて求められる。

 \displaystyle
\begin{aligned}
p(
    w_d^{(t,*)} = v
\mid
    \mathbf{W}^{(t)}, 
    z_d^{(t,*)} = k, \mathbf{Z}^{(t)}, 
    \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
   &= \frac{
          p(
              w_d^{(t,*)}, \mathbf{W}^{(t)}
          \mid
              z_d^{(t,*)} = k, \mathbf{Z}^{(t)}, 
              \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      }{
          p(
              \mathbf{W}^{(t)}
          \mid
              \mathbf{Z}^{(t)}, 
              \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
          )
      }
\\
   &= \frac{
          \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
      }{
          \prod_{v'=1}^V 
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv'}^{(t-l)})
      }
      \frac{
          \Gamma(N_{kv}^{(t)} + 1
          + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
          \prod_{v' \neq v}
              \Gamma(N_{kv'}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv'}^{(t-l)})
      }{
          \Gamma(N_k^{(t)} + 1 + \sum_{l=1}^L \beta_{kl}^{(t)})
      }
\\
   &\qquad * 
      \prod_{k' \neq k}
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)})
          }{
              \prod_{v'=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v'}^{(t-l)})
          }
          \frac{
              \prod_{v'=1}^V
                  \Gamma(N_{k'v'}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v'}^{(t-l)})
          }{
              \Gamma(N_{k'}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)})
          }
\\
   &\quad * 
      \frac{
          \prod_{v'=1}^V
              \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv'}^{(t-l)})
      }{
          \Gamma(\sum_{l=1}^L \beta_{kl}^{(t)})
      }
      \frac{
          \Gamma(N_k^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
      }{
          \prod_{v'=1}^V
              \Gamma(N_{kv'}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv'}^{(t-l)})
      }
\\
   &\qquad * 
      \prod_{k' \neq k}
          \frac{
              \prod_{v'=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v'}^{(t-l)})
          }{
              \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)})
          }
          \frac{
              \Gamma(N_{k'}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)})
          }{
              \prod_{v'=1}^V
                  \Gamma(N_{k'v'}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v'}^{(t-l)})
          }
\\
   &= \frac{
          (N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
          \Gamma(N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)})
          \prod_{v' \neq v}
              \Gamma(N_{kv'}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv'}^{(t-l)})
      }{
          (N_k^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
          \Gamma(N_k^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_k^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)})
      }{
          \prod_{v'=1}^V
              \Gamma(N_{kv'}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv'}^{(t-l)})
      }
\\
   &= \frac{
          N_{kv}^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kv}^{(t-l)}
      }{
          N_k^{(t)} + \sum_{l=1}^L \beta_{kl}^{(t)}
      }
    \equiv
        \hat{\phi}_{kv}^{(t)}
\end{aligned}

途中式の途中式(クリックで展開)


  • 1: 条件付き確率より、未知の変数  w_d^{(t,*)} 以外の既知の変数  \mathbf{W}^{(t)} を条件に移した式を立てる。
  • 2: 式(3)を用いて、分母分子の項を具体的な式に置き換える。

  w_d^{(t,*)}, \mathbf{W}^{(t)} の周辺分布(分子)は式(3)に新たな単語  w_d^{(t,*)} に関して追加した式であり、 \mathbf{W}^{(t)} の周辺分布(分母)は式(3)である。

 \displaystyle
p(
    w_d^{(t,*)} = v, \mathbf{W}^{(t)}
\mid
    z_d^{(t,*)} = k, \mathbf{Z}^{(t)}, 
    \boldsymbol{\beta}^{(t)}, \{\hat{\boldsymbol{\Phi}}^{(t-l)}\}_{l=1}^L
)
    = \prod_{k'=1}^K \left\{
          \frac{
              \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)})
          }{
              \prod_{v'=1}^V
                  \Gamma(\sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v'}^{(t-l)})
          }
          \frac{
              \prod_{v'=1}^V
                  \Gamma(N_{k'v'}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)} \hat{\phi}_{k'v'}^{(t-l)})
          }{
              \Gamma(N_{k'}^{(t)} + \sum_{l=1}^L \beta_{k'l}^{(t)})
          }
      \right\}

 ここで、新規(未知)の単語  w_d^{(t,*)} を含めた数を  N_{kv}^{(t,*)}, N_k^{(t,*)} とすると、次の関係である。詳しくは「トピックモデル(基本形)の一様版」を参照のこと。

 \displaystyle
\begin{aligned}
N_{kv}^{(t,*)}
   &= \begin{cases}
          N_{kv}^{(t)} + 1
             &\quad
                (z_d^{(t,*)} = k) \\
          N_{kv}^{(t)}
             &\quad
                (z_d^{(t,*)} \neq k)
      \end{cases}
\\
N_k^{(t,*)}
   &= \begin{cases}
          N_k^{(t)} + 1
             &\quad
                (z_d^{(t,*)} = k) \\
          N_k^{(t)}
             &\quad
                (z_d^{(t,*)} \neq k)
      \end{cases}
\end{aligned}

  w^{(t,*)}, \mathbf{W}^{(t)} の周辺分布の式について、 N_{kv}^{(t,*)}, N_k^{(t,*)} N_{kv}^{(t)}, N_k^{(t)} に置き換える。
 トピック  k や語彙  v の項のみ形が異なるので  \prod_{k=1}^K \prod_{v=1}^V から取り出しておく。

  • 3: ガンマ関数の性質より、項を変形する。
  • 4: 約分すると  k, v に関する項のみが残る。

  w_d^{(t,*)} (に割り当てられる語彙  v )の事後予測分布の式が得られた。この式を  \hat{\phi}_{kv}^{(t)} とおく。

単語分布のパラメータ

 他の語彙についても同様に求められるので、 w_d^{(t,*)} の事後予測分布のパラメータは、次の  V 次元ベクトルになる。

 \displaystyle
\begin{aligned}
\hat{\boldsymbol{\phi}}_k^{(t)}
   &= (\hat{\phi}_{k1}^{(t)}, \hat{\phi}_{k2}^{(t)}, \cdots, \hat{\phi}_{kV}^{(t)})
\\
   &= \left(
          \frac{
              N_{k1}^{(t)}
              + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{k1}^{(t-l)}
          }{
              N_k^{(t)}
              + \sum_{l=1}^L \beta_{kl}^{(t)}
          }, 
          \frac{
              N_{k2}^{(t)}
              + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{k2}^{(t-l)}
          }{
              N_k^{(t)}
              + \sum_{l=1}^L \beta_{kl}^{(t)}
          }, 
          \cdots, 
          \frac{
             N_{kV}^{(t)}
             + \sum_{l=1}^L \beta_{kl}^{(t)} \hat{\phi}_{kV}^{(t-l)}
          }{
              N_k^{(t)}
              + \sum_{l=1}^L \beta_{kl}^{(t)}
          }
      \right)
\end{aligned}

 非負の分子の総和が分母に一致するので、カテゴリ分布のパラメータの条件を満たす。
 観測・サンプリングデータ  \mathbf{W}^{(t)}, \mathbf{Z}^{(t)} から推定した単語分布のパラメータ  \boldsymbol{\phi}_k^{(t)} の推定値と言える。

 以上で、各トピックと各単語の事後予測分布の式と、トピック分布と単語分布のパラメータの計算式が得られた。パラメータの推定値は、次の時刻におけるハイパーパラメータとして利用する。

 この記事では、複数時刻のパラメータの場合のトピック追跡モデルに対する崩壊型ギブスサンプリングによるパラメータの計算式を導出した。

参考書籍

おわりに

 5章(の数式編)の最後の記事が書き終わりましたー。作業的には、まだ1つ書き終わっていない記事と、手元では書き終わったものの記事として反映できていないものも多々ありますし、さらに5章以前も含めた要修正点が出てきたんですが、まぁいいでしょう。
 しかし添字に意味を持たせすぎてあまりにも式が煩いなぁ!

 毎回それまでの内容からのコピペ&置換で7割方の内容は済むのですが(いえあくまで完成形を比較したときの話で理解するまでの試行錯誤は時間無制限ですが)、残り1割くらいの内容で躓いてアレコレ考えることになります。そしてそれは大抵それ以前の内容にも関わることで、過去記事もあわせて修正することになります。
 今回はハイパラ推定のところの対数ガンマ関数のテイラー展開(周辺分布の下限)の式変形が、これまで何度もやってきたのによく分からなくなりました。
 具体的には、 \log \Gamma(k x) のような変数の定数倍をかませる関数をテイラー展開するときに、近似式  f(x) \approx \sum_{i=0}^n \frac{(x - a)^i}{i!} f^{(i)}(a) (x - a) の部分がどうなるのかが分かりませんでした。最終的な更新式から逆算すると、 (k x  - k a) となるっぽいのですがそれでいいのか分かりませんでした。
 そういえばテイラー展開?テイラー級数?の式ってどうやってできたんだろうと気になりましたが深みに嵌まりそうなので引き返して、近似曲線のグラフを作って試してみた(あぁ久しぶりにRでグラフアニメを作って楽しい)ところ  (x - a) ではなく  (k x  - k a) でよさそう判断しました。
  \log \Gamma(n + x) のような定数和の場合も登場しますが、この場合は  ( (n + x) - (n + a) ) = (x - a) なので単に  (x - a) なのか分かりませんが、とりあえず問題なさそうです。

 というわけで一旦解決したとしました。いやまだこの件の修正は2~5章に及ぶのにどれも対応できていませんが。
 とはいえ気にはなるままなので、何か参考になるものを知っている方がいらっしゃれば教えてください。

 さぁ次は3・4章の飛ばした記事の修正作業にするか、6章の新規記事の執筆作業にするか、あるいは別の本にするか。

 2025年5月7日は、モーニング娘。の元メンバーの佐藤優樹さんの26歳のお誕生日です♪

 私がアイドルにハマるきっかけとなった方です。つまり、この方がいなければこのブログも存在しませんでした。というわけで、皆さん一度はMVを視聴してください。

【次節の内容】

  • 数式読解編

 (1つ飛ばして)パチンコ配分モデルの生成モデルを数式で確認します。

www.anarchive-beta.com