LDA与Gibbs Sampling

LDA与Gibbs Sampling

统计推断简介

待补充

B \Beta B函数与 Γ \Gamma Γ函数的性质

待补充

Beta \text{Beta} Beta Dirichlet \text{Dirichlet} Dirichlet分布与二项、多项分布

待补充

LDA的概念与似然表示

LDA(Latent Dirichlet Allocation)使用概率生成模型的方式描述文档——主题——单词之间的关系,LDA原文的概率图描述如下:

LDA的盘状表示

原文中对每篇文章的每个单词,生成过程描述如下:

  1. Choose N ∼ Poisson ( ξ ) N \sim \text{Poisson}(\xi) NPoisson(ξ).
  2. Choose θ ∼ Dir ( α ) \theta \sim \text{Dir}(\alpha) θDir(α).
  3. For each of the N N N words w n w_n wn:
    (a) Choose a topic z n ∼ Multinomial ( θ ) z_n \sim \text{Multinomial}(\theta) znMultinomial(θ).
    (b) Choose a word w n w_n wn from p ( w n ∣ z n , β ) p(w_n| z_n, \beta) p(wnzn,β), a multinomial probability conditioned on the topic z n z_n zn.

注意上述概率图的主题——单词分布实际上没有先验分布,并不是完全的“贝叶斯”。

而使用Gibbs采样的LDA,概率图描述如下:

Gibbs采样的LDA盘状表示

注意这里比原文多了一个变量 ϕ ⃗ k \vec{\phi}_k ϕ k,即对主题——单词分布,也使用Dirichlet先验进行建模,是更彻底的“贝叶斯”,对每篇文章的每个单词,生成过程描述如下:

  1. 遍历每个主题 k k k
       ~~   选择主题——单词分布 ϕ ⃗ k ∼ Dir ( β ) \vec{\phi}_k \sim \text{Dir}(\beta) ϕ kDir(β)
  2. 遍历每篇文档 m m m
       ~~   选择文档——主题分布 θ ⃗ m ∼ Dir ( α ) \vec{\theta}_m \sim \text{Dir}(\alpha) θ mDir(α)
       ~~   遍历每个单词 n n n
         ~~~~     (a) 选择单词——主题分布 z m , n ∼ Multinomial ( θ ⃗ m ) z_{m, n} \sim \text{Multinomial}(\vec{\theta}_m) zm,nMultinomial(θ m)
         ~~~~     (b) 选择单词分布 w m , n ∼ Multinomial ( ϕ ⃗ z m , n ) w_{m, n} \sim \text{Multinomial}(\vec{\phi}_{z_{m, n}}) wm,nMultinomial(ϕ zm,n)

符号说明如下:

M M M:语料中文档的数量
K K K:主题的数量
V V V:词表的大小
α ⃗ \vec{\alpha} α :文档→主题的分布超参数
β ⃗ \vec{\beta} β :主题→单词的分布超参数
θ ⃗ m \vec{\theta}_m θ m:第 m m m个文档主题的分布参数,即 p ( z ∣ d = m ) p(z| d = m) p(zd=m)分布的参数,所有文档的参数集记为 Θ ‾ = { θ ⃗ m } m = 1 M \underline{\Theta} = \{\vec{\theta}_m\}_{m = 1}^M Θ={θ m}m=1M
ϕ ⃗ k \vec{\phi}_k ϕ k:第 k k k个主题单词的分布参数,即 p ( t ∣ z = k ) p(t| z = k) p(tz=k)分布的参数,所有主题的参数集记为 Φ ‾ = { ϕ ⃗ k } k = 1 K \underline{\Phi} = \{\vec{\phi}_k\}_{k = 1}^K Φ={ϕ k}k=1K
N m N_m Nm:每个文档的单词数量,服从Poisson分布,参数为 ξ \xi ξ
z m , n z_{m, n} zm,n:第 m m m个文档的第 n n n个单词选择的主题索引
w m , n w_{m, n} wm,n:第 m m m个文档的第 n n n个单词选择的单词索引

根据LDA的定义,某篇文档中某个单词 w m , n w_{m, n} wm,n t t t的概率为:

p ( w m , n = t ∣ θ ⃗ , Φ ‾ ) = ∑ k = 1 K p ( w m , n = t ∣ ϕ ⃗ k ) p ( z m , n = k ∣ θ ⃗ m ) p(w_{m, n} = t| \vec{\theta}, \underline{\Phi}) = \sum_{k = 1}^K{p(w_{m, n} = t| \vec{\phi}_k)p(z_{m, n} = k| \vec{\theta}_m)} p(wm,n=tθ ,Φ)=k=1Kp(wm,n=tϕ k)p(zm,n=kθ m)

联合概率为:

