からっぽのしょこ

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

3.5:混合ユニグラムモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合【青トピックモデルのノート】

はじめに

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

 この記事では、混合カテゴリモデルに対する崩壊型ギブスサンプリングの数式の行間を埋めます。

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

3.5 混合ユニグラムモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合

 混合ユニグラムモデル(mixture of unigram models)に対する不動点反復法(固定点反復法・fixed point iteration)を用いた崩壊型ギブスサンプリング(周辺化ギブスサンプリング・collapsed Gibbs sampling)におけるパラメータの計算式を導出する。この記事では、ハイパーパラメータが多様な値の場合を扱う。
 混合ユニグラムモデルの定義や記号については「3.1:混合ユニグラムモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、ハイパーパラメータが一様な値の場合やより詳細な変形については「3.5:混合ユニグラムモデルの崩壊型ギブズサンプリング:一様なハイパーパラメータの場合【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

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

 まずは、サンプリング式や更新式の導出に用いる文書集合とトピック集合の周辺分布の式を導出する。

結合周辺分布

 パラメータ  \boldsymbol{\theta}, \boldsymbol{\Phi} を周辺化(積分消去)したときの文書集合  \mathbf{W} とトピック集合  \mathbf{z} の結合分布(同時分布)を求める。

 \displaystyle
p(\mathbf{W}, \mathbf{z} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
    = \iint
          p(\mathbf{W}, \mathbf{z}, \boldsymbol{\theta}, \boldsymbol{\Phi} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
      \mathrm{d} \boldsymbol{\theta} \mathrm{d} \boldsymbol{\Phi}

 混合ユニグラムモデルの生成過程(依存関係)に従って、 \mathbf{W}, \mathbf{z} の結合分布を分割する。

 \displaystyle
p(\mathbf{W}, \mathbf{z} \mid \boldsymbol{\alpha}, \boldsymbol{})
    = p(\mathbf{z} \mid \boldsymbol{\alpha})
      p(\mathbf{W} \mid \mathbf{z}, \boldsymbol{})
\tag{1}

  \mathbf{W}, \mathbf{z} に関する周辺分布から得られることが分かった。

トピック集合の周辺分布

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

 \displaystyle
\begin{aligned}
p(\mathbf{z} \mid \boldsymbol{\alpha})
   &= \int
          p(\mathbf{z}, \boldsymbol{\theta} \mid \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\theta}
\\
   &= \int
          p(\mathbf{z} \mid \boldsymbol{\theta})
          p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\theta}
\\
   &= \int
          \left\{ \prod_{d=1}^D
              p(z_d \mid \boldsymbol{\theta})
          \right\}
          p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\theta}
\end{aligned}

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


  • 1: 周辺化された  \boldsymbol{\theta} を明示する。
  • 2: 潜在変数  \mathbf{z} とパラメータ  \boldsymbol{\theta} の項を分割する。
  • 3: トピック集合  \mathbf{z} の生成確率を、各文書のトピック  z_d の生成確率の積に分解する。

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

 \displaystyle
\begin{align}
p(\mathbf{z} \mid \boldsymbol{\alpha})
   &= \int
          \left\{ \prod_{d=1}^D
              \theta_{z_d}
          \right\}
          \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)}
          \left\{ \prod_{k=1}^K
              \theta_k^{\alpha_k-1}
          \right\}
      \mathrm{d} \boldsymbol{\theta}
\\
   &= \int
          \left\{ \prod_{k=1}^K
              \theta_k^{D_k}
          \right\}
          \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)}
          \left\{ \prod_{k=1}^K
              \theta_k^{\alpha_k-1}
          \right\}
      \mathrm{d} \boldsymbol{\theta}
\\
   &= \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)}
      \int \prod_{k=1}^K
          \theta_k^{D_k + \alpha_k-1}
      \mathrm{d} \boldsymbol{\theta}
\\
   &= \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)}
      \frac{
          \prod_{k=1}^K
              \Gamma(D_k + \alpha_k)
      }{
          \Gamma(\sum_{k=1}^K \{D_k + \alpha_k\})
      }
\\
   &= \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)}
      \frac{
          \prod_{k=1}^K
              \Gamma(D_k + \alpha_k)
      }{
          \Gamma(D + \sum_{k=1}^K \alpha_k)
      }
\tag{3.24}\\
   &= \frac{
          \Gamma(\sum_{k=1}^K \alpha_k)
      }{
          \Gamma(D + \sum_{k=1}^K \alpha_k)
      }
      \prod_{k=1}^K
          \frac{\Gamma(D_k + \alpha_k)}{\Gamma(\alpha_k)}
\tag{3.24'}
\end{align}

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


  • 1: 各文書のトピック  z_d はカテゴリ分布、トピック分布のパラメータ  \boldsymbol{\theta} はディリクレ分布を仮定しているので、それぞれ定義式に置き換える。
 \displaystyle
\begin{aligned}
p(z_d \mid \boldsymbol{\theta})
   &= \mathrm{Cat}(z_d \mid \boldsymbol{\theta})
    = \theta_{z_d}
\\
p(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
   &= \mathrm{Dir}(\boldsymbol{\theta} \mid \boldsymbol{\alpha})
    = \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)}
      \prod_{k=1}^K
          \theta_k^{\alpha_k-1}
\end{aligned}
  • 2:  D 個の文書に対応するパラメータ  \theta_{z_d} について、各文書に割り当てられたトピック番号  z_d = k を用いてトピックごとにまとめると、 D_k 個の  \theta_k に置き換えられる。
  • 3:  \boldsymbol{\theta} と無関係な正規化項を  \int の外に出し、 \theta_k の項をまとめる。
  • 4: ディリクレ分布の正規化項(1.2.4項)より、積分全体を正規化項の逆数の形に置き換える。
  • 5: トピックごとの文書数の関係より、 D = \sum_{k=1}^K D_k である。
  • 6: 不動点反復法を行うために、分母を入れ替えて  \alpha_k, \sum_{k=1}^K \alpha_k の項をそれぞれまとめる。

  \mathbf{z} の周辺分布の式が得られた。

文書集合の周辺分布

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

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

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


  • 1: 周辺化された  \boldsymbol{\Phi} を明示する。
  • 2: 観測変数  \mathbf{W} とパラメータ  \boldsymbol{\Phi} の項を分割する。
  • 3: 文書集合  \mathbf{W} の生成確率を、各文書(単語集合)  \mathbf{w}_d の生成確率の積に分解する。
  • 3: パラメータ集合  \boldsymbol{\Phi} の生成確率を、各トピックのパラメータ  \boldsymbol{\phi}_k の生成確率の積に分解する。
  • 4: 単語集合  \mathbf{w}_d の生成確率を、各単語  w_{dn} の生成確率の積に分解する。

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

 \displaystyle
