からっぽのしょこ

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

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

はじめに

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

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

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

5.4 著者トピックモデルの崩壊型ギブズサンプリングの導出:多様なハイパーパラメータの場合

 著者トピックモデル(ATM・author topic model)に対する不動点反復法(固定点反復法・fixed point iteration)を用いた崩壊型ギブスサンプリング(周辺化ギブスサンプリング・collapsed Gibbs sampling)におけるパラメータの計算式を導出する。この記事では、ハイパーパラメータが多様な値の場合を扱う。
 トピックモデル(LDA・latent Dirichlet allocation)の定義や記号については「4.1:トピックモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、ノイズあり対応トピックモデルの定義や記号については「5.4:著者トピックモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、ハイパーパラメータが一様な値の場合については「5.4:著者トピックモデルの崩壊型ギブズサンプリングの導出:一様なハイパーパラメータの場合【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。

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

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

結合周辺分布の設定

 パラメータ  \boldsymbol{\Theta}, \boldsymbol{\Phi} を周辺化(積分消去)したときの観測変数  \mathbf{W} と 潜在変数  \mathbf{Z}, \mathbf{Y} の結合分布(同時分布)を求める。補助情報  \mathbf{A} は与えられているとする。

 \displaystyle
p(\mathbf{W}, \mathbf{Z}, \mathbf{Y} \mid \mathbf{A}, \boldsymbol{\alpha}, \boldsymbol{\beta})
    = \iint
          p(
              \mathbf{W}, \mathbf{Z}, \mathbf{Y}, 
              \boldsymbol{\Theta}, \boldsymbol{\Phi}
          \mid
              \mathbf{A}, 
              \boldsymbol{\alpha}, \boldsymbol{\beta}
          )
      \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}, \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= p(\mathbf{Z}, \mathbf{Y} \mid \mathbf{A}, \boldsymbol{\alpha})
      p(\mathbf{W} \mid  \mathbf{Z}, \boldsymbol{\beta})
\\
   &= p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\alpha})
      p(\mathbf{Y} \mid \mathbf{A})
      p(\mathbf{W} \mid \mathbf{Z}, \boldsymbol{\beta})
\tag{1}
\end{align}

 著者トピックモデルの依存関係については「著者トピックモデルの生成モデルの導出」を参照のこと。
  \mathbf{W}, \mathbf{Z}, \mathbf{Y} に関する周辺分布または条件付き分布から得られることが分かった。

著者集合の条件付き分布

  \mathbf{W}, \mathbf{Z}, \mathbf{Y} の結合周辺分布の式(1)の1つ目の項は、著者情報集合  \mathbf{A} が与えられたときの著者集合  \mathbf{Y} の条件付き分布である。
 この式は、一様なハイパーパラメータの場合の著者トピックモデル(5.4節)と同じ式なので、次の式になる。

 \displaystyle
\begin{align}
p(\mathbf{Y} \mid \mathbf{A})
   &= \prod_{d=1}^D \prod_{n=1}^{N_d}
          p(y_{dn} \mid \mathbf{a}_d)
\\
   &= \prod_{d=1}^D \prod_{n=1}^{N_d}
          \frac{1}{M_d}
\\
   &= \prod_{d=1}^D
          \frac{1}{M_d^{N_d}}
\tag{2}
\end{align}

 詳しくは「著者トピックモデルの崩壊型ギブズサンプリングの導出:一様なハイパーパラメータの場合」を参照のこと。
  \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}
\\
   &= \int
          \left\{ \prod_{d=1}^D
              p(\mathbf{z}_d \mid \mathbf{y}_d, \boldsymbol{\Theta})
          \right\}
          \prod_{s=1}^S
              p(\boldsymbol{\theta}_s \mid \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\Theta}
\\
   &= \int
          \left\{ \prod_{d=1}^D \prod_{n=1}^{N_d}
              p(z_{dn} \mid \boldsymbol{\theta}_{a_{dy_{dn}}})
          \right\}
          \prod_{s=1}^S
              p(\boldsymbol{\theta}_s \mid \boldsymbol{\alpha})
      \mathrm{d} \boldsymbol{\Theta}