p ( w ⃗ m , z ⃗ m , θ ⃗ m , Φ ‾ ∣ α ⃗ , β ⃗ ) = ∏ n = 1 N m p ( w m , n ∣ ϕ ⃗ z m , n ) p ( z m , n ∣ θ ⃗ m ) ⏟ word plate p ( θ ⃗ m ∣ α ⃗ ) ⏞ document plate(1 document) p ( Φ ‾ ∣ β ⃗ ) ⏟ topic plate p(\vec{w}_m, \vec{z}_m, \vec{\theta}_m, \underline{\Phi}| \vec{\alpha}, \vec{\beta}) = \overbrace{ \underbrace{ \prod_{n = 1}^{N_m}{p(w_{m, n}| \vec{\phi}_{z_{m, n}})p(z_{m, n}| \vec{\theta}_m)} }_{\text{word plate}} p(\vec{\theta}_m| \vec{\alpha}) }^{\text{document plate(1 document)}} \underbrace{ p(\underline{\Phi}| \vec{\beta}) }_{\text{topic plate}} p(w m,z m,θ m,Φα ,β )=word plate n=1Nmp(wm,nϕ zm,n)p(zm,nθ m)p(θ mα ) document plate(1 document)topic plate p(Φβ )

因此单个文档的似然函数为:

p ( w ⃗ m ∣ α ⃗ , β ⃗ ) = ∫ ∫ p ( θ ⃗ m ∣ α ⃗ ) p ( Φ ‾ ∣ β ⃗ ) ∏ n = 1 N m ∑ z m , n p ( w m , n ∣ ϕ ⃗ z m , n ) p ( z m , n ∣ θ ⃗ m ) d Φ ‾ d θ ⃗ m = ∫ ∫ p ( θ ⃗ m ∣ α ⃗ ) p ( Φ ‾ ∣ β ⃗ ) ∏ n = 1 N m p ( w m , n ∣ θ ⃗ m , Φ ‾ ) d Φ ‾ d θ ⃗ m \begin{aligned} p(\vec{w}_m| \vec{\alpha}, \vec{\beta}) &= \int{\int{ p(\vec{\theta}_m| \vec{\alpha})p(\underline{\Phi}| \vec{\beta})\prod_{n = 1}^{N_m}{\sum_{z_{m, n}}{ p(w_{m, n}| \vec{\phi}_{z_{m, n}})p(z_{m, n}| \vec{\theta}_m) }} }}\text{d}{\underline{\Phi}}\text{d}{\vec{\theta}_m}\\ &= \int{\int{ p(\vec{\theta}_m| \vec{\alpha})p(\underline{\Phi}| \vec{\beta})\prod_{n = 1}^{N_m}{ p(w_{m, n}| \vec{\theta}_m, \underline{\Phi}) } }}\text{d}{\underline{\Phi}}\text{d}{\vec{\theta}_m} \end{aligned} p(w mα ,β )=p(θ mα )p(Φβ )n=1Nmzm,np(wm,nϕ zm,n)p(zm,nθ m)dΦdθ m=p(θ mα )p(Φβ )n=1Nmp(wm,nθ m,Φ)dΦdθ m

所有语料的似然函数为:

p ( W ∣ α ⃗ , β ⃗ ) = ∏ m = 1 M p ( w ⃗ m ∣ α ⃗ , β ⃗ ) p(W| \vec{\alpha}, \vec{\beta}) = \prod_{m = 1}^M{p(\vec{w}_m| \vec{\alpha}, \vec{\beta})} p(Wα ,β )=m=1Mp(w mα ,β )

使用Gibbs Sampling进行统计推断

待补充

Collapsed LDA Gibbs sampler

要推导LDA的Gibbs采样,我们可以使用上述的隐变量方法,在LDA中隐藏变量是 z m , n z_{m, n} zm,n,即每篇文章每个单词 w m , n w_{m, n} wm,n选择的主题,我们不需要引入变量 Θ ‾ \underline{\Theta} Θ Φ ‾ \underline{\Phi} Φ,因为它们都可以理解为 z m , n z_{m, n} zm,n的统计量(即其他文献描述的 z m , n z_{m, n} zm,n是它们的充分统计量),这种把部分变量积分通过积分消去的策略就称为“Collapsed”(塌缩),常应用于Gibbs采样。

现在的目标简化为获取 p ( z ⃗ ∣ w ⃗ ) p(\vec{z}| \vec{w}) p(z w )的分布:

p ( z ⃗ ∣ w ⃗ ) = p ( z ⃗ , w ⃗ ) p ( w ⃗ ) = ∏ i = 1 W p ( z i , w i ) ∏ i = 1 W ∑ k = 1 K p ( z i = k , w i ) p(\vec{z}| \vec{w}) = \frac{p(\vec{z}, \vec{w})}{p(\vec{w})} = \frac{ \prod_{i = 1}^W{p(z_i, w_i)} }{ \prod_{i = 1}^W{\sum_{k = 1}^K}{p(z_i = k, w_i)} } p(z w )=p(w )p(z ,w )=i=1Wk=1Kp(zi=k,wi)i=1Wp(zi,wi)

这里暂时省略了超参数,该分布的参数空间非常巨大,最难的是分母部分,包含了 K W K^W KW级别单词的求和运算,因此需要引入Gibbs采样。在这个场景下,我们希望能对 p ( z i ∣ z ⃗ ¬ i , w ⃗ ) p(z_i| \vec{z}_{\neg i}, \vec{w}) p(ziz ¬i,w )采样并模拟 p ( z ⃗ ∣ w ⃗ ) p(\vec{z}| \vec{w}) p(z w )。通过隐藏变量法,我们可以得到全条件概率公式,因此需要形式化描述联合分布,可以分解为:

