13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HDP-LDAでトピックモデルを作成する際の式の導出をLDAからしてみる

Last updated at Posted at 2018-09-25

#はじめに
ノンパラメトリックベイズってなんか魅力ありますよね!
機械学習プロフェッショナルシリーズ「トピックモデル」を勉強した際にChapter8でHDP-LDAが少し紹介されていたのですが、途中式が省略されていました。web上にもあまり載っていなかったので勉強がてら自力で導出しました。需要は相当少ないような気がしますが勉強している方の為になればと思い、式を載せておきます。
まず、LDAでの崩壊型ギブスサンプリングの導出をしてからそれを足がかりにしてHDP-LDAの式を導出していきます。

HDP-LDAの実装もしたのですがそれは後日載せようかと思います。
また、一応EMアルゴリズムと変分ベイズの途中式も導出したので需要があれば載せたいと思います。

※独学勉強大学生の自分がメモ用で式導出したものから引っ張ってきているので、何か不備や間違い、誤字、表記ゆれ、疑問点などありましたらご指摘ください。特に数式の部分に関しては、Qiitaに数式として認識もらえるように書き直している部分があるので表記ゆれ変数ミスがあるかもしれません。

本記事の対象としては、上記の本を読まれたことがある方、HDP-LDAについてある程度知っている方です。若しくは、LDAでの崩壊型ギブスサンプリングの導出を知りたい方でも途中までをご活用ください。少なくともトピックモデルの知識は必須になっています。HDP-LDAの解説というよりかは勉強の補完としての色が強いです。

##変数、関数
変数、関数の表記は上記の本とほぼ同じにしています。

$D$:文書数
$N_{d}$:文書dの中に含まれる単語数
$V$:全文書の中に現れる単語の種類数
$W$:文書集合
$w_{d}$:文書d
$w_{dn}$:文書dのn番目の単語
$K$:トピック数
$N_{k}$:文書集合全体でトピックkが割り当てられた単語数
$N_{dk}$:文書dでトピックkが割り当てられた単語数
$N_{kv}$:文書集合全体で単語vにトピックkが割り当てられた単語数
$\theta_{dk}$:文書dでトピックkが割り当てられる確率
$\theta_{d} = (\theta_{d1},\cdots,\theta_{dK})$:文書内のトピック分布
$\Theta = (\theta_{d1},\cdots,\theta_{DK})$:トピック分布集合
$\phi_{kv}$:トピックkのとき単語vが生成される確率
$\Phi = (\phi_{11},\cdots,\phi_{KV})$:単語分布
$z_{dn}$:文書dのn番目の単語のトピック
$Z = (z_{11},\cdots,z_{1N_{d}},\cdots,z_{D,N_{D}})$:トピック集合

$\Gamma(x)$:ガンマ関数
$\Psi(x)$:ディガンマ関数
$Dirichlet(\alpha)$:$\alpha$をハイパーパラメータにしたディリクレ分布

他にも似たような変数がたくさん出てきますがその都度文章中に説明があると思います。
よく分からない変数があったらコメント下さい。

##基本となるトピックモデルの構造
一般的な
ハイパーパラメータ$\alpha$からディリクレ分布で文書ごとのトピック分布$\theta_{d}$を生成して、$\theta_{d}$を用いてカテゴリー分布によりトピック$z$を生成、またハイパーパラメータ$\beta$からディリクレ分布でトピックごとの単語分布$\phi_{k}$を生成して、$z$と$\phi_{k}$から単語$w$を生成する

$$\alpha\rightarrow\theta_{d}\rightarrow z \rightarrow w \leftarrow\phi_{k}\leftarrow\beta$$

のやつです。

#導出
流れとしては、LDAでの崩壊型ギブスサンプリングを導出してからHDP-LDAを導出していきます。

崩壊型ギブスサンプリング

トピックモデルには未知変数として$Z,\Theta,\Phi$が存在しますが、その内のパラメータ$\Theta,\Phi$を積分消去し、トピック集合の事後分布$p(Z|W,\alpha,\beta)$を推定していきます。
積分消去することで、サンプリングする必要のある変数の数を減らすことが出来ます。
パラメータ$\Theta,\Phi$を積分消去した文書集合$W$とトピック集合$Z$の同時分布は、