\begin{align}
p(\mathbf{W} \mid \mathbf{z}, \boldsymbol{\beta})
   &= \int
          \left\{ \prod_{d=1}^D \prod_{n=1}^{N_d}
              \phi_{z_dw_{dn}}
          \right\}
          \prod_{k=1}^K \left\{
              \frac{\Gamma(\sum_{v=1}^V \beta_v)}{\prod_{v=1}^V \Gamma(\beta_v)}
              \prod_{v=1}^V
                  \phi_{kv}^{\beta_v-1}
          \right\}
      \mathrm{d} \boldsymbol{\Phi}
\\
   &= \int
          \left\{ \prod_{k=1}^K \prod_{v=1}^V
              \phi_{kv}^{N_{kv}}
          \right\}
          \prod_{k=1}^K \left\{
              \frac{\Gamma(\sum_{v=1}^V \beta_v)}{\prod_{v=1}^V \Gamma(\beta_v)}
              \prod_{v=1}^V
                  \phi_{kv}^{\beta_v-1}
          \right\}
      \mathrm{d} \boldsymbol{\Phi}
\\
   &= \prod_{k=1}^K \left\{
          \frac{\Gamma(\sum_{v=1}^V \beta_v)}{\prod_{v=1}^V \Gamma(\beta_v)}
          \int
              \prod_{v=1}^V
                  \phi_{kv}^{N_{kv}+\beta_v-1}
          \mathrm{d} \boldsymbol{\phi}_k
      \right\}
\\
   &= \prod_{k=1}^K \left\{
          \frac{\Gamma(\sum_{v=1}^V \beta_v)}{\prod_{v=1}^V \Gamma(\beta_v)}
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{kv} + \beta_v)
          }{
              \Gamma(\sum_{v=1}^V \{N_{kv} + \beta_v\})
          }
      \right\}
\\
   &= \prod_{k=1}^K \left\{
          \frac{\Gamma(\sum_{v=1}^V \beta_v)}{\prod_{v=1}^V \Gamma(\beta_v)}
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{kv} + \beta_v)
          }{
              \Gamma(N_k + \sum_{v=1}^V \beta_v)
          }
      \right\}
\tag{3.25}\\
   &= \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{v=1}^V \beta_v)
          }{
              \Gamma(N_k + \sum_{v=1}^V \beta_v)
          }
          \prod_{v=1}^V
              \frac{\Gamma(N_{kv} + \beta_v)}{\Gamma(\beta_v)}
      \right\}
\tag{3.25'}
\end{align}

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


  • 1: 各単語の語彙  w_{dn} はカテゴリ分布、各トピックの単語分布のパラメータ  \boldsymbol{\phi}_k はディリクレ分布を仮定しているので、それぞれ定義式に置き換える。
 \displaystyle
\begin{aligned}
p(w_{dn} \mid \boldsymbol{\phi}_{z_d})
   &= \mathrm{Cat}(w_{dn} \mid \boldsymbol{\phi}_{z_d})
    = \phi_{z_dw_{dn}}
\\
p(\boldsymbol{\phi}_k \mid \boldsymbol{\boldsymbol{\beta}})
   &= \mathrm{Dir}(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
    = \frac{\Gamma(\sum_{v=1}^V \beta_v)}{\prod_{v=1}^V \Gamma(\beta_v)}
      \prod_{v=1}^V
          \phi_{kv}^{\beta_v-1}
\end{aligned}
  • 2:  N = \sum_{d=1}^D N_d 個の単語に対応するパラメータ  \phi_{z_{dn}w_{dn}} について、各文書に割り当てられたトピック番号  z_d = k と各単語に割り当てられた語彙番号  w_{dn} = v を用いてとトピックと語彙ごとにまとめると、 N_{kv} 個の  \phi_{kv} に置き換えられる。
  • 3:  \boldsymbol{\Phi} と無関係な正規化項を  \int の外に出し、 \phi_{kv} の項をまとめる。
  • 4: ディリクレ分布の正規化項(1.2.4項)より、積分全体を正規化項の逆数の形に置き換える。
  • 5: 語彙ごとの単語数の関係より、 N_k = \sum_{v=1}^V N_{kv} である。
  • 6: 不動点反復法を行うために、分母を入れ替えて  \beta_v, \sum_{v=1}^V \beta_v の項をそれぞれまとめる。

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

結合周辺分布

  \mathbf{W}, \mathbf{z} の結合分布の式(1)に、 \mathbf{Z} の周辺分布の式(3.24')と  \mathbf{W} の周辺分布の式(3.25')を代入する。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z} \mid \alpha, \boldsymbol{\beta})
   &= \frac{
          \Gamma(\sum_{k=1}^K \alpha_k)
      }{
          \Gamma(D + \sum_{k=1}^K \alpha_k)
      }
      \prod_{k=1}^K
          \frac{\Gamma(D_k + \alpha_k)}{\Gamma(\alpha_k)}
\\
   &\qquad * 
      \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{v=1}^V \beta_v)
          }{
              \Gamma(N_k + \sum_{v=1}^V \beta_v)
          }
          \prod_{v=1}^V
              \frac{\Gamma(N_{kv} + \beta_v)}{\Gamma(\beta_v)}
      \right\}
\end{aligned}

  \mathbf{W}, \mathbf{z} の結合周辺分布の式が得られた。

 以上で、文書集合とトピック集合の周辺分布の式、結合周辺分布の式が得られた。

サンプリング式の導出

 次は、文書集合とトピック集合の周辺分布を用いて、各文書のトピックのサンプリング式を導出する。

 全ての文書集合  \mathbf{W} から文書  d の単語集合  \mathbf{w}_d を除いた文書集合を  \mathbf{W}_{\backslash d} = \{\mathbf{w}_1, \cdots, \mathbf{w}_{d-1}, \mathbf{w}_{d+1}, \cdots, \mathbf{w}_D\} とする。全ての文書集合は  \mathbf{W} = \{\mathbf{w}_d, \mathbf{W}_{\backslash d}\} で表わせる。
 全文書のトピック集合  \mathbf{z} から文書  d のトピック  z_d を除いたトピック集合を  \mathbf{z}_{\backslash d} = \{z_1, \cdots, z_{d-1}, z_{d+1}, \cdots, z_D\} とする。全てのトピック集合は  \mathbf{z} = \{z_d, \mathbf{z}_{\backslash d}\} で表せる。
 同様に、文書  d を除くトピック  k が割り当てられた文書数を  D_{k \backslash d}、文書  d を除くトピック  k が割り当てられた全文書の単語数を  N_{k \backslash d}、文書  d を除くトピック  k が割り当てられた全文書における語彙  v の単語数を  N_{kv \backslash d} で表す。

トピックのサンプリング確率の設定

 全ての文書集合  \mathbf{W} と文書  d 以外のトピック集合  \mathbf{z}_{\backslash d} が与えられた(条件とする)ときの文書  d のトピック  z_d の条件付き分布を求める。

 \displaystyle