p ( w ⃗ , z ⃗ ∣ α ⃗ , β ⃗ ) = p ( w ⃗ ∣ z ⃗ , β ⃗ ) p ( z ⃗ ∣ α ⃗ ) p(\vec{w}, \vec{z}| \vec{\alpha}, \vec{\beta}) = p(\vec{w}| \vec{z}, \vec{\beta})p(\vec{z}| \vec{\alpha}) p(w ,z α ,β )=p(w z ,β )p(z α )

第一部分独立于 α ⃗ \vec{\alpha} α (条件独立: w ⃗ ⊥  ⁣ ⁣ ⁣ ⁣ ⊥ α ⃗ ∣ z ⃗ \vec{w} \perp\!\!\!\!\perp \vec{\alpha}| \vec{z} w α z ),第二部分独立于 β ⃗ \vec{\beta} β ,因此两部分可以分别处理,第一部分:

p ( w ⃗ ∣ z ⃗ , β ⃗ ) = ∫ p ( w ⃗ ∣ z ⃗ , Φ ‾ ) p ( Φ ‾ ∣ β ⃗ ) d Φ ‾ p(\vec{w}| \vec{z}, \vec{\beta}) = \int{ p(\vec{w}| \vec{z}, \underline{\Phi})p(\underline{\Phi}| \vec{\beta}) }\text{d}\underline{\Phi} p(w z ,β )=p(w z ,Φ)p(Φβ )dΦ

其中 p ( Φ ‾ ∣ β ⃗ ) p(\underline{\Phi}| \vec{\beta}) p(Φβ )是已知的先验分布, p ( w ⃗ ∣ z ⃗ , Φ ‾ ) p(\vec{w}| \vec{z}, \underline{\Phi}) p(w z ,Φ)可以理解为所有所有单词出现的概率:

p ( w ⃗ ∣ z ⃗ , Φ ‾ ) = ∏ i = 1 W p ( w i ∣ z i ) = ∏ i = 1 W ϕ z i , w i p(\vec{w}| \vec{z}, \underline{\Phi}) = \prod_{i = 1}^W{p(w_i| z_i)} = \prod_{i = 1}^W{\phi_{z_i, w_i}} p(w z ,Φ)=i=1Wp(wizi)=i=1Wϕzi,wi

这里假设了单词的独立性,换个维度统计得到:

p ( w ⃗ ∣ z ⃗ , Φ ‾ ) = ∏ k = 1 K ∏ { i : z i = k } p ( w i = t ∣ z i = k ) = ∏ k = 1 K ∏ t = 1 V ϕ k , t n k ( t ) p(\vec{w}| \vec{z}, \underline{\Phi}) = \prod_{k = 1}^K{\prod_{\{i: z_i = k\}}{ p(w_i = t| z_i = k) }} = \prod_{k = 1}^K{\prod_{t = 1}^V{ \phi_{k, t}^{n_k^{(t)}} }} p(w z ,Φ)=k=1K{i:zi=k}p(wi=tzi=k)=k=1Kt=1Vϕk,tnk(t)

这里需要注意下标 t t t i i i的区别,前者是单词表上的索引,后者是单词实例的索引,理解清楚了才能通顺的理解后续的各项统计量。

我们使用 n k ( t ) n_k^{(t)} nk(t)表示单词 t t t被观察为主题 k k k的次数,因此完整的第一部分可推导为:

p ( w ⃗ ∣ z ⃗ , β ⃗ ) = ∫ p ( w ⃗ ∣ z ⃗ , Φ ‾ ) p ( Φ ‾ ∣ β ⃗ ) d Φ ‾ = ∫ ∏ z = 1 K 1 Δ ( β ⃗ ) ∑ t = 1 V ϕ z , t n z ( t ) + β t − 1 d ϕ ⃗ z = ∏ z = 1 K Δ ( n ⃗ z + β ⃗ ) Δ ( β ⃗ ) , n ⃗ z = { n z ( t ) } t = 1 V \begin{aligned} p(\vec{w}| \vec{z}, \vec{\beta}) &= \int{ p(\vec{w}| \vec{z}, \underline{\Phi})p(\underline{\Phi}| \vec{\beta}) }\text{d}\underline{\Phi}\\ &= \int{ \prod_{z = 1}^K{ \frac{1}{\Delta(\vec{\beta})}\sum_{t = 1}^V{ \phi_{z, t}^{n_z^{(t)} + \beta_t - 1} } } }\text{d}\vec{\phi}_z\\ &= \prod_{z = 1}^K{ \frac{ \Delta(\vec{n}_z + \vec{\beta}) }{ \Delta(\vec{\beta}) } }, \vec{n}_z = \{n_z^{(t)}\}_{t = 1}^V \end{aligned} p(w z ,β )=p(w z ,Φ)p(Φβ )dΦ=z=1KΔ(β )1t=1Vϕz,tnz(t)+βt1dϕ z=z=1KΔ(β )Δ(n z+β ),n z={nz(t)}t=1V