\end{aligned}

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


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

 (グラフィカルモデルから考えると、最後の行の条件に  a_{dm} が登場するのはおかしいのかもしれない。あるいは、左辺の段階で条件に  \mathbf{A} を含めておく方がいいのかもしれない。)


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

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

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


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

  \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}, \boldsymbol{\beta})
   &= \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 \prod_{n=1}^{N_d}
              p(w_{dn} \mid \boldsymbol{\phi}_{z_{dn}})
          \right\}
          \prod_{k=1}^K
              p(\boldsymbol{\phi}_k \mid \boldsymbol{\beta})
      \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(N_k + \sum_{v=1}^V \beta_v)
          }
      \right\}
\tag{4.11}\\
   &= \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{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}, \boldsymbol{\alpha}, \boldsymbol{\beta})
   &= \prod_{d=1}^D
          \frac{1}{M_d^{N_d}}
\\
   &\quad * 
      \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\Gamma(N_s + \sum_{k=1}^K \alpha_k)}
          \prod_{k=1}^K
              \frac{\Gamma(N_{sk} + \alpha_k)}{\Gamma(\alpha_k)}
      \right\}
\\
   &\quad * 
      \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{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}\} で表せる。
 文書  d の著者情報集合  \mathbf{a}_d を除いた著者情報集合を  \mathbf{A}_{\backslash d} とする。全ての著者情報集合は  \mathbf{A} = \{\mathbf{a}_d, \mathbf{A}_{\backslash d}\} で表せる。
 同様に、 w_{dn} を除く単語数を  N_{sk \backslash dn}, N_{s \backslash dn}, N_{d \backslash dn} で表す。

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

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

 \displaystyle
\begin{align}
p(
    z_{dn} = k, y_{dn} = m
\mid
    \mathbf{W}, \mathbf{A}, 
    \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, 
    \boldsymbol{\alpha}, \boldsymbol{\beta}
)
   &= \frac{
          p(
              w_{dn}, \mathbf{W}_{\backslash dn}, 
              z_{dn} = k, \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}
          \mid
              \mathbf{A}, 
              \boldsymbol{\alpha}, \boldsymbol{\beta}
          )
      }{
          p(
              \mathbf{W}_{\backslash dn}, 
              \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}
          \mid
              \mathbf{A}, 
              \boldsymbol{\alpha}, \boldsymbol{\beta}
          )
      }
\\
   &\propto
      p(
          w_{dn}, \mathbf{W}_{\backslash dn}, 
          z_{dn} = k, \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}
      \mid
          \mathbf{A}, 
          \boldsymbol{\alpha}, \boldsymbol{\beta}
      )
\\
   &= p(y_{dn} = m \mid \mathbf{A}, \mathbf{Y}_{\backslash dn})
      p(z_{dn} = k \mid \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha})
      p(w_{dn} \mid \mathbf{W}_{\backslash dn}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, \boldsymbol{\beta})
\\
   &\quad *
      p(\mathbf{Y}_{\backslash dn} \mid \mathbf{A})
      p(\mathbf{Z}_{\backslash dn} \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha})
      p(\mathbf{W}_{\backslash dn} \mid \mathbf{Z}_{\backslash dn}, \boldsymbol{\beta})
\\
   &\propto
      p(y_{dn} = m \mid \mathbf{A}, \mathbf{Y}_{\backslash dn})
      p(z_{dn} = k \mid \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha})
      p(w_{dn} \mid \mathbf{W}_{\backslash dn}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, \boldsymbol{\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} = m, \mathbf{Y}_{\backslash dn}
\mid
    \mathbf{A}, 
    \boldsymbol{\alpha}, \boldsymbol{\beta}
)
\\
   &= p(
          w_{dn}, 
          z_{dn} = k, y_{dn} = m
      \mid
          \mathbf{W}_{\backslash dn}, \mathbf{A}, 
          \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, 
          \boldsymbol{\alpha}, \boldsymbol{\beta}
      )
      p(
          \mathbf{W}_{\backslash dn}, 
          \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}
      \mid
          \mathbf{A}, 
          \boldsymbol{\alpha}, \boldsymbol{\beta}
      )
