からっぽのしょこ

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

6.2:パチンコ配分モデルの崩壊型ギブズサンプリングの導出【青トピックモデルのノート】

はじめに

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

 この記事では、パチンコ配分モデルに対する崩壊型ギブスサンプリングの数式の行間を埋めます。

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

6.2 パチンコ配分モデルの崩壊型ギブズサンプリングの導出

 パチンコ配分モデル(PAM・pachinko allocation model)に対する不動点反復法(固定点反復法・fixed point iteration)を用いた崩壊型ギブスサンプリング(周辺化ギブスサンプリング・collapsed Gibbs sampling)におけるパラメータの計算式を導出する。この記事では、2階層のトピックの場合を扱う。
 トピックモデル(LDA・latent Dirichlet allocation)の定義や記号については「4.1:トピックモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、パチンコ配分モデルの定義や記号については「6.2:パチンコ配分モデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

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

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

 ここでは、単語分布のハイパーパラメータ  \boldsymbol{\beta} を一様な値  \beta = \beta_v\ (v = 1, \dots, V) として、 V 次元ベクトルをスカラ  \beta で表記する。

結合周辺分布の設定

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

 \displaystyle
p(\mathbf{W}, \mathbf{Z}, \mathbf{Y} \mid \mathbf{A}, \beta)
    = \iiint
          p(
              \mathbf{W}, \mathbf{Z}, \mathbf{Y}, 
              \boldsymbol{\theta}, \boldsymbol{\Theta}, \boldsymbol{\Phi}
          \mid
              \mathbf{A}, \beta
          )
      \mathrm{d} \boldsymbol{\theta} \mathrm{d} \boldsymbol{\Theta} \mathrm{d} \boldsymbol{\Phi}

 パチンコ配分モデルの生成過程(依存関係)に従って、 \mathbf{W}, \mathbf{Z}, \mathbf{Y} の件都合周辺分布を分割する。

 \displaystyle
\begin{align}
p(\mathbf{W}, \mathbf{Z}, \mathbf{Y} \mid \mathbf{A}, \beta)
   &= p(\mathbf{Z}, \mathbf{Y} \mid \boldsymbol{\alpha}_0, \boldsymbol{\alpha})
      p(\mathbf{W} \mid \mathbf{Z}, \beta)
\\
   &= p(\mathbf{Y} \mid \boldsymbol{\alpha}_0)
      p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\alpha})
      p(\mathbf{W} \mid \mathbf{Z}, \beta)
\tag{1}
\end{align}

 パチンコ配分モデルの依存関係については「パチンコ配分モデルの生成モデルの導出」を参照のこと。
  \mathbf{W}, \mathbf{Z}, \mathbf{Y} に関する周辺分布から得られることが分かった。

上位トピック集合の周辺分布

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

 \displaystyle
\begin{aligned}
p(\mathbf{Y} \mid \boldsymbol{\alpha}_0)
   &= \int
          p(\mathbf{Y}, \boldsymbol{\theta} \mid \boldsymbol{\alpha}_0)
      \mathrm{d} \boldsymbol{\theta}
\\
   &= \int
          p(\mathbf{Y} \mid \boldsymbol{\theta})
          p(\boldsymbol{\theta} \mid \boldsymbol{\alpha}_0)
      \mathrm{d} \boldsymbol{\theta}
\\
   &= \prod_{d=1}^D \left[
          \int
              p(\mathbf{y}_d \mid \boldsymbol{\theta}_d)
              p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha}_0)
          \mathrm{d} \boldsymbol{\theta}_d
      \right]
\\
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{n=1}^{N_d}
                  p(y_{dn} \mid \boldsymbol{\theta}_d)
              \right\}
              p(\boldsymbol{\theta}_d \mid \boldsymbol{\alpha}_0)
          \mathrm{d} \boldsymbol{\theta}_d
      \right]
\end{aligned}

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


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

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

 \displaystyle
\begin{align}
p(\mathbf{Y} \mid \boldsymbol{\alpha}_0)
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{n=1}^{N_d}
                  \theta_{dy_{dn}}
              \right\}
              \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\prod_{s=1}^S \Gamma(\alpha_{0s})}
              \left\{ \prod_{s=1}^S 
                  \theta_{ds}^{\alpha_{0s}-1}
              \right\}
          \mathrm{d} \boldsymbol{\theta}_d
      \right]
\\
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{s=1}^S
                  \theta_{ds}^{N_{ds}}
              \right\}
              \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\prod_{s=1}^S \Gamma(\alpha_{0s})}
              \left\{ \prod_{s=1}^S 
                  \theta_{ds}^{\alpha_{0s}-1}
              \right\}
          \mathrm{d} \boldsymbol{\theta}_d
      \right]
\\
   &= \prod_{d=1}^D \left\{
          \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\prod_{s=1}^S \Gamma(\alpha_{0s})}
          \int
              \prod_{s=1}^S
                  \theta_{ds}^{N_{ds} + \alpha_{0s}-1}
          \mathrm{d} \boldsymbol{\theta}_d
      \right\}
\\
   &= \prod_{d=1}^D \left\{
          \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\prod_{s=1}^S \Gamma(\alpha_{0s})}
          \frac{
              \prod_{s=1}^S
                  \Gamma(N_{ds} + \alpha_{0s})
          }{
              \Gamma(\sum_{s=1}^S \{N_{ds} + \alpha_{0s}\})
          }
      \right\}
\\
   &= \prod_{d=1}^D \left\{
          \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\prod_{s=1}^S \Gamma(\alpha_{0s})}
          \frac{
              \prod_{s=1}^S
                  \Gamma(N_{ds} + \alpha_{0s})
          }{
              \Gamma(N_d + \sum_{s=1}^S \alpha_{0s})
          }
      \right\}
\tag{2}\\
   &= \prod_{d=1}^D \left\{
          \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\Gamma(N_d + \sum_{s=1}^S \alpha_{0s})}
          \prod_{s=1}^S
              \frac{\Gamma(N_{ds} + \alpha_{0s})}{\Gamma(\alpha_{0s})}
      \right\}
\tag{2'}
\end{align}

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


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

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

下位トピック集合の周辺分布

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

 \displaystyle
\begin{aligned}
p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\alpha})
   &= \int
          p(\mathbf{Z}, \boldsymbol{\Theta} \mid \mathbf{Y}, \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\Theta}
\\
   &= \int
          p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\Theta})
          p(\boldsymbol{\Theta} \mid \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\Theta}
\\
   &= \prod_{d=1}^D \left[
          \int
              p(\mathbf{z}_d \mid \mathbf{y}_d, \boldsymbol{\Theta}_d)
              p(\boldsymbol{\Theta}_d \mid \boldsymbol{\alpha})
          \mathrm{d} \boldsymbol{\Theta}_d
      \right]
\\
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{n=1}^{N_d}
                  p(z_{dn} \mid \boldsymbol{\theta}_{dy_{dn}})
              \right\}
              \left\{ \prod_{s=1}^S
                  p(\boldsymbol{\theta}_{ds} \mid \boldsymbol{\alpha}_s)
              \right\}
          \mathrm{d} \boldsymbol{\Theta}_d
      \right]
\end{aligned}

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


  • 1: 周辺化された  \boldsymbol{\Theta} を明示する。
  • 2: 潜在変数  \mathbf{Y} とパラメータ  \boldsymbol{\Theta} の項を分割する。
  • 3: 文書ごとの積に分解する。
  • 4: 単語・上位トピックごとの積に分解する。

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

 \displaystyle