类似的对 p ( z ⃗ ∣ α ⃗ ) p(\vec{z}| \vec{\alpha}) p(z α )进行推导:

p ( z ⃗ ∣ α ⃗ ) = ∫ p ( z ⃗ ∣ Θ ‾ ) p ( Θ ∣ α ⃗ ) d Θ ‾ p(\vec{z}| \vec{\alpha}) = \int{ p(\vec{z}| \underline{\Theta})p(\Theta| \vec{\alpha}) }\text{d}\underline{\Theta} p(z α )=p(z Θ)p(Θα )dΘ

其中 p ( Θ ∣ α ⃗ ) p(\Theta| \vec{\alpha}) p(Θα )是已知的先验分布, p ( z ⃗ ∣ Θ ‾ ) p(\vec{z}| \underline{\Theta}) p(z Θ)可通过统计得到:

p ( z ⃗ ∣ Θ ‾ ) = ∏ i = 1 W p ( z i ∣ d i ) = ∏ m = 1 M ∏ k = 1 K p ( z i = k ∣ d i = m ) = ∏ m = 1 M ∏ k = 1 K θ m , k n m ( k ) p(\vec{z}| \underline{\Theta}) = \prod_{i = 1}^W{p(z_i| d_i)} = \prod_{m = 1}^M{\prod_{k = 1}^K{p(z_i = k| d_i = m)}} = \prod_{m = 1}^M{\prod_{k = 1}^K{ \theta_{m, k}^{n_m^{(k)}} }} p(z Θ)=i=1Wp(zidi)=m=1Mk=1Kp(zi=kdi=m)=m=1Mk=1Kθm,knm(k)

我们使用 d i d_i di表示每个单词所属的文档索引, n m ( k ) n_m^{(k)} nm(k)表示某篇文档中被观察为某个主题的单词计数,因此完整的第二部分可推导为:

p ( z ⃗ ∣ α ⃗ ) = ∫ p ( z ⃗ ∣ Θ ‾ ) p ( Θ ∣ α ⃗ ) d Θ ‾ = ∫ ∏ m = 1 M 1 Δ ( α ⃗ ) ∏ k = 1 K θ m , k n m ( k ) + α k − 1 d θ ⃗ m = ∏ m = 1 M Δ ( n ⃗ m + α ⃗ ) Δ ( α ⃗ ) , n ⃗ m = { n m ( k ) } k = 1 K \begin{aligned} p(\vec{z}| \vec{\alpha}) &= \int{ p(\vec{z}| \underline{\Theta})p(\Theta| \vec{\alpha}) }\text{d}\underline{\Theta}\\ &= \int{ \prod_{m = 1}^M{ \frac{1}{\Delta(\vec{\alpha})}\prod_{k = 1}^K{ \theta_{m, k}^{n_m^{(k)} + \alpha_k - 1} } } }\text{d}\vec{\theta}_m\\ &= \prod_{m = 1}^M{ \frac{ \Delta(\vec{n}_m + \vec{\alpha}) }{ \Delta(\vec{\alpha}) } }, \vec{n}_m = \{n_m^{(k)}\}_{k = 1}^K \end{aligned} p(z α )=p(z Θ)p(Θα )dΘ=m=1MΔ(α )1k=1Kθm,knm(k)+αk1dθ m=m=1MΔ(α )Δ(n m+α ),n m={nm(k)}k=1K

结合两部分得到联合概率:

p ( z ⃗ , w ⃗ ∣ α ⃗ , β ⃗ ) = ∏ z = 1 K Δ ( n ⃗ z + β ⃗ ) Δ ( β ⃗ ) ∏ m = 1 M Δ ( n ⃗ m + α ⃗ ) Δ ( α ⃗ ) p(\vec{z}, \vec{w}| \vec{\alpha}, \vec{\beta}) = \prod_{z = 1}^K{ \frac{ \Delta(\vec{n}_z + \vec{\beta}) }{ \Delta(\vec{\beta}) } } \prod_{m = 1}^M{ \frac{ \Delta(\vec{n}_m + \vec{\alpha}) }{ \Delta(\vec{\alpha}) } } p(z ,w α ,β )=z=1KΔ(β )Δ(n z+β )m=1MΔ(α )Δ(n m+α )

然后可以推导Gibbs的采样公式 p ( z i = k ∣ z ⃗ ¬ i , w ⃗ ) p(z_i = k| \vec{z}_{\neg i}, \vec{w}) p(zi=kz ¬i,w )[1]