$$ p(W,Z|\alpha,\beta) = p(Z|\alpha)p(W|Z,\beta) $$

となります。
一つ目の因子は、

\begin{align}
p(Z|\alpha) &= \int p(Z|\Theta)p(\Theta|\alpha)d\Theta\\
&= \int \prod^{D}_{d=1}\prod^{K}_{k=1}\theta^{N_{dk}}_{dk}\prod^{D}_{d=1}\frac{\Gamma(\alpha K)}{\Gamma(\alpha)^{K}}\prod^{K}_{k=1}\theta^{\alpha - 1}_{dk}d\Theta\\
&= \int \prod^{D}_{d=1}\frac{\Gamma(\alpha K)}{\Gamma(\alpha)^{K}}\prod^{K}_{k=1}\theta^{\alpha + N_{dk} - 1}_{dk}d\Theta\\
&= \frac{\Gamma(\alpha K)^{D}}{\Gamma(\alpha)^{KD}}\prod^{D}_{d=1}\frac{\prod^{K}_{k=1}\Gamma(N_{dk} + \alpha)}{\Gamma(N_{d} + \alpha K)} \;\;\;\;\; (1)
\end{align}

二つ目の因子は、

\begin{align}
p(W|Z,\beta) &= \int p(W|Z,\Phi)p(\Phi|\beta)d\Phi\\
&= \int\prod^{K}_{k=1}\prod^{V}_{v=1}\phi^{N_{kv}}_{kv}\prod^{K}_{k=1}\frac{\Gamma(\beta V)}{\Gamma(\beta)^{V}}\prod^{V}_{v=1}\phi^{\beta-1}_{kv}\\
&= \frac{\Gamma(\beta V)^{K}}{\Gamma(\beta)^{VK}}\prod^{K}_{k=1}\frac{\prod^{V}_{v=1}\Gamma(N_{kv} + \beta)}{\Gamma(N_{k} + \beta V)} \;\;\;\;\; (2)
\end{align}

となります。$N_{kv}$はトピックkに割り当てられた単語vの単語数$N_k$は、$N_k = \sum_{v=1}^VN_{kv}$です。
また、ディリクレ分布の正規化項の計算

$$ \int\prod_{v=1}^{V}\phi_{v}^{\beta_{v}-1}d\phi = \frac{\prod_{v=1}^{V}\Gamma(\beta_{v})}{\Gamma(\sum_{v=1}^{V}\beta_{v})} $$

を使用しています。

$z_{d_{n}}$のサンプリング式は、$z_{d_{n}}$を除いたサンプリング集合$Z_{\backslash d_{n}}$と文書集合Wが与えられた時の$z_{d_{n}}$の条件付き確率で

\begin{align}
&p(z_{dn} = k|W,Z_{\backslash dn},\alpha,\beta)\\
&= \frac{p(z_{dn} = k,Z_{\backslash dn},w_{dn},W_{\backslash dn}|\alpha,\beta)}{p(Z_{\backslash dn},W|\alpha,\beta)}\\
&\propto p(z_{dn} = k,Z_{\backslash dn},w_{dn},W_{\backslash dn}|\alpha,\beta)\\
&= p(w_{dn}|z_{dn} = k,Z_{\backslash dn},W_{\backslash dn},\alpha,\beta)p(W_{\backslash dn}|z_{dn} = k,Z_{\backslash dn},\alpha,\beta)p(z_{dn} = k|Z_{\backslash dn},\alpha,\beta)p(Z_{\backslash dn}|\alpha,\beta)\\
&\propto p(z_{dn} = k|Z_{\backslash dn},\alpha)p(w_{dn}|W_{\backslash dn},z_{dn} = k,Z_{\backslash dn},\beta)
\end{align}

と表されます。
2段目の分母は、$z_{dn} = k$に関係しない項なので省略、4段目の2つ目の因子は、$W_{\backslash dn}$の確率は$z_{dn} = k$を与えても無情報なので$p(W_{\backslash dn}|Z_{\backslash dn},\alpha,\beta)$となり、これは$z_{dn} = k$に無関係なので省略、4つ目の因子も無関係なので省略、5段目の1因子目の$\beta$並びに2因子目の$\alpha$はそれぞれ無関係なので省略しました。

