からっぽのしょこ

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

5.1:結合トピックモデル【『トピックモデル』の勉強ノート】

はじめに

 機械学習プロフェッショナルシリーズの『トピックモデル』の勉強時に自分の理解の助けになったことや勉強会資料のまとめです。トピックモデルの各種アルゴリズムを「数式」と「プログラム」から理解することを目指します。本とあわせて読んでください。

 この記事は、5.1節「結合トピックモデル」の内容です。結合トピックモデルのパラメータをギブスサンプリングにより推定します。

 これまでは、文書集合として与えられた単語情報のみを扱ってきました。結合トピックモデルでは、評価や発行年といった補助情報を持つ文書集合を扱います。

 共通する部分が多々あるので、前節の記事も参照してください。

【前節の内容】

www.anarchive-beta.com

【他の節一覧】

www.anarchive-beta.com

【この節の内容】


・生成過程

 これまでと同様に、変数$w_{dn},\ x_{dm}$と潜在変数$z_{dn},\ y_{dm}$はカテゴリ分布に、パラメータ$\boldsymbol{\theta}_d,\ \boldsymbol{\phi}_k,\ \boldsymbol{\psi}_k$はディリクレ分布に従って生成されると仮定する。詳しくは図5.2を参照のこと。

・記号一覧

 4章に加えて5.1節で用いる記号を次にまとめる。

f:id:anemptyarchive:20201003185942p:plain
5.1節で追加する記号一覧


・グラフィカルモデル

 結合トピックモデルをグラフィカルモデルで表現すると次の図になる。

・作図コード(クリックで展開)

# 利用パッケージ
library(DiagrammeR)

# 結合トピックモデル
DiagrammeR::grViz("
  digraph dot{
    graph [rankdir = LR]
    node [shape = circle, fixedsize = ture, fontname = 'Times-Italic']
    
    alpha [label = 'α']

    subgraph cluster_D{
      label = D

      theta [label = <<B>&theta;</B>@_{d}>]
      
      subgraph cluster_N{
        label = 'N@_{d}'

        z [label = 'z@_{dn}']
        w [label = 'w@_{dn}', style = filled, filledcolor = 'gray']
      }
      
      subgraph cluster_M{
        label = 'M@_{d}'
        
        y [label = 'y@_{dm}']
        x [label = 'x@_{dm}', style = filled, filledcolor = 'gray']
      }
    }
    
    beta [label = '&beta;']
    gamma [label = '&gamma;']
    
    subgraph cluster_K{
      label = K
      
      phi [label = <<B>&phi;</B>@_{k}>]
      psi [label = <<B>&psi;</B>@_{k}>]
    }
    
    edge []
      alpha -> theta;
      theta -> z -> w;
      w -> phi[dir = back];
      phi -> beta[dir = back];
      theta -> y -> x;
      x -> psi[dir = back];
      psi -> gamma[dir = back];
  }
")

f:id:anemptyarchive:20201003185145p:plain
結合トピックモデルのグラフィカルモデル


・生成モデル

 生成過程に従うと、文書集合$\mathbf{W}$と補助情報集合$\mathbf{X}$の同時分布は

$$ \begin{aligned} p(\mathbf{W}, \mathbf{X} | \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi}) &= \prod_{d=1}^D p(\mathbf{w}_d, \mathbf{x}_d | \boldsymbol{\theta}_d, \boldsymbol{\Phi}, \boldsymbol{\Psi}) \\ &= \prod_{d=1}^D p(\mathbf{w}_d | \boldsymbol{\theta}_d, \boldsymbol{\Phi}) p(\mathbf{x}_d | \boldsymbol{\theta}_d, \boldsymbol{\Psi}) \\ &= \prod_{d=1}^D \left[ \prod_{n=1}^{N_d} p(w_{dn} | \boldsymbol{\theta}_d, \boldsymbol{\Phi}) \prod_{m=1}^{M_d} p(x_{dm} | \boldsymbol{\theta}_d, \boldsymbol{\Psi}) \right] \\ &= \prod_{d=1}^D \left[ \prod_{n=1}^{N_d} \sum_{k=1}^K p(w_{dn}, z_{dn} = k | \boldsymbol{\theta}_d, \boldsymbol{\phi}_k) \prod_{m=1}^{M_d} \sum_{k=1}^K p(x_{dm}, y_{dm} = k | \boldsymbol{\theta}_d, \boldsymbol{\psi}_k) \right] \\ &= \prod_{d=1}^D \left[ \prod_{n=1}^{N_d} \sum_{k=1}^K p(z_{dn} = k | \boldsymbol{\theta}_d) p(w_{dn} | z_{dn} = k, \boldsymbol{\phi}_k) \prod_{m=1}^{M_d} \sum_{k=1}^K p(y_{dm} = k | \boldsymbol{\theta}_d) p(x_{dm} | y_{dm} = k, \boldsymbol{\psi}_k) \right] \end{aligned} $$