\end{aligned}

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

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

 後の項の、観測変数  \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
    \mathbf{A}, 
    \boldsymbol{\alpha}, \boldsymbol{\beta}
)
\\
   &= p(\mathbf{W}_{\backslash dn} \mid \mathbf{Z}_{\backslash dn}, \boldsymbol{\beta})
      p(
          \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}
      \mid
          \mathbf{A}, 
          \boldsymbol{\alpha}
      )
\\
   &= p(\mathbf{W}_{\backslash dn} \mid \mathbf{Z}_{\backslash dn}, \boldsymbol{\beta})
      p(\mathbf{Z}_{\backslash dn} \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha})
      p(\mathbf{Y}_{\backslash dn} \mid \mathbf{A})
\end{aligned}
  • 4:  z_{dn}, y_{dn} と無関係な項を省く。

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

著者の事後分布

  z_{dn}, y_{dn} の結合条件付き分布の式(4)の1つ目の項は、単語  w_{dn} 以外の著者集合  \mathbf{Y}_{\backslash dn} が与えられたときの単語  w_{dn} の著者  y_{dn} の条件付き分布である。
 この式は、一様なハイパーパラメータの場合の著者トピックモデル(5.4節)と同じ式なので、 \mathbf{Y} の条件付き分布の式(2)を用いて、次の式になる。

 \displaystyle
\begin{align}
p(y_{dn} = m \mid \mathbf{A}, \mathbf{Y}_{\backslash dn})
   &= \frac{
          p(y_{dn} = m, \mathbf{Y}_{\backslash dn} \mid \mathbf{A})
      }{
          p(\mathbf{Y}_{\backslash dn} \mid \mathbf{A})
      }
\\
   &= \frac{1}{M_d}
\tag{5}
\end{align}

 詳しくは「著者トピックモデルの崩壊型ギブズサンプリングの導出:一様なハイパーパラメータの場合」を参照のこと。
  y_{dn} (に割り当てられる著者情報  m )の事後分布の式が得られた。

トピックの事後周辺分布

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

 \displaystyle
\begin{align}
p(z_{dn} = k \mid \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha})
   &= \frac{
          p(z_{dn} = k, \mathbf{Z}_{\backslash dn} \mid y_{dn} = m, \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha})
      }{
          p(\mathbf{Z}_{\backslash dn} \mid \mathbf{Y}_{\backslash dn}, \boldsymbol{\alpha})
      }
