からっぽのしょこ

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

3.2.3:LDAのギブスサンプリング【白トピックモデルのノート】

はじめに

 『トピックモデルによる統計的潜在意味解析』の学習時のメモです。基本的な内容は、数式の行間を読んで埋めたものになります。本と併せて読んでください。

 この記事では、3.2.3節のLDAのギブスサンプリングについて書いています。

 数学よく解らない自分が理解できるレベルまで落として数式を書き下していますので、分かる人にはかなりくどいです。

【前節の内容】

www.anarchive-beta.com

【他の節一覧】

https://www.anarchive-beta.com/entry/2019/12/22/120000www.anarchive-beta.com

【この節の内容】

3.2.3 LDAのギブスサンプリング

 LDAのギブスサンプリングを導出する。

 結合分布は生成過程より

$$ \begin{align*} p(\boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\theta}, \boldsymbol{\phi} | \boldsymbol{\alpha}, \boldsymbol{\beta}) &= p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi}) p(\boldsymbol{z} | \boldsymbol{\theta}) p(\boldsymbol{\theta} | \boldsymbol{\alpha}) p(\boldsymbol{\phi} | \boldsymbol{\beta}) \\ &= \prod_{d=1}^M \prod_{i=1}^{n_d} p(w_{d,i} | z_{d,i}, \boldsymbol{\phi}) p(z_{d,i} | \boldsymbol{\theta}_d) \prod_{d=1}^M p(\boldsymbol{\theta}_d | \boldsymbol{\alpha}) \prod_{k=1}^K p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) \tag{3.27} \end{align*} $$

と分解できる。

・潜在トピックのサンプリング式の導出

$$ \begin{align*} &p(z_{d,i} = k | w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta}) \\ &= \frac{ p(z_{d,i} = k, w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta}) }{ p(w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta}) } \\ &\propto p(z_{d,i} = k, w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta}) \\ &= p(w_{d,i} = v | z_{d,i} = k, \boldsymbol{\phi}) p(z_{d,i} = k | \boldsymbol{\theta}_d) p(\boldsymbol{w}^{\backslash d,i} | \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}) p(\boldsymbol{z}^{\backslash d,i} | \boldsymbol{\theta}) p(\boldsymbol{\theta} | \boldsymbol{\alpha}) p(\boldsymbol{\phi} | \boldsymbol{\beta}) \\ &\propto p(w_{d,i} = v | z_{d,i} = k, \boldsymbol{\phi}) p(z_{d,i} = k | \boldsymbol{\theta}_d) \\ &= \phi_{k,v} \theta_{d,k} \tag{3.28} \end{align*} $$

 条件付き独立性から

$$ p(z_{d,i} = k | w_{d,i} = v, \boldsymbol{w}^{\backslash d,i}, \boldsymbol{z}^{\backslash d,i}, \boldsymbol{\phi}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta}) = p(z_{d,i} = k | w_{d,i} = v, \boldsymbol{\phi}, \boldsymbol{\theta}) \tag{3.30} $$

である。
 これを正規化すると

$$ p(z_{d,i} = k | w_{d,i} = v, \boldsymbol{\phi}, \boldsymbol{\theta}) = \frac{ \phi_{k,v} \theta_{d,k} }{ \sum_{k'=1}^K \phi_{k',v} \theta_{d,k'} } \tag{3.29} $$

が得られる。

・トピック分布のサンプリング式の導出

$$ \begin{aligned} p(\boldsymbol{\theta}_d | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta}) &= \frac{ p(\boldsymbol{\theta}_d, \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d} | \boldsymbol{\alpha}, \boldsymbol{\beta}) }{ p(\boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d} | \boldsymbol{\alpha}, \boldsymbol{\beta}) } \\ &\propto p(\boldsymbol{\theta}_d, \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d} | \boldsymbol{\alpha}, \boldsymbol{\beta}) \\ &= p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi}) p(\boldsymbol{z}_d | \boldsymbol{\theta}_d) p(\boldsymbol{z}^{\backslash d} | \boldsymbol{\theta}^{\backslash d}) p(\boldsymbol{\theta}_d | \boldsymbol{\alpha}) p(\boldsymbol{\theta}^{\backslash d} | \boldsymbol{\alpha}) p(\boldsymbol{\phi} | \boldsymbol{\beta}) \\ &\propto p(\boldsymbol{z}_d | \boldsymbol{\theta}_d) p(\boldsymbol{\theta}_d | \boldsymbol{\alpha}) \end{aligned} $$

 更に、正規化項を省いたDirichlet分布$p(\boldsymbol{\theta}_d | \boldsymbol{\alpha}) \propto \prod_{k=1}^K \theta_{d,k}^{\alpha_k-1}$を用いて