【途中式の途中式】

  1. 文書ごとの積に分解する。
  2. 単語$w_{dn}$と補助情報$x_{dm}$は独立に生成される(と仮定する)ことから、項を分解する。
  3. 周辺化した潜在トピック$z_{dn},\ y_{dm}$をそれぞれ明示する。
  4. 生成過程に従い乗法定理より、それぞれ項を分解する。


と分解できる。

・サンプリング確率

・パラメータの周辺化

 パラメータ$\boldsymbol{\Theta},\ \boldsymbol{\Phi},\ \boldsymbol{\Psi}$を周辺化した、観測データ$\mathbf{W},\ \mathbf{X}$と潜在トピック$\mathbf{Z},\ \mathbf{Y}$の周辺同時分布(周辺同時尤度)は

$$ \begin{align} p(\mathbf{W}, \mathbf{X}, \mathbf{Z}, \mathbf{Y} | \alpha, \beta, \gamma) &= \int \int \int p(\mathbf{W}, \mathbf{X}, \mathbf{Z}, \mathbf{Y}, \boldsymbol{\Theta}, \boldsymbol{\Phi}, \boldsymbol{\Psi} | \alpha, \beta, \gamma) d\boldsymbol{\Theta} d\boldsymbol{\Phi} d\boldsymbol{\Psi} \\ &= \int p(\mathbf{Z}, \mathbf{Y} | \boldsymbol{\Theta}) p(\boldsymbol{\Theta} | \alpha) d\boldsymbol{\Theta} \int p(\mathbf{W} | \mathbf{Z}, \boldsymbol{\Phi}) p(\boldsymbol{\Phi} | \beta) d\boldsymbol{\Phi} \int p(\mathbf{X} | \mathbf{Y}, \boldsymbol{\Psi}) p(\boldsymbol{\Psi} | \gamma) d\boldsymbol{\Psi} \\ &= p(\mathbf{Z}, \mathbf{Y} | \alpha) p(\mathbf{W} | \mathbf{Z}, \beta) p(\mathbf{X} | \mathbf{Y}, \gamma) \tag{5.1.1} \end{align} $$

と分解できる。

 分解した各分布の具体的な式を求めていく。1つ目の項$p(\mathbf{Z}, \mathbf{Y} | \alpha)$は、式(4.10)と同様にして