\begin{align}
p(z_d = k \mid \mathbf{W}, \mathbf{z}_{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= \frac{
          p(
              \mathbf{w}_d, \mathbf{W}_{\backslash d}, z_d = k, \mathbf{z}_{\backslash d}
          \mid
              \boldsymbol{\alpha}, \boldsymbol{\beta}
          )
      }{
          p(
              \mathbf{w}_d, \mathbf{W}_{\backslash d}, \mathbf{z}_{\backslash d}
          \mid
              \boldsymbol{\alpha}, \boldsymbol{\beta}
          )
      }
\\
   &\propto
      p(
          \mathbf{w}_d, \mathbf{W}_{\backslash d}, z_d = k, \mathbf{z}_{\backslash d}
      \mid
          \boldsymbol{\alpha}, \boldsymbol{\beta}
      )
\\
   &= p(z_d = k \mid \mathbf{z}_{\backslash d}, \boldsymbol{\alpha})
      p(\mathbf{w}_d \mid \mathbf{W}_{\backslash d}, z_d = k, \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
      p(\mathbf{z}_{\backslash d} \mid \boldsymbol{\alpha})
      p(\mathbf{W}_{\backslash d} \mid \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
\\
   &\propto
      p(z_d = k \mid \mathbf{z}_{\backslash d}, \boldsymbol{\alpha})
      p(\mathbf{w}_d \mid \mathbf{W}_{\backslash d}, z_d = k, \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
\tag{2}
\end{align}

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


  • 1: 条件付き確率  p(A \mid B, C) = \frac{p(A, B \mid C)}{p(B \mid C)} より、 z_d 以外の観測・潜在変数  \mathbf{w}_d, \mathbf{W}_{\backslash d}, \mathbf{z}_{\backslash d} を条件に移した式を立てる。
  • 2:  z_d と無関係な項を省く。
  • 3: 変数ごとの項に分割する。

 文書  d に関する変数  \mathbf{w}_d, z_d と文書  d 以外に関する変数  \mathbf{W}_{\backslash d}, \mathbf{z}_{\backslash d} の項を分割する。

 \displaystyle
p(
    \mathbf{w}_d, \mathbf{W}_{\backslash d}, z_d = k, \mathbf{z}_{\backslash d}
\mid
    \boldsymbol{\alpha}, \boldsymbol{\beta}
)
    = p(\mathbf{w}_d, z_d = k \mid \mathbf{W}_{\backslash d}, \mathbf{z}_{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta})
      p(\mathbf{W}_{\backslash d}, \mathbf{z}_{\backslash d} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})

 さらに前の項の、観測変数  \mathbf{w}_d と潜在変数  z_d の項を分割する。

 \displaystyle
p(\mathbf{w}_d, z_d = k \mid \mathbf{W}_{\backslash d}, \mathbf{z}_{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta})
    = p(\mathbf{w}_d \mid \mathbf{W}_{\backslash d}, z_d = k, \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
      p(z_d = k \mid \mathbf{z}_{\backslash d}, \boldsymbol{\alpha})

 後の項の、観測変数  \mathbf{W}_{\backslash d} と潜在変数  \mathbf{z}_{\backslash d} の項を分割する。

 \displaystyle
p(\mathbf{W}_{\backslash d}, \mathbf{z}_{\backslash d} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
    = p(\mathbf{W}_{\backslash d} \mid \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
      p(\mathbf{z}_{\backslash d} \mid \boldsymbol{\alpha})
  • 4:  z_d と無関係な項を省く。

  z_d に影響しない項を省いて比例関係のみに注目すると、 \mathbf{w}_d, z_d に関する事後周辺分布から得られることが分かった。

トピックの事後周辺分布

  z_d の条件付き分布の式(2)の前の項は、文書  d 以外のトピック集合  \mathbf{z}_{\backslash d} が与えられたときの文書  d のトピック  z_d の事後分布である。
 この式は、 \mathbf{z} の周辺分布の式(3.24)を用いて求められる。

 \displaystyle
\begin{align}
p(z_d = k \mid \mathbf{z}_{\backslash d}, \boldsymbol{\alpha})
   &= \frac{
          p(z_d = k, \mathbf{z}_{\backslash d} \mid \boldsymbol{\alpha})
      }{
          p(\mathbf{z}_{\backslash d} \mid \boldsymbol{\alpha})
      }
\\
   &= \frac{\Gamma(\sum_{k'=1}^K \alpha_{k'})}{\prod_{k'=1}^K \Gamma(\alpha_{k'})}
      \frac{
          \Gamma(D_{k \backslash d} + 1 + \alpha_k)
          \prod_{k' \neq k}
              \Gamma(D_{k' \backslash d} + \alpha_{k'})
      }{
          \Gamma(D + \sum_{k'=1}^K \alpha_{k'})
      }
\\
   &\qquad * 
      \frac{\prod_{k'=1}^K \Gamma(\alpha_{k'})}{\Gamma(\sum_{k'=1}^K \alpha_{k'})}
      \frac{
          \Gamma(D-1 + \sum_{k'=1}^K \alpha_{k'})
      }{
          \prod_{k'=1}^K
              \Gamma(D_{k' \backslash d} + \alpha_{k'})
      }
\\
   &= \frac{
          (D_{k \backslash d} + \alpha_k)
          \Gamma(D_{k \backslash d} + \alpha_k)
          \prod_{k' \neq k}
              \Gamma(D_{k' \backslash d} + \alpha_{k'})
      }{
          (D-1 + \sum_{k'=1}^K \alpha_{k'})
          \Gamma(D-1 + \sum_{k'=1}^K \alpha_{k'})
      }
      \frac{
          \Gamma(D-1 + \sum_{k'=1}^K \alpha_{k'})
      }{
          \prod_{k'=1}^K
              \Gamma(D_{k' \backslash d} + \alpha_{k'})
      }
\\
   &= \frac{
          D_{k \backslash d} + \alpha_k
      }{
          D-1 + \sum_{k=1}^K \alpha_k
      }
\tag{3.26}
\end{align}

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


  • 1: 条件付き確率より、 z_d 以外の潜在変数  \mathbf{z}_{\backslash d} を条件に移した式を立てる。
  • 2: 式(3.24)を用いて、分母分子を具体的な式に置き換える。

  \mathbf{z} の周辺分布(分子)は式(3.24)であり、 \mathbf{z}_{\backslash d} の周辺分布(分母)は式(3.24)から文書  d に関して取り除いた式である。

 \displaystyle
\begin{align}
p(z_d = k, \mathbf{z}_{\backslash d} \mid \boldsymbol{\alpha})
   &= \frac{\Gamma(\sum_{k'=1}^K \alpha_{k'})}{\prod_{k'=1}^K \Gamma(\alpha_{k'})}
      \frac{
          \prod_{k'=1}^K
              \Gamma(D_{k'} + \alpha_{k'})
      }{
          \Gamma(D + \sum_{k=1}^K \alpha_k)
      }
\tag{3.24}\\
p(\mathbf{z}_{\backslash d} \mid \boldsymbol{\alpha})
   &= \frac{\Gamma(\sum_{k'=1}^K \alpha_{k'})}{\prod_{k'=1}^K \Gamma(\alpha_{k'})}
      \frac{
          \prod_{k'=1}^K
              \Gamma(D_{k' \backslash d} + \alpha_{k'})
      }{
          \Gamma(D_{\backslash d} + \sum_{k'=1}^K \alpha_{k'})
      }
\end{align}

 文書  d のトピック  z_d k のとき、 d を含めない数  D_{k \backslash d} は、 d を含めた数  D_k から  d の数  1 を引いた文書数となる。 k 以外のとき、 d の数が元々含まれていないので、 D_k である。

 \displaystyle
\begin{aligned}
D_{k \backslash d}
    = \begin{cases}
          D_k - 1
             &\quad
                (z_d = k) \\
          D_k
             &\quad
                (z_d \neq k)
      \end{cases}
\end{aligned}

 これを  D_k について解くと、次の関係が分かる。

 \displaystyle
\begin{aligned}
D_k
    = \begin{cases}
          D_{k \backslash d} + 1
             &\quad
                (z_d = k) \\
          D_{k \backslash d}
             &\quad
                (z_d \neq k)
      \end{cases}
\end{aligned}

  \mathbf{z} の周辺分布の式について、 D_k D_{k \backslash d} に置き換える。
 トピック  k の項のみ形が異なるので、 \prod_{k=1}^K から取り出し、 k 以外の項の積を  \prod_{k' \neq k} で表す。

  \mathbf{z}_{\backslash d} の周辺分布の式について、文書  d を除く文書数  D_{\backslash d} = \sum_{k'=1}^K D_{k' \backslash d} = D-1 を置き換える。

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

  z_d のトピックの事後分布の式が得られた。

単語の事後周辺分布

  z_d の条件付き分布の式(2)の後の項は、文書  d 以外の文書集合  \mathbf{W}_{\backslash d} と全文書のトピック集合  \mathbf{z} が与えられたときの文書  d の単語集合  \mathbf{w}_d の事後分布である。
 同様に、 \mathbf{W} の周辺分布の式(3.25)を用いて求められる。

 \displaystyle
\begin{align}
p(\mathbf{w}_d \mid \mathbf{W}_{\backslash d}, z_d = k, \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
   &= \frac{
          p(\mathbf{w}_d, \mathbf{W}_{\backslash d} \mid z_d = k, \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
      }{
          p(\mathbf{W}_{\backslash d} \mid \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
      }
\\
   &= \frac{
          \Gamma(\sum_{v=1}^V \beta_v)^K
      }{
          \prod_{v=1}^V
              \Gamma(\beta_v)^K
      }
      \frac{
          \prod_{v=1}^V
              \Gamma(N_{kv \backslash d} + N_{dv} + \beta_v)
      }{
          \Gamma(N_{k \backslash d} + N_d + \sum_{v=1}^V \beta_v)
      }
      \prod_{k' \neq k}
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{k'v \backslash d} + \beta_v)
          }{
              \Gamma(N_{k' \backslash d} + \sum_{v=1}^V \beta_v)
          } \\
   &\qquad * 
      \frac{
          \prod_{v=1}^V
              \Gamma(\beta_v)^K
      }{
          \Gamma(\sum_{v=1}^V \beta_v)^K
      }
      \frac{
          \Gamma(N_{k \backslash d} + \sum_{v=1}^V \beta_v)
      }{
          \prod_{v=1}^V
              \Gamma(N_{kv \backslash d} + \beta_v)
      }
      \prod_{k' \neq k}
          \frac{
              \Gamma(N_{k' \backslash d} + \sum_{v=1}^V \beta_v)
          }{
              \prod_{v=1}^V
                  \Gamma(N_{k'v \backslash d} + \beta_v)
          }
\\
   &= \frac{
          \prod_{v=1}^V
              \Gamma(N_{kv \backslash d} + N_{dv} + \beta_v)
      }{
          \Gamma(N_{k \backslash d} + N_{d} + \sum_{v=1}^V \beta_v)
      }
      \frac{
          \Gamma(N_{k \backslash d} + \sum_{v=1}^V \beta_v)
      }{
          \prod_{v=1}^V
              \Gamma(N_{kv \backslash d} + \beta_v)
      }
\\
   &= \frac{
          \Gamma(N_{k \backslash d} + \sum_{v=1}^V \beta_v)
      }{
          \Gamma(N_{k \backslash d} + N_d + \sum_{v=1}^V \beta_v)
      }
      \prod_{v:N_{dv}>0}
          \frac{
              \Gamma(N_{kv \backslash d} + N_{dv} + \beta_v)
          }{
              \Gamma(N_{kv \backslash d} + \beta_v)
          }
\tag{3}
\end{align}

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


  • 1: 条件付き確率より、 \mathbf{w}_d 以外の観測変数  \mathbf{W}_{\backslash d} を条件に移した式を立てる。
  • 2: 式(3.25)を用いて、分母分子を具体的な式に置き換える。

  \mathbf{W} の周辺分布(分子)は式(3.25)であり、 \mathbf{W}_{\backslash d} の周辺分布(分母)は式(3.25)から文書  d に関して取り除いた式である。

 \displaystyle
\begin{align}
p(\mathbf{w}\_d, \mathbf{W}_{\backslash d} \mid z_d = k, \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
   &= \prod_{k'=1}^K \left\{
          \frac{\Gamma(\sum_{v=1}^V \beta_v)}{\prod_{v=1}^V \Gamma(\beta_v)}
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{k'v} + \beta_v)
          }{
              \Gamma(N_{k'} + \sum_{v=1}^V \beta_v)
          }
      \right\}
\tag{3.25}\\
p(\mathbf{W}_{\backslash d} \mid \mathbf{z}_{\backslash d}, \boldsymbol{\beta})
   &= \prod_{k'=1}^K \left\{
          \frac{\Gamma(\sum_{v=1}^V \beta_v)}{\prod_{v=1}^V \Gamma(\beta_v)}
          \frac{
              \prod_{v=1}^V
                  \Gamma(N_{k'v \backslash d} + \beta_v)
          }{
              \Gamma(N_{k' \backslash d} + \sum_{v=1}^V \beta_v)
          }
      \right\}
\end{align}

 文書  d のトピック  z_d k のとき、 d を含めない数  N_{kv \backslash d}, N_{k \backslash d} は、 d を含めた数  N_{kv}, N_k から  d の数  N_{dv}, N_d を引いた単語数となる。 k 以外のとき、 d の数が元々含まれていないので、 N_{kv}, N_k である。

 \displaystyle
\begin{aligned}
N_{kv \backslash d}
   &= \begin{cases}
          N_{kv} - N_{dv}
             &\quad
                (z_d = k) \\
          N_{kv}
             &\quad
                (z_d \neq k)
      \end{cases}
\\
N_{k \backslash d}
   &= \begin{cases}
          N_k - N_d
             &\quad
                (z_d = k) \\
          N_k
             &\quad
                (z_d \neq k)
      \end{cases}
\end{aligned}

 これを  N_{kv}, N_k についてそれぞれ解くと、次の関係が分かる。

 \displaystyle
\begin{aligned}
N_{kv}
   &= \begin{cases}
          N_{kv \backslash d} + N_{dv}
             &\quad
                (z_d = k) \\
          N_{kv \backslash d}
             &\quad
                (z_d \neq k)
      \end{cases}
\\
N_k
   &= \begin{cases}
          N_{k \backslash d} + N_d
             &\quad
                (z_d = k) \\
          N_{k \backslash d}
             &\quad
                (z_d \neq k)
      \end{cases}
\end{aligned}

  \mathbf{W} の周辺分布の式について、 N_{kv}, N_k N_{kv \backslash d}, N_{k \backslash d} に置き換える。
 トピック  k の項のみ形が異なるので、 \prod_{k=1}^K から取り出し、 k 以外の項の積を  \prod_{k' \neq k} で表す。

 正規化項は  \prod_{k'=1}^K \frac{\Gamma(\sum_{v'=1}^V \beta_{v'})}{\prod_{v'=1}^V \Gamma(\beta_{v'})} = \frac{\Gamma(\sum_{v'=1}^V \beta_{v'})^K}{\prod_{v'=1}^V \Gamma(\beta_{v'})^K} となる。

  • 3: 約分すると  k に関する項のみが残る。
  • 4: 分子を入れ替えて  \beta_v, \sum_{v=1}^V \beta_v の項をそれぞれまとめる。

 各文書において未観測の語彙(  N_{dv} = 0 である  v の項)に関して、 \Gamma(N_{kv \backslash d} + N_{dv} + \beta_v) = \Gamma(N_{kv \backslash d} + \beta_v) なので、 \frac{\Gamma(N_{kv \backslash d} + N_{dv} + \beta_v)}{\Gamma(N_{kv \backslash d} + \beta_V)} = 1 となり消える。観測された語彙(  N_{dv} \gt 0 である  v の項)に関する項の積を  \prod_{v: N_{dv}>0} で表す。


  \mathbf{w}_d の事後分布の式が得られた。

トピックのサンプリング確率

  z_d の条件付き分布の式(2)に、 z_d の事後分布の式(3.26)と  \mathbf{w}_d の事後分布の式(3)を代入する。

 \displaystyle
\begin{align}
p(z_d = k \mid \mathbf{W}, \mathbf{z}_{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta})
   &\propto
      \frac{
          D_{k \backslash d} + \alpha_k
      }{
          D-1 + \sum_{k=1}^K \alpha_k
      }
      \frac{
          \Gamma(N_{k \backslash d} + \sum_{v=1}^V \beta_v)
      }{
          \Gamma(N_{k \backslash d} + N_d + \sum_{v=1}^V \beta_v)
      }
      \prod_{v:N_{dv}>0}
          \frac{
              \Gamma(N_{kv \backslash d} + N_{dv} + \beta_v)
          }{
              \Gamma(N_{kv \backslash d} + \beta_v)
          }
\\
   &\propto
      (D_{k \backslash d} + \alpha_k)
      \frac{
          \Gamma(N_{k \backslash d} + \sum_{v=1}^V \beta_v)
      }{
          \Gamma(N_{k \backslash d} + N_d + \sum_{v=1}^V \beta_v)
      }
      \prod_{v:N_{dv}>0}
          \frac{
              \Gamma(N_{kv \backslash d} + N_{dv} + \beta_v)
          }{
              \Gamma(N_{kv \backslash d} + \beta_v)
          }
\tag{3.27}
\end{align}

  z_d = k に影響しない項を省いた。
 他のトピックについても同様に計算でき、全てのトピックに関する総和で割ることで正規化できる。

 以上で、各文書のトピックのサンプリング式が得られた。

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

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

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

  \mathbf{z} の周辺分布の式(3.24')を

 \displaystyle
\begin{align}
p(\mathbf{z} \mid \boldsymbol{\alpha})
   &= \frac{
          \Gamma(\sum_{k=1}^K \alpha_k)
      }{
          \Gamma(D + \sum_{k=1}^K \alpha_k)
      }
      \prod_{k=1}^K
          \frac{\Gamma(D_k + \alpha_k)}{\Gamma(\alpha_k)}
\tag{3.24'}\\
   &\geq
      \frac{
          \Gamma(\sum_{k=1}^K \alpha_k)
      }{
          \Gamma(D + \sum_{k=1}^K \alpha_k)
      }
      \exp \Bigl(
          (\sum_{k=1}^K \alpha_k - \sum_{k=1}^K \alpha_k^{\mathrm{new}})
          b_{\alpha}
      \Bigr)
      \prod_{k=1}^K \left\{
          \frac{\Gamma(D_k + \alpha_k)}{\Gamma(\alpha_k)}
          \alpha_k^{-a_{\alpha}}
          (\alpha_k^{\mathrm{new}})^{a_{\alpha}}
      \right\}
\end{align}

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

 \displaystyle
\begin{align}
p(\mathbf{W} \mid \mathbf{z}, \boldsymbol{\beta})
   &= \prod_{k=1}^K \left\{
          \frac{
              \Gamma(\sum_{v=1}^V \beta_v)
          }{
              \Gamma(N_k + \sum_{v=1}^V \beta_v)
          }
          \prod_{v=1}^V
              \frac{\Gamma(N_{kv} + \beta_v)}{\Gamma(\beta_v)}
      \right\}
\tag{3.25'}\\
   &\geq
      \prod_{k=1}^K \left[
          \frac{
              \Gamma(\sum_{v=1}^V \beta_v)
          }{
              \Gamma(N_k + \sum_{v=1}^V \beta_v)
          }
          \exp \Bigl(
              (\sum_{v=1}^V \beta_v - \sum_{v=1}^V \beta_v^{\mathrm{new}})
              b_{\beta}
          \Bigr)
          \prod_{v=1}^V \left\{
              \frac{\Gamma(N_{kv} + \beta_v)}{\Gamma(\beta_v)}
              \beta_v^{-a_{\beta}}
              (\beta_v^{\mathrm{new}})^{a_{\beta}}
          \right\}
      \right]
\end{align}

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

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{z} \mid \boldsymbol{\alpha}, \boldsymbol{\beta})
   &\geq
      \frac{
          \Gamma(\sum_{k=1}^K \alpha_k)
      }{
          \Gamma(D + \sum_{k=1}^K \alpha_k)
      }
      \exp \Bigl(
          (\sum_{k=1}^K \alpha_k - \sum_{k=1}^K \alpha_k^{\mathrm{new}})
          b_{\alpha}
      \Bigr)
\\
   &\qquad * 
      \prod_{k=1}^K \left\{
          \frac{\Gamma(D_k + \alpha_k)}{\Gamma(\alpha_k)}
          \alpha_k^{-a_{\alpha}}
          (\alpha_k^{\mathrm{new}})^{a_{\alpha}}
      \right\}
\\
   &\quad * 
      \prod_{k=1}^K \Biggl[
          \frac{
              \Gamma(\sum_{v=1}^V \beta_v)
          }{
              \Gamma(N_k + \sum_{v=1}^V \beta_v)
          }
          \exp \Bigl(
              (\sum_{v=1}^V \beta_v - \sum_{v=1}^V \beta_v^{\mathrm{new}})
              b_{\beta}
          \Bigr)
      \Biggr.
\\
   &\qquad \qquad * 
      \Biggl.
          \prod_{v=1}^V \left\{
              \frac{\Gamma(N_{kv} + \beta_v)}{\Gamma(\beta_v)}
              \beta_v^{-a_{\beta}}
              (\beta_v^{\mathrm{new}})^{a_{\beta}}
          \right\}
      \Biggr]
    \equiv
      G
\end{aligned}

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

 \displaystyle
\begin{aligned}
a_{\alpha}
   &= \Bigl(
          \Psi(D_k + \alpha_k)
          - \Psi(\alpha_k)
      \Bigr)
      \alpha_k
\\
b_{\alpha}
   &= \Psi \Bigl(D + \sum_{k=1}^K \alpha_k \Bigr)
      - \Psi \Bigl(\sum_{k=1}^K \alpha_k \Bigr)
\\
a_{\beta}
   &= \Bigl(
          \Psi(N_{kv} + \beta_v)
          - \Psi(\beta_v)
      \Bigr)
      \beta_v
\\
b_{\beta}
   &= \Psi \Bigl(N_k + \sum_{v=1}^V \beta_v \Bigr)
     - \Psi \Bigl(\sum_{v=1}^V \beta_v \Bigr)
\end{aligned}
\tag{4}

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


  • 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_k, \beta_v、更新後の値(変数)  x \alpha_k^{\mathrm{new}}, \beta_v^{\mathrm{new}} x と対応させて下限の式に変形する。


 現在の値を  \alpha_k, \beta_v、更新後の値を  \alpha_k^{\mathrm{new}}, \beta_v^{\mathrm{new}} とする。周辺尤度に関して  \alpha_k, \beta_v の周りでテイラー展開(近似)して下限として用いる。
 詳しくは「対数ガンマ関数とディガンマ関数の不等式の導出【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

  \mathbf{W}, \mathbf{z} の結合分布の下限  G の対数をとり対数下限  F とおく。

 \displaystyle
\begin{aligned}
F  &= \log G
\\
   &= \log \frac{
          \Gamma(\sum_{k=1}^K \alpha_k)
      }{
          \Gamma(D + \sum_{k=1}^K \alpha_k)
      }
      + \left(
            \sum_{k=1}^K
                \alpha_k
            - \sum_{k=1}^K
                \alpha_k^{\mathrm{new}}
        \right)
        b_{\alpha}
\\
   &\qquad
      + \sum_{k=1}^K \left\{
          \log \frac{\Gamma(D_k + \alpha_k)}{\Gamma(\alpha_k)}
          - a_{\alpha} \log \alpha_k
          + a_{\alpha} \log \alpha_k^{\mathrm{new}}
      \right\}
\\
   &\quad
      + \sum_{k=1}^K \Biggl[
          \log \frac{
              \Gamma(\sum_{v=1}^V \beta_v)
          }{
              \Gamma(N_k + \sum_{v=1}^V \beta_v)
          }
          + \left(
                \sum_{v=1}^V
                    \beta_v
                - \sum_{v=1}^V
                    \beta_v^{\mathrm{new}}
            \right)
            b_{\beta}
      \Biggr.
\\
   &\qquad \qquad
      \Biggl.
          + \sum_{v=1}^V \left\{
              \log \frac{\Gamma(N_{kv} + \beta_v)}{\Gamma(\beta_v)}
              - a_{\beta} \log \beta_v
              + a_{\beta} \log \beta_v^{\mathrm{new}}
          \right\}
      \Biggr]
\end{aligned}

  \mathbf{W}, \mathbf{z} の結合分布の対数下限の式が得られた。

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

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

 \displaystyle
F(\alpha_k^{\mathrm{new}})
    = - b_{\alpha} \alpha_k^{\mathrm{new}}
      + a_{\alpha} \log \alpha_k^{\mathrm{new}}
      + \mathrm{const.}

 関数  F(\alpha_k^{\mathrm{new}}) \alpha_k^{\mathrm{new}} に関して微分する。

 \displaystyle
\begin{aligned}
\frac{\partial F(\alpha_k^{\mathrm{new}})}{\partial \alpha_k^{\mathrm{new}}}
   &= \frac{\partial}{\partial \alpha_k^{\mathrm{new}}} \Bigl\{
          - b_{\alpha} \alpha_k^{\mathrm{new}}
          + a_{\alpha} \log \alpha_k^{\mathrm{new}}
          + \mathrm{const.}
      \Bigr\}
\\
   &= \frac{\partial}{\partial \alpha_k^{\mathrm{new}}} \Bigl\{
          - b_{\alpha} \alpha_k^{\mathrm{new}}
      \Bigr\}
      + \frac{\partial}{\partial \alpha_k^{\mathrm{new}}} \Bigl\{
          a_{\alpha} \log \alpha_k^{\mathrm{new}}
        \Bigr\}
      + \frac{\partial \mathrm{const.}}{\partial \alpha_k^{\mathrm{new}}}
\\
   &= - b_{\alpha}
        \frac{\partial \alpha_k^{\mathrm{new}}}{\partial \alpha_k^{\mathrm{new}}}
      + a_{\alpha}
        \frac{\partial \log \alpha_k^{\mathrm{new}}}{\partial \alpha_k^{\mathrm{new}}}
      + 0
\\
   &= - b_{\alpha}
      + a_{\alpha}
        \frac{1}{\alpha_k^{\mathrm{new}}}
\end{aligned}

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


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

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

 \displaystyle
\begin{align}
&&
- b_{\alpha}
+ \frac{a_{\alpha}}{\alpha_k^{\mathrm{new}}}
   &= 0
\\
\Rightarrow &&
\alpha_k^{\mathrm{new}}
   &= \frac{a_{\alpha}}{b_{\alpha}}
\\
&&
   &= \frac{
          \Bigl(
              \Psi(D_k + \alpha_k)
              - \Psi(\alpha_k)
          \Bigr)
          \alpha_k
      }{
          \Psi(D + \sum_{k'=1}^K \alpha_{k'})
          - \Psi(\sum_{k'=1}^K \alpha_{k'})
      }
\\
&&
   &= \alpha_k
      \frac{
          \Psi(D_k + \alpha_k)
          - \Psi(\alpha_k)
      }{
          \Psi(D + \sum_{k'=1}^K \alpha_{k'})
          - \Psi(\sum_{k'=1}^K \alpha_{k'})
      }
\tag{3.28}
\end{align}

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


  • 1:  \frac{\partial F(\alpha_k^{\mathrm{new}})}{\partial \alpha_k^{\mathrm{new}}} 0 とおく。
  • 2:  \alpha_k^{\mathrm{new}} について式を整理する。
  • 3:  a_{\alpha}, b_{\alpha} に式(4)を代入する。
  • 4: 括弧を展開する。

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

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

 \displaystyle
\alpha_k^{(i)}
    = \alpha_k^{(i-1)}
      \frac{
          \Psi \Bigl(
              D_k^{(i-1)} + \alpha_k^{(i-1)}
          \Bigr)
          - \Psi \Bigl(
              \alpha_k^{(i-1)}
            \Bigr)
      }{
          \Psi \Bigl(
              D + \sum_{k'=1}^K \alpha_{k'}^{(i-1)}
          \Bigr)
          - \Psi \Bigl(
              \sum_{k'=1}^K \alpha_{k'}^{(i-1)}
            \Bigr)
      }

  \alpha_k の更新式が得られた。他のトピックについても同様に求められる。

単語分布のハイパーパラメータ

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

 \displaystyle
F(\beta_v^{\mathrm{new}})
    = \sum_{k=1}^K \Bigl\{
          - b_{\beta} \beta_v^{\mathrm{new}}
          + a_{\beta} \log \beta_v^{\mathrm{new}}
      \Bigr\}
      + \mathrm{const.}

 関数  F(\beta_v^{\mathrm{new}}) \beta_v^{\mathrm{new}} に関して微分する。

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

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


  • 1:  F の式全体の偏微分を考える。ただし、 \beta_v^{\mathrm{new}} に関する微分なので、 \beta_v は定数として扱う。
  • 2-4: 和の微分より、項ごとの微分の和に分割して、それぞれ係数を  \frac{\partial}{\partial \beta_v^{\mathrm{new}}} の外に出して、微分する。

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

 \displaystyle
\begin{align}
&&
- \sum_{k=1}^K
    b_{\beta}
+ \frac{
      \sum_{k=1}^K
          a_{\beta}
  }{
      \beta_v^{\mathrm{new}}
  }
   &= 0
\\
\Rightarrow &&
\beta_v^{\mathrm{new}}
   &= \frac{
          \sum_{k=1}^K
              a_{\beta}
      }{
          \sum_{k=1}^K
              b_{\beta}
      }
\\
&&
   &= \frac{
          \sum_{k=1}^K
              \Bigl(
                  \Psi(N_{kv} + \beta_v)
                  - \Psi(\beta_v)
              \Bigr)
              \beta_v
      }{
          \sum_{k=1}^K
              \Bigl\{
                  \Psi(N_k + \sum_{v'=1}^V \beta_{v'})
                  - \Psi(\sum_{v'=1}^V \beta_{v'})
              \Bigr\}
      }
\\
&&
   &= \beta_v
      \frac{
          \sum_{k=1}^K
              \Psi(N_{kv} + \beta_v)
          - K \Psi(\beta_v)
      }{
          \sum_{k=1}^K
              \Psi(N_k + \sum_{v'=1}^V \beta_{v'})
          - K \Psi(\sum_{v'=1}^V \beta_{v'})
      }
\tag{3.29}
\end{align}

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


  • 1:  \frac{\partial F(\beta_v^{\mathrm{new}})}{\partial \beta_v^{\mathrm{new}}} 0 とおく。
  • 2:  \beta_v^{\mathrm{new}} について式を整理する。
  • 3:  a_{\beta}, b_{\beta} に式(4)を代入する。
  • 4: 括弧を展開する。

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

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

 \displaystyle
\beta_v^{(i)}
    = \beta_v^{(i-1)}
      \frac{
          \sum_{k=1}^K
              \Psi \Bigl(
                  N_{kv}^{(i-1)} + \beta_v^{(i-1)}
              \Bigr)
          - K
            \Psi \Bigl(
              \beta_v^{(i-1)}
            \Bigr)
      }{
          \sum_{k=1}^K
              \Psi \Bigl(
                  N_k^{(i-1)}
                  + \sum_{v'=1}^V
                      \beta_{v'}^{(i-1)}
              \Bigr)
          - K
            \Psi \Bigl(
                \sum_{v'=1}^V
                    \beta_{v'}^{(i-1)}
            \Bigr)
      }

  \beta_v の更新式が得られた。他の語彙についても同様に求められる。

 以上で、トピック分布と単語分布のハイパーパラメータの更新式が得られた。

事後予測分布の導出

 最後は、文書集合とトピック集合の事後周辺分布を用いて、未知(新規)の単語と文書のトピックの事後予測分布を導出する。

 新たに生成される(  D+1 番目の)文書のトピックを  z^{*}、その文書において新たに生成される(  1 番目の)単語(の語彙)を  w^{*} で表す。

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

 トピック集合  \mathbf{z} が与えられたときの未知の文書のトピック  z^{*} の予測分布を求める。

 \displaystyle
\begin{aligned}
p(z^{*} = k \mid \mathbf{Z}, \boldsymbol{\alpha})
   &= \int
          p(z^{*} = k, \boldsymbol{\theta} \mid \mathbf{z}, \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\theta}
\\
   &= \int
          p(z^{*} = k \mid \boldsymbol{\theta})
          p(\boldsymbol{\theta} \mid \mathbf{Z}, \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\theta}
\end{aligned}

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


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

  p(\boldsymbol{\theta} \mid \mathbf{z}, \boldsymbol{\alpha}) は、 \mathbf{z} が与えられたときのトピック分布のパラメータ  \boldsymbol{\theta} の事後分布である。つまり、 p(z^{*} = k \mid \mathbf{z}, \boldsymbol{\alpha}) は、 \boldsymbol{\theta} の事後分布を用いたトピック  z^{*} の周辺分布である。

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

  z^{*} の予測分布の式は、 \mathbf{z} の周辺分布の式(3.24)を用いて求められる。

 \displaystyle
\begin{aligned}
p(z^{*} = k \mid \mathbf{z}, \boldsymbol{\alpha})
   &= \frac{
          p(z^{*} = k, \mathbf{z} \mid \boldsymbol{\alpha})
      }{
          p(\mathbf{z} \mid \boldsymbol{\alpha})
      }
\\
   &= \frac{\Gamma(\sum_{k'=1}^K \alpha_{k'})}{\prod_{k'=1}^K \Gamma(\alpha_{k'})}
      \frac{
          \Gamma(D_k+1 + \alpha_k)
          \prod_{k' \neq k}
              \Gamma(D_{k'} + \alpha_{k'})
      }{
          \Gamma(D+1 + \sum_{k'=1}^K \alpha_{k'})
      }
\\
   &\qquad * 
      \frac{\prod_{k'=1}^K \Gamma(\alpha_{k'})}{\Gamma(\sum_{k'=1}^K \alpha_{k'})}
      \frac{
          \Gamma(D + \sum_{k'=1}^K \alpha_{k'})
      }{
          \prod_{k'=1}^K
              \Gamma(D_{k'} + \alpha_{k'})
      }
\\
   &= \frac{
          (D_k + \alpha_k)
          \Gamma(D_k + \alpha_k)
          \prod_{k' \neq k}
              \Gamma(D_{k'} + \alpha_{k'})
      }{
          (D + \sum_{k'=1}^K \alpha_{k'})
          \Gamma(D + \sum_{k'=1}^K \alpha_{k'})
      }
      \frac{
          \Gamma(D + \sum_{k'=1}^K \alpha_{k'})
      }{
          \prod_{k'=1}^K
              \Gamma(D_{k'} + \alpha_{k'})
      }
\\
   &= \frac{
          D_k + \alpha_k
      }{
          D + \sum_{k'=1}^K \alpha_{k'}
      }
    \equiv
        \hat{\theta}_k
\end{aligned}

 1つの文書  d を除いた「トピックの事後周辺分布」のときと同様に、 D+1 番目の文書を追加した場合を考えて、 \hat{\theta}_k とおく。

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

 \displaystyle
\begin{aligned}
\hat{\boldsymbol{\theta}}
   &= (\hat{\theta}_1, \hat{\theta}_2, \cdots, \hat{\theta}_K)
\\
   &= \left(
          \frac{D_1 + \alpha_1}{D + \sum_{k=1}^K \alpha_k}, 
          \frac{D_2 + \alpha_2}{D + \sum_{k=1}^K \alpha_k}, 
          \cdots, 
          \frac{D_K + \alpha_K}{D + \sum_{k=1}^K \alpha_k}
      \right)
\end{aligned}

 非負の分子の総和が分母に一致するので、カテゴリ分布のパラメータの条件を満たす。
 観測データ  \mathbf{z} から推定したトピック分布のパラメータ  \mathbf{\theta} の推定値と言える。

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

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

 \displaystyle
\begin{aligned}
p(w^{*} = v \mid z^{*} = k, \mathbf{W}, \mathbf{z}, \boldsymbol{\beta})
   &= \int
          p(w^{*} = v, \boldsymbol{\phi}_k \mid z^{*} = k, \mathbf{W}, \mathbf{z}, \boldsymbol{\beta})
      \mathrm{d} \boldsymbol{\phi}_k
\\
   &= \int
          p(w^{*} = v \mid z^{*} = k, \boldsymbol{\phi}_k)
          p(\boldsymbol{\phi}_k \mid \mathbf{W}, \mathbf{z}, \boldsymbol{\beta})
      \mathrm{d} \boldsymbol{\phi}_k
\end{aligned}

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


  • 1: 観測(またはサンプリング)した変数  z^{*}, \mathbf{W}, \mathbf{z} と事前分布のパラメータ  \boldsymbol{\beta} を条件とする未観測の観測変数  w^{*} とパラメータ  \boldsymbol{\phi}_k の結合分布を  \boldsymbol{\phi}_k に関して周辺化した式を立てる。
  • 2: 変数  w^{*} とパラメータ  \boldsymbol{\phi}_k の項を分割する。

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

単語分布のパラメータ

  w^{*} の予測分布の式は、 \mathbf{W} の周辺分布の式(3.25)を用いて求められる。

 \displaystyle
\begin{aligned}
p(w^{*} = v \mid z^{*} = k, \mathbf{W}, \mathbf{z}, \boldsymbol{\beta})
   &= \frac{
          p(w^{*} = v, \mathbf{W} \mid z^{*} = k, \mathbf{z}, \boldsymbol{\beta})
      }{
          p(\mathbf{W} \mid \mathbf{z}, \boldsymbol{\beta})
      }
\\
   &= \frac{
          \Gamma(\sum_{v'=1}^V \beta_{v'})^K
      }{
          \prod_{v'=1}^V
              \Gamma(\beta_{v'})^K
      }
      \frac{
          \Gamma(N_{kv} + 1 + \beta_v)
          \prod_{v' \neq v}
              \Gamma(N_{kv'} + \beta_{v'})
      }{
          \Gamma(N_k + 1 + \sum_{v'=1}^V \beta_{v'})
      }
      \prod_{k' \neq k}
          \frac{
              \prod_{v'=1}^V
                  \Gamma(N_{k'v'} + \beta_{v'})
          }{
              \Gamma(N_{k'} + \sum_{v'=1}^V \beta_{v'})
          }
\\
   &\qquad * 
      \frac{
          \prod_{v'=1}^V
              \Gamma(\beta_{v'})^K
      }{
          \Gamma(\sum_{v'=1}^V \beta_{v'})^K
      }
      \frac{
          \Gamma(N_k + \sum_{v'=1}^V \beta_{v'})
      }{
          \prod_{v'=1}^V
              \Gamma(N_{kv'} + \beta_{v'})
      }
      \prod_{k' \neq k}
          \frac{
              \Gamma(N_{k'} + \sum_{v'=1}^V \beta_{v'})
          }{
              \prod_{v'=1}^V
                  \Gamma(N_{k'v'} + \beta_{v'})
          }
\\
   &= \frac{
          (N_{kv} + \beta_v)
          \Gamma(N_{kv} + \beta_v)
          \prod_{v' \neq v}
              \Gamma(N_{kv'} + \beta_{v'})
      }{
          (N_k + \sum_{v'=1}^V \beta_{v'})
          \Gamma(N_k + \sum_{v'=1}^V \beta_{v'})
      }
      \frac{
          \Gamma(N_k + \sum_{v'=1}^V \beta_{v'})
      }{
          \prod_{v'=1}^V
              \Gamma(N_{kv'} + \beta_{v'})
      }
\\
   &= \frac{
          N_{kv} + \beta_v
      }{
          N_k + \sum_{v'=1}^V \beta_{v'}
      }
    \equiv
        \hat{\phi}_{kv}
\end{aligned}

 1つの文書  d を除いた「単語の事後周辺分布」のときと同様に、 D+1 番目の文書において1つの単語  w^{*} を追加した場合を考えて、 \hat{\phi}_{kv} とおく。

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

 \displaystyle
\begin{aligned}
\hat{\boldsymbol{\phi}}_k
   &= (\hat{\phi}_{k1}, \hat{\phi}_{k2}, \cdots, \hat{\phi}_{kV})
\\
   &= \left(
          \frac{N_{k1} + \beta_1}{N_k + \sum_{v=1}^V \beta_v}, 
          \frac{N_{k2} + \beta_2}{N_k + \sum_{v=1}^V \beta_v}, 
          \cdots, 
          \frac{N_{kV} + \beta_V}{N_k + \sum_{v=1}^V \beta_v}
      \right)
\end{aligned}

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

 以上で、各単語と各文書のトピックの事後予測分布の式が得られた。

 この記事では、多様なハイパーパラメータの場合の混合ユニグラムモデルに対する崩壊型ギブスサンプリングによるパラメータの計算式を導出した。

参考書籍

おわりに

 本には載っていないのですが、勢いで多様版も書きました。ブログは勢いが大事です。冷静になると筆が止まります。
 トピックモデルは多様版も本に載っているので(初稿時点で書いたのか何回か行った修正時に加筆したのか忘れましたが)既に記事にしています。今の勢いのままに、4章を加筆修正して5章の修正と合わせて多様版を追加します。今回こそは絶対に。

 導出の方針や基本的な式展開は一様版と変わらないので、途中式の途中式の共通する説明は簡略化しました。先に一様版を読んでいる前提の構成にしています。言葉だけでの説明では分かりにくかった方は、一様版の方でより細かく式変形をしているので覗いてみてください。
 執筆作業的には共通する解説を流用せずに書き直す方が手間なのですが、一様版と多様版での差異が分かりやすいように落としました。

【次節の内容】

  • スクラッチ実装編

組みたいけど後回し


  • 数式読解編

 トピックモデルを数式で確認します。

www.anarchive-beta.com