1つ目の因子は、(1)と$\Gamma(x) = (x-1)\Gamma(x-1)$を用いて、

\begin{align}
p(z_{dn} = k|Z_{\backslash dn},\alpha) &= \frac{p(z_{dn} = k,Z_{\backslash dn}|\alpha)}{p(Z_{\backslash dn}|\alpha)}\\
&= \frac{\frac{\Gamma(N_{dk\backslash dn}+1+\alpha)\prod_{k^{\prime}\neq k}\Gamma(N_{dk^{\prime}\backslash dn}+\alpha)}{\Gamma(N_{d}+\alpha K)}}{\frac{\prod^{K}_{k^{\prime} = 1}\Gamma(N_{dk^{\prime}\backslash dn}+\alpha)}{\Gamma(N_{d}-1+\alpha K)}}\\
&= \frac{\frac{(N_{dk\backslash dn}+\alpha)\prod^{K}_{k^{\prime}=1}\Gamma(N_{dk^{\prime}\backslash dn}+\alpha)}{(N_{d}-1+\alpha K)\Gamma(N_{d}-1+\alpha K)}}{\frac{\prod^{K}_{k^{\prime} = 1}\Gamma(N_{dk^{\prime}\backslash dn}+\alpha)}{\Gamma(N_{d}-1+\alpha K)}}\\
&= \frac{N_{dk\backslash dn} + \alpha}{N_{d}-1+\alpha K}
\end{align}

と計算できます。ここで$N_{dk^{\prime}\backslash dn}$とは、n番目の単語を除いた時の文書dでトピックkが割り当てられた単語数を表します。2段目では、(1)の$\frac{\Gamma(\alpha K)^{D}}{\Gamma(\alpha)^{KD}}$は分母分子で共通なので約分、$\prod^{D}_{d=1}$の部分は、文書dでの確率を議論している為、文書d以外は分母分子共通で約分できます。

2つ目の因子は(2)を用いて

\begin{align}
p(w_{dn}|W_{\backslash dn},z_{dn} = k, Z_{\backslash dn},\beta) &= \frac{p(w_{dn},W_{\backslash dn}|z_{dn} = k, Z_{\backslash dn},\beta)}{p(W_{\backslash dn}|Z_{\backslash dn},\beta)}\\
&= \frac{\frac{\Gamma(N_{kw_{dn}\backslash dn}+1+\beta)\prod_{w\neq w_{dn}}\Gamma(N_{kv\backslash dn}+\beta)}{\Gamma(N_{k\backslash dn}+1+\beta V)}}{\frac{\prod^{V}_{v=1}\Gamma(N_{kv\backslash dn}+\beta)}{\Gamma(N_{k\backslash dn}+\beta V)}}\\
&= \frac{N_{kw_{dn}\backslash dn} + \beta}{N_{k\backslash dn} + \beta V}
\end{align}

これらを用いると、

$$p(z_{dn} = k|W,Z_{\backslash dn},\alpha,\beta) \propto (N_{dk\backslash dn} + \alpha)\frac{N_{kw_{dn}\backslash dn} + \beta}{N_{k\backslash dn} + \beta V}$$

が得られます。
ハイパーパラメータ$\alpha,\beta$は、(1)(2)をそれぞれ最大化する事により推定できるので、不動点反復法を用いると、

\alpha^{new} = \alpha\frac{\sum^{D}_{d=1}\sum^{K}_{k=1}\Psi(N_{dk}+\alpha) - DK\Psi(\alpha)}{K\sum^{D}_{d=1}\Psi(N_{d}+\alpha K) - DK\Psi(\alpha K)}\\
\beta^{new} = \beta\frac{\sum^{K}_{k=1}\sum^{V}_{v=1}\Psi(N_{kv} + \beta) - KV\Psi(\beta)}{V\sum^{K}_{k=1}\Psi(N_{k} + \beta V) - KV\Psi(\beta V)}

初期値は、割り当てられているところまでを使用して計算すれば良いです。
積分消去したトピック分布$\Theta$と単語分布$\Phi$は予測確率として