$$ \begin{align} p(\mathbf{Z}, \mathbf{Y} | \alpha) &= \int p(\mathbf{Z} | \boldsymbol{\Theta}) p(\mathbf{Y} | \boldsymbol{\Theta}) p(\boldsymbol{\Theta} | \alpha) d\boldsymbol{\Theta} \\ &= \prod_{d=1}^D \int \left[ \prod_{n=1}^{N_d} \prod_{k=1}^K p(z_{dn} = k | \boldsymbol{\theta}_d) \right] \left[ \prod_{m=1}^{M_d} \prod_{k=1}^K p(y_{dm} = k | \boldsymbol{\theta}_d) \right] p(\boldsymbol{\theta}_d | \alpha) d\boldsymbol{\theta}_d \\ &= \prod_{d=1}^D \int \left[ \prod_{k=1}^K \theta_{dk}^{N_{dk}} \right] \left[ \prod_{k=1}^K \theta_{dk}^{M_{dk}} \right] \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K} \prod_{k=1}^K \theta_{dk}^{\alpha-1} d\boldsymbol{\theta}_d \\ &= \frac{\Gamma(\alpha K)^D}{\Gamma(\alpha)^{KD}} \prod_{d=1}^D \int \prod_{k=1}^K \theta_{dk}^{N_{dk}+M_{dk}+\alpha-1} d\boldsymbol{\theta}_d \\ &= \frac{\Gamma(\alpha K)^D}{\Gamma(\alpha)^{KD}} \prod_{d=1}^D \frac{ \prod_{k=1}^K \Gamma(N_{dk} + M_{dk} + \alpha) }{ \Gamma(N_d + M_d + \alpha K) } \tag{5.1.2}\\ &= \prod_{d=1}^D \frac{ \Gamma(\alpha K) }{ \Gamma(N_d + M_d + \alpha K) } \prod_{d=1}^D \prod_{k=1}^K \frac{ \Gamma(N_{dk} + M_{dk} + \alpha) }{ \Gamma(\alpha) } \tag{5.1.2'} \end{align} $$

【途中式の途中式】

  1. 積分消去した$\boldsymbol{\Theta}$を明示して、また$\mathbf{Z},\ \mathbf{Y}$は独立に生成されることから項を分解する。
  2. 各文書、また各単語・補助情報の積に分解する。
  3. 仮定した確率分布に従って、具体的な式に置き換える。このとき$p(y_{dm} = k | \boldsymbol{\theta}_d) = \theta_{dk}$であり、また$\prod_{m=1}^{M_D}$により$\theta_{dk}$は$M_{dk}$個重複する。
  4. $\boldsymbol{\theta}_d$と無関係な項を$\int$の外に出し、$\theta_{dk}$の項を1つにまとめる。
  5. ディリクレ分布の正規化項の導出過程(1.13)より、置き換える。ただし$\sum_{k=1}^K N_{dk} + M_{dk} + \alpha = N_d + M_d + \alpha K$である。
  6. 分母分子で$\alpha K$と$\alpha$を揃えるために、分母を入れ替える。


となる。

 2つ目の項$p(\mathbf{W} | \mathbf{Z}, \beta)$は、4.5節で求めた

$$ \begin{align} p(\mathbf{W} | \mathbf{Z}, \beta) &= \frac{\Gamma(\beta V)^K}{\Gamma(\beta)^{VK}} \prod_{k=1}^K \frac{ \prod_{v=1}^V \Gamma(N_{kv} + \beta) }{ \Gamma(N_k + \beta V) } \tag{4.11}\\ &= \prod_{k=1}^K \frac{ \Gamma(\beta V) }{ \Gamma(N_k + \beta V) } \prod_{k=1}^K \prod_{v=1}^V \frac{ \Gamma(N_{kv} + \beta) }{ \Gamma(\beta) } \tag{4.11'} \end{align} $$

である。

 3つ目の項$p(\mathbf{X} | \mathbf{Y}, \gamma)$は、式(4.11)と同様にして

$$ \begin{align} p(\mathbf{X} | \mathbf{Y}, \gamma) &= \int p(\mathbf{X} | \mathbf{Y}, \boldsymbol{\Psi}) p(\boldsymbol{\Psi} | \gamma) d\boldsymbol{\Psi} \\ &= \int \left[ \prod_{d=1}^D \prod_{m=1}^{M_d} \prod_{k=1}^K p(x_{dm} = s | y_{dm} = k, \boldsymbol{\psi}_k) \right] \left[ \prod_{k=1}^K p(\boldsymbol{\psi}_k | \gamma) \right] d\boldsymbol{\psi}_k \\ &= \prod_{k=1}^K \int \left[ \prod_{s=1}^S \psi_{ks}^{M_{ks}} \right] \frac{\Gamma(\gamma S)}{\Gamma(\gamma)^S} \prod_{s=1}^S \psi_{ks}^{\gamma-1} d\boldsymbol{\psi}_k \\ &= \frac{\Gamma(\gamma S)^K}{\Gamma(\gamma)^{SK}} \prod_{k=1}^K \int \prod_{s=1}^S \psi_{ks}^{M_{ks}+\gamma-1} d\boldsymbol{\psi}_k \\ &= \frac{\Gamma(\gamma S)^K}{\Gamma(\gamma)^{SK}} \prod_{k=1}^K \frac{ \prod_{s=1}^S \Gamma(M_{ks} + \gamma) }{ \Gamma(M_k + \gamma S) } \tag{5.1.3}\\ &= \prod_{k=1}^K \frac{\Gamma(\gamma S)}{\Gamma(M_k + \gamma S)} \prod_{k=1}^K \prod_{s=1}^S \frac{ \prod_{s=1}^S \Gamma(M_{ks} + \gamma) }{ \Gamma(\gamma) } \tag{5.1.3'} \end{align} $$

【途中式の途中式】

  1. 積分消去した$\boldsymbol{\Psi}$を明示して、また生成過程に従い項を分解する。
  2. 各文書の各補助情報に与えられたトピックごとの積に分解する。
  3. 仮定した確率分布に従って、具体的な式に置き換える。このとき$p(x_{dm} = s | y_{dm} = k, \boldsymbol{\psi}_k) = \psi_{ks}$であり、また$\prod_{m=1}^{M_d}$により$\psi_{ks}$は$M_{ks}$個重複する。
  4. $\boldsymbol{\psi}_k$と無関係な項を$\int$の外に出し、$\psi_{ks}$の項を1つにまとめる。
  5. ディリクレ分布の正規化項(1.13)より、置き換える。ただし$\sum_{s=1}^S M_{ks} + \gamma = M_k + \gamma S$である。
  6. 分母分子で$\gamma S$と$\gamma$を揃えるために、分母を入れ替える。


となる。事前分布の仮定やグラフィカルモデルから分かるように、単語分布のときと同様の手順で求められる。

 この周辺同時分布(5.1.1)を用いて、各単語のトピック、各補助情報のトピックのサンプリング確率を求める。

・単語のトピックのサンプリング式の導出

 ある単語のトピック$z_{dn}$が$k$となる確率は、4.5節と同様に周辺同時分布にベイズの定理を用いて

$$ \begin{aligned} p(z_{dn} = k | \mathbf{W}, \mathbf{X}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}, \alpha, \beta, \gamma) &= \frac{ p(w_{dn}, \mathbf{W}_{\backslash dn}, \mathbf{X}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, \mathbf{Y} | \alpha, \beta, \gamma) }{ p(\mathbf{W}, \mathbf{X}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}, \alpha, \beta, \gamma) } \\ &\propto p(w_{dn}, \mathbf{W}_{\backslash dn}, \mathbf{X}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, \mathbf{Y} | \alpha, \beta, \gamma) \\ &= p(w_{dn} | \mathbf{W}_{\backslash dn}, \mathbf{Z}, \beta) p(\mathbf{W}_{\backslash dn} | \mathbf{Z}_{\backslash dn}, \beta) p(\mathbf{X} | \mathbf{Y}, \gamma) \\ &\qquad * p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, \mathbf{Y}, \alpha) p(\mathbf{Z}_{\backslash dn}, \mathbf{Y} | \alpha) \\ &\propto p(w_{dn} | \mathbf{W}_{\backslash dn}, \mathbf{Z}, \beta) p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, \mathbf{Y}, \alpha) \end{aligned} $$

