標籤:
注意:$\alpha$和$\beta$已知,常用為(和LDA EM演算法不同)
1. 為什麼可用
LDA模型求解的目標為得到$\phi$和$\theta$
假設現在已知每個單詞對應的主題$z$,則可以求得$\theta$的後驗分布,求期望得到$E(\theta)$作為每份文檔的主題
$E(\theta_{mk})=\frac{n_m^k+\alpha_k}{n_m+\alpha_k}$
同樣,可以求得$\phi$的後驗分布,求期望$E(\phi)$作為每個主題下產生對應單詞的機率
$E(\phi_{kt})=\frac{n_k^t+\beta_t}{n_k+\beta_t}$
現在問題轉換為,如何擷取$z$
2. 公式推導
Gibbs Sampling固定住除了$z_i$以外的其他$z$,記為$\vec {z_{\neg i}}$,使用以下機率分布產生新的$z_i$:
$p(z_i|\vec {z_{\neg i}},\vec w)\quad=\ \frac{p(\vec z,\vec w)}{p(\vec {z_{\neg i}},\vec {w_{\neg i}}|w_i)p(w_i)}$ $(1)$
由於每個單詞之間的產生相互獨立,所以$p(\vec {z_{\neg i}},\vec {w_{\neg i}}|w_i)=p(\vec {z_{\neg i}},\vec {w_{\neg i}})$
又$\alpha$的每個分量都想等,$\beta$的每個分量都相等,所以對於兩個單詞有$p(w_i)=p(w_j)$
$(1)\ \propto \frac{p(\vec z,\vec w)}{p(\vec {z_{\neg i}},\vec {w_{\neg i}})}$
$p(\vec z,\vec w,\phi,\theta|\alpha,\beta)=\prod_{k=1}^K p(\phi_k|\beta)\prod_{m=1}^M p(\theta_m|\alpha)\prod_{n=1}^{N_m}p(z_{mn}|\theta_m)p(w_{mn}|z_{mn},\phi)\\ \quad\quad=(\prod_{k=1}^K p(\phi_k|\beta)\prod_{m=1}^M \prod_{n=1}^{N_m} p(w_{mn}|z_{mn},\phi))^{[1]}\\ \quad\quad\quad *(\prod_{m=1}^M p(\theta_m|\alpha) \prod_{n=1}^{N_m} p(z_{mn}|\theta_m))^{[2]}$
上式中[1]是和$\phi$有關的部分,[2]是和$\theta$有關的部分,對$\phi$,$\theta$積分可得到$p(\vec z,\vec w|\alpha,\beta)$
$[1]=\prod_{k=1}^K \frac{\bigtriangleup \beta+n_k^{(t)}}{\bigtriangleup \beta} \int p(\phi_k|\beta+n_k^{(t)})d\phi_k =\prod_{k=1}^K \frac{\bigtriangleup \beta+n_k^{(t)}}{\bigtriangleup \beta}$,$n_k^{(t)}$為所有單詞中,主題為k,單詞是t的個數
$[2]=\prod_{m=1}^M \frac{\bigtriangleup \alpha+n_m^{(k)}}{\bigtriangleup \ alpha} \int p(\theta_m|\alpha+n_m^{(k)})d\theta_m=\prod_{m=1}^M \frac{\bigtriangleup \alpha+n_m^{(k)}}{\bigtriangleup \ alpha}$,$n_m^{(k)}$是文檔m中,主題為k的個數
結合公式(1):
$p(z_i=k|\vec {z_{\neg i}},\vec w) \propto\quad \frac{\prod_{k=1}^K \bigtriangleup \beta+n_k^{(t)}}{\prod_{k=1}^K \bigtriangleup \beta+n_{k\neg i}^{(t)}}\frac{\prod_{m=1}^M \bigtriangleup \beta+n_k^{(t)}}{\prod_{m=1}^M \bigtriangleup \beta+n_{k\neg i}^{(t)}} \propto \frac{n_{k\neg i}^{(t)}+\beta_t}{\sum_{t=1}^{V} n_{k\neg i}^{(t)}+\beta_t} \frac{n_{m\neg i}^{(k)}+\alpha_k}{\sum_{k=1}^{K} n_{m\neg i}^{(k)}+\alpha_k}$
3. 演算法流程
i. 初始化z
ii. 更新z
iii. 得到$\phi$,$\theta$
LDA Gibbs Sampling