\begin{align}
\theta_{dk} &= p(z_{dn_{new}} = k|Z,\alpha)\\
&= \frac{N_{dk} + \alpha}{N_{d} + \alpha K}\\
\phi_{kv} &= p(w_{dn_{new}} = v|W,z_{dn_{new}} = k, Z,\beta)\\
&= \frac{N_{kv} + \beta}{N_{k} + \beta V}
\end{align}

と(点)推定できます。

これまでは、ディリクレ分布のパラメータが全て一様な場合を考えてきましたが、一様でない場合$\theta_{d} \sim Dirichlet(\alpha_{1},\cdots,\alpha_{K}), \phi_{k} \sim Dirichlet(\beta_{1},\cdots,\beta_{V})$も考えられます。
その場合のサンプリング確率とハイパーパラメータの更新式は、

\begin{align}
&p(z_{dn} = k|W,Z_{\backslash dn},\alpha,\beta) \propto (N_{dk\backslash dn} + \alpha_{k})\frac{N_{kw_{dn}\backslash dn} + \beta_{w_{dn}}}{N_{k\backslash dn} + \sum^{V}_{v=1}\beta_{v}}\\
&\alpha^{new}_{k} = \alpha_{k}\frac{\sum^{D}_{d=1}\Psi(N_{dk}+\alpha_{k}) - D\Psi(\alpha_{k})}{\sum^{D}_{d=1}\Psi(N_{d}+\sum^{K}_{k^{\prime}=1}\alpha_{k^{\prime}}) - DK\Psi(\sum^{K}_{k^{\prime}=1}\alpha_{k^{\prime}})}\\
&\beta^{new}_{v} = \beta_{v}\frac{\sum^{K}_{k=1}\Psi(N_{kv} + \beta_{v}) - K\Psi(\beta_{v})}{\sum^{K}_{k=1}\Psi(N_{k} + \sum^{V}_{v^{\prime=1}}\beta_{v^{\prime}}) - K\Psi(\sum^{V}_{v^{\prime=1}}\beta_{v^{\prime}})}
\end{align}

となります。
ただし、トピック分布のハイパーパラメータは一様でなく、単語分布のハイパーパラメータは一様である場合に性能が良いことが実験で確認されているみたいです。

HDP-LDA

中華料理店過程

無限次元の混合比と無限個の要素モデルを考える際、中華料理店過程を用いると有限個の混合比と要素モデルを扱うだけで推定が可能になります。
中華料理店過程では、ある要素においてその要素がテーブルtに割り当てられる確率が