で求められる。適宜$z_{dn}$に影響しない項を省略している。

 前の項は、4.5節で求めた

$$ p(w_{dn} | \mathbf{W}_{\backslash dn}, \mathbf{Z}, \beta) = \frac{ N_{kw_{dn} \backslash dn} + \beta }{ N_{k \backslash dn} + \beta V } \tag{4.14} $$

である。

 後の項は、式(5.1.2)を用いて式(4.13)と同様にして

$$ \begin{aligned} p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, \mathbf{Y}, \alpha) &= \frac{ p(z_{dn} = k, \mathbf{Z}_{\backslash dn}, \mathbf{Y} | \alpha) }{ p(\mathbf{Z}_{\backslash dn}, \mathbf{Y} | \alpha) } \\ &= \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^{K}} \frac{ \Gamma(N_{dk\backslash dn} + 1 + M_{dk} + \alpha) \prod_{k' \neq k} \Gamma(N_{dk' \backslash dn} + M_{dk} + \alpha) }{ \Gamma(N_d + M_d + \alpha K) } \\ &\qquad * \frac{\Gamma(\alpha)^{K}}{\Gamma(\alpha K)} \frac{ \Gamma(N_d - 1 + M_d + \alpha K) }{ \prod_{k'=1}^K \Gamma(N_{dk'\backslash dn} + M_{dk} + \alpha) } \\ &= \frac{ (N_{dk\backslash dn} + M_{dk} + \alpha) \Gamma(N_{dk\backslash dn} + M_{dk} + \alpha) \prod_{k' \neq k} \Gamma(N_{dk' \backslash dn} + M_{dk} + \alpha) }{ (N_d - 1 + M_d + \alpha K) \Gamma(N_d - 1 + M_d + \alpha K) } \\ &\qquad * \frac{ \Gamma(N_d - 1 + M_d + \alpha K) }{ \prod_{k'=1}^K \Gamma(N_{dk'\backslash dn} + M_{dk} + \alpha) } \\ &= \frac{ N_{dk\backslash dn} + M_{dk} + \alpha }{ N_d - 1 + M_d + \alpha K } \end{aligned} $$