\begin{align}
p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\alpha})
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{n=1}^{N_d}
                  \theta_{dy_{dn}z_{dn}}
              \right\}
              \prod_{s=1}^S \left\{
                  \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\prod_{k=1}^K \Gamma(\alpha_{sk})}
                  \prod_{k=1}^K
                      \theta_{dsk}^{\alpha_{sk}-1}
              \right\}
          \mathrm{d} \boldsymbol{\Theta}_d
      \right]
\\
   &= \prod_{d=1}^D \left[
          \int
              \left\{ \prod_{s=1}^S \prod_{k=1}^K
                  \theta_{dsk}^{N_{dsk}}
              \right\}
              \prod_{s=1}^S \left\{
                  \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\prod_{k=1}^K \Gamma(\alpha_{sk})}
                  \prod_{k=1}^K
                      \theta_{dsk}^{\alpha_{sk}-1}
              \right\}
          \mathrm{d} \boldsymbol{\Theta}_d
      \right]
\\
   &= \prod_{d=1}^D \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\prod_{k=1}^K \Gamma(\alpha_{sk})}
          \int
              \prod_{k=1}^K
                  \theta_{dsk}^{N_{dsk} + \alpha_{sk}-1}
          \mathrm{d} \boldsymbol{\theta}_{ds}
      \right\}
\\
   &= \prod_{d=1}^D \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\prod_{k=1}^K \Gamma(\alpha_{sk})}
          \frac{
              \prod_{k=1}^K
                  \Gamma(N_{dsk} + \alpha_{sk})
          }{
              \Gamma(\sum_{k=1}^K \{N_{dsk} + \alpha_{sk}\})
          }
      \right\}
\\
   &= \prod_{d=1}^D \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\prod_{k=1}^K \Gamma(\alpha_{sk})}
          \frac{
              \prod_{k=1}^K
                  \Gamma(N_{dsk} + \alpha_{sk})
          }{
              \Gamma(N_{ds} + \sum_{k=1}^K \alpha_{sk})
          }
      \right\}
\tag{3}\\
   &= \prod_{d=1}^D \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\Gamma(N_{ds} + \sum_{k=1}^K \alpha_{sk})}
          \prod_{k=1}^K
              \frac{\Gamma(N_{dsk} + \alpha_{sk})}{\Gamma(\alpha_{sk})}
      \right\}
\tag{3'}
\end{align}

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


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

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

文書集合の周辺分布

  \mathbf{W}, \mathbf{Z}, \mathbf{Y} の結合周辺分布の式(1)の3つ目の項は、単語分布のパラメータ  \boldsymbol{\Phi} の事前分布を用いた文書集合  \mathbf{W} の周辺分布である。
 この式は、トピックモデル(4.5節)と同じ式なので、次の式になる。

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

 詳しくは「4.5:トピックモデルの崩壊型ギブズサンプリングの導出:一様なハイパーパラメータの場合【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。
  \mathbf{W} の周辺分布の式が得られた。

結合周辺分布

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

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{Z}, \mathbf{Y} \mid \mathbf{A}, \beta)
   &= \prod_{d=1}^D \left\{
          \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\Gamma(N_d + \sum_{s=1}^S \alpha_{0s})}
          \prod_{s=1}^S
              \frac{\Gamma(N_{ds} + \alpha_{0s})}{\Gamma(\alpha_{0s})}
      \right\}
\\
   &\quad * 
      \prod_{d=1}^D \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\Gamma(N_{ds} + \sum_{k=1}^K \alpha_{sk})}
          \prod_{k=1}^K
              \frac{\Gamma(N_{dsk} + \alpha_{sk})}{\Gamma(\alpha_{sk})}
      \right\}
\\
   &\quad * 
      \prod_{k=1}^K \left\{
          \frac{\Gamma(V \beta)}{\Gamma(N_k + V \beta)}
          \prod_{v=1}^V
              \frac{\Gamma(N_{kv} + \beta)}{\Gamma(\beta)}
      \right\}
\end{aligned}

  \mathbf{W}, \mathbf{Z}, \mathbf{Y} の結合分布の式が得られた。

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

スポンサードリンク

サンプリング式の導出

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

 文書  d n 番目の単語  w_{dn} を除いた文書集合を  \mathbf{W}_{\backslash dn}、下位トピック集合を  \mathbf{Z}_{\backslash dn}、上位トピック集合を  \mathbf{Y}_{\backslash dn} とする。全ての文書集合は  \mathbf{W} = \{w_{dn}, \mathbf{W}_{\backslash dn}\}、全ての下位トピック集合は  \mathbf{Z} = {z_{dn}, \mathbf{Z}_{\backslash dn}}、全ての上位トピック集合は  \mathbf{Y} = \{y_{dn}, \mathbf{Y}_{\backslash dn}\} で表せる。
 同様に、 w_{dn} を除く単語数を  N_{dsk \backslash dn}, N_{ds \backslash dn}, N_{kv \backslash dn} で表す。

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

 全単語の文書集合  \mathbf{W} と単語  w_{dn} 以外のトピック集合  \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn} が与えられた(条件とする)ときの単語  w_{dn} のトピック  z_{dn}, y_{dn} の結合条件付き分布を求める。

 \displaystyle
\begin{align}
p(
    z_{dn} = k, y_{dn} = s
\mid
    \mathbf{W}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, 
    \mathbf{A}, \beta
)
   &= \frac{
          p(
              w_{dn}, \mathbf{W}_{\backslash dn}, 
              z_{dn} = k, \mathbf{Z}_{\backslash dn}, 
              y_{dn} = s, \mathbf{Y}_{\backslash dn}
          \mid
              \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s, \beta
          )
      }{
          p(
              w_{dn}, \mathbf{W}_{\backslash dn}, 
              \mathbf{Z}_{\backslash dn}, 
              \mathbf{Y}_{\backslash dn}
          \mid
              \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s, \beta
          )
      }
\\
   &\propto
      p(
          w_{dn}, \mathbf{W}_{\backslash dn}, 
          z_{dn} = k, \mathbf{Z}_{\backslash dn}, 
          y_{dn} = s, \mathbf{Y}_{\backslash dn}
      \mid
          \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s, \beta
      )
\\
   &= p(y_{dn} = s \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_0)
      p(
          z_{dn} = k
      \mid
          \mathbf{Z}_{\backslash dn}, 
          y_{dn} = s, \mathbf{Y}_{\backslash dn}, 
          \boldsymbol{\alpha}_s
      )
      p(
          w_{dn}
      \mid
          \mathbf{W}_{\backslash dn}, 
          z_{dn} = k, \mathbf{Z}_{\backslash dn}, 
          \beta
      )
\\
   &\quad * 
      p(\mathbf{Y}_{\backslash dn} \mid \boldsymbol{\alpha}_0)
      p(\mathbf{Z}_{\backslash dn} \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_s)
      p(\mathbf{W}_{\backslash dn} \mid \mathbf{Z}_{\backslash dn}, \beta)
\\
   &\propto
      p(y_{dn} = s \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_0)
      p(
          z_{dn} = k
      \mid
          \mathbf{Z}_{\backslash dn}, 
          y_{dn} = s, \mathbf{Y}_{\backslash dn}, 
          \boldsymbol{\alpha}_s
      )
      p(
          w_{dn}
      \mid
          \mathbf{W}_{\backslash dn}, 
          z_{dn} = k, \mathbf{Z}_{\backslash dn}, 
          \beta
      )
\tag{4}
\end{align}

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


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

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

 \displaystyle