p ( z i = k ∣ z ⃗ ¬ i , w ⃗ ) = p ( w ⃗ , z ⃗ ) p ( w ⃗ , z ⃗ ¬ i ) = p ( w ⃗ ∣ z ⃗ ) p ( w ⃗ ¬ i ∣ z ⃗ ¬ i ) p ( w i ) p ( z ⃗ ) p ( z ⃗ ¬ i ) ∝ Δ ( n ⃗ z + β ⃗ ) Δ ( n ⃗ z , ¬ i + β ⃗ ) Δ ( n ⃗ m + α ⃗ ) Δ ( n ⃗ m , ¬ i + α ⃗ ) ∝ Γ ( n k ( t ) + β t ) Γ ( ∑ t = 1 V n k , ¬ i ( t ) + β t ) Γ ( n k , ¬ i ( t ) + β t ) Γ ( ∑ t = 1 V n k ( t ) + β t ) Γ ( n m ( k ) + α k ) Γ ( ∑ k = 1 K n m , ¬ i ( k ) + α k ) Γ ( n m , ¬ i ( k ) + α k ) Γ ( ∑ k = 1 K n m ( k ) + α k ) ∝ n k , ¬ i ( t ) + β t ∑ t = 1 V n k , ¬ i ( t ) + β t n m , ¬ i ( t ) + α k [ ∑ k = 1 K n m ( k ) + α k ] − 1 \begin{aligned} p(z_i = k| \vec{z}_{\neg i}, \vec{w}) &= \frac{p(\vec{w}, \vec{z})}{p(\vec{w}, \vec{z}_{\neg i})} = \frac{p(\vec{w}| \vec{z})}{p(\vec{w}_{\neg i}| \vec{z}_{\neg i})p(w_i)}\frac{p(\vec{z})}{p(\vec{z}_{\neg i})}\\ &\propto \frac{\Delta(\vec{n}_z + \vec{\beta})}{\Delta(\vec{n}_{z, \neg i} + \vec{\beta})} \frac{\Delta(\vec{n}_m + \vec{\alpha})}{\Delta(\vec{n}_{m, \neg i} + \vec{\alpha})}\\ &\propto \frac{ \Gamma(n_k^{(t)} + \beta_t)\Gamma(\sum_{t = 1}^V{n_{k, \neg i}^{(t)} + \beta_t}) }{ \Gamma(n_{k, \neg i}^{(t)} + \beta_t)\Gamma(\sum_{t = 1}^V{n_k^{(t)} + \beta_t}) } \frac{ \Gamma(n_m^{(k)} + \alpha_k)\Gamma(\sum_{k = 1}^K{n_{m, \neg i}^{(k)} + \alpha_k}) }{ \Gamma(n_{m, \neg i}^{(k)} + \alpha_k)\Gamma(\sum_{k = 1}^K{n_m^{(k)} + \alpha_k}) }\\ &\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}^{(t)} + \alpha_k}{[\sum_{k = 1}^K{n_m^{(k)} + \alpha_k}] - 1} \end{aligned} p(zi=kz ¬i,w )=p(w ,z ¬i)p(w ,z )=p(w ¬iz ¬i)p(wi)p(w z )p(z ¬i)p(z )Δ(n z,¬i+β )Δ(n z+β )Δ(n m,¬i+α )Δ(n m+α )Γ(nk,¬i(t)+βt)Γ(t=1Vnk(t)+βt)Γ(nk(t)+βt)Γ(t=1Vnk,¬i(t)+βt)Γ(nm,¬i(k)+αk)Γ(k=1Knm(k)+αk)Γ(nm(k)+αk)Γ(k=1Knm,¬i(k)+αk)t=1Vnk,¬i(t)+βtnk,¬i(t)+βt[k=1Knm(k)+αk]1nm,¬i(t)+αk

其中 n ⋅ , ¬ i ( ⋅ ) n_{\cdot, \neg i}^{(\cdot)} n,¬i()表示从相关的文档或主题中排除第 i i i个单词,第一个等式通过条件独立性( w i ⊥  ⁣ ⁣ ⁣ ⁣ ⊥ w ⃗ ¬ i ∣ z ⃗ ¬ i w_i \perp\!\!\!\!\perp \vec{w}_{\neg i}| \vec{z}_{\neg i} wiw ¬iz ¬i)把 p ( w i ) p(w_i) p(wi)分离出来,且 p ( w i ) p(w_i) p(wi)是常量,可以约去。第一行到第二行的推导,实际上是分子分母直接套用上述的联合概率公式(分母排除了某个单词),剩下的就是 Γ \Gamma Γ函数的计算。


另一个思路的分割线(开始)


这里较难理解的是第一行到第二行的内涵,可以换个思路理解[4]

p ( z i = k ∣ z ⃗ ¬ i , w ⃗ ) ∝ p ( z i = k , z ⃗ ¬ i , w ⃗ ) = p ( w i ∣ z i = j , z ⃗ ¬ i , w ⃗ ¬ i ) p ( z i = j ∣ z ⃗ ¬ i , w ⃗ ¬ i ) = p ( w i ∣ z i = j , z ⃗ ¬ i , w ⃗ ¬ i ) p ( z i = j ∣ z ⃗ ¬ i ) \begin{aligned} p(z_i = k| \vec{z}_{\neg i}, \vec{w}) &\propto p(z_i = k, \vec{z}_{\neg i}, \vec{w})\\ &= p(w_i| z_i = j, \vec{z}_{\neg i}, \vec{w}_{\neg i})p(z_i = j| \vec{z}_{\neg i}, \vec{w}_{\neg i})\\ &= p(w_i| z_i = j, \vec{z}_{\neg i}, \vec{w}_{\neg i})p(z_i = j| \vec{z}_{\neg i}) \end{aligned} p(zi=kz ¬i,w )p(zi=k,z ¬i,w )=p(wizi=j,z ¬i,w ¬i)p(zi=jz ¬i,w ¬i)=p(wizi=j,z ¬i,w ¬i)p(zi=jz ¬i)