となる。単語のトピック$z_{dn}$をサンプリングするため、補助情報数$M$に関する値は増減しない。

 それぞれ代入すると

$$ \begin{align} p(z_{dn} = k | \mathbf{W}, \mathbf{X}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}, \alpha, \beta, \gamma) &\propto \frac{ N_{dk\backslash dn} + M_{dk} + \alpha }{ N_d - 1 + M_d + \alpha K } \frac{ N_{kw_{dn} \backslash dn} + \beta }{ N_{k \backslash dn} + \beta V } \\ &\propto (N_{dk\backslash dn} + M_{dk} + \alpha) \frac{ N_{kw_{dn} \backslash dn} + \beta }{ N_{k \backslash dn} + \beta V } \tag{5.1} \end{align} $$

が得られる。

・補助情報のトピックのサンプリング式の導出

 ある補助情報のトピック$y_{dm}$が$k$となる確率についても同様に、周辺同時分布にベイズの定理を用いて

$$ \begin{aligned} p(y_{dm} = k | \mathbf{W}, \mathbf{X}, \mathbf{Z}, \mathbf{Y}_{\backslash dm}, \alpha, \beta, \gamma) &= \frac{ p(\mathbf{W}, x_{dm}, \mathbf{X}_{\backslash dm}, \mathbf{Z}, y_{dm} = k, \mathbf{Y}_{\backslash dm} | \alpha, \beta, \gamma) }{ p(\mathbf{W}, \mathbf{X}, \mathbf{Z}, \mathbf{Y}_{\backslash dm}, \alpha, \beta, \gamma) } \\ &\propto p(\mathbf{W}, x_{dm}, \mathbf{X}_{\backslash dm}, \mathbf{Z}, y_{dm} = k, \mathbf{Y}_{\backslash dm} | \alpha, \beta, \gamma) \\ &= p(\mathbf{W} | \mathbf{Z}, \beta) p(x_{dm} | \mathbf{X}_{\backslash dm}, \mathbf{Y}, \gamma) p(\mathbf{X}_{\backslash dm} | \mathbf{Y}_{\backslash dm}, \gamma) \\ &\qquad * p(y_{dm} = k | \mathbf{Z}, \mathbf{Y}_{\backslash dm}, \alpha) p(\mathbf{Z}, \mathbf{Y}_{\backslash dm} | \alpha) \\ &\propto p(x_{dm} | \mathbf{X}_{\backslash dm}, \mathbf{Y}, \gamma) p(y_{dm} = k | \mathbf{Z}, \mathbf{Y}_{\backslash dm}, \alpha) \end{aligned} $$

となる。適宜$y_{dm}$に影響しない項を省略している。

 前の項は、式(5.1.3)を用いて式(4.14)と同様にして