\begin{aligned}
&
p(
    w_{dn}, \mathbf{W}_{\backslash dn}, 
    z_{dn} = k, \mathbf{Z}_{\backslash dn}, 
    y_{dn} = s, \mathbf{Y}_{\backslash dn}
\mid
    \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s, \beta
)
\\
   &= p(
          w_{dn}, 
          z_{dn} = k, y_{dn} = s
      \mid
          \mathbf{W}_{\backslash dn}, 
          \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, 
          \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s, \beta
      )
      p(
          \mathbf{W}_{\backslash dn}, 
          \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}
      \mid
          \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s, \beta
      )
\end{aligned}

 さらに1つ目の項の、観測変数  w_{dn} と潜在変数  z_{dn}, y_{dn} の項を分割する。

 \displaystyle
\begin{aligned}
&
p(
    w_{dn}, 
    z_{dn} = k, y_{dn} = s
\mid
    \mathbf{W}_{\backslash dn}, 
    \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, 
    \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s, \beta
)
\\
   &= p(
          w_{dn}
      \mid
          \mathbf{W}_{\backslash dn}, 
          z_{dn} = k, \mathbf{Z}_{\backslash dn}, 
          \beta
      )
      p(
          z_{dn} = k, y_{dn} = s
      \mid
          \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, 
          \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s
      )
\\
   &= p(
          w_{dn}
      \mid
          \mathbf{W}_{\backslash dn}, 
          z_{dn} = k, \mathbf{Z}_{\backslash dn}, 
          \beta
      )
      p(
          z_{dn} = k
      \mid
          \mathbf{Z}_{\backslash dn}, 
          y_{dn} = s, \mathbf{Y}_{\backslash dn}, 
          \boldsymbol{\alpha}_s
      )
      p(
          y_{dn} = s
      \mid
          \mathbf{Y}_{\backslash dn}, 
          \boldsymbol{\alpha}_0
      )
\end{aligned}

 2つ目の項の、観測変数  \mathbf{W}_{\backslash dn} と潜在変数  \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn} の項を分割する。

 \displaystyle
\begin{aligned}
&
p(
    \mathbf{W}_{\backslash dn}, 
    \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}
\mid
    \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s, \beta
)
\\
   &=  p(\mathbf{W}_{\backslash dn} \mid \mathbf{Z}_{\backslash dn}, \beta)
      p(
          \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}
      \mid
          \boldsymbol{\alpha}_0, \boldsymbol{\alpha}_s
      )
\\
   &=  p(\mathbf{W}_{\backslash dn} \mid \mathbf{Z}_{\backslash dn}, \beta)
      p(\mathbf{Z}_{\backslash dn} \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_s)
      p(\mathbf{Y}_{\backslash dn} \mid \boldsymbol{\alpha}_0)
\end{aligned}
  • 4:  z_{dn}, y_{dn} と無関係な項を省く。

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

上位トピックの事後周辺分布

  z_{dn}, y_{dn} の結合条件付き分布の式(4)の1つ目の項は、単語  w_{dn} 以外の上位トピック集合  \mathbf{Y}_{\backslash dn} が与えられたときの単語  w_{dn} の上位トピック  y_{dn} の周辺分布である。
 この式は、 \mathbf{Y} の周辺分布の式(2)を用いて求められる。

 \displaystyle
\begin{aligned}
p(y_{dn} = s \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_0)
   &= \frac{
          p(y_{dn} = s, \mathbf{Y}_{\backslash dn} \mid \boldsymbol{\alpha}_0)
      }{
          p(\mathbf{Y}_{\backslash dn} \mid \boldsymbol{\alpha}_0)
      }