\\
   &= \frac{\Gamma(\sum_{k'=1}^K \alpha_{k'})^S}{\prod_{k'=1}^K \Gamma(\alpha_{k'})^S}
      \frac{
          \Gamma(N_{a_{dm}k \backslash dn} + 1 + \alpha_k)
          \prod_{k' \neq k}
              \Gamma(N_{a_{dm}k' \backslash dn} + \alpha_k)
      }{
          \Gamma(N_{a_{dm} \backslash dn} + 1 + K \alpha_k)
      }
      \prod_{s \neq a_{dm}}
          \frac{
              \prod_{k' \neq k}
                  \Gamma(N_{sk' \backslash dn} + \alpha_{k'})
          }{
              \Gamma(N_{s \backslash dn} + \sum_{k'=1}^K \alpha_{k'})
          }
\\
   &\quad * 
      \frac{\prod_{k'=1}^K \alpha_{k'} \Gamma(\alpha_{k'})^S}{\Gamma(\sum_{k'=1}^K \alpha_{k'})^S}
      \frac{
          \Gamma(N_{a_{dm} \backslash dn} + \sum_{k'=1}^K \alpha_{k'})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{a_{dm}k' \backslash dn} + \alpha_{k'})
      }
      \prod_{s \neq a_{dm}}
          \frac{
              \Gamma(N_{s \backslash dn} + \sum_{k'=1}^K \alpha_{k'})
          }{
              \prod_{k' \neq k}
                  \Gamma(N_{sk' \backslash dn} + \alpha_{k'})
          }
\\
   &= \frac{
          (N_{a_{dm}k \backslash dn} + \alpha_k)
          \Gamma(N_{a_{dm}k \backslash dn} + \alpha_k)
          \prod_{k' \neq k}
              \Gamma(N_{a_{dm}k' \backslash dn} + \alpha_{k'})
      }{
          (N_{a_{dm} \backslash dn} + \sum_{k'=1}^K \alpha_{k'})
          \Gamma(N_{a_{dm} \backslash dn} + \sum_{k'=1}^K \alpha_{k'})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_{a_{dm} \backslash dn} + \sum_{k'=1}^K \alpha_{k'})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{a_{dm}k' \backslash dn} + \alpha_{k'})
      }
\\
   &= \frac{
          N_{a_{dm}k \backslash dn} + \alpha_k
      }{
          N_{a_{dm} \backslash dn} + \sum_{k'=1}^K \alpha_{k'}
      }
\tag{6}
\end{align}

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


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

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

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

 ただし、次の関係である。詳しくは「一様版」を参照のこと。

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

  \mathbf{Z} の周辺分布の式について、 N_{sk}, N_s N_{sk \backslash dn}, N_{s \backslash dn} に置き換える。
 著者  a_{dm} やトピック  k の項のみ形が異なるので、 \prod_{s=1}^S, \prod_{k=1}^K から取り出しておく。

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

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

単語の事後周辺分布

  z_{dn}, y_{dn} の結合条件付き分布の式(4)の3つ目の項は、単語  w_{dn} 以外の文書集合  \mathbf{W}_{\backslash dn} と全単語のトピック集合  \mathbf{Z} が与えられときの単語  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}, \boldsymbol{\beta})
   &= \frac{
          p(w_{dn}, \mathbf{W}_{\backslash dn} \mid z_{dn} = k, \mathbf{Z}_{\backslash dn}, \boldsymbol{\beta})
      }{
           p(\mathbf{W}_{\backslash dn} \mid \mathbf{Z}_{\backslash dn}, \boldsymbol{\beta})
      }
\\
   &= \frac{
          N_{kw_{dn} \backslash dn} + \beta_{w_{dn}}
      }{
          N_{k \backslash dn} + \sum_{v=1}^V \beta_v
      }
\tag{4.14}
\end{align}

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

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

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

 \displaystyle
\begin{aligned}
p(
    z_{dn} = k, y_{dn} = m
\mid
    \mathbf{W}, \mathbf{A}, 
    \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, 
    \boldsymbol{\alpha}, \boldsymbol{\beta}
)
   &\propto
      \frac{1}{M_d}
      \frac{
          N_{a_{dm}k \backslash dn} + \alpha_k
      }{
          N_{a_{dm} \backslash dn} + \sum_{k'=1}^K \alpha_{k'}
      }
      \frac{
          N_{kw_{dn} \backslash dn} + \beta_{w_{dn}}
      }{
          N_{k \backslash dn} + \sum_{v=1}^V \beta_v
      }
\\
   &\propto
      \frac{
          N_{a_{dm}k \backslash dn} + \alpha_k
      }{
          N_{a_{dm} \backslash dn} + \sum_{k'=1}^K \alpha_{k'}
      }
      \frac{
          N_{kw_{dn} \backslash dn} + \beta_{w_{dn}}
      }{
          N_{k \backslash dn} + \sum_{v=1}^V \beta_v
      }
\end{aligned}

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

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

スポンサードリンク

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

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

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

  \mathbf{Z} の周辺分布の式(3')を

 \displaystyle
\begin{align}
p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\alpha})
   &= \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\Gamma(N_s + \sum_{k=1}^K \alpha_k)}
          \prod_{k=1}^K
              \frac{\Gamma(N_{sk} + \alpha_k)}{\Gamma(\alpha_k)}
      \right\}
\tag{3'}\\
   &\geq
      \prod_{s=1}^S \left[
          \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\Gamma(N_s + \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(N_{sk} + \alpha_k)}{\Gamma(\alpha_k)}
              \alpha_k^{-a_{\alpha}}
              (\alpha_k^{\mathrm{new}})^{a_{\alpha}}
          \right\}
      \right]
\end{align}

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

 \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{4.11'}\\
   &\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}, \mathbf{Y} の結合周辺分布の式(1)を置き換え下限  G とおく。

 \displaystyle
\begin{aligned}
p(\mathbf{W}, \mathbf{Z}, \mathbf{Y} \mid \mathbf{A}, \alpha, \beta)
   &\geq
      \prod_{d=1}^D
          \frac{1}{M_d^{N_d}}
\\
   &\quad * 
      \prod_{s=1}^S \Biggl[
          \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\Gamma(N_s + \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)
      \Biggr.
\\
   &\qquad \qquad * 
      \Biggl.
          \prod_{k=1}^K \left\{
              \frac{\Gamma(N_{sk} + \alpha_k)}{\Gamma(\alpha_k)}
              \alpha_k^{-a_{\alpha}}
              (\alpha_k^{\mathrm{new}})^{a_{\alpha}}
          \right\}
      \Biggr]
\\
   &\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(N_{sk} + \alpha_k)
         - \Psi(\alpha_k)
      \Bigr)
      \alpha_k