$$ \begin{align*} p(\boldsymbol{\theta}_d | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta}) &\propto p(\boldsymbol{z}_d | \boldsymbol{\theta}_d) p(\boldsymbol{\theta}_d | \boldsymbol{\alpha}) \\ &= \prod_{k=1}^K \theta_{d,k}^{n_{d,k}} \prod_{k=1}^K \theta_{d,k}^{\alpha_k-1} \\ &= \prod_{k=1}^K \theta_{d,k}^{n_{d,k}+\alpha_k-1} \tag{3.31} \end{align*} $$

となる。
 また、条件付き独立性から

$$ p(\boldsymbol{\theta}_d | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}, \boldsymbol{\theta}^{\backslash d}, \boldsymbol{\alpha}, \boldsymbol{\beta}) = p(\boldsymbol{\theta}_d | \boldsymbol{z}_d, \boldsymbol{\alpha}) \tag{3.32} $$

である。
 よって、$p(\boldsymbol{\theta}_d | \boldsymbol{z}_d, \boldsymbol{\alpha})$は、$n_{d,k} + \alpha_k$をパラメータを持つ正規化項のないDirichlet分布であることが分かる。従って、正規化する(Dirichlet分布の正規化項を与える)と

$$ p(\boldsymbol{\theta}_d | \boldsymbol{z}_d, \boldsymbol{\alpha}) = \frac{ \Gamma(\sum_{k=1}^K n_{d,k} + \alpha_k) }{ \prod_{k=1}^K \Gamma(n_{d,k} + \alpha_k) } \prod_{k=1}^K \theta_{d,k}^{n_{d,k} + \alpha_k} \tag{3.36} $$

が得られる。

・単語分布のサンプリング式の導出

$$ \begin{aligned} p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta}) &= \frac{ p(\boldsymbol{\phi}_k, \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta}) }{ p(\boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta}) } \\ &\propto p(\boldsymbol{\phi}_k, \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta} | \boldsymbol{\alpha}, \boldsymbol{\beta}) \\ &= p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi}_k, \boldsymbol{\phi}^{\backslash k}) p(\boldsymbol{z} | \boldsymbol{\theta}) p(\boldsymbol{\theta} | \boldsymbol{\alpha}) p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) p(\boldsymbol{\phi}^{\backslash k} | \boldsymbol{\beta}) \\ &\propto p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi}) p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) \end{aligned} $$

 更に、正規化項を省いたDirichlet分布$p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) \propto \prod_{v=1}^V \phi_{k,v}^{\beta_v-1}$を用いて

$$ \begin{align*} p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta}) &\propto p(\boldsymbol{w} | \boldsymbol{z}, \boldsymbol{\phi}) p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) \\ &= \left[ \prod_{d=1}^M \prod_{i=1}^{n_d} \prod_{k=1}^K p(w_{d,i} | z_{d,i} = k, \boldsymbol{\phi}_k) \right] p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) \\ &\propto \left[ \prod_{d=1}^M \prod_{i=1}^{n_d} p(w_{d,i} | z_{d,i} = k, \boldsymbol{\phi}_k) \right] p(\boldsymbol{\phi}_k | \boldsymbol{\beta}) \\ &\propto \prod_{v=1}^V \phi_{k,v}^{n_{k,v}} \prod_{v=1}^V \phi_{k,v}^{\beta_v-1} \\ &= \prod_{v=1}^V \phi_{k,v}^{n_{k,v}+\beta_v-1} \tag{3.34} \end{align*} $$

となる。
 また、条件付き独立性から

$$ p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\phi}^{\backslash k}, \boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta}) = p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\beta}) \tag{3.35} $$

である。
 よって、$p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\beta})$は、パラメータ$n_{k,v} + \beta_v$を持つ正規化項のないDirichlet分布であることが分かる。従って、正規化すると

$$ p(\boldsymbol{\phi}_k | \boldsymbol{w}, \boldsymbol{z}, \boldsymbol{\beta}) = \frac{ \Gamma(\sum_{v=1}^V n_{k,v} + \beta_v) }{ \prod_{v=1}^V \Gamma(n_{k,v} + \beta_v) } \prod_{v=1}^V \phi_{k,v}^{n_{k,v}+\beta_v-1} \tag{3.37} $$

が得られる。

参考文献

  • 佐藤一誠『トピックモデルによる統計的潜在意味解析』(自然言語処理シリーズ 8)奥村学監修,コロナ社,2015年.

おわりに

【次節の内容】

www.anarchive-beta.com