p(x_{d} = t|x_{1},\cdots,x_{d-1},\alpha)
=\left\{
\begin{array}{ll}
\frac{D_{t}}{d-1+\alpha} & (既存テーブル)\\
\frac{\alpha}{d-1+\alpha} & (新テーブル)
\end{array}
\right.

と表されます。ここで$D_{t}$はテーブル$t$が割り当てられた要素数、$\alpha$は集中パラメータです。新しいテーブルが割り当てられる確率は集中パラメータに比例します。
中華料理店過程は交換可能性より要素がテーブルに着く際にどんな順番であっても確率は変わらないので、サンプリングしたい要素が一番最後にテーブルに着くと考えて良いです。よって、$x_{\backslash d} = (x_{1},\cdots,x_{d-1},x_{d+1},\cdots,x_{D})$が与えられた時の$x_{d}$の条件付き確率となるので、

p(x_{d} = t|x_{\backslash d},\alpha)
=\left\{
\begin{array}{ll}
\frac{D_{t\backslash d}}{D-1+\alpha} & (既存テーブル)\\
\frac{\alpha}{D-1+\alpha} & (新テーブル)
\end{array}
\right.

となります。$D_{t\backslash d}$はテーブルtの人数から$x_{d}$を除いたものです。

階層ディリクレ過程

各文書にディリクレ過程を用いれば各文書のトピック分布が推定できます。しかしそれでは文書間でトピックが共有されていないので意味を為しません。そこで、全文書でトピックを共有させる為にディリクレ過程を重ねる階層ディリクレ過程を使用します。

文書ごとのディリクレ過程

$$G_{d} \sim DP(\alpha,H) ;;;; d = 1,\cdots,D$$

は共有の規定分布Hを持ち、その基底分布はディリクレ過程

$$H \sim DP(\gamma, H_{0})$$

から生成されたものと仮定します。このようにすることで、ディリクレ過程によって生成された分布$H$は離散分布である為、文書ごとのディリクレ過程から生成される分布$G_{d}$は他の文書と共有することができます。

トピック分布の場合、$H_{0} = Dilichlet(\beta)$です。

中華料理店フランチャイズ

階層ディリクレ過程を使用すると文書全体のトピック数および文書ごとのトピック数が推定できます。
階層ディリクレ過程は中華料理店フランチャイズで構成できます。

中華料理店フランチャイズでは、客(単語)は入店した際にテーブルを選び、それが新しいテーブルであるならメニュー(トピック)を選びます。どのテーブルを選ぶかは、テーブルに座っている人数に比例し、どのメニューを選ぶかは、そのメニューを選んでいるテーブル数に比例します。
つまり、テーブル選択が文書ごとのディリクレ過程$G_{d} \sim DP(\alpha,H) ;;;; d = 1,\cdots,D$ 、メニュー選択が規定分布Hのディリクレ過程$H \sim DP(\gamma, Dilichlet(\beta))$です。
なお、同一店舗内(同一文書)で異なるテーブルでも同じトピックが割り振られることがあります。なので中華料理店フランチャイズのテーブルは、異なるトピックが与えられる可能性の権利を得るといった解釈が一番しっくりくる気がします。

中華料理店フランチャイズを仮定したトピックモデルは、崩壊型ギブスサンプリングを用いることによりトピック数を事前に決める必要なく推定できます。
具体的には、単語ごとのテーブルとテーブルごとのトピックの割当をサンプリングしていきます。

文書dのn番目の単語がテーブルlを選ぶ確率を求めます。この際、選び方は、(1)既存のテーブルに座る(2)新テーブルで既存トピック(3)新テーブルで新トピックの3通りが考えられます。

テーブルのサンプリング確率は、

\begin{align}
p(t_{dn} = l|W,T_{\backslash dn},Z,\alpha,\gamma,\beta) &=\left\{
\begin{array}{ll}
p(t_{dn} = l_{used}|W,T_{\backslash dn},Z,\alpha,\gamma,\beta) & (既存テーブル)\\
p(t_{dn} = l_{new}|W,T_{\backslash dn},Z,\alpha,\gamma,\beta) & (新テーブル)
\end{array}
\right.\\
\\
&=\left\{
\begin{array}{ll}
p(t_{dn} = l_{used}|W,T_{\backslash dn},Z,\alpha,\gamma,\beta) & (1)\\
p(t_{dn} = l_{new}, z_{dl} = k_{used}|W,T_{\backslash dn},Z,\alpha,\gamma,\beta) & (2)\\
p(t_{dn} = l_{new}, z_{dl} = k_{new}|W,T_{\backslash dn},Z,\alpha,\gamma,\beta) & (3)
\end{array}
\right.
\end{align}

となる。ここで、Tは単語に割り当てられたテーブル集合、Zはテーブルに割り当てられたトピック集合、$\alpha$は文書毎のディリクレ過程の集中パラメータ、$\gamma$は文書集合全体のディリクレ過程の集中パラメータ、$\beta$はトピックごとの単語分布のハイパーパラメータです。崩壊型ギブスサンプリングでのサンプリング確率の変形を思い出すと

\begin{align}
&p(t_{dn} = l|W,T_{\backslash dn},Z,\alpha,\gamma,\beta)\\
&\propto \left\{
\begin{array}{ll}
p(t_{dn} = l_{used}|T_{\backslash dn},Z,\alpha)p(w_{dn}|W_{\backslash dn}, T_{\backslash dn}, t_{dn}=l_{used},Z,\beta) & (1^{\prime})\\
p(t_{dn} = l_{new}, z_{dl} = k_{used}|T_{\backslash dn},Z,\alpha,\gamma)p(w_{dn}|W_{\backslash dn}, T_{\backslash dn}, t_{dn}=l_{new},z_{dl} = k_{used},Z,\beta) & (2^{\prime})\\
p(t_{dn} = l_{new}, z_{dl} = k_{new}|T_{\backslash dn},Z,\alpha,\gamma)p(w_{dn}|W_{\backslash dn}, T_{\backslash dn}, t_{dn}=l_{new},z_{dl} = k_{new},Z,\beta) & (3^{\prime})
\end{array}
\right.
\end{align}

となります。
さらにそれぞれの式を変形していくと、

$(1^{\prime})$の1つ目の因子は、中華料理店過程なので、
$$p(t_{dn} = l_{used}|T_{\backslash dn},Z,\alpha) \propto N_{dl\backslash dn}$$

2つ目の因子は、$\Gamma(x) = (x-1)\Gamma(x-1)$を用いて、周辺化の式、

p(W|Z,\beta) = \frac{\Gamma(\beta V)^{K}}{\Gamma(\beta)^{VK}}\prod^{K}_{k=1}\frac{\prod^{V}_{v=1}\Gamma(N_{kv} + \beta)}{\Gamma(N_{k} + \beta V)}

を思い出すと、

\begin{align}
p(w_{dn}|W_{\backslash dn}, T_{\backslash dn}, t_{dn}=l_{used},Z,\beta) &= \frac{p(w_{dn}, W_{\backslash dn}|T_{\backslash dn}, t_{dn} = l_{used},Z,\beta)}{p(W_{\backslash dn}|T_{\backslash dn},Z,\beta)}\\
&= \frac{\frac{\Gamma(N_{z_{dl}w_{dn}\backslash dn}+1+\beta)\prod_{v\neq w_{dn}}\Gamma(N_{z_{dl}v\backslash dn}+\beta)}{\Gamma(N_{z_{dl}\backslash dn}+1+\beta V)}}{\frac{\prod^{V}_{v=1}\Gamma(N_{z_{dl}v\backslash dn}+\beta)}{\Gamma(N_{z_{dl}\backslash dn}+\beta V)}}\\
&= \frac{N_{z_{dl}w_{dn}\backslash dn} + \beta}{N_{z_{dl}\backslash dn} + \beta V}
\end{align}

となります。ここで、$N_{dl}$は文書dのl番目のテーブルを選んだ単語数。

$(2^{\prime})$の1つ目の因子は、中華料理店過程なので、

\begin{align}
p(t_{dn} = l_{new}, z_{dl_{new}} = k_{used}|T_{\backslash dn},Z,\alpha,\gamma) &= p(t_{dn} = l_{new}|T_{\backslash dn},Z,\alpha)p(z_{dl_{new}} = k_{used}|T_{\backslash dn},Z,\gamma)\\
&\propto \alpha\frac{M_{k}}{M+\gamma}
\end{align}

ここで$M_{k}$は、トピックkを選んだテーブル数、$M$は、総テーブル数を表します。

2つ目の因子は、$\Gamma(x) = (x-1)\Gamma(x-1)$を用いると、

\begin{align}
p(w_{dn}|W_{\backslash dn}, T_{\backslash dn}, t_{dn}=l_{new},z_{dl_{new}} = k_{used},Z,\beta) &= \frac{p(w_{dn}, W_{\backslash dn}|T_{\backslash dn}, t_{dn} = l_{new},Z,z_{dl_{new}=k_{used}},\beta)}{p(W_{\backslash dn}|T_{\backslash dn},Z,\beta)}\\
&= \frac{\frac{\Gamma(N_{kw_{dn}\backslash dn}+1+\beta)\prod_{v\neq w_{dn}}\Gamma(N_{kv\backslash dn}+\beta)}{\Gamma(N_{k\backslash dn}+1+\beta V)}}{\frac{\prod^{V}_{v=1}\Gamma(N_{kv\backslash dn}+\beta)}{\Gamma(N_{k\backslash dn}+\beta V)}}\\
&= \frac{N_{kw_{dn}\backslash dn} + \beta}{N_{k\backslash dn} + \beta V}
\end{align}

$(3^{\prime})$の1つ目の因子は、中華料理店過程なので、

\begin{align}
p(t_{dn} = l_{new}, z_{dl_{new}} = k_{new}|T_{\backslash dn},Z,\alpha,\gamma) &= p(t_{dn} = l_{new}|T_{\backslash dn},Z,\alpha)p(z_{dl_{new}} = k_{new}|T_{\backslash dn},Z,\gamma)\\
&\propto \alpha\frac{\gamma}{M + \gamma}
\end{align}

2つ目の因子は、

\begin{align}
p(w_{dn}|W_{\backslash dn}, T_{\backslash dn}, t_{dn}=l_{new},z_{dl_{new}} = k_{new},Z,\beta) &= \frac{p(w_{dn}, W_{\backslash dn}|T_{\backslash dn}, t_{dn} = l_{new},Z,z_{dl_{new}=k_{new}},\beta)}{p(W_{\backslash dn}|T_{\backslash dn},Z,\beta)}\\
&= \frac{\frac{\Gamma(1+\beta)\prod_{v\neq w_{dn}}\Gamma(\beta)}{\Gamma(1+\beta V)}}{\frac{\prod^{V}_{v=1}\Gamma(\beta)}{\Gamma(\beta V)}}\\
&= \frac{\beta}{\beta V}\\
&= \frac{1}{V}
\end{align}

よって、

\begin{align}
&p(t_{dn} = l|W,T_{\backslash dn},Z,\alpha,\gamma,\beta)\\
&\propto \left\{
\begin{array}{ll}
N_{dl\backslash dn}\frac{N_{z_{dl}w_{dn}\backslash dn} + \beta}{N_{z_{dl}\backslash dn} + \beta V} & (1)\\
\alpha\frac{M_{k}}{M+\gamma}\frac{N_{kw_{dn}\backslash dn} + \beta}{N_{k\backslash dn} + \beta V} & (2)\\
\alpha\frac{\gamma}{M + \gamma}\frac{1}{V} & (3)
\end{array}
\right.
\end{align}

が導出されます。

次に、テーブル毎のトピックのサンプリング確率を導出します。トピックの選び方は、(1)既存トピック(2)新しいトピックの2通りが考えられるので
文書dのl番目のテーブルがトピックkを選ぶ確率は、

\begin{align}
&p(z_{dl} = k|W,T,Z_{\backslash dl},\gamma,\beta)\\
&\propto \left\{
\begin{array}{ll}
p(z_{dl} = k_{used}|T,Z_{\backslash dl},\gamma)p(w_{dl}|W_{\backslash dl}, T, Z_{\backslash dl}, z_{dl} = k_{used}, \beta) & (1)\\
p(z_{dl} = k_{new}|T,Z_{\backslash dl},\gamma)p(w_{dl}|W_{\backslash dl}, T, Z_{\backslash dl}, z_{dl} = k_{new}, \beta) & (2)
\end{array}
\right.
\end{align}

となります。

$(1)$の1つ目の因子は、中華料理店過程なので、

$$p(z_{dl} = k_{used}|T,Z_{\backslash dl},\gamma) = M_{k\backslash dl}$$

2つ目の因子は、

\begin{align}
p(w_{dl}|W_{\backslash dl}, T, Z_{\backslash dl}, z_{dl} = k_{used}, \beta) &= \frac{p(w_{dl}, W_{\backslash dl}|T,Z_{\backslash dl}, z_{dl} = k_{used}, \beta)}{p(W_{\backslash dl}|T,Z_{\backslash dl},\beta)}\\
&= \frac{\frac{\prod^{V}_{v=1}\Gamma(N_{kv\backslash dl} + N_{klv} + \beta)}{\Gamma(N_{k\backslash dl} + N_{dl}+\beta V)}}{\frac{\prod^{V}_{v=1}\Gamma(N_{kv\backslash dl}+\beta)}{\Gamma(N_{k\backslash dl}+\beta V)}}\\
&= \frac{\Gamma(N_{k\backslash dl}+\beta V)}{\Gamma(N_{k\backslash dl} + N_{dl}+\beta V)}\prod^{V}_{v=1}\frac{\Gamma(N_{kv\backslash dl} + N_{klv} + \beta)}{\Gamma(N_{kv\backslash dl}+\beta)}
\end{align}

となります。ここで、$N_{dlv}$は文書dのl番目のテーブルに割り当てられた単語vの単語数を表します。

同様にして$(2)$の1つ目の因子は、中華料理店過程なので、

$$p(z_{dl} = k_{new}|T,Z_{\backslash dl},\gamma) = \gamma$$

2つ目の因子は、

\begin{align}
p(w_{dl}|W_{\backslash dl}, T, Z_{\backslash dl}, z_{dl} = k_{new}, \beta) &= \frac{p(w_{dl}, W_{\backslash dl}|T,Z_{\backslash dl}, z_{dl} = k_{new}, \beta)}{p(W_{\backslash dl}|T,Z_{\backslash dl},\beta)}\\
&= \frac{\frac{\prod^{V}_{v=1}\Gamma(N_{klv} + \beta)}{\Gamma(N_{dl}+\beta V)}}{\frac{\prod^{V}_{v=1}\Gamma(\beta)}{\Gamma(\beta V)}}\\
&= \frac{\Gamma(\beta V)}{\Gamma(N_{dl}+\beta V)}\frac{\prod^{V}_{v=1}\Gamma(N_{klv} + \beta)}{\Gamma(\beta)^{V}}
\end{align}

よって、

\begin{align}
&p(z_{dl} = k|W,T,Z_{\backslash dl},\gamma,\beta)\\
&\propto \left\{
\begin{array}{ll}
M_{k\backslash dl}\frac{\Gamma(N_{k\backslash dl}+\beta V)}{\Gamma(N_{k\backslash dl} + N_{dl}+\beta V)}\prod^{V}_{v=1}\frac{\Gamma(N_{kv\backslash dl} + N_{klv} + \beta)}{\Gamma(N_{kv\backslash dl}+\beta)} & (1)\\
\gamma\frac{\Gamma(\beta V)}{\Gamma(N_{dl}+\beta V)}\frac{\prod^{V}_{v=1}\Gamma(N_{klv} + \beta)}{\Gamma(\beta)^{V}} & (2)
\end{array}
\right.
\end{align}

これらの確率を使用して単語ごとのテーブル割当のサンプリングとテーブルごとのトピック割当のサンプリングを繰り返し行うことで、中華料理店フランチャイズに基づくトピックモデルを推定できます。

積分消去したトピック分布$\Theta$と単語分布$\Phi$は予測確率として

\begin{align}
\theta_{dk} &= \left\{
\begin{array}{ll}
p(t_{dn_{new}} = l_{used}|T,Z,\alpha) + p(t_{dn_{new}} = l_{new}, z_{dl_{new}} = k_{used}|T,Z,\alpha,\gamma)& (既存トピック)\\
p(t_{dn_{new}} = l_{new}, z_{dl_{new}} = k_{new}|T,Z,\alpha,\gamma)& (新しいトピック)
\end{array}
\right.\\
&= \left\{
\begin{array}{ll}
\frac{1}{N_{d} + \alpha}(N_{dk} + \alpha\frac{M_{k}}{M + \gamma}) & (既存トピック)\\
\frac{1}{N_{d} + \alpha}\frac{\alpha\gamma}{M + \gamma} & (新しいトピック)
\end{array}
\right.\\
 \\
\phi_{kv} &= \left\{
\begin{array}{ll}
p(w_{dn_{new}} = v|W, T, t_{dn_{new}}=l_{used},Z,\beta) \;\;or\;\; p(w_{dn_{new}} = v|W, T, t_{dn_{new}}=l_{new},z_{dl_{new}} = k_{used},Z,\beta)& (既存トピック)\\
p(w_{dn_{new}} = v|W, T, t_{dn_{new}}=l_{new},z_{dl_{new}} = k_{new},Z,\beta)& (新しいトピック)
\end{array}
\right.\\
&= \left\{
\begin{array}{ll}
\frac{N_{kv} + \beta}{N_{k} + \beta V}& (既存トピック)\\
\frac{1}{V}& (新しいトピック)
\end{array}
\right.
\end{align}

と(点)推定できます。
LDAでの崩壊型ギブスサンプリングとは少し異なり、HDP-LDAでは新トピックに割り振られる可能性があるので、予測確率でもそれを考慮した式になってます。
ただ、学習したデータを活用して何かを行う際は、LDAでの崩壊型ギブスサンプリングと同じ予測確率にした方が良い気がします。

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?