也可以分解为两部分,第一部分推导:

p ( w i ∣ z i = j , z ⃗ ¬ i , w ⃗ ¬ i ) = ∫ p ( w i ∣ z i = j , ϕ j ) p ( ϕ j ∣ z ⃗ ¬ i , w ⃗ ¬ i ) d ϕ j = ∫ ϕ j , w i p ( ϕ j ∣ z ⃗ ¬ i , w ⃗ ¬ i ) d ϕ j p ( ϕ j ∣ z ⃗ ¬ i , w ⃗ ¬ i ) ∝ p ( w ⃗ ¬ i ∣ ϕ j , z ⃗ ¬ i ) p ( ϕ j ) ∼ Dirichlet ( β + n ¬ i , j ( w ) ) p(w_i| z_i = j, \vec{z}_{\neg i}, \vec{w}_{\neg i}) \newline \begin{aligned} &= \int{p(w_i| z_i = j, \phi_j)p(\phi_j| \vec{z}_{\neg i}, \vec{w}_{\neg i})}\text{d}\phi_j\\ &= \int{\phi_{j, w_i} p(\phi_j| \vec{z}_{\neg i}, \vec{w}_{\neg i})}\text{d}\phi_j \end{aligned} \newline \begin{aligned} p(\phi_j| \vec{z}_{\neg i}, \vec{w}_{\neg i}) &\propto p(\vec{w}_{\neg i}| \phi_j, \vec{z}_{\neg i})p(\phi_j)\\ &\sim \text{Dirichlet}(\beta + n_{\neg i, j}^{(w)}) \end{aligned} p(wizi=j,z ¬i,w ¬i)=p(wizi=j,ϕj)p(ϕjz ¬i,w ¬i)dϕj=ϕj,wip(ϕjz ¬i,w ¬i)dϕjp(ϕjz ¬i,w ¬i)p(w ¬iϕj,z ¬i)p(ϕj)Dirichlet(β+n¬i,j(w))

其中 n ¬ i , j ( w ) n_{\neg i, j}^{(w)} n¬i,j(w)表示单词 w w w分配到主题 j j j的计数(存疑),使用 Dirichlet \text{Dirichlet} Dirichlet分布的期望公式,可推导:

p ( w i ∣ z i = j , z ⃗ ¬ i , w ⃗ ¬ i ) = n ¬ i , j ( w i ) + β n ¬ i , j ( ⋅ ) + W β p(w_i| z_i = j, \vec{z}_{\neg i}, \vec{w}_{\neg i}) = \frac{n_{\neg i, j}^{(w_i)} + \beta}{n_{\neg i, j}^{(\cdot)} + W\beta} p(wizi=j,z ¬i,w ¬i)=n¬i,j()+Wβn¬i,j(wi)+β

其中 n ¬ i , j ( ⋅ ) n_{\neg i, j}^{(\cdot)} n¬i,j()表示分配到主题 j j j的所有单词的计数(存疑)。

类似的第二部分推导:

p ( z i = j ∣ z ¬ i ) = ∫ p ( z i = j ∣ θ d ) p ( θ d ∣ z ⃗ ¬ i ) d θ d p ( θ d ∣ z ⃗ ¬ i ) ∝ p ( z ⃗ ¬ i ∣ θ d ) p ( θ d ) ∼ Dirichlet ( n ¬ i , j ( d ) + α ) \begin{aligned} p(z_i = j| z_{\neg i}) &= \int{p(z_i = j| \theta_d)p(\theta_d| \vec{z}_{\neg i})}\text{d}\theta_d\\ p(\theta_d| \vec{z}_{\neg i}) &\propto p(\vec{z}_{\neg i}| \theta_d)p(\theta_d)\\ &\sim \text{Dirichlet}(n_{\neg i, j}^{(d)} + \alpha) \end{aligned} p(zi=jz¬i)p(θdz ¬i)=p(zi=jθd)p(θdz ¬i)dθdp(z ¬iθd)p(θd)Dirichlet(n¬i,j(d)+α)

其中 n ¬ i , j ( d ) n_{\neg i, j}^{(d)} n¬i,j(d)表示除第 i i i个单词之外分配到第 j j j个主题的单词计数。

p ( z i = j ∣ z ⃗ ¬ i ) = n ¬ i , j ( d ) + α n ¬ i , ⋅ ( d ) + K α p(z_i = j| \vec{z}_{\neg i}) = \frac{n_{\neg i, j}^{(d)} + \alpha}{n_{\neg i, \cdot}^{(d)} + K\alpha} p(zi=jz ¬i)=n¬i,(d)+Kαn¬i,j(d)+α

其中 n ¬ i , ⋅ ( d ) n_{\neg i, \cdot}^{(d)} n¬i,(d)表示除第 i i i个单词之外所有单词分配到第 d d d篇文档的主题计数。

最终Gibbs采样的条件概率公式为:

p ( z i = j ∣ z ⃗ ¬ i , w ⃗ ) ∝ ( n ¬ i , j ( w i ) + β n ¬ i , j ( ⋅ ) + W β ) ( n ¬ i , j ( d ) + α n ¬ i , ⋅ ( d ) + K α ) p(z_i = j| \vec{z}_{\neg i}, \vec{w}) \propto \bigg( \frac{n_{\neg i, j}^{(w_i)} + \beta}{n_{\neg i, j}^{(\cdot)} + W\beta} \bigg) \bigg( \frac{n_{\neg i, j}^{(d)} + \alpha}{n_{\neg i, \cdot}^{(d)} + K\alpha} \bigg) p(zi=jz ¬i,w )(n¬i,j()+Wβn¬i,j(wi)+β)(n¬i,(d)+Kαn¬i,j(d)+α)


另一个思路的分割线(结束)


参数估计

通过Gibbs采样得到了 z ⃗ \vec{z} z 的样本后,我们就可以用这些样本模拟 z ⃗ \vec{z} z 的分布,然后得到需要的各种统计量,设 M = { w ⃗ , z ⃗ } \mathcal{M} = \{\vec{w}, \vec{z}\} M={w ,z },有:

p ( θ ⃗ m ∣ M , α ⃗ ) = 1 Z θ m ∏ n = 1 N m p ( z m , n ∣ θ ⃗ m ) p ( θ ⃗ m ∣ α ⃗ ) = Dir ( θ ⃗ m ∣ n ⃗ m + α ⃗ ) p ( ϕ ⃗ k ∣ M , β ⃗ ) = 1 Z ϕ k ∏ { i : z i = k } p ( w i ∣ ϕ ⃗ k ) p ( ϕ ⃗ k ∣ β ⃗ ) = Dir ( ϕ ⃗ k ∣ n ⃗ k + β ⃗ ) p(\vec{\theta}_m| \mathcal{M}, \vec{\alpha}) = \frac{1}{Z_{\theta_m}}\prod_{n = 1}^{N_m}{ p(z_{m, n}| \vec{\theta}_m)p(\vec{\theta}_m| \vec{\alpha}) } = \text{Dir}(\vec{\theta}_m| \vec{n}_m + \vec{\alpha}) \newline p(\vec{\phi}_k| \mathcal{M}, \vec{\beta}) = \frac{1}{Z_{\phi_k}}\prod_{\{i: z_i = k\}}{ p(w_i| \vec{\phi}_k)p(\vec{\phi}_k| \vec{\beta}) } = \text{Dir}(\vec{\phi}_k| \vec{n}_k + \vec{\beta}) p(θ mM,α )=Zθm1n=1Nmp(zm,nθ m)p(θ mα )=Dir(θ mn m+α )p(ϕ kM,β )=Zϕk1{i:zi=k}p(wiϕ k)p(ϕ kβ )=Dir(ϕ kn k+β )

通过 Dirichlet \text{Dirichlet} Dirichlet的期望计算性质,可以得到参数 ϕ ⃗ k \vec{\phi}_k ϕ k θ ⃗ m \vec{\theta}_m θ m的估计:

ϕ k , t = n k ( t ) + β t ∑ t = 1 V n k ( t ) + β t θ m , k = n m ( k ) + α k ∑ k = 1 K n m ( k ) + α k \phi_{k, t} = \frac{n_k^{(t)} + \beta_t}{\sum_{t = 1}^V{n_k^{(t)} + \beta_t}} \newline \theta_{m, k} = \frac{n_m^{(k)} + \alpha_k}{\sum_{k = 1}^K{n_m^{(k)} + \alpha_k}} ϕk,t=t=1Vnk(t)+βtnk(t)+βtθm,k=k=1Knm(k)+αknm(k)+αk

参考资料

[1] Parameter estimation for text analysis

[2] A Theoretical and Practical Implementation Tutorial on Topic Modeling and Gibbs Sampling

[3] Finding scientific topics

[4] Gibbs Sampling for LDA