$$ \begin{aligned} p(x_{dm} | \mathbf{X}_{\backslash dm}, \mathbf{Y}, \gamma) &= \frac{ p(x_{dm}, \mathbf{X}_{\backslash dm} | y_{dm} = k, \mathbf{Y}_{\backslash dm}, \gamma) }{ p(\mathbf{X}_{\backslash dm} | y_{dm} = k, \mathbf{Y}_{\backslash dm}, \gamma) } \\ &= \frac{\Gamma(\gamma S)}{\Gamma(\gamma)^{S}} \frac{ \Gamma(M_{kx_{dm} \backslash dm} + 1 + \gamma) \prod_{s' \neq x_{dm}} \Gamma(M_{ks' \backslash dm} + \gamma) }{ \Gamma(M_{k \backslash dm} + 1 + \gamma S) } \frac{\Gamma(\gamma)^{S}}{\Gamma(\gamma S)} \frac{ \Gamma(M_{k \backslash dm} + \gamma S) }{ \prod_{s=1}^S \Gamma(M_{ks \backslash dm} + \gamma) } \\ &= \frac{ (M_{kx_{dm} \backslash dm} + \gamma) \Gamma(M_{kx_{dm} \backslash dm} + \gamma) \prod_{s' \neq x_{dm}} \Gamma(M_{ks' \backslash dm} + \gamma) }{ (M_{k \backslash dm} + \gamma S) \Gamma(M_{k \backslash dm} + \gamma S) } \frac{ \Gamma(M_{k \backslash dm} + \gamma S) }{ \prod_{s=1}^S \Gamma(M_{ks \backslash dm} + \gamma) } \\ &= \frac{ M_{kx_{dm} \backslash dm} + \gamma }{ M_{k \backslash dm} + \gamma S } \end{aligned} $$

となる。

 後の項も、式(5.1.2)を用いて式(4.13)と同様にして

$$ \begin{aligned} p(y_{dm} = k | \mathbf{Y}_{\backslash dm}, \mathbf{Z}, \alpha) &= \frac{ p(\mathbf{Z}, y_{dm} = k, \mathbf{Y}_{\backslash dm} | \alpha) }{ p(\mathbf{Z}, \mathbf{Y}_{\backslash dm} | \alpha) } \\ &= \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^{K}} \frac{ \Gamma(N_{dk} + M_{dk\backslash dm} + 1 + \alpha) \prod_{k' \neq k} \Gamma(N_{dk} + M_{dk' \backslash dm} + \alpha) }{ \Gamma(N_d + M_d + \alpha K) } \\ &\qquad * \frac{\Gamma(\alpha)^{K}}{\Gamma(\alpha K)} \frac{ \Gamma(N_d + M_d - 1 + \alpha K) }{ \prod_{k'=1}^K \Gamma(N_{dk} + M_{dk'\backslash dm} + \alpha) } \\ &= \frac{ (N_{dk} + M_{dk\backslash dm} + \alpha) \Gamma(N_{dk} + M_{dk\backslash dm} + \alpha) \prod_{k' \neq k} \Gamma(N_{dk} + M_{dk' \backslash dm} + \alpha) }{ (N_d + M_d - 1 + \alpha K) \Gamma(N_d + M_d - 1 + \alpha K) } \\ &\qquad * \frac{ \Gamma(N_d + M_d - 1 + \alpha K) }{ \prod_{k'=1}^K \Gamma(N_{dk} + M_{dk'\backslash dm} + \alpha) } \\ &= \frac{ N_{dk} + M_{dk\backslash dm} + \alpha }{ N_d + M_d - 1 + \alpha K } \end{aligned} $$

となる。こちらは補助情報のトピック$y_{dm}$をサンプリングするため、補助情報数$M$に関する値が増減する。

 それぞれ代入すると

$$ \begin{align} p(y_{dm} = k | \mathbf{W}, \mathbf{X}, \mathbf{Z}, \mathbf{Y}_{\backslash dm}, \alpha, \beta, \gamma) &\propto \frac{ M_{kx_{dm} \backslash dm} + \gamma }{ M_{k \backslash dm} + \gamma S } \frac{ N_{dk} + M_{dk\backslash dm} + \alpha }{ N_d + M_d - 1 + \alpha K } \\ &\propto (M_{kx_{dm} \backslash dm} + \gamma) \frac{ N_{dk} + M_{dk\backslash dm} + \alpha }{ N_d + M_d - 1 + \alpha K } \tag{5.2} \end{align} $$