\\
b_{\alpha}
   &= \Psi \Bigl(N_s + \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{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_k, \beta_v、更新後の値(変数)  x \alpha_k^{\mathrm{new}}, \beta_v^{\mathrm{new}} と対応させて下限の式に変形する。


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

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

 \displaystyle
\begin{aligned}
F  &= \log G
\\
   &= \sum_{d=1}^D
          N_d \log \frac{1}{M_d}
\\
   &\quad
      + \sum_{s=1}^S \Biggl[
          \log \frac{\Gamma(\sum_{k=1}^K \alpha_k)}{\Gamma(N_s + \sum_{k=1}^K \alpha_k)}
          + \left(
                \sum_{k=1}^K
                    \alpha_k
                - \sum_{k=1}^K
                    \alpha_k^{\mathrm{new}}
            \right)
            b_{\alpha}
      \Biggr.
\\
   &\qquad \qquad
      \Biggl.
          + \sum_{k=1}^K \left\{
              \log \frac{\Gamma(N_{sk} + \alpha_k)}{\Gamma(\alpha_k)}
              - a_{\alpha} \log \alpha_k
              + a_{\alpha} \log \alpha_k^{\mathrm{new}}
          \right\}
      \Biggr]
\\
   &\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{Y} の結合周辺分布の対数下限の式が得られた。

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

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

 \displaystyle
F(\alpha_k^{\mathrm{new}})
    = \sum_{s=1}^S \Bigl\{
          - b_{\alpha} \alpha_k^{\mathrm{new}}
          + a_{\alpha} \log \alpha_k^{\mathrm{new}}
      \Bigr\}
      + \mathrm{const.}

 この式は、トピックモデル(4.5節)の式を文書インデックス  d から著者インデックス  s に置き換えた式と言えるので、関数  F(\alpha^{\mathrm{new}}) \alpha^{\mathrm{new}} に関して微分して解くと、次の式になる。

 \displaystyle
\begin{aligned}
\alpha_k^{\mathrm{new}}
   &= \frac{
          \sum_{s=1}^S
              a_{\alpha}
      }{
          \sum_{s=1}^S
              b_{\alpha}
      }
\\
   &= \frac{
          \sum_{s=1}^S \Bigl(
              \Psi(N_{sk} + \alpha_k)
              - \Psi(\alpha_k)
          \Bigr)
          \alpha_k
      }{
          \sum_{s=1}^S \Bigl\{
              \Psi(N_s + \sum_{k'=1}^K \alpha_{k'})
              - \Psi(\sum_{k'=1}^K \alpha_{k'})
          \Bigr\}
      }
\\
   &= \alpha_k
      \frac{
          \sum_{s=1}^S
              \Psi(N_{sk} + \alpha_k)
          - S \Psi(\alpha_k)
      }{
          \sum_{s=1}^S
              \Psi(N_s + \sum_{k'=1}^K \alpha_{k'})
          - S \Psi(\sum_{k'=1}^K \alpha_{k'})
      }
\end{aligned}

  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{
          \sum_{s=1}^S
              \Psi \Bigl(
                  N_{sk}^{(i-1)} + \alpha_k^{(i-1)}
              \Bigr)
              - S
                \Psi \Bigl(
                  \alpha_k^{(i-1)}
                \Bigr)
      }{
          \sum_{s=1}^S
              \Psi \Bigl(
                  N_s^{(i-1)}
                  + \sum_{k'=1}^K \alpha_{k'}^{(i-1)}
              \Bigr)
          - S
            \Psi \Bigl(
              \sum_{k'=1}^K \alpha_{k'}^{(i-1)}
            \Bigr)
      }

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

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

  \mathbf{W}, \mathbf{Z}, \mathbf{Y} の結合周辺分布の対数下限  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.}

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

 \displaystyle
\beta_v^{\mathrm{new}}
    = \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{4.17}

  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 において新たに生成される(  N_d+1 番目の)単語(の語彙)を  w_d^{*}、トピックを  z_d^{*}、著者を  y_d^{*} で表す。著者情報集合  \mathbf{a}_d は与えられているとする。

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

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

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

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


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

 (グラフィカルモデルから考えると、条件に  a_{dm} が登場するのはおかしいのかもしれないが、  \boldsymbol{\theta}_{a_{dy_d^{*}}} = \boldsymbol{\theta}_s の変換を表現する方法が分からなかった。)


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

トピックの事後予測分布

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

 \displaystyle
\begin{aligned}
p(z_d^{*} = k \mid a_{dm} = s, \mathbf{Z}, y_d^{*} = m, \mathbf{Y}, \boldsymbol{\alpha})
   &= \frac{
          p(z_d^{*} = k, \mathbf{Z} \mid a_{dm} = s, y_d^{*} = m, \mathbf{Y}, \boldsymbol{\alpha})
      }{
          p(\mathbf{Z} \mid \mathbf{Y}, \boldsymbol{\alpha})
      }
\\
   &= \frac{\Gamma(\sum_{k'=1}^K \alpha_{k'})^S}{\prod_{k'=1}^K \Gamma(\alpha_{k'})^S}
      \frac{
          \Gamma(N_{sk} + 1 + \alpha_{k'})
          \prod_{k' \neq k}
              \Gamma(N_{sk'} + \alpha_{k'})
      }{
          \Gamma(N_s+1 + \sum_{k'=1}^K \alpha_{k'})
      }
      \prod_{s' \neq s}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{s'k'} + \alpha_{k'})
          }{
              \Gamma(N_{s'} + \sum_{k'=1}^K \alpha_{k'})
          }
\\
   &\quad * 
      \frac{\prod_{k'=1}^K \Gamma(\alpha_{k'})^S}{\Gamma(\sum_{k'=1}^K \alpha_{k'})^S}
      \frac{
          \Gamma(N_s + \sum_{k'=1}^K \alpha_{k'})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{sk'} + \alpha_{k'})
      }
      \prod_{s' \neq s}
          \frac{
              \Gamma(N_{s'} + \sum_{k'=1}^K \alpha_{k'})
          }{
              \prod_{k'=1}^K
                  \Gamma(N_{s'k'} + \alpha_{k'})
          }
\\
   &= \frac{
          (N_{sk} + \alpha_k)
          \Gamma(N_{sk} + \alpha_k)
          \prod_{k' \neq k}
              \Gamma(N_{sk'} + \alpha_{k'})
      }{
          (N_s + \sum_{k'=1}^K \alpha_{k'})
          \Gamma(N_s + \sum_{k'=1}^K \alpha_{k'})
      }
\\
   &\quad * 
      \frac{
          \Gamma(N_s + \sum_{k'=1}^K \alpha_{k'})
      }{
          \prod_{k'=1}^K
              \Gamma(N_{sk'} + \alpha_{k'})
      }
\\
   &= \frac{
          N_{sk} + \alpha_k
      }{
          N_s + \sum_{k'=1}^K \alpha_{k'}
      }
    \equiv
        \hat{\theta}_{sk}
\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^{*} = m, \mathbf{Y}, \boldsymbol{\alpha})
    = \prod_{s=1}^S \left\{
          \frac{\Gamma(\sum_{k'=1}^K \alpha_{k'})}{\prod_{k'=1}^K \Gamma(\alpha_{k'})}
          \frac{
              \prod_{k'=1}^K
                  \Gamma(N_{sk'}^{*} + \alpha_{k'})
          }{
              \Gamma(N_s^{*} + \sum_{k'=1}^K \alpha_{k'})
          }
      \right\}

 ここで、新規(未知)の単語  w_d^{*} を含めた数を  N_{sk}^{*}, N_s^{*} とすると、次の関係である。詳しくは「一様版」を参照のこと。

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

  z_d^{*}, \mathbf{Z} の周辺分布の式について、 N_{sk}^{*}, N_s^{*} N_{sk}, N_s に置き換える。
 著者  a_d^{*} やトピック  k の項のみ形が異なるので、 \prod_{s=1}^S, \prod_{k=1}^K から取り出しておく。

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

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

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

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

 \displaystyle
\begin{aligned}
\hat{\boldsymbol{\theta}}_s
   &= (\hat{\theta}_{s1}, \hat{\theta}_{s2}, \cdots, \hat{\theta}_{sK})
\\
   &= \left(
          \frac{N_{s1} + \alpha_1}{N_s + \sum_{k=1}^K \alpha_k}, 
          \frac{N_{s2} + \alpha_2}{N_s + \sum_{k=1}^K \alpha_k}, 
          \cdots, 
          \frac{N_{sK} + \alpha_K}{N_s + \sum_{k=1}^K \alpha_k}
      \right)
\end{aligned}

 サンプリングデータ  \mathbf{Z} から推定したトピック分布のパラメータ  \boldsymbol{\theta}_s の推定値と言える。

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

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

 \displaystyle
p(w_d^{*} = v \mid \mathbf{W}, z_d^{*} = k, \mathbf{Z}, \boldsymbol{\beta})
    = \int
          p(w_d^{*} = v \mid z_d^{*} = k, \boldsymbol{\phi}_k)
          p(\boldsymbol{\phi}_k \mid \mathbf{W}, \mathbf{Z}, \boldsymbol{\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}, \boldsymbol{\beta})
   &= \frac{
          p(w_d^{*} = v, \mathbf{W} \mid z_d^{*} = k, \mathbf{Z}, \boldsymbol{\beta})
      }{
          p(\mathbf{W} \mid \mathbf{Z}, \boldsymbol{\beta})
      }
\\
   &= \frac{
          N_{kv} + \beta_v
      }{
          N_k + \sum_{v'=1}^V \beta_{v'}
      }
    \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_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} から推定した単語分布のパラメータ  \boldsymbol{\phi}_k の推定値と言える。

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

 この記事では、一様なハイパーパラメータの場合の著者トピックモデルに対する崩壊型ギブスサンプリングによるパラメータの計算式を導出した。次の記事では、多様なパラメータの場合を導出する。

参考書籍

おわりに

 今回も予告的な内容です。書いていたら分かっていなかったことが出てきて停滞しています。

 2025年2月5日は、AMEFURASSHIの鈴木萌花さんの23歳の誕生日です!

 もえちんに一目惚れするようにアメフラを追い始めてハマりました(ということは(青トピシリーズの構成上の)1つ前の記事でも書いていました)。お顔がどタイプだったのが惹かれたきっかけなんですが、可愛いだけじゃなく歌が上手くて弾き語りまでできてとスキルやキャラにも魅せられて抜け出せなくなりました。弾き語りライブに行ってみたい、関西でもなんとかならないでしょうか。
 ちなみに、オレンジ色(?)の衣装の方です。(ハロプロ顔だよね?いやあーりん顔かな?って通じる人と仲良くなりたいなと思う今日この頃なにわか兼オタです。)

  • 2025.05.06

 その後もここまでのモデル(記事)でいくつか分かっていなかったことが出てきた(ここまでの記事の(そっちはまだ更新作業が済んでないのでこれを書いている時点ではまだ書けていませんが)あとがきを参照)ので、分かっていないかったことがどれを指しているのかもう覚えていないくらい間が空いてしまいましたが、なんとか修正が終わりました。
 え、まだギブスサンプリングだけでもう1つあるの…まだ全くの手付かずですよ……。そもそもは8章の内容を書いていくための準備運動的に全面修正を始めたような気がしますが、これももう忘れました。もう1年とか経ってそうな…?

 ちなみに、前日にアメフラのフリイベに行けてとても良かったのテンションのおかげで本日の作業が進んでおります。ありがとうございます。とっても可愛くて楽しくて、これからもよろしくお願いします。

【次節の内容】

  • 数式読解編

 トピック追跡モデルの生成モデルを数式で確認します。

www.anarchive-beta.com