DP-MRM (Kim+ ICML12) の更新式も導出

昨日の HDP-LDA の更新式導出のついでに、ICML 読み会で紹介した教師ありノンパラ LDA である (Kim+ ICML2012) Dirichlet Process with Mixed Random Measures (DP-MRM) の更新式も導出しておこう。
DP-MRM のモデルについては ICML 読み会での発表資料参考。

www.slideshare.net

Teh さんの HDP の論文では、実装に必要になる f_k の一般式までしか書かれていなくて、HDP-LDA の場合の書き下しが行われていなかったのだが、DP-MRM でも同じように f_kl という式に帰着して、でもその f_kl は具体的には書き下されていないというスタイルになっている。いやそんなところは真似しなくても。
なので、その f_kl を展開してみよう。

\displaystyle f_{kl}(x_{ji})=\frac{\int f(x_{ji}|\phi_l^k)\prod_{x_{j'i'}\in\boldsymbol{x}_{kl}}f(x_{j'i'}|\phi_l^k)h(\phi_l^k)d\phi_l^k}{\int\prod_{x_{j'i'}\in\boldsymbol{x}_{kl}}f(x_{j'i'}|\phi_l^k)h(\phi_l^k)d\phi_l^k}
where \boldsymbol{x}_{kl}=\{x_{ji}|k_{jt_{ji}}=k,\;l_{jt_{ji}}=l\}

こうやって天下りで与えられると意味不明だが、、例によって p(x_{ji}|\boldsymbol{t}, \boldsymbol{k}, \boldsymbol{l}, \boldsymbol{x}^{-ji}) を f_kl と書いているだけである。

DP-MRM でも HDP-LDA と同じく f(x|φ) は単語の多項分布 Multi(φ)、h(φ) は単語分布を引くディリクレ分布 Dir(β) という設定なので、これを上の式に放り込む。
v=x_ji, t=t_ji, k=k_jt, l=l_jt ということにしつつ、n_lkv = \sharp\{x_ji|v=x_ji, t=t_ji, k=k_jt, l=l_jt\}、-ji が付いた場合はそこから x_ji を除いたもの、といういつもの記法も使って計算していく。
HDP-LDA とほとんど同じ流れなので、細かいところは省略。


\displaystyle f_{kl}(x_{ji})=\frac{\int\phi_{lkv}\prod_{w}\phi_{lkw}^{n_{lkw}^{-ji}}\prod_{w}\phi_{lkw}^{\beta-1}d\phi_l^k}{\int\prod_{w}\phi_{lkw}^{n_{lkw}^{-ji}}\prod_{w}\phi_{lkw}^{\beta-1}d\phi_l^k}
\displaystyle =\frac{\Gamma(\beta+n_{lkv}^{-ji}+1)\prod_{w\neq v}\Gamma(\beta+n_{lkw}^{-ji})}{\Gamma(V\beta+n_{lk}^{-ji}+1)}\cdot\frac{\Gamma(V\beta+n_{lk}^{-ji})}{\prod_w\Gamma(\beta+n_{lkw}^{-ji})}
\displaystyle =\frac{\beta+n_{lkv}^{-ji}}{V\beta+n_{lk}^{-ji}}


\displaystyle f_{kl_{\text{new}}}(x_{ji})=\int f(x_{ji}|\phi)h(\phi)d\phi=\frac 1V


\displaystyle f_{kl}(\boldsymbol{x}_{jt})=\frac{\prod_w\Gamma(\beta+n_{lkw}^{-jt}+n_{jtw})}{\Gamma(V\beta+n_{lk\cdot}^{-jt}+n_{jt})} \cdot \frac{\Gamma(V\beta+n_{lk\cdot}^{-jt})}{\prod_w\Gamma(\beta+n_{lkw}^{-jt})}【2012/08/22 修正】


\displaystyle f_{kl_{\text{new}}}(\boldsymbol{x}_{jt})=\frac{\Gamma(V\beta)\prod_v\Gamma(\beta+n_{\cdot\cdot v}^{jt})}{\Gamma(V\beta+n_{\cdot\cdot\cdot}^{jt})\prod_v\Gamma(\beta)}


ああ、そう言えば、[Kim+ ICML2012] の式 (9), (10) に出てくる f_{kl}(x_{ji})f_{kl}(x_{jt}) の間違い。