が得られる。

・ハイパーパラメータ推定

 周辺同時分布(5.1.1)に対して不動点反復法を用いてハイパーパラメータ$\alpha,\ \beta,\ \gamma$の更新式を求める。

・トピック分布のパラメータの更新式の導出

 不動点反復法を用いるために、4.5節の「Tips」の関係性を用いて各分布の下限を求める。

$$ \begin{align} p(\mathbf{Z}, \mathbf{Y} | \alpha) &= \prod_{d=1}^D \frac{ \Gamma(\alpha K) }{ \Gamma(N_d + M_d + \alpha K) } \prod_{d=1}^D \prod_{k=1}^K \frac{ \Gamma(N_{dk} + M_{dk} + \alpha) }{ \Gamma(\alpha) } \tag{5.1.2'}\\ &\geq \prod_{d=1}^D \frac{ \Gamma(\hat{\alpha} K) \exp \Bigl\{ (\hat{\alpha} K - \alpha K) b_{\alpha} \Bigr\} }{ \Gamma(N_d + M_d + \hat{\alpha} K) } \prod_{d=1}^D \prod_{k=1}^K \frac{ \Gamma(N_{dk} + M_{dk} + \hat{\alpha}) }{ \Gamma(\hat{\alpha}) } \hat{\alpha}^{-a_{\alpha}} \alpha^{a_{\alpha}} \end{align} $$

 ここで、$\Psi(\cdot)$をディガンマ関数として

$$ \begin{aligned} a_{\alpha} &= \Bigl( \Psi(N_{dk} + M_{dk} + \hat{\alpha}) - \Psi(\hat{\alpha}) \Bigr) \hat{\alpha} \\ b_{\alpha} &= \Psi(N_d + M_d + \hat{\alpha} K) - \Psi(\hat{\alpha} K) \end{aligned} $$

である。

 周辺同時分布(5.1.1)において$\alpha$に関わる項は$p(\mathbf{Z}, \mathbf{Y} | \alpha)$だけなので、他の項は次の微分時に消えるため、この式の対数をとったものを$F(\alpha)$とおく。

$$ \begin{aligned} F(\alpha) &= \sum_{d=1}^D \Bigl\{ \log \Psi(\hat{\alpha} K) + (\hat{\alpha} K - \alpha K) b_{\alpha} - \log \Psi(N_d + M_d + \hat{\alpha} K) \Bigr\} \\ &\qquad + \sum_{d=1}^D \sum_{k=1}^K \Bigl\{ \log \Psi(N_{dk} + M_{dk} + \hat{\alpha}) - \log \Psi(\hat{\alpha}) - a_{\alpha} \log \hat{\alpha} + a_{\alpha} \log \alpha \Bigr\} \\ &= \sum_{d=1}^D \Bigl\{ \log \Psi(\hat{\alpha} K) + (\hat{\alpha} K - \alpha K) \Bigl( \Psi(N_d + M_d + \hat{\alpha} K) - \Psi(\hat{\alpha} K) \Bigr) - \log \Psi(N_d + M_d + \hat{\alpha} K) \Bigr\} \\ &\qquad + \sum_{d=1}^D \sum_{k=1}^K \Bigl\{ \log \Psi(N_{dk} + M_{dk} + \hat{\alpha}) - \log \Psi(\hat{\alpha}) \Bigr.\\ &\qquad \Bigl. - \Bigl( \Psi(N_{dk} + M_{dk} + \hat{\alpha}) - \Psi(\hat{\alpha}) \Bigr) \hat{\alpha} \log \hat{\alpha} + \Bigl( \Psi(N_{dk} + M_{dk} + \hat{\alpha}) - \Psi(\hat{\alpha}) \Bigr) \hat{\alpha} \log \alpha \Bigr\} \end{aligned} $$

 この式を$\alpha$に関して微分して

$$ \frac{\partial F(\alpha)}{\partial \alpha} = \sum_{d=1}^D \Bigl\{ - K \Bigl( \Psi(N_d + M_d + \hat{\alpha} K) - \Psi(\hat{\alpha} K) \Bigr) \Bigr\} + \sum_{d=1}^D \sum_{k=1}^K \left\{ \Bigl( \Psi(N_{dk} + M_{dk} + \hat{\alpha}) - \Psi(\hat{\alpha}) \Bigr) \hat{\alpha} \frac{1}{\alpha} \right\} $$

$\frac{\partial F(\alpha)}{\partial \alpha} = 0$となる$\alpha$を求める。

$$ \begin{aligned} \sum_{d=1}^D \Bigl\{ - K \Bigl( \Psi(N_d + M_d + \hat{\alpha} K) - \Psi(\hat{\alpha} K) \Bigr) \Bigr\} &+ \sum_{d=1}^D \sum_{k=1}^K \left\{ \Bigl( \Psi(N_{dk} + M_{dk} + \hat{\alpha}) - \Psi(\hat{\alpha}) \Bigr) \hat{\alpha} \frac{1}{\alpha} \right\} = 0 \\ \alpha &= \hat{\alpha} \frac{ \sum_{d=1}^D \sum_{k=1}^K \Psi(N_{dk} + M_{dk} + \hat{\alpha}) - D K \Psi(\hat{\alpha}) }{ K \sum_{d=1}^D \Psi(N_d + M_d + \hat{\alpha} K) - D K \Psi(\hat{\alpha} K) } \end{aligned} $$

 この式の右辺の$\hat{\alpha}$を現ステップのパラメータ$\alpha$、左辺の$\alpha$を次ステップ(更新後)のパラメータ$\alpha^{\mathrm{new}}$とすると、$\alpha$の更新式

$$ \alpha^{\mathrm{new}} = \alpha \frac{ \sum_{d=1}^D \sum_{k=1}^K \Psi(N_{dk} + M_{dk} + \alpha) - D K \Psi(\alpha) }{ K \sum_{d=1}^D \Psi(N_d + M_d + \alpha K) - D K \Psi(\alpha K) } $$

が得られる。

・単語分布のパラメータの更新式の導出

 周辺同時分布(5.1.1)において、トピック分布のパラメータ$\beta$に関する項$p(\mathbf{W} | \mathbf{Z}, \beta)$が4.5節と変わらないため、$\beta$の更新式も変わらず

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

となる。

・補助情報分布のパラメータの更新式の導出

 周辺同時分布(5.1.1)において、補助情報分布のパラメータ$\gamma$に関する項$p(\mathbf{X} | \mathbf{Y}, \gamma)$の構造が$p(\mathbf{W} | \mathbf{Z}, \beta)$と同じであるため、式(4.17)と同様の手順で

$$ \gamma^{\mathrm{new}} = \gamma \frac{ \sum_{k=1}^K \sum_{s=1}^S \Psi(M_{ks} + \gamma) - K S \Psi(\gamma) }{ S \sum_{k=1}^K \Psi(M_k + \gamma S) - K S \Psi(\gamma S) } $$

となる。

参考書籍

  • 岩田具治(2015)『トピックモデル』(機械学習プロフェッショナルシリーズ)講談社

おわりに

 トピックモデルの基本形(1~4章)の復習が済んだので、ひっさしぶりに青トピ本を進めます。

 とりあえず行間広すぎいい。あと3行、いやせめて同時周辺尤度の分解の1行だけでも欲しいいい。

 とはいえ何とか解けたと思われます。この本で機械学習にこんにちはしてから1年半、本当に自分の成長に感動します。やればできるもんなんだな!

 それと疑似コードもなくなってるんですけどおお。どうやって組めばいいのおお。

 そろそろ元論文などにあたる頃合いなんだろなと思いつつも、詳細に載ってるわけでもないしなぁ、他にもやりたいことがあるしなぁという感じで次節へ!

 レベルアップに伴って、明らかな(のと少し書くのが面倒な)途中式をほんのちょっとだけ省略してしまいました。このシリーズのコンセプトに反してしまったことをここに懺悔しておきます。でも全部読んでくれた人なら分かるはずですゆえ。

【次節の内容】

www.anarchive-beta.com