\\
   &= \frac{\Gamma(\sum_{s'=1}^S \alpha_{0s'})^D}{\prod_{s'=1}^S \Gamma(\alpha_{0s'})^D}
      \frac{
          \Gamma(N_{ds \backslash dn} + 1 + \alpha_{0s})
          \prod_{s' \neq s}
              \Gamma(N_{ds' \backslash dn} + \alpha_{0s'})
      }{
          \Gamma(N_d + \sum_{s'=1}^S \alpha_{0s'})
      }
      \prod_{d' \neq d}
          \frac{
              \prod_{s'=1}^S
                  \Gamma(N_{d's' \backslash dn} + \alpha_{0s'})
          }{
              \Gamma(N_{d'} + \sum_{s'=1}^S \alpha_{0s'})
          }
\\
   &\quad * 
      \frac{\prod_{s'=1}^S \Gamma(\alpha_{0s'})^D}{\Gamma(\sum_{s'=1}^S \alpha_{0s'})^D}
      \frac{
          \Gamma(N_d - 1 + \sum_{s'=1}^S \alpha_{0s'})
      }{
          \prod_{s'=1}^S
              \Gamma(N_{ds' \backslash dn} + \alpha_{0s'})
      }
      \prod_{d' \neq d}
          \frac{
              \Gamma(N_{d'} + \sum_{s'=1}^S \alpha_{0s'})
          }{
              \prod_{s'=1}^S
                  \Gamma(N_{d's' \backslash dn} + \alpha_{0s'})
          }
\\
   &= \frac{
          (N_{ds \backslash dn} + \alpha_{0s})
          \Gamma(N_{ds \backslash dn} + \alpha_{0s})
          \prod_{s' \neq s}
              \Gamma(N_{ds' \backslash dn} + \alpha_{0s'})
      }{
          (N_d - 1 + \sum_{s'=1}^S \alpha_{0s'})
          \Gamma(N_d - 1 + \sum_{s'=1}^S \alpha_{0s'})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_d - 1 + \sum_{s'=1}^S \alpha_{0s'})
      }{
          \prod_{s'=1}^S
              \Gamma(N_{ds' \backslash dn} + \alpha_{0s'})
      }
\\
   &= \frac{
          N_{ds \backslash dn} + \alpha_{0s}
      }{
          N_d - 1 + \sum_{s'=1}^S \alpha_{0s'}
      }
\end{aligned}

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


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

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

 \displaystyle
\begin{align}
p(y_{dn} = s, \mathbf{Y}_{\backslash dn} \mid \boldsymbol{\alpha}_0)
   &= \prod_{d'=1}^D \left\{
          \frac{\Gamma(\sum_{s'=1}^S \alpha_{0s})}{\prod_{s'=1}^S \Gamma(\alpha_{0s'})}
          \frac{
              \prod_{s'=1}^S
                  \Gamma(N_{d's'} + \alpha_{0s'})
          }{
              \Gamma(N_{d'} + \sum_{s'=1}^S \alpha_{0s'})
          }
      \right\}
\tag{2}\\
p(\mathbf{Y}_{\backslash dn} \mid \boldsymbol{\alpha}_0)
   &= \prod_{d'=1}^D \left\{
          \frac{\Gamma(\sum_{s'=1}^S \alpha_{0s'})}{\prod_{s'=1}^S \Gamma(\alpha_{0s'})}
          \frac{
              \prod_{s'=1}^S
                  \Gamma(N_{d's' \backslash dn} + \alpha_{0s'})
          }{
              \Gamma(N_{d' \backslash dn} + \sum_{s'=1}^S \alpha_{0s'})
          }
      \right\}
\end{align}

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

 \displaystyle
\begin{aligned}
N_{ds}
   &= \begin{cases}
          N_{ds \backslash dn} + 1
             &\quad
                (y_{dn} = s) \\
          N_{ds \backslash dn}
             &\quad
                (y_{dn} \neq s)
      \end{cases}
\\
N_{d \backslash dn}
   &= N_d - 1
\end{aligned}

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

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

  y_{dn} (に割り当てられる上位トピック  s )の事後分布の式が得られた。

下位トピックの事後周辺分布

  z_{dn}, y_{dn} の結合条件付き分布の式(4)の2つ目の項は、単語  w_{dn} 以外の下位トピック集合  \mathbf{Z}_{\backslash dn} と全ての上位トピック集合  \mathbf{Y} が与えられたときの単語  w_{dn} の下位トピック  z_{dn} の周辺分布である。
 この式は、 \mathbf{Y} の周辺分布の式(2)を用いて求められる。

 \displaystyle
\begin{aligned}
p(
    z_{dn} = k
\mid
    \mathbf{Z}_{\backslash dn}, 
    y_{dn} = s, \mathbf{Y}_{\backslash dn}, 
    \boldsymbol{\alpha}_s
)
   &= \frac{
          p(z_{dn} = k, \mathbf{Z}_{\backslash dn} \mid y_{dn} = s, \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_s)
      }{
          p(\mathbf{Z}_{\backslash dn} \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_s)
      }
\\
   &= \frac{\Gamma(\sum_{k'=1}^K \alpha_{sk'})}{\prod_{k'=1}^K \Gamma(\alpha_{sk'})}
      \frac{
          \Gamma(N_{dsk \backslash dn} + 1 + \alpha_{sk})
          \prod_{k' \neq k}
              \Gamma(N_{dsk' \backslash dn} + \alpha_{sk'})
      }{
          \Gamma(N_{ds \backslash dn} + 1 + \sum_{k'=1}^K \alpha_{sk'})
      }
\\
   &\qquad * 
      \prod_{s' \neq s} \left\{
          \frac{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{ds'k' \backslash dn} + \alpha_{s'k'})
          }{
              \Gamma(N_{ds' \backslash dn} + \sum_{k'=1}^K \alpha_{s'k'})
          }
      \right\}
\\
   &\qquad * 
      \prod_{d' \neq d} \prod_{s'=1}^S \left\{
          \frac{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d's'k' \backslash dn} + \alpha_{s'k'})
          }{
              \Gamma(N_{d's' \backslash dn} + \sum_{k'=1}^K \alpha_{s'k'})
          }
      \right\}
\\
   &\quad * 
      \frac{\prod_{k'=1}^K \Gamma(\alpha_{sk'})}{\Gamma(\sum_{k'=1}^K \alpha_{sk'})}
      \frac{
          \Gamma(N_{ds \backslash dn} + \sum_{k'=1}^K \alpha_{sk'})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{dsk' \backslash dn} + \alpha_{sk'})
      }
\\
   &\qquad * 
      \prod_{s' \neq s} \left\{
          \frac{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}
          \frac{
              \Gamma(N_{ds' \backslash dn} + \sum_{k'=1}^K \alpha_{s'k'})
          }{
              \prod_{k'=1}^K
                  \Gamma(N_{ds'k' \backslash dn} + \alpha_{s'k'})
          }
      \right\}
\\
   &\qquad * 
      \prod_{d' \neq d} \prod_{s'=1}^S \left\{
          \frac{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}
          \frac{
              \Gamma(N_{d's' \backslash dn} + \sum_{k'=1}^K \alpha_{s'k'})
          }{
              \prod_{k'=1}^K
                  \Gamma(N_{d's'k' \backslash dn} + \alpha_{s'k'})
          }
      \right\}
\\
   &= \frac{
          (N_{dsk \backslash dn} + \alpha_{sk})
          \Gamma(N_{dsk \backslash dn} + \alpha_{sk})
          \prod_{k' \neq k}
              \Gamma(N_{dsk' \backslash dn} + \alpha_{sk'})
      }{
          (N_{ds \backslash dn} + \sum_{k'=1}^K \alpha_{sk'})
          \Gamma(N_{ds \backslash dn} + \sum_{k'=1}^K \alpha_{sk'})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_{ds \backslash dn} + \sum_{k'=1}^K \alpha_{sk'})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{dsk' \backslash dn} + \alpha_{sk'})
      }
\\
   &= \frac{
          N_{dsk \backslash dn} + \alpha_{sk}
      }{
          N_{ds \backslash dn} + \sum_{k'=1}^K \alpha_{sk'}
      }
\end{aligned}

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


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

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

 \displaystyle
\begin{align}
p(z_{dn} = k, \mathbf{Z}_{\backslash dn} \mid y_{dn} = s, \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_s)
   &= \prod_{d'=1}^D \prod_{s'=1}^S \left\{
          \frac{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d's'k'} + \alpha_{s'k'})
          }{
              \Gamma(N_{d's'} + \sum_{k'=1}^K \alpha_{s'k'})
          }
      \right\}
\tag{3}\\
p(\mathbf{Z}_{\backslash dn} \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha}_s)
   &= \prod_{d'=1}^D \prod_{s'=1}^S \left\{
          \frac{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d's'k' \backslash dn} + \alpha_{s'k'})
          }{
              \Gamma(N_{d's' \backslash dn} + \sum_{k'=1}^K \alpha_{s'k'})
          }
      \right\}
\end{align}

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

 \displaystyle
\begin{aligned}
N_{dsk}
   &= \begin{cases}
          N_{dsk \backslash dn} + 1
             &\quad
                (z_{dn} = k\ \mathrm{and}\ y_{dn} = s) \\
          N_{dsk \backslash dn}
             &\quad
                (z_{dn} \neq k\ \mathrm{or}\ y_{dn} \neq s)
      \end{cases}
\\
N_{ds}
   &= \begin{cases}
          N_{ds \backslash dn} + 1
             &\quad
                (y_{dn} = s) \\
          N_{ds \backslash dn}
             &\quad
                (y_{dn} \neq s)
      \end{cases}
\end{aligned}

  \mathbf{Z} の周辺分布の式について、 N_{dsk}, N_{ds} N_{dsk \backslash dn}, N_{ds \backslash dn} に置き換える。
 文書  d や上位トピック  s、下位トピック  k の項のみ形が異なるので、 \prod_{d=1}^D, \prod_{s=1}^S, \prod_{k=1}^K から取り出しておく。

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

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

単語の事後周辺分布

  z_{dn}, y_{dn} の結合条件付き分布の式(4)の3つ目の項は、単語  w_{dn} 以外の文書集合  \mathbf{W}_{\backslash dn} が与えられたときの単語  w_{dn} の条件付き分布である。
 この式は、トピックモデル(4.5節)と同じ式なので、 \mathbf{W} の周辺分布の式(4.11)を用いて、次の式になる。

 \displaystyle
\begin{align}
p(w_{dn} \mid \mathbf{W}_{\backslash dn}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, \beta)
   &= \frac{
          p(w_{dn}, \mathbf{W}_{\backslash dn} \mid z_{dn} = k, \mathbf{Z}_{\backslash dn}, \beta)
      }{
           p(\mathbf{W}_{\backslash dn} \mid \mathbf{Z}_{\backslash dn}, \beta)
      }
\\
   &= \frac{
          N_{kw_{dn} \backslash dn} + \beta
      }{
          N_{k \backslash dn} + V \beta
      }
\tag{4.14}
\end{align}

 詳しくは「トピックモデルの崩壊型ギブズサンプリングの導出:一様なハイパーパラメータの場合」を参照のこと。
  w_{dn} の事後周辺分布の式が得られた。

トピックの結合条件付き分布

  z_{dn}, y_{dn} の結合条件付き分布の式に、 y_{dn} の事後周辺分布の式(5)と  z_{dn} の事後周辺分布の式(6)、 w_{dn} の事後周辺分布の式(4.14)を代入する。

 \displaystyle
\begin{aligned}
p(
    z_{dn} = k, y_{dn} = s
\mid
    \mathbf{W}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, 
    \mathbf{A}, \beta
)
   &= \frac{
          N_{ds \backslash dn} + \alpha_{0s}
      }{
          N_d - 1 + \sum_{s'=1}^S \alpha_{0s'}
      }
      \frac{
          N_{dsk \backslash dn} + \alpha_{sk}
      }{
          N_{ds \backslash dn} + \sum_{k'=1}^K \alpha_{sk'}
      }
      \frac{
          N_{kw_{dn} \backslash dn} + \beta
      }{
          N_{k \backslash dn} + V \beta
      }
\\
   &= (N_{ds \backslash dn} + \alpha_{0s})
      \frac{
          N_{dsk \backslash dn} + \alpha_{sk}
      }{
          N_{ds \backslash dn} + \sum_{k'=1}^K \alpha_{sk'}
      }
      \frac{
          N_{kw_{dn} \backslash dn} + \beta
      }{
          N_{k \backslash dn} + V \beta
      }
\end{aligned}

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

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

スポンサードリンク

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

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

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

  \mathbf{Y} の周辺分布の式(2')を

 \displaystyle
\begin{align}
p(\mathbf{Y} \mid \boldsymbol{\alpha}_0)
   &= \prod_{d=1}^D \left\{
          \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\Gamma(N_d + \sum_{s=1}^S \alpha_{0s})}
          \prod_{s=1}^S
              \frac{\Gamma(N_{ds} + \alpha_{0s})}{\Gamma(\alpha_{0s})}
      \right\}
\tag{2'}\\
   &\geq
      \prod_{d=1}^D \left[
          \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\Gamma(N_d + \sum_{s=1}^S \alpha_{0s})}
          \exp \Bigl(
              (\alpha_{0s} - \alpha_{0s}^{\mathrm{new}})
              b_{0}
          \Bigr)
          \prod_{s=1}^S \left\{
              \frac{\Gamma(N_{ds} + \alpha_{0s})}{\Gamma(\alpha_{0s})}
              \alpha_{0s}^{-a_{0}}
              (\alpha_{0s}^{\mathrm{new}})^{a_{0}}
          \right\}
      \right]
\end{align}

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

 \displaystyle
\begin{align}
p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\alpha})
   &= \prod_{d=1}^D \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\Gamma(N_{ds} + \sum_{k=1}^K \alpha_{sk})}
          \prod_{k=1}^K
              \frac{\Gamma(N_{dsk} + \alpha_{sk})}{\Gamma(\alpha_{sk})}
      \right\}
\tag{3'}\\
   &\geq
      \prod_{d=1}^D \prod_{s=1}^S \left[
          \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\Gamma(N_{ds} + \sum_{k=1}^K \alpha_{sk})}
          \exp \Bigl(
              (\alpha_{sk} - \alpha_{sk}^{\mathrm{new}})
              b_{\alpha}
          \Bigr)
          \prod_{k=1}^K \left\{
              \frac{\Gamma(N_{dsk} + \alpha_{sk})}{\Gamma(\alpha_{sk})}
              \alpha_{sk}^{-a_{\alpha}}
              (\alpha_{sk}^{\mathrm{new}})^{a_{\alpha}}
          \right\}
      \right]
\end{align}

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

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

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

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{Z}, \mathbf{Y} \mid \mathbf{A}, \beta)
   &\geq
      \prod_{d=1}^D \Biggl[
          \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\Gamma(N_d + \sum_{s=1}^S \alpha_{0s})}
          \exp \Bigl(
              (\alpha_{0s} - \alpha_{0s}^{\mathrm{new}})
              b_{0}
          \Bigr)
      \Biggr.
\\
   &\qquad \qquad * 
      \Biggl.
          \prod_{s=1}^S \left\{
              \frac{\Gamma(N_{ds} + \alpha_{0s})}{\Gamma(\alpha_{0s})}
              \alpha_{0s}^{-a_{0}}
              (\alpha_{0s}^{\mathrm{new}})^{a_{0}}
          \right\}
      \Biggr]
\\
   &\quad * 
      \prod_{d=1}^D \prod_{s=1}^S \Biggl[
          \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\Gamma(N_{ds} + \sum_{k=1}^K \alpha_{sk})}
          \exp \Bigl(
              (\alpha_{sk} - \alpha_{sk}^{\mathrm{new}})
              b_{\alpha}
          \Bigr)
      \Biggr.
\\
   &\qquad \qquad * 
      \Biggl.
          \prod_{k=1}^K \left\{
              \frac{\Gamma(N_{dsk} + \alpha_{sk})}{\Gamma(\alpha_{sk})}
              \alpha_{sk}^{-a_{\alpha}}
              (\alpha_{sk}^{\mathrm{new}})^{a_{\alpha}}
          \right\}
      \Biggl]
\\
   &\quad * 
      \prod_{k=1}^K \Biggl[
          \frac{\Gamma(V \beta)}{\Gamma(N_k + V \beta)}
          \exp \Bigl(
              (V \beta - V \beta^{\mathrm{new}})
              b_{\beta}
          \Bigr)
      \Biggr.
\\
   &\qquad \qquad * 
      \Biggl.
          \prod_{v=1}^V \left\{
              \frac{\Gamma(N_{kv} + \beta)}{\Gamma(\beta)}
              \beta^{-a_{\beta}}
              (\beta^{\mathrm{new}})^{a_{\beta}}
          \right\}
      \Biggr]
    \equiv
      G
\end{aligned}

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

 \displaystyle
\begin{aligned}
a_{0}
   &= \Bigl(
         \Psi(N_{ds} + \alpha_{0s})
         - \Psi(\alpha_{0s})
      \Bigr)
      \alpha_{0s}
\\
b_{0}
   &= \Psi \Bigl(
          N_d + \sum_{s=1}^S \alpha_{0s}
      \Bigr)
      - \Psi \Bigl(
          \sum_{s=1}^S \alpha_{0s}
        \Bigr)
\\
a_{\alpha}
   &= \Bigl(
         \Psi(N_{dsk} + \alpha_{sk})
         - \Psi(\alpha_{sk})
      \Bigr)
      \alpha_{sk}
\\
b_{\alpha}
   &= \Psi \Bigl(
          N_{ds} + \sum_{k=1}^K \alpha_{sk}
      \Bigr)
      - \Psi \Bigl(
          \sum_{k=1}^K \alpha_{sk}
        \Bigr)
\\
a_{\beta}
   &= \Bigl(
         \Psi(N_{kv} + \beta)
         - \Psi(\beta)
      \Bigr)
      \beta
\\
b_{\beta}
   &= \Psi(N_k + V \beta)
      - \Psi(V \beta)
\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_{0s}, \alpha_{sk}, \beta、更新後の値(変数)  x \alpha_{0s}^{\mathrm{new}}, \alpha_{sk}^{\mathrm{new}}, \beta^{\mathrm{new}} と対応させて下限の式に変形する。


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

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

 \displaystyle
\begin{aligned}
F  &= \log G
\\
   &= \sum_{d=1}^D \Biggl[
          \log \frac{\Gamma(\sum_{s=1}^S \alpha_{0s})}{\Gamma(N_d + \sum_{s=1}^S \alpha_{0s})}
          + (\alpha_{0s} - \alpha_{0s}^{\mathrm{new}})
            b_{0}
      \Biggr.
\\
   &\qquad \qquad
      + \Biggl.
          \sum_{s=1}^S \left\{
              \log \frac{\Gamma(N_{ds} + \alpha_{0s})}{\Gamma(\alpha_{0s})}
              - a_{0} \log \alpha_{0s}
              + a_{0} \log \alpha_{0s}^{\mathrm{new}}
          \right\}
      \Biggr]
\\
   &\quad
      + \sum_{d=1}^D \sum_{s=1}^S \Biggl[
          \log \frac{\Gamma(\sum_{k=1}^K \alpha_{sk})}{\Gamma(N_{ds} + \sum_{k=1}^K \alpha_{sk})}
          + (\alpha_{sk} - \alpha_{sk}^{\mathrm{new}})
            b_{\alpha}
      \Biggr.
\\
   &\qquad \qquad
      \Biggl.
          + \sum_{k=1}^K \left\{
              \log \frac{\Gamma(N_{dsk} + \alpha_{sk})}{\Gamma(\alpha_{sk})}
              - a_{\alpha} \log \alpha_{sk}
              + a_{\alpha} \log \alpha_{sk}^{\mathrm{new}}
          \right\}
      \Biggl]
\\
   &\quad
      + \sum_{k=1}^K \Biggl[
          \log \frac{\Gamma(V \beta)}{\Gamma(N_k + V \beta)}
          + (V \beta - V \beta^{\mathrm{new}})
            b_{\beta}
      \Biggr.
\\
   &\qquad \qquad
      \Biggl.
          + \sum_{v=1}^V \left\{
              \log \frac{\Gamma(N_{kv} + \beta)}{\Gamma(\beta)}
              - a_{\beta} \log \beta
              + a_{\beta} \log \beta^{\mathrm{new}}
          \right\}
      \Biggr]
\end{aligned}

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

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

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

 \displaystyle
F(\alpha_{0s}^{\mathrm{new}})
    = \sum_{d=1}^D \Bigl\{
          - b_{0} \alpha_{0s}^{\mathrm{new}}
          + a_{0} \log \alpha_{0s}^{\mathrm{new}}
      \Bigr\}
      + \mathrm{const.}

 この式は、トピックモデル(4.5節)の式と同様の形状なので、関数  F(\alpha_{0s}^{\mathrm{new}}) \alpha_{0s}^{\mathrm{new}} に関して微分して解くと、次の式になる。

 \displaystyle
\begin{aligned}
\alpha_{0s}^{\mathrm{new}}
   &= \frac{\sum_{d=1}^D a_{0}}{\sum_{d=1}^D b_{0}}
\\
   &= \frac{
          \sum_{d=1}^D
              \Bigl(
                 \Psi(N_{ds} + \alpha_{0s})
                 - \Psi(\alpha_{0s})
              \Bigr)
              \alpha_{0s}
      }{
          \sum_{d=1}^D \Bigl\{
              \Psi(N_d + \sum_{s='1}^S \alpha_{0s'})
              - \Psi(\sum_{s'=1}^S \alpha_{0s'})
          \Bigr\}
      }
\\
   &= \alpha_{0s}
      \frac{
          \sum_{d=1}^D
              \Psi(N_{ds} + \alpha_{0s})
          - D \Psi(\alpha_{0s})
      }{
          \sum_{d=1}^D
              \Psi(N_d + \sum_{s'=1}^S \alpha_{0s'})
          - D \Psi(\sum_{s'=1}^S \alpha_{0s'})
      }
\end{aligned}

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

 \displaystyle
\alpha_{0s}^{(i)}
    = \alpha_{0s}^{(i-1)}
      \frac{
          \sum_{d=1}^D
              \Psi \Bigl(
                  N_{ds}^{(i-1)} + \alpha_{0s}^{(i-1)}
              \Bigr)
          - D \Psi \Bigl(
              \alpha_{0s}^{(i-1)}
            \Bigr)
      }{
          \sum_{d=1}^D
              \Psi \Bigl(
                  N_d^{(i-1)}
                  + \sum_{s'=1}^S \alpha_{0s'}^{(i-1)}
              \Bigr)
          - D \Psi \Bigl(
              \sum_{s'=1}^S \alpha_{0s'}^{(i-1)}
            \Bigr)
      }

 詳しくは「4.5:トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。
  \alpha_{0k} の更新式が得られた。

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

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

 \displaystyle
F(\alpha_{sk}^{\mathrm{new}})
    = \sum_{d=1}^D \Bigl\{
          - b_{\alpha} \alpha_{sk}^{\mathrm{new}}
          + a_{\alpha} \log \alpha_{sk}^{\mathrm{new}}
      \Bigr\}
      + \mathrm{const.}

 この式は、トピックモデル(4.5節)の式と同様の形状なので、関数  F(\alpha_{sk}^{\mathrm{new}}) \alpha_{sk}^{\mathrm{new}} に関して微分して解くと、次の式になる。

 \displaystyle
\begin{aligned}
\alpha_{sk}^{\mathrm{new}}
   &= \frac{\sum_{d=1}^D a_{\alpha}}{\sum_{d=1}^D b_{\alpha}}
\\
   &= \frac{
          \sum_{d=1}^D
              \Bigl(
                 \Psi(N_{dsk} + \alpha_{sk})
                 - \Psi(\alpha_{sk})
              \Bigr)
              \alpha_{sk}
      }{
          \sum_{d=1}^D \Bigl\{
              \Psi(N_{ds} + \sum_{k='1}^K \alpha_{sk'})
              - \Psi(\sum_{k'=1}^K \alpha_{sk'})
          \Bigr\}
      }
\\
   &= \alpha_{sk}
      \frac{
          \sum_{d=1}^D
              \Psi(N_{dsk} + \alpha_{sk})
          - D \Psi(\alpha_{sk})
      }{
          \sum_{d=1}^D
              \Psi(N_{ds} + \sum_{k'=1}^K \alpha_{sk'})
          - D \Psi(\sum_{k'=1}^K \alpha_{sk'})
      }
\end{aligned}

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

 \displaystyle
\alpha_{sk}^{(i)}
    = \alpha_{sk}^{(i-1)}
      \frac{
          \sum_{d=1}^D
              \Psi \Bigl(
                  N_{dsk}^{(i-1)} + \alpha_{sk}^{(i-1)}
              \Bigr)
          - D \Psi \Bigl(
              \alpha_{sk}^{(i-1)}
            \Bigr)
      }{
          \sum_{d=1}^D
              \Psi \Bigl(
                  N_{ds}^{(i-1)}
                  + \sum_{k'=1}^K \alpha_{sk'}^{(i-1)}
              \Bigr)
          - D \Psi \Bigl(
              \sum_{k'=1}^K \alpha_{sk'}^{(i-1)}
            \Bigr)
      }

 詳しくは「トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合」を参照のこと。
  \alpha_{sk} の更新式が得られた。

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

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

 \displaystyle
F(\beta^{\mathrm{new}})
    = \sum_{k=1}^K \left\{
          - V b_{\beta} \beta^{\mathrm{new}}
          + \sum_{v=1}^V
              a_{\beta} \log \beta^{\mathrm{new}}
      \right\}
      + \mathrm{const.}

 この式は、トピックモデル(4.5節)と同じ式なので、関数  F(\beta^{\mathrm{new}}) \beta^{\mathrm{new}} に関して微分して解くと、次の式になる。

 \displaystyle
\beta^{\mathrm{new}}
    = \beta
      \frac{
          \sum_{k=1}^K \sum_{v=1}^V
              \Psi(N_{kv} + \beta)
          - K V \Psi(\beta)
      }{
          \sum_{k=1}^K
              V \Psi(N_k + V \beta)
          - K V \Psi(V \beta)
      }
\tag{4.17}

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

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

 詳しくは「トピックモデルの崩壊型ギブズサンプリングの導出:一様なハイパーパラメータの場合」を参照のこと。
  \beta の更新式が得られた。

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

スポンサードリンク

事後予測分布の導出

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

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

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

 上位トピック集合  \mathbf{Y} が与えられたときの文書  d の未知の単語  w_d^{*} の上位トピック  y_d^{*} の予測分布を求める。

 \displaystyle
\begin{aligned}
p(y_d^{*} = s \mid \mathbf{Y}, \boldsymbol{\alpha}_0)
   &= \int
          p(y_d^{*} = s, \boldsymbol{\theta}_d \mid \mathbf{Y}, \boldsymbol{\alpha}_0)
      \mathrm{d} \boldsymbol{\theta}_d
\\
   &= \int
          p(y_d^{*} = s \mid \boldsymbol{\theta}_d)
          p(\boldsymbol{\theta}_d \mid \mathbf{Y}, \boldsymbol{\alpha}_0)
      \mathrm{d} \boldsymbol{\theta}_d
\end{aligned}

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


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

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

上位トピックの事後予測分布

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

 \displaystyle
\begin{aligned}
p(y_d^{*} = s \mid \mathbf{Y}, \boldsymbol{\alpha}_0)
   &= \frac{
          p(y_d^{*} = s, \mathbf{Y} \mid \boldsymbol{\alpha}_0)
      }{
          p(\mathbf{Y} \mid \boldsymbol{\alpha}_0)
      }
\\
   &= \frac{\Gamma(\sum_{s'=1}^S \alpha_{0s'})^D}{\prod_{s'=1}^S \Gamma(\alpha_{0s'})^D}
      \frac{
          \Gamma(N_{ds} + 1 + \alpha_{0s})
          \prod_{s' \neq s}
              \Gamma(N_{ds'} + \alpha_{0s'})
      }{
          \Gamma(N_d + 1 + \sum_{s'=1}^S \alpha_{0s'})
      }
      \prod_{d' \neq d}
          \frac{
              \prod_{s'=1}^S
                  \Gamma(N_{d's'} + \alpha_{0s'})
          }{
              \Gamma(N_{d'} + \sum_{s'=1}^S \alpha_{0s'})
          }
\\
   &\quad * 
      \frac{\prod_{s'=1}^S \Gamma(\alpha_{0s'})^D}{\Gamma(\sum_{s'=1}^S \alpha_{0s'})^D}
      \frac{
          \Gamma(N_d + \sum_{s'=1}^S \alpha_{0s'})
      }{
          \prod_{s'=1}^S
              \Gamma(N_{ds'} + \alpha_{0s'})
      }
      \prod_{d' \neq d}
          \frac{
              \Gamma(N_{d'} + \sum_{s'=1}^S \alpha_{0s'})
          }{
              \prod_{s'=1}^S
                  \Gamma(N_{d's'} + \alpha_{0s'})
          }
\\
   &= \frac{
          (N_{ds} + \alpha_{0s})
          \Gamma(N_{ds} + \alpha_{0s})
          \prod_{s' \neq s}
              \Gamma(N_{ds'} + \alpha_{0s'})
      }{
          (N_d + \sum_{s'=1}^S \alpha_{0s'})
          \Gamma(N_d + \sum_{s'=1}^S \alpha_{0s'})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_d + \sum_{s'=1}^S \alpha_{0s'})
      }{
          \prod_{s'=1}^S
              \Gamma(N_{ds'} + \alpha_{0s'})
      }
\\
   &= \frac{
          N_{ds} + \alpha_{0s}
      }{
          N_d + \sum_{s'=1}^S \alpha_{0s'}
      }
    \equiv
        \hat{\theta}_{ds}
\end{aligned}

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


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

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

 \displaystyle
p(y_d^{*} = s, \mathbf{Y} \mid \boldsymbol{\alpha}_0)
    = \prod_{d'=1}^D \left\{
          \frac{\Gamma(\sum_{s'=1}^S \alpha_{0s'})}{\prod_{s'=1}^S \Gamma(\alpha_{0s'})}
          \frac{
              \prod_{s'=1}^S
                  \Gamma(N_{d's'}^{*} + \alpha_{0s'})
          }{
              \Gamma(N_{d'}^{*} + \sum_{s'=1}^S \alpha_{0s'})
          }
      \right\}

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

 \displaystyle
\begin{aligned}
N_{ds}^{*}
   &= \begin{cases}
          N_{ds} + 1
             &\quad
                (y_d^{*} = s) \\
          N_{ds}
             &\quad
                (y_d^{*} \neq s)
      \end{cases}
\\
N_d^{*}
   &= N_d + 1
\end{aligned}

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

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

  y_d^{*} (に割り当てられる上位トピック  s )の事後予測分布の式が得られた。この式を  \hat{\theta}_{ds} とおく。

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

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

 \displaystyle
\begin{aligned}
\hat{\boldsymbol{\theta}}_d
   &= (\hat{\theta}_{d1}, \hat{\theta}_{d2}, \cdots, \hat{\theta}_{dS})
\\
   &= \left(
          \frac{N_{d1} + \alpha_{01}}{N_d + \sum_{s=1}^S \alpha_{0s}}, 
          \frac{N_{d2} + \alpha_{02}}{N_d + \sum_{s=1}^S \alpha_{0s}}, 
          \cdots, 
          \frac{N_{dS} + \alpha_{0S}}{N_d + \sum_{s=1}^S \alpha_{0s}}
      \right)
\end{aligned}

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

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

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

 \displaystyle
\begin{aligned}
p(z_d^{*} = k \mid \mathbf{Z}, y_d^{*} = s, \mathbf{Y}, \boldsymbol{\alpha}_s)
   &= \int
          p(z_d^{*} = k, \boldsymbol{\theta}_{ds} \mid \mathbf{Z}, y_d^{*} = s, \mathbf{Y}, \boldsymbol{\alpha}_s)
      \mathrm{d} \boldsymbol{\theta}_{ds}
\\
   &= \int
          p(z_d^{*} = k \mid y_d^{*} = s, \boldsymbol{\theta}_{ds})
          p(\boldsymbol{\theta}_{ds} \mid \mathbf{Z}, \mathbf{Y}, \boldsymbol{\alpha}_s)
      \mathrm{d} \boldsymbol{\theta}_{ds}
\end{aligned}

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


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

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

下位トピックの事後予測分布

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

 \displaystyle
\begin{aligned}
p(z_d^{*} = k \mid \mathbf{Z}, y_d^{*} = s, \mathbf{Y}, \boldsymbol{\alpha}_s)
   &= \frac{
          p(z_d^{*} = k, \mathbf{Z} \mid y_d^{*} = s, \mathbf{Y}, \boldsymbol{\alpha}_s)
      }{
          p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\alpha}_s)
      }
\\
   &= \frac{\Gamma(\sum_{k'=1}^K \alpha_{sk'})}{\prod_{k'=1}^K \Gamma(\alpha_{sk'})}
      \frac{
          \Gamma(N_{dsk} + 1 + \alpha_{sk})
          \prod_{k' \neq k}
              \Gamma(N_{dsk'} + \alpha_{sk'})
      }{
          \Gamma(N_{ds} + 1 + \sum_{k'=1}^K \alpha_{sk'})
      }
\\
   &\qquad * 
      \prod_{s' \neq s} \left\{
          \frac{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{ds'k'} + \alpha_{s'k'})
          }{
              \Gamma(N_{ds'} + \sum_{k'=1}^K \alpha_{s'k'})
          }
      \right\}
\\
   &\qquad * 
      \prod_{d' \neq d} \prod_{s'=1}^S \left\{
          \frac{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d's'k'} + \alpha_{s'k'})
          }{
              \Gamma(N_{d's'} + \sum_{k'=1}^K \alpha_{s'k'})
          }
      \right\}
\\
   &\quad * 
      \frac{\prod_{k'=1}^K \Gamma(\alpha_{sk'})}{\Gamma(\sum_{k'=1}^K \alpha_{sk'})}
      \frac{
          \Gamma(N_{ds} + \sum_{k'=1}^K \alpha_{sk'})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{dsk'} + \alpha_{sk'})
      }
\\
   &\qquad * 
      \prod_{s' \neq s} \left\{
          \frac{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}
          \frac{
              \Gamma(N_{ds'} + \sum_{k'=1}^K \alpha_{s'k'})
          }{
              \prod_{k'=1}^K
                  \Gamma(N_{ds'k'} + \alpha_{s'k'})
          }
      \right\}
\\
   &\qquad * 
      \prod_{d' \neq d} \prod_{s'=1}^S \left\{
          \frac{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}
          \frac{
              \Gamma(N_{d's'} + \sum_{k'=1}^K \alpha_{s'k'})
          }{
              \prod_{k'=1}^K
                  \Gamma(N_{d's'k'} + \alpha_{s'k'})
          }
      \right\}
\\
   &= \frac{
          (N_{dsk} + \alpha_{sk})
          \Gamma(N_{dsk} + \alpha_{sk})
          \prod_{k' \neq k}
              \Gamma(N_{dsk'} + \alpha_{sk'})
      }{
          (N_{ds} + \sum_{k'=1}^K \alpha_{sk'})
          \Gamma(N_{ds} + \sum_{k'=1}^K \alpha_{sk'})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_{ds} + \sum_{k'=1}^K \alpha_{sk'})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{dsk'} + \alpha_{sk'})
      }
\\
   &= \frac{
          N_{dsk} + \alpha_{sk}
      }{
          N_{ds} + \sum_{k'=1}^K \alpha_{sk'}
      }
    \equiv
        \hat{\theta}_{dsk}
\end{aligned}

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


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

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

 \displaystyle
p(z_d^{*} = k, \mathbf{Z} \mid y_d^{*} = s, \mathbf{Y}, \boldsymbol{\alpha}_s)
    = \prod_{d'=1}^D \prod_{s'=1}^S \left\{
          \frac{\Gamma(\sum_{k'=1}^K \alpha_{s'k'})}{\prod_{k'=1}^K \Gamma(\alpha_{s'k'})}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{d's'k'}^{*} + \alpha_{s'k'})
          }{
              \Gamma(N_{d's'}^{*} + \sum_{k'=1}^K \alpha_{s'k'})
          }
      \right\}

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

 \displaystyle
\begin{aligned}
N_{dsk}^{*}
   &= \begin{cases}
          N_{dsk} + 1
             &\quad
                (z_d^{*} = k\ \mathrm{and}\ y_d^{*} = s) \\
          N_{dsk}
             &\quad
                (z_d^{*} \neq k\ \mathrm{or}\ y_d^{*} \neq s)
      \end{cases}
\\
N_{ds}^{*}
   &= \begin{cases}
          N_{ds} + 1
             &\quad
                (y_d^{*} = s) \\
          N_{ds}
             &\quad
                (y_d^{*} \neq s)
      \end{cases}
\end{aligned}

  z_d^{*}, \mathbf{Z} の周辺分布の式について、 N_{dsk}^{*}, N_{ds}^{*} N_{dsk}, N_{ds} に置き換える。
 文書  d や上位トピック  s、下位トピック  k の項のみ形が異なるので、 \prod_{d=1}^D, \prod_{s=1}^S, \prod_{k=1}^K から取り出しておく。

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

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

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

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

 \displaystyle
\begin{aligned}
\hat{\boldsymbol{\theta}}_{ds}
   &= (\hat{\theta}_{ds1}, \hat{\theta}_{ds2}, \cdots, \hat{\theta}_{dsK})
\\
   &= \left(
          \frac{N_{ds1} + \alpha_{s1}}{N_{ds} + \sum_{k=1}^K \alpha_{sk}}, 
          \frac{N_{ds2} + \alpha_{s2}}{N_{ds} + \sum_{k=1}^K \alpha_{sk}}, 
          \cdots, 
          \frac{N_{dsK} + \alpha_{sK}}{N_{ds} + \sum_{k=1}^K \alpha_{sk}}
      \right)
\end{aligned}

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

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

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

 \displaystyle
p(w_d^{*} = v \mid \mathbf{W}, z_d^{*} = k, \mathbf{Z}, \beta)
    = \int
          p(w_d^{*} = v \mid z_d^{*} = k, \boldsymbol{\phi}_k)
          p(\boldsymbol{\phi}_k \mid \mathbf{W}, \mathbf{Z}, \beta)
      \mathrm{d} \boldsymbol{\phi}_k

  \boldsymbol{\phi}_k の事後分布を用いた単語  w_d^{*} の周辺分布である。

単語の事後予測分布

 この式は、トピックモデル(4.5節)と同じ式なので、 \mathbf{W} の周辺分布の式(4.11)を用いて、次の式になる。

 \displaystyle
\begin{aligned}
p(w_d^{*} = v \mid \mathbf{W}, z_d^{*} = k, \mathbf{Z}, \beta)
   &= \frac{
          p(w_d^{*} = v, \mathbf{W} \mid z_d^{*} = k, \mathbf{Z}, \beta)
      }{
          p(\mathbf{W} \mid \mathbf{Z}, \beta)
      }
\\
   &= \frac{
          N_{kv} + \beta
      }{
          N_k + V \beta
      }
    \equiv
        \hat{\phi}_{kv}
\end{aligned}

 詳しくは「トピックモデルの崩壊型ギブズサンプリングの導出:一様なハイパーパラメータの場合」を参照のこと。
  w_d^{*} (に割り当てられる語彙  v )の事後予測分布の式が得られた。この式を  \hat{\phi}_{kv} とおく。

単語分布のパラメータ

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

 \displaystyle
\begin{aligned}
\hat{\boldsymbol{\phi}}_k
   &= (\hat{\phi}_{k1}, \hat{\phi}_{k2}, \cdots, \hat{\phi}_{kV})
\\
   &= \left(
          \frac{N_{k1} + \beta}{N_k + V \beta}, 
          \frac{N_{k2} + \beta}{N_k + V \beta}, 
          \cdots, 
          \frac{N_{kV} + \beta}{N_k + V \beta}
      \right)
\end{aligned}

 観測・サンプリングデータ  \mathbf{W}, \mathbf{Z} から推定した単語分布のパラメータ  \boldsymbol{\phi}_k の推定値と言える。

 以上で、各変数の事後予測分布の式と、各分布のパラメータの推定値の計算式が得られた。

 この節では、パチンコ配分モデルを扱った。次節では、確率的潜在意味可視化を扱う。

参考書籍

おわりに

 6・7章は流し読みすらしていなかったのですが読んでみると難易度は5章と変わらなさそうですね。5章を読んだときに一緒にやればよかったです。現時点では、変分ベイズを用いる6.1節は飛ばして、ギブスサンプリングを用いる6.2節しか導出していないのですが。というか5章を読み終わってから4年半が経っていたことに今気付きました、本当に怖ろしい。
 さてこの記事では2階層のトピックを扱ったわけですが、そしたらn階層の構造もやってみたくなりますよね。でも式が見付からなかったので保留です。見付けたらやりたいけど、何年後になることやら。

 2025年5月29日は、えびちゅうこと私立恵比寿中学の仲村悠菜さんの18歳のお誕生日です🦐

 サムネだと前列右から2番目の方です。

【次節の内容】

つづく