在该作者(http://blog.csdn.net/yangliuy/article/details/8457329)的基础上添加中文分词,实现中文主题发现。相关的文档请到原版作者查阅。谢谢! 也许是待分析的语料太少,效果好像不是很好。 目前的语料输出结果如下: topic 0 : 等 0.010036719031631947 这样 0.010036719031631947 但 0.010036719031631947 下 0.007588739041239023 很难 0.007588739041239023 一个 0.007588739041239023 于 0.007588739041239023 亿元 0.0051407585851848125 目前 0.0051407585851848125 带动 0.0051407585851848125 上 0.0051407585851848125 提出 0.0051407585851848125 地 0.0051407585851848125 做 0.0051407585851848125 技术 0.0051407585851848125 水平 0.0051407585851848125 不 0.0051407585851848125 作 0.0051407585851848125 其实 0.0051407585851848125 市场 0.0051407585851848125 topic 1 : 在 0.02684444561600685 和 0.023288888856768608 对 0.012622222304344177 进行 0.010844443924725056 为 0.009066666476428509 与 0.009066666476428509 选择 0.009066666476428509 还是 0.009066666476428509 其中 0.0072888885624706745 主要 0.0072888885624706745 而 0.0072888885624706745 只有 0.0072888885624706745 看 0.0072888885624706745 遇到 0.0072888885624706745 3 0.005511111114174128 把 0.005511111114174128 也 0.005511111114174128 注意 0.005511111114174128 时间 0.005511111114174128 一种 0.005511111114174128 topic 2 : 英语 0.012685983441770077 考生 0.012685983441770077 可以 0.011119811795651913 词汇 0.009553641080856323 句子 0.009553641080856323 时 0.007987470366060734 就 0.007987470366060734 考试 0.007987470366060734 阅读 0.007987470366060734 写作 0.007987470366060734 上 0.006421299651265144 才能 0.006421299651265144 很多 0.006421299651265144 理解 0.006421299651265144 一些 0.006421299651265144 复习 0.006421299651265144 基础 0.006421299651265144 翻译 0.006421299651265144 大家 0.006421299651265144 根据 0.006421299651265144 topic 3 : 等 0.01035533007234335 公司 0.008324872702360153 网上 0.008324872702360153 法院 0.008324872702360153 和 0.0062944162636995316 迪 0.0062944162636995316 志 0.0062944162636995316 经营 0.0062944162636995316 易趣网 0.0062944162636995316 进 0.0062944162636995316 在 0.004263959359377623 该 0.004263959359377623 其 0.004263959359377623 拥有 0.004263959359377623 5 0.004263959359377623 记者 0.004263959359377623 巨头 0.004263959359377623 直接 0.004263959359377623 研究所 0.004263959359377623 文渊阁 0.004263959359377623 topic 4 : 来 0.010161090642213821 中国 0.010161090642213821 之后 0.007682775612920523 主要 0.007682775612920523 2005年 0.005204460583627224 生产 0.005204460583627224 发展 0.005204460583627224 消费 0.005204460583627224 企业 0.005204460583627224 能 0.005204460583627224 这是 0.005204460583627224 还得 0.005204460583627224 工业 0.005204460583627224 百强 0.005204460583627224 发布 0.005204460583627224 各项 0.005204460583627224 药 0.005204460583627224 会上 0.005204460583627224 汽车 0.002726146252825856 专用汽车 0.002726146252825856 topic 5 : 表示 0.005761316511780024 信息 0.005761316511780024 人们 0.005761316511780024 认为 0.005761316511780024 接受 0.005761316511780024 时 0.005761316511780024 人 0.005761316511780024 没有 0.005761316511780024 最高 0.005761316511780024 过热 0.0030178327579051256 余 0.0030178327579051256 亩 0.0030178327579051256 工程 0.0030178327579051256 系列 0.0030178327579051256 行业 0.0030178327579051256 必须有 0.0030178327579051256 空间 0.0030178327579051256 则 0.0030178327579051256 二次 0.0030178327579051256 专家 0.0030178327579051256 topic 6 : 实力 0.008062418550252914 已经 0.008062418550252914 不同 0.008062418550252914 资金 0.005461638327687979 大量 0.005461638327687979 比 0.005461638327687979 成为 0.005461638327687979 质量 0.005461638327687979 略有 0.005461638327687979 相当 0.005461638327687979 成功 0.005461638327687979 高度 0.005461638327687979 盘 0.005461638327687979 来看 0.005461638327687979 看到 0.005461638327687979 数据 0.005461638327687979 大 0.005461638327687979 越来越多 0.005461638327687979 楼 0.005461638327687979 投资 0.0028608583379536867 topic 7 : 以 0.009867629036307335 nbsp 0.0074608903378248215 曼 0.0074608903378248215 桢 0.0074608903378248215 7 0.005054151173681021 2 0.005054151173681021 其 0.005054151173681021 300 0.005054151173681021 就是 0.005054151173681021 他 0.005054151173681021 又 0.005054151173681021 半生 0.005054151173681021 缘 0.005054151173681021 香港 0.005054151173681021 她也 0.005054151173681021 世 0.005054151173681021 璐 0.005054151173681021 祝 0.005054151173681021 鸿 0.005054151173681021 文 0.005054151173681021 topic 8 : 在 0.016857441514730453 小 0.012695109471678734 这 0.010613943450152874 袁 0.010613943450152874 电话 0.010613943450152874 上海 0.008532778359949589 东莞 0.008532778359949589 总部 0.006451612804085016 没有 0.006451612804085016 他 0.006451612804085016 大学生 0.006451612804085016 设立 0.006451612804085016 随后 0.006451612804085016 才 0.006451612804085016 广东 0.004370447248220444 不少 0.004370447248220444 依然 0.004370447248220444 回 0.004370447248220444 该公司 0.004370447248220444 15日 0.004370447248220444 topic 9 : 旅游 0.016091953963041306 游客 0.01432360801845789 解析 0.009018567390739918 五一 0.009018567390739918 接待 0.009018567390739918 增长 0.009018567390739918 再次 0.0072502209804952145 黄金周 0.0072502209804952145 南京 0.0072502209804952145 里 0.0072502209804952145 人次 0.0072502209804952145 景点 0.0072502209804952145 也 0.005481874104589224 以上 0.005481874104589224 已经 0.005481874104589224 数据 0.005481874104589224 今年 0.005481874104589224 同期 0.005481874104589224 周边 0.005481874104589224 景区 0.005481874104589224
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值