文章目录
5. Latent Dirichlet allocation
潜在Dirichlet分配(LDA)是一种概率生成模型,可用于通过无监督学习来估计多项式观测的性质。关于文本建模,LDA是一种执行所谓的潜在语义分析(LSA)的方法。 LSA背后的直觉是在文本语料库中找到“主题”或“概念”的潜在结构,它捕获了被“单词选择”噪声所掩盖的文本的含义。LSA分析由Deerwester提出,Deerwester凭经验证明文本文档中术语的共现结构可用于恢复这种潜在的主题结构,特别是没有任何背景知识的使用。反过来,文本的潜在主题表示允许对同义词和多义词等语言现象进行建模。这允许信息检索系统以适合于在意义级别而不是通过词汇同余匹配用户需求(查询)与内容项的方式来表示文本。
LDA是与Hofmann的概率潜在语义分析(PLSA)紧密相关的模型,他们都是latent aspect method在潜在语义分析任务中的具体应用。 更具体地说,LDA通过定义完整的生成模型来扩展PLSA方法,并且Girolami和Kaban证明了具有均匀先验Dir(1)的LDA是与提供ML或MAP估计的PLSA的相同模型,不过前者提供了完整的贝叶斯估计。
5.1 Mixture modelling
LDA是混合模型,即,它使用一组分量分布的凸组合来模拟观察。 凸组合是加权和,其加权比例系数总和为1。 在LDA中,从主题z的凸组合生成单词w。 在这种混合模型中,单词w实例化术语t的概率是:
P ( w = t ) = ∑ k P ( w = t ∣ z = k ) P ( z = k ) , q q u a d ∑ P ( z = k ) = 1 ( 55 ) P(w=t)=\sum_kP(w=t|z=k)P(z=k),qquad\sum P(z=k)=1\qquad(55) P(w=t)=k∑P(w=t∣z=k)P(z=k),qquad∑P(z=k)=1(55)
在该混合分布中,每个混合分量是给定主题时,语料库中每个单词的Multinomial分布。混合比例由主题概率 p ( z = k ) p(z=k) p(z=k)给定。但是,LDA在全局主题比例的基础上更进一步,并对不同文档的主题概率进行了调整。基于此,我们可以形式化LDA推理的主要目标:
- 对于每一个主题k,给定主题时单词的多项式分布 P ( t ∣ z = k ) = ϕ ⃗ k P(t|z=k)=\vec\phi_k P(t∣z=k)=ϕk
- 对于每一篇文档m,给定文档时主题的多项式分布 P ( z ∣ d = m ) = θ ⃗ m P(z|d=m)=\vec\theta_m P(z∣d=m)=θm
被估计的参数集 Φ = { ϕ ⃗ } k = 1 K \Phi=\{\vec\phi\}_{k=1}^K Φ={ϕ}k=1K和 Θ = { θ ⃗ } m = 1 M \Theta=\{\vec\theta\}_{m=1}^M Θ={θ}m=1M是词和文档的潜在语义表示的基础。
5.2 Generative model
为了推导出推理策略,我们将LDA视为生成模型。 考虑图4(b)所示的贝叶斯LDA网络。这可以解释如下:LDA生成可观察单词w的流,并分割成文档。对于这些每一个文档,确定其主题比例
θ
⃗
\vec θ
θ,并且由此生成特定主题对应分布下的单词。也就是说,对于每个单词,根据文档特定的混合比例对单词归属的主题标识符
z
m
,
n
z_{m,n}
zm,n进行采样,然后使用相应的主题特定的单词分布
ϕ
\phi
ϕ来采样得到具体单词。主题分布
ϕ
⃗
k
\vec\phi_k
ϕk在整个过程中只被采样一次。
(译者注:意思是对于一篇文档中的不同单词,他们的
ϕ
k
\phi_k
ϕk是一样的,意味着从同一个主题分布中采样单词所属的主题。不同文档的
ϕ
\phi
ϕ不同,需要每次从一个Dirichlet分布中采样。具体见图6的伪代码,在伪代码中,
Φ
\Phi
Φ和
Θ
\Theta
Θ都只被赋值一次。)
因为LDA可以灵活地为每个观察到的单词分配不同的主题(以及每个文档的不同主题比例),所以该模型不仅是mixture model,而且实际上准确的说是admixture model。在遗传学中,admixture是指其组分本身是不同特征的混合物的混合物。 Pritchard特别为离散数据的admixture进行了贝叶斯模拟,甚至在LDA被提出用于文本之前就已经建立了群体遗传模型。完整的生成模型如图14所示。 图5.2给出了所有涉及的数量的列表
5.3 Likelihood
根据该模型,给定LDA参数的单词w实例化特定项t的概率是:
P ( w m , n = t ∣ θ ⃗ , Φ ) = ∑ k = 1 K P ( w m , n = t ∣ ϕ ⃗ k ) P ( z m , n = k ∣ θ ⃗ m ) ( 56 ) P(w_{m,n}=t|\vec\theta,\Phi)=\sum_{k=1}^KP(w_{m,n}=t|\vec\phi_k)P(z_{m,n}=k|\vec\theta_m)\qquad(56) P(wm,n=t∣θ,Φ)=k=1∑KP(wm,n=t∣ϕk)P(zm,n=k∣θm)(56)
这只是式子55中混合模型的另一种表述,它对应于贝叶斯网络的plate上的一次迭代。 从贝叶斯网络的拓扑结构中,我们可以进一步指定文档的complete-data的似然,即给定超参数的所有已知和隐藏变量的联合分布:
指定此分布通常是简单的并且可以用于其他推导的基础。因此,我们在式子57的基础上可以推导一篇文章 w ⃗ m \vec w_m wm被生成的似然,即所有文档中的单词被生成的联合概率,为了做到这一点,需要式子57中的因变量积分来求解边缘概率。
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 ( 58 ) = ∫ ∫ P ( θ ⃗ m ∣ α ⃗ ) P ( Φ ∣ β ⃗ ) ∏ n = 1 N m ∑ z m , n P ( w m , n ∣ Φ , θ ⃗ m ) d Φ d θ ⃗ m ( 59 ) P(\vec w_m|\vec\alpha,\vec\beta)\\ =\int\int P(\vec\theta_m|\vec\alpha)P(\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)d\Phi d\vec\theta_m\qquad(58)\\ =\int\int P(\vec\theta_m|\vec\alpha)P(\Phi|\vec\beta)\prod_{n=1}^{N_m}\sum_{z_{m,n}}P(w_{m,n}|\Phi,\vec\theta_m)d\Phi d\vec\theta_m\qquad(59) P(wm∣α,β)=∫∫P(θm∣α)P(Φ∣β)n=1∏Nmzm,n∑P(wm,n∣ϕzm,n)P(zm,n∣θm)dΦdθm(58)=∫∫P(θm∣α)P(Φ∣β)n=1∏Nmzm,n∑P(wm,n∣Φ,θm)dΦdθm(59)
译者注:式子59中里面的连乘是一篇文档完全数据的似然,然后整个式子是不完全数据的似然。
最后,整个语料库的似然是每个文档的似然的乘积:
P ( W ∣ α ⃗ , β ⃗ ) = ∏ m = 1 M P ( w ⃗ m ∣ α ⃗ , β ⃗ ) ( 60 ) P(W|\vec\alpha,\vec\beta)=\prod_{m=1}^MP(\vec w_m|\vec\alpha,\vec\beta) \qquad(60) P(W∣α,β)=m=1∏MP(wm∣α,β)(60)
5.4 Inference via Gibbs sampling
尽管LDA是一个相对简单的模型,但精确推断通常是难以处理的。 对此的解决方案是使用近似推理算法,例如平均场变分期望最大化,期望传播和吉布斯采样。
吉布斯采样是马尔可夫链蒙特卡罗(MCMC)模拟的一种特殊情况,并且通常产生相对简单的算法,用于在诸如LDA的高维模型中进行近似推断。 因此,我们选择这种方法并提出一个比Griffiths和Steyvers更详细的推导。 在类似LDA的模型中采用Gibbs采样的另一种方法是由于Pritchard等人实际上抢占了LDA对其混合模型的解释,并为与贝叶斯PLSA相当的模型制定了直接Gibbs采样算法。
MCMC方法可以通过马尔可夫链的稳态行为来模拟高维概率分布 p ( x ⃗ ) p(\vec x) p(x)。这意味着在达到马氏链的稳态之后,在马氏链中的每个转移生成一个样本,但是这要保证此时的马氏链已经进入稳态,即消除了初始化参数的影响(度过所谓“burn-in period”之后)。 吉布斯采样是MCMC的一个特例,其中对变量的各个维度 x i x_i xi一次一个地交替采样,以所有其他维度的值为条件,我们用 x ⃗ ¬ i \vec x_{\lnot i} x¬i表示。该算法的工作原理如下:
- 选择一个维度 i(无论是随机的还是轮转的)。
- 在分布 P ( x i ∣ x ⃗ ¬ i ) P(x_i|\vec x_{\lnot i}) P(xi∣x¬i)中采样 x i x_i xi
要构建一个Gibbs采样器,必须找到univariate condition(或full condition) P ( x i ∣ x ⃗ ¬ i ) P(x_i|\vec x_{\lnot i}) P(xi∣x¬i),这使得我们可以用下面的公式来计算:
P ( x i ∣ x ⃗ ¬ i ) = P ( x ⃗ ) P ( x ⃗ ¬ i ) = P ( x ⃗ ) ∫ P ( x ⃗ ) d x i w i t h x ⃗ = { x i , x ⃗ ¬ i } ( 61 ) P(x_i|\vec x_{\lnot i})=\frac{P(\vec x)}{P(\vec x_{\lnot i})}=\frac{P(\vec x)}{\int P(\vec x)dx_i} \qquad with\ \vec x=\{x_i,\vec x_{\lnot i}\} \qquad(61) P(xi∣x¬i)=P(x¬i)P(x)=∫P(x)dxiP(x)with x={xi,x¬i}(61)
对于含有隐变量 z ⃗ \vec z z的模型,求解给出evidence之后的后验概率 P ( z ⃗ ∣ x ⃗ ) P(\vec z|\vec x) P(z∣x)也是常见的需求,那么在式子61的基础上稍做改变:
P ( z i ∣ z ⃗ ¬ i , x ⃗ ) = P ( z ⃗ , x ⃗ ) P ( z ⃗ ¬ i , x ⃗ ) = P ( z ⃗ , x ⃗ ) ∫ P ( z ⃗ , x ⃗ ) d z i ( 62 ) P(z_i|\vec z_{\lnot i},\vec x) = \frac{P(\vec z,\vec x)}{P(\vec z_{\lnot i},\vec x)} = \frac{P(\vec z,\vec x)}{\int P(\vec z,\vec x)dz_i} \qquad(62) P(zi∣z¬i,x)=P(z¬i,x)P(z,x)=∫P(z,x)dziP(z,x)(62)
其中积分变为离散变量的总和。 使用足够数量的样本 z ⃗ r , r ∈ [ 1 , R ] \vec z_r,r \in [1, R] zr,r∈[1,R],潜在变量后验可以使用以下方法近似:
P ( z ⃗ ∣ x ⃗ ) ≃ 1 R ∑ r = 1 R δ ( z ⃗ − z ⃗ r ) ( 63 ) P(\vec z|\vec x)\simeq \frac1R\sum_{r=1}^R\delta(\vec z-\vec z_r)\qquad(63) P(z∣x)≃R1r=1∑Rδ(z−zr)(63)
其中 δ ( ⋅ ) \delta(\cdot) δ(⋅)是Kronecker delta。
5.5 The collapsed LDA Gibbs sampler
为了得到LDA的Gibbs采样器,我们应用了上面的隐藏变量方法。 我们模型中隐藏的变量是 z m , n z_{m,n} zm,n,即与语料库中的单词 w m , n w_{m,n} wm,n背后潜在的主题。我们可以不考虑参数集Θ和Φ,因为它们可以被解释为观察到的 w m , n w_{m,n} wm,n与相应的 z m , n z_{m,n} zm,n之间的关联的统计,马尔可夫链的状态变量。 整合模型推理的一些参数的策略通常被称为“collapsed”或Rao-Blackwellised方法,其通常用于Gibbs采样。
inference的目标是分布 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
)
(
64
)
P(\vec z|\vec w)=\frac{P(\vec z,\vec w)}{P(\vec w)}=\frac{\prod_{i=1}^WP(z_i,w_i)}{\prod_{i=1}^W\sum_{k=1}^KP(z_i=k,w_i)}\qquad(64)
P(z∣w)=P(w)P(z,w)=∏i=1W∑k=1KP(zi=k,wi)∏i=1WP(zi,wi)(64)
上式忽略了超参数。该分布涵盖了大量离散随机变量空间,评估的难点部分是其分母,它代表 K W K^W KW项的总和。此时,Gibbs采样程序开始发挥作用。在我们的设置中,我们期望Gibbs采样器在Markov链上进行游走,使用完全信息条件分布 P ( z i ∣ z ⃗ ¬ i , w ⃗ ) P(z_i|\vec z_{ \lnot i}, \vec w) P(zi∣z¬i,w)来模拟 P ( z ⃗ ∣ w ⃗ ) P(\vec z|\vec w) P(z∣w)。我们可以通过Eq62来获得完全信息条件概率,但是这需要我们给出完全信息的联合分布。
Joint Distribution
在LDA中,联合分布可以被因子(分解)化:
P ( w ⃗ , z ⃗ ∣ α ⃗ , β ⃗ ) = P ( w ⃗ ∣ z ⃗ , β ⃗ ) P ( z ⃗ ∣ α ⃗ ) ( 65 ) P(\vec w,\vec z|\vec\alpha, \vec\beta)=P(\vec w|\vec z, \vec\beta)P(\vec z|\vec\alpha)\qquad (65) P(w,z∣α,β)=P(w∣z,β)P(z∣α)(65)
由于第一项独立于 α ⃗ \vec\alpha α(条件独立 w ⃗ ⊥ α ⃗ ∣ z ⃗ \vec w\perp \vec\alpha|\vec z w⊥α∣z),第二项独立于 β ⃗ \vec\beta β。现在可以单独处理联合分布的两个部分。 第一项, P ( w ⃗ ∣ z ⃗ , β ⃗ ) P(\vec w|\vec z, \vec\beta) P(w∣z,β),可以从给定相关主题的观察到的字数上的多项式推导出来。
P ( w ⃗ ∣ z ⃗ , Φ ) = ∏ i = 1 W P ( w i ∣ z i ) = ∏ i = 1 W ϕ z i , w i ( 66 ) P(\vec w|\vec z,\Phi)=\prod_{i=1}^WP(w_i|z_i)=\prod_{i=1}^W\phi_{z_i,w_i} \qquad(66) P(w∣z,Φ)=i=1∏WP(wi∣zi)=i=1∏Wϕzi,wi(66)
注意这里,因为生成过程是独立的多项式试验,即具有可交换性,其中参数以主题索引 z i z_i zi为条件。 我们现在可以针对主题进行连乘。
P ( w ⃗ ∣ z ⃗ , Φ ) = ∏ k = 1 K ∏ z i = k P ( w i = t ∣ z i = k ) = ∏ k = 1 K ∏ t = 1 V ϕ k , t n k ( t ) ( 67 ) P(\vec w|\vec z,\Phi)=\prod_{k=1}^K \prod _{z_i=k}P(w_i=t|z_i=k)=\prod_{k=1}^K\prod_{t=1}^V\phi_{k,t}^{n_k^{(t)}} \qquad(67) P(w∣z,Φ)=k=1∏Kzi=k∏P(wi=t∣zi=k)=k=1∏Kt=1∏Vϕk,tnk(t)(67)
(译者注: n k ( t ) 指的是当前文档中的词 t 被观测到属于主题 k 的计数。 n_k^{(t)}指的是当前文档中的词t被观测到属于主题k的计数。 nk(t)指的是当前文档中的词t被观测到属于主题k的计数。上面这个公式是即使在对于句子中每一个单词和主题的可能的对应情况,计算连乘符号内的值,然后把它们乘在一起,实际就是一个K×V的矩阵的似然,但是这个矩阵中可能大部分的词和主题没有对应的共现,那么 n k ( t ) n_k^{(t)} nk(t)就是0。)
但是注意式子66和式子67中计算的东西并不是式子65中的第一项,本来给定的条件是 β ⃗ \vec\beta β,我们现给的条件却变成了 Φ \Phi Φ,为了回到我们的目标,我们给定 β ⃗ \vec\beta β,然后对 Φ \Phi Φ进行积分来求解边缘概率,注意这个过程中就涉及到了Dirichlet采样。
P ( w ⃗ ∣ z ⃗ , β ⃗ ) = ∫ P ( w ⃗ ∣ z ⃗ , Φ ) P ( Φ ∣ β ⃗ ) d Φ ( 68 ) = ∫ [ ∏ z = 1 K ∏ t = 1 V ϕ z , t n k ( t ) ] ⋅ [ ∏ z = 1 K D i r ( ϕ ⃗ z ∣ β ⃗ ) ] d Φ = ∫ [ ∏ z = 1 K ∏ t = 1 V ϕ z , t n k ( t ) ] ⋅ [ ∏ z = 1 K 1 Δ ( β ⃗ ) ∏ t = 1 V ϕ z , t β t − 1 ] d Φ = ∏ z = 1 K [ 1 Δ ( β ⃗ ) ∫ ϕ z , t n k ( t ) + β t − 1 d ϕ ⃗ z ] ( 69 ) = ∏ z = 1 K Δ ( n ⃗ z + β ⃗ ) Δ ( β ⃗ ) ( 70 ) P(\vec w|\vec z,\vec\beta)=\int P(\vec w|\vec z,\Phi)P(\Phi|\vec\beta)d\Phi\qquad(68)\\ =\int\big[\prod_{z=1}^K\prod_{t=1}^V\phi_{z,t}^{n_k^{(t)}}\big]\cdot \big[\prod_{z=1}^KDir(\vec\phi_z|\vec\beta)\big]d\Phi\\ =\int\big[\prod_{z=1}^K\prod_{t=1}^V\phi_{z,t}^{n_k^{(t)}}\big]\cdot \big[\prod_{z=1}^K\frac1{\Delta(\vec\beta)}\prod_{t=1}^V\phi_{z,t}^{\beta_t-1}\big]d\Phi\\ =\prod_{z=1}^K\bigg[\frac1{\Delta(\vec\beta)}\int \phi_{z,t}^{n_k^{(t)}+\beta_t-1}d\vec\phi_z\bigg]\qquad(69)\\ =\prod_{z=1}^K\frac{\Delta(\vec n_z+\vec\beta)}{\Delta(\vec\beta)}\qquad(70) P(w∣z,β)=∫P(w∣z,Φ)P(Φ∣β)dΦ(68)=∫[z=1∏Kt=1∏Vϕz,tnk(t)]⋅[z=1∏KDir(ϕz∣β)]dΦ=∫[z=1∏Kt=1∏Vϕz,tnk(t)]⋅[z=1∏KΔ(β)1t=1∏Vϕz,tβt−1]dΦ=z=1∏K[Δ(β)1∫ϕz,tnk(t)+βt−1dϕz](69)=z=1∏KΔ(β)Δ(nz+β)(70)
(译者注:为了推导的更明确,在式子68与式子69之间加入中间步骤,即将68中的两个因子各自展开成各自的多项式分布和狄利克雷分布的形式。注意在积分过程中,积分变量发生改变,由矩阵 Φ \Phi Φ转变为 ϕ ⃗ z \vec\phi_z ϕz,然后把z以连乘的形式提到外面。这么做实际上是对于每一个 ϕ z \phi_z ϕz向量来说都是一个独立的dirichlet-Multinomial共轭。然后式子70利用狄利克雷分布的归一化因子将积分符号写进去(思考:怎么计算这个归一化因子))。
由于可交换性,我们把对于主题k的连乘提到积分外面,此时语料看做来自于k的“独立的”主题生成的文档。其中 n ⃗ z = { n z ( t ) } t = 1 V \vec n_z=\{n_z^{(t)}\}_{t=1}^V nz={nz(t)}t=1V。
类似于 P ( w ⃗ ∣ z ⃗ , β ⃗ ) P(\vec w|\vec z,\vec\beta) P(w∣z,β),可以如下推导主题分布 P ( z ⃗ ∣ α ⃗ ) P(\vec z|\vec\alpha) 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 ) ( 71 ) P(\vec z|\Phi) = \prod_{i=1}^WP(z_i|d_i)=\prod_{m=1}^M\prod_{k=1}^KP(z_i=k|d_i=m)=\prod_{m=1}^M\prod_{k=1}^K\theta_{m,k}^{n_m^{(k)}} \qquad(71) P(z∣Φ)=i=1∏WP(zi∣di)=m=1∏Mk=1∏KP(zi=k∣di=m)=m=1∏Mk=1∏Kθm,knm(k)(71)
同样的,此时我们的条件是中间变量 Φ \Phi Φ而不是先验变量 α ⃗ \vec\alpha α,类似与前面的对 Φ \Phi Φ进行积分。
P ( z ⃗ ∣ α ) = ∫ P ( z ⃗ ∣ Φ ) P ( Φ ∣ α ⃗ ) d Φ ( 72 ) = ∏ m = 1 M [ 1 Δ ( α ⃗ ) ∫ θ m , k n m ( k ) + α k − 1 d ϕ ⃗ z ] ( 73 ) = ∏ m = 1 M Δ ( n ⃗ m + α ⃗ ) Δ ( α ⃗ ) ( 74 ) P(\vec z|\alpha)=\int P(\vec z|\Phi)P(\Phi|\vec\alpha)d\Phi\qquad(72)\\ =\prod_{m=1}^M\bigg[\frac1{\Delta(\vec\alpha)}\int \theta_{m,k}^{n_m^{(k)}+\alpha_k-1}d\vec\phi_z\bigg]\qquad(73)\\ =\prod_{m=1}^M\frac{\Delta(\vec n_m+\vec\alpha)}{\Delta(\vec\alpha)}\qquad(74) P(z∣α)=∫P(z∣Φ)P(Φ∣α)dΦ(72)=m=1∏M[Δ(α)1∫θm,knm(k)+αk−1dϕz](73)=m=1∏MΔ(α)Δ(nm+α)(74)
其中, n ⃗ m = { n m ( k ) } k = 1 K \vec n_m=\{n_m^{(k)}\}_{k=1}^K nm={nm(k)}k=1K。此时,式子65的联合分布可以写作:
P ( w ⃗ , z ⃗ ∣ α ⃗ , β ⃗ ) = ∏ z = 1 K Δ ( n ⃗ z + β ⃗ ) Δ ( β ⃗ ) ∏ m = 1 M Δ ( n ⃗ m + α ⃗ ) Δ ( α ⃗ ) ( 75 ) P(\vec w,\vec z|\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)}\qquad (75) P(w,z∣α,β)=z=1∏KΔ(β)Δ(nz+β)m=1∏MΔ(α)Δ(nm+α)(75)
Full conditional
译者注:我们从头过一下思路。首先我们在干嘛?我们的目标是用生成式的主题模型对文本建模,此时我们引入了主题这个隐变量。这意味着什么呢,为了消除隐变量,我们需要对隐变量求和来计算边缘概率(式子56),然后我们在总的数据似然中就引入了求和式(式子59),乘积在外这就导致了计算上的问题。那我们建模要求的参数是啥呢,就是 Φ \Phi Φ和 Θ \Theta Θ啊,我们求似然的目的也是为了使用MLE来估计这两个模型参数。似然不好算,而且我们现在用的是bayes思想,根本也不能只求似然,我们要估计似然的后验分布。那么我们使用的方法是MCMC,我们通过采样估计隐变量的分布 P ( z ⃗ ∣ w ⃗ ) P(\vec z|\vec w) P(z∣w)(式子64),知道因变量的分布后就很容易求模型参数了。为了求式子64,很明显需要知道给定先验参数的 α ⃗ , β ⃗ \vec\alpha,\vec\beta α,β的完全信息联合分布,因此就是上面这一节的推导,直到式子75。然后式子75还是有一些问题,就是里面涉及到dirichlet分布的归一化因子的计算,里面有积分,计算量还是大,怎么办呢。实际上我们知道,我们这里使用的是MCMC的一个特例,即Gibbs Sampling,要抽样的分布不是 P ( z ⃗ ∣ w ⃗ ) P(\vec z|\vec w) P(z∣w),而是 P ( z i ∣ z ⃗ ¬ i , w ⃗ ) P(z_i|\vec z_{\lnot i},\vec w) P(zi∣z¬i,w),下面我们计算 P ( z i ∣ z ⃗ ¬ i , w ⃗ ) P(z_i|\vec z_{\lnot i},\vec w) P(zi∣z¬i,w)。
从联合分布,我们可以导出具有索引的单词 w m , n w_{m,n} wm,n的完整条件分布,即,Gibbs采样器从中获取隐藏变量的更新方程。注意我们下面计算的这个条件概率是指,在语料库第m篇文章第n个单词是w但是我们不知道该单词的主题,然后计算他的主题是k的条件概率。
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 ) ( 76 ) ∝ Δ ( n ⃗ z + β ⃗ ) Δ ( n ⃗ z , ¬ i + β ⃗ ) ⋅ Δ ( n ⃗ m + α ⃗ ) Δ ( n ⃗ m , ¬ i + α ⃗ ) ( 77 ) ∝ Γ ( 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 ) ( 78 ) ∝ n k , ¬ i ( t ) + β t ∑ t = 1 V n k , ¬ i ( t ) + β t ⋅ n m , ¬ i ( k ) + α k [ ∑ k = 1 K n m , ¬ i ( k ) + α k ] ( 79 ) P(z_i=k|\vec z_{\lnot i},\vec w)=\frac{P(\vec w,\vec z)}{P(\vec w,\vec z_{\lnot i})}=\frac{P(\vec w|\vec z)}{P(\vec w_{\lnot i}|\vec z_{\lnot i})P(w_i)}\cdot\frac{P(\vec z)}{P(\vec z_{\lnot i})}\qquad(76)\\ \propto \frac{\Delta(\vec n_z+\vec\beta)}{\Delta(\vec n_{z,\lnot i}+\vec\beta)}\cdot \frac{\Delta(\vec n_m+\vec\alpha)}{\Delta(\vec n_{m,\lnot i}+\vec\alpha)}\qquad(77)\\ \propto\frac{\Gamma(n_k^{(t)}+\beta_t)\Gamma(\sum_{t=1}^Vn_{k,\lnot i}^{(t)}+\beta_t)}{\Gamma(n_{k,\lnot i}^{(t)}+\beta_t)\Gamma(\sum_{t=1}^Vn_k^{(t)}+\beta_t)}\frac{\Gamma(n_m^{(k)}+\alpha_k)\Gamma(\sum_{k=1}^Kn_{m,\lnot i}^{(k)}+\alpha_k)}{\Gamma(n_{m,\lnot i}^{(k)}+\alpha_k)\Gamma(\sum_{k=1}^Kn_m^{(k)}+\alpha_k)}\qquad(78)\\ \propto\frac{n_{k,\lnot i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\lnot i}^{(t)}+\beta_t}\cdot\frac{n_{m,\lnot i}^{(k)}+\alpha_k}{\big[\sum_{k=1}^Kn_{m,\lnot i}^{(k)}+\alpha_k\big]}\qquad(79) P(zi=k∣z¬i,w)=P(w,z¬i)P(w,z)=P(w¬i∣z¬i)P(wi)P(w∣z)⋅P(z¬i)P(z)(76)∝Δ(nz,¬i+β)Δ(nz+β)⋅Δ(nm,¬i+α)Δ(nm+α)(77)∝Γ(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)(78)∝∑t=1Vnk,¬i(t)+βtnk,¬i(t)+βt⋅[∑k=1Knm,¬i(k)+αk]nm,¬i(k)+αk(79)
译者注:这一部分是截止到这里,这篇文章中最复杂的地方,如果看不懂可以参考扩展阅读中的第一篇文章,这篇参考文章的notation与这篇文章保持一致。
Multinomial parameters
最终,我们是要获取Markov Chain到达稳态时,对应的多项式分布的参数集 Φ \Phi Φ和 Θ \Theta Θ的。(W是我们给的观测到的语料,Z矩阵是markov chain的state,转移矩阵通过两个多项式参数矩阵对应的计数矩阵N来估计。)马尔科夫链可以被表示为 M = { w ⃗ , z ⃗ } M=\{\vec w,\vec z\} M={w,z}。根据他们对Dirichlet先验的多项式分布的定义,根据计数矩阵,将Bayes规则应用于Eq67和Eq71中的估计后验概率:
P
(
θ
⃗
m
∣
M
,
α
⃗
)
=
1
Z
θ
m
∏
n
=
1
N
m
P
(
z
m
,
n
∣
θ
⃗
m
)
P
(
θ
⃗
m
∣
α
⃗
)
=
D
i
r
(
θ
⃗
m
∣
n
⃗
m
+
α
⃗
)
(
80
)
P(\vec\theta_m|M, \vec\alpha) = \frac1{Z_{\theta_m}}\prod_{n=1}^{N_m}P(z_{m,n}|\vec\theta_m)P(\vec\theta_m|\vec\alpha)=Dir(\vec\theta_m|\vec n_m+\vec\alpha)\qquad(80)
P(θm∣M,α)=Zθm1n=1∏NmP(zm,n∣θm)P(θm∣α)=Dir(θm∣nm+α)(80)
P
(
ϕ
⃗
k
∣
M
,
β
⃗
)
=
1
Z
ϕ
k
∏
i
:
z
i
=
k
P
(
w
i
∣
ϕ
⃗
k
)
P
(
ϕ
⃗
k
∣
β
⃗
)
=
D
i
r
(
ϕ
⃗
k
∣
n
⃗
k
+
β
⃗
)
(
81
)
P(\vec\phi_k|M, \vec\beta) = \frac1{Z_{\phi_k}}\prod_{i:z_i=k}P(w_i|\vec\phi_k)P(\vec\phi_k|\vec\beta)=Dir(\vec\phi_k|\vec n_k+\vec\beta)\qquad(81)
P(ϕk∣M,β)=Zϕk1i:zi=k∏P(wi∣ϕk)P(ϕk∣β)=Dir(ϕk∣nk+β)(81)
n k n_k nk和 n m n_m nm分别是计数矩阵中对应的行向量,分别表式文档m中的主题计数和主题k对应的词计数。由于共轭结构的存在,后验分布仍然是狄利克雷分布,参数的贝叶斯估计是分布的期望。
ϕ
k
,
t
=
n
k
(
t
)
+
β
t
∑
t
=
1
V
n
k
(
t
)
+
β
t
(
82
)
\phi_{k,t}=\frac{n_k^{(t)}+\beta_t}{\sum_{t=1}^Vn_k^{(t)}+\beta_t}\qquad(82)
ϕk,t=∑t=1Vnk(t)+βtnk(t)+βt(82)
θ
m
,
k
=
n
m
(
k
)
+
α
k
∑
k
=
1
K
n
m
(
k
)
+
α
k
(
83
)
\theta_{m,k}=\frac{n_m^{(k)}+\alpha_k}{\sum_{k=1}^Kn_m^{(k)}+\alpha_k}\qquad(83)
θm,k=∑k=1Knm(k)+αknm(k)+αk(83)
Gibbs sampling algorithm
式子79,82,83是Fig8伪代码想要运行的全部组件。该代码编写起来需要五个主要的数据结构:两个计数矩阵分别统计doc-topic的计数和topic-word的计数,两个计数向量,分别是前面两个计数矩阵每行的和,还有一个主题标记矩阵,表示语料库中每个词被标记的主题。Gibbs采样算法在三个周期内运行:初始化,老化和采样。 然而,确定所需的老化长度是MCMC方法的缺点之一。 有几个标准可以检查马尔可夫链是否已收敛~~,我们手动检查参数如何与不同语料库聚类语义相关的单词和文档,并将这些值用作可比设置的估计值~~。
为了从Gibbs采样器获得所得的模型参数,存在几种方法。 一种是仅使用一次读出,另一种是平均多个样本,并且通常希望在后续读出之间留下L次迭代的间隔以获得马尔可夫链的去相关状态。此间隔通常称为“thinning
interval”或sampling lag。
6. LDA hyperparameters
在第5节中,假设Dirichlet参数的值是已知的。 然而,这些超参数显着影响LDA模型的行为,例如从Eq70和Eq74可以看出,以及在图1中通过观察K=2时Dirichlet密度的不同形状。 通常,在LDA中使用对称Dirichlet先验,这意味着模型的先验假设是所有主题具有分配给文档的相同机会,并且一个主题中所有单词(频繁和不频繁的单词)具有相同的分配机会 一个主题。 本节概述了超参数的含义,并提出了一种从数据中估计其标量值的方法。
6.1 Interpretations
Dirichlet超参数通常对多项参数具有平滑效果。通过降低α和β的值来减少LDA中的这种平滑效应将导致更加确定的主题分配,因此Θ和Φ将变得更稀疏。β控制下的Φ的稀疏性,意义是模型更倾向于对于每个主题分配较少的词,这可能同时会影响模型为数据分配的固有主题的数目。这也关系到单词需要达到怎样程度的“相似”(即,他们需要在不同的上下文中共现)相关,才能被分配到同一主题。也就是说,对于稀疏主题,如果K设置得更高,则模型将更适合数据,因为模型不愿意将多个主题分配给给定术语。这就是为什么在学习K的模型中,例如非参数贝叶斯方法,K强烈依赖于超参数。 Θ的稀疏度由α控制,意味着模型更喜欢用较少的主题来表征文档。
由于超参数,主题编号和模型行为之间的关系是相互关联的,它可以用于合成具有特定属性的模型,以及用于分析数据中固有的特征。 启发式地,已经证实了α= 50 / K和β= 0.01这组超参数的效果不错。 另一方面,考虑到主题K的数量,从数据中学习α和β可以用于增加模型质量。此外,超参数估计可以揭示建模的数据集的特定属性。 α的估计是文档在其(潜在)语义方面区别程度的指标,而β的估计表明共同出现的单词的规模大小。 然而,估计的超参数的解释并不总是简单的,并且尚未彻底研究文档内容的特定原型的影响。
6.2 Sampling
6.3 Estimation
7. Analysing topic models
诸如LDA之类的主题模型估计潜在主题和观察到的实体(即单词,文档)之间的软关联,但是在模型扩展中也是作者等。这些关联是与信息处理和语言建模相关的许多操作的基础。 在本节中,我们概述了使用给定语料库的主题结构的方法,以便(1)估计看不见的文档的主题结构(查询),(2)估计由估计的主题隐含的聚类的质量和( 3)根据估计的关联来推断新的关联,例如,单词之间或文档或其作者之间的相似性。 为此,使用LDA的示例性情况,其提供关于文档中存在的主题的信息 - 参数集Θ-,以及与这些主题相关联的术语 - 参数集Φ。
7.1 Querying
查询LDA模型是检索与查询文档相关的文档的操作。 在主题模型中,有两种方法可以对结果文档进行排序:(1)通过相似性分析和(2)通过预测可能性。 两者都取决于查询文档或文档的主题的估计。
Query sampling
一个query是一个单词序列 w ⃗ ~ \tilde{\vec w} w~,我们可以通过给定词序列和训练好的Markov Chain时,主题向量的后验概率 P ( z ⃗ ~ ∣ w ⃗ ~ , M ) P(\tilde{\vec z}|\tilde{\vec w},M) P(z~∣w~,M)来得到match。为了找到以前看不见的文档所需的计数,我们可以按照[Hofm99]或[SSR + 04]的方法专门在新文档上运行inference算法。 对此的推断对应于Eq79,区别在于Gibbs采样器的状态通过查询文档的观察而扩展。我们首先通过随机地将主题分配给单词来初始化算法,然后通过Gibbs采样更新执行多个循环(仅对于 m ~ \tilde m m~的单词i)。
P ( z ~ i = k ∣ w ~ i = t , z ⃗ ~ , w ⃗ ~ ; M ) = n k ( t ) + n ~ k , ¬ i ( t ) + β t ∑ t = 1 V n k ( t ) + n ~ k , ¬ i ( t ) + β t ⋅ n m ~ , ¬ i ( k ) + α k ∑ k = 1 K n m ~ , ¬ i ( k ) + α k ( 84 ) P(\tilde z_i=k|\tilde w_i=t,\tilde{\vec z},\tilde{\vec w};M)=\\ \frac{n_{k}^{(t)}+\tilde n_{k,\lnot i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k}^{(t)}+\tilde n_{k,\lnot i}^{(t)}+\beta_t}\cdot\frac{n_{\tilde m,\lnot i}^{(k)}+\alpha_k}{\sum_{k=1}^Kn_{\tilde m,\lnot i}^{(k)}+\alpha_k}\qquad(84) P(z~i=k∣w~i=t,z~,w~;M)=∑t=1Vnk(t)+n~k,¬i(t)+βtnk(t)+n~k,¬i(t)+βt⋅∑k=1Knm~,¬i(k)+αknm~,¬i(k)+αk(84)
其中新变量 n ~ k ( t ) \tilde n_{k}^{(t)} n~k(t)计算未见文档中术语t和主题k的观察值。 这个等式给出了吉布斯后验采样工作的一个精彩的例子:与 n ~ k ( t ) \tilde n_{k}^{(t)} n~k(t)和 n m ~ ( k ) n_{\tilde m}^{(k)} nm~(k)的贡献相比,估计高度的Word-Topic关联矩阵 n k ( t ) n_{k}^{(t)} nk(t)将主导多项式,前者被随机选择,因此不太可能聚集。 因此,在从 n ~ k ( t ) \tilde n_{k}^{(t)} n~k(t)的分布和更新中重复采样时,Topic-Wor关联的质量被传播到Doc-Topic中。 注意Dirichlet超参数的平滑影响。
稍微改动等式83,可以得到未见文档的主体向量:
θ m ~ , k = n m ~ ( k ) + α k ∑ k = 1 K n ~ m ( k ) + α k ( 83 ) \theta_{\tilde m,k}=\frac{n_{\tilde m^{(k)}}+\alpha_k}{\sum_{k=1}^K\tilde n_m^{(k)}+\alpha_k}\qquad(83) θm~,k=∑k=1Kn~m(k)+αknm~(k)+αk(83)
此查询过程适用于完整的未知文档集合,这是通过让m范围覆盖未知文档来完成的。 但是,与马尔可夫状态M中的令牌相比,查询数据的大小应该较小,因为根据Eq84,查询会扭曲有效的主题分布:由于主题关联计数nk +ñk变化,主题分布对于查询失真。
Similarity ranking
在相似性方法中,估计查询文档的主题分布,并且适当的相似性度量允许对结果排序。 由于现在主题的分布与Θ的行向量的形式相同,我们可以将查询与语料库的文档进行比较。 一个简单的度量是Kullback-Leibler散度,它定义在两个离散随机变量X和Y之间,如下:
D K L ( X ∣ ∣ Y ) = ∑ n = 1 N P ( X = n ) l o g 2 P ( X = n ) P ( Y = n ) ( 86 ) D_{KL}(X||Y)=\sum_{n=1}^NP(X=n)log_2\frac{P(X=n)}{P(Y=n)}\qquad(86) DKL(X∣∣Y)=n=1∑NP(X=n)log2P(Y=n)P(X=n)(86)
KL散度可以看做是交叉熵 H ( X ∣ ∣ Y ) = − ∑ n = 1 N P ( X = n ) l o g 2 P ( Y = n ) H(X||Y)=-\sum_{n=1}^NP(X=n)log_2P(Y=n) H(X∣∣Y)=−∑n=1NP(X=n)log2P(Y=n)和熵 H ( X ) = − ∑ n = 1 N P ( X = n ) l o g 2 P ( X = n ) H(X)=-\sum_{n=1}^NP(X=n)log_2P(X=n) H(X)=−∑n=1NP(X=n)log2P(X=n)的差值。即,知道Y后对于X增加的信息。然而,KL分歧不是适当的距离测量,因为它不是对称的。 因此,可以使用平滑,对称的扩展,Jensen-Shannon距离:
D J S = 1 2 [ D K L ( X ∣ ∣ M ) + D K L ( Y ∣ ∣ M ) ] ( 87 ) D_{JS}=\frac12[D_{KL}(X||M)+D_{KL}(Y||M)]\qquad(87) DJS=21[DKL(X∣∣M)+DKL(Y∣∣M)](87)
其中M是平均变量: M = 1 2 ( X + Y ) M=\frac12(X+Y) M=21(X+Y)
Predictive likelihood ranking
第二种排序方法是计算可以由查询生成语料库文档的预测可能性:
P ( w ⃗ m ∣ w ⃗ ~ m ~ ) = ∑ k = 1 K P ( w ⃗ m ∣ z = k ) P ( z = k ∣ w ⃗ ~ m ~ ) ( 88 ) = ∑ k = 1 K P ( z = k ∣ w ⃗ m ) P ( w ⃗ m ) P ( z = k ) P ( z = k ∣ w ⃗ ~ m ~ ) ( 89 ) = ∑ k = 1 K θ m , k n m n k θ m ~ , k ( 90 ) P(\vec w_m|\tilde{\vec w}_{\tilde m})=\sum_{k=1}^KP(\vec w_m|z=k)P(z=k|\tilde{\vec w}_{\tilde m})\qquad(88)\\ =\sum_{k=1}^K\frac{P(z=k|\vec w_m)P(\vec w_m)}{P(z=k)}P(z=k|\tilde{\vec w}_{\tilde m})\qquad(89)\\ =\sum_{k=1}^K\theta_{m,k}\frac{n_m}{n_k}\theta_{\tilde m,k}\qquad(90) P(wm∣w~m~)=k=1∑KP(wm∣z=k)P(z=k∣w~m~)(88)=k=1∑KP(z=k)P(z=k∣wm)P(wm)P(z=k∣w~m~)(89)=k=1∑Kθm,knknmθm~,k(90)
其中 n m n_m nm是文档m的长度, n k n_k nk是与主题k的单词关联的语料库总数,两者都是从Gibbs采样器中获知的。 直观地说,Eq90是主题向量之间的加权标量产品,它惩罚短文档和强主题。
Retrieval
因为查询结果提供了对文档集的排名,所以可以使用主题模型的查询来进行信息检索。但这需要一些额外的考虑因素。就其自身而言,主题模型在主题空间中紧密地映射语义相似的不同文字表示(同义词)项目并表示文字的多重语义(多义词)的能力,其代价是结果在字面意义上不太精确(同时提供)更大的回忆)。根据查询结果预期的种类相关性,潜在主题查询结果与其他检索方法的组合可能是有用的。基于主题的查询的另一个方面是查询构造的不同策略是有用的。显然,用于查询构造的布尔方法是不够的,而是可以使用与向量空间模型相当的策略。更具体地说,对于有效的检索,可以以越来越精确地缩小被认为相关的主题分布的方式构造查询,这引发了查询细化和扩展以及交互式搜索过程的问题。
7.2 Clustering
通常,对文档或术语进行聚类非常重要。 如上所述,LDA模型已经通过将文档与主题相关联来提供文档和语料库术语的软聚类。 要使用此聚类信息,需要评估相似性,在最后一节中,使用Kullback Leibler分歧计算查询文档和语料库文档之间的相似性。 该度量可以应用于主题上的单词分布以及主题在文档上的分布,其根据其潜在的语义结构揭示语料库的内部相似性模式。
除了确定相似性之外,聚类质量的评估对于像LDA这样的主题模型特别感兴趣。 原则上,可以通过对估计的单词和文档相似性的主观判断来进行评估。 然而,更客观的评估是将估计模型与给定语料库的先验分类作为参考进行比较。 在比较聚类的不同方法中,我们将展示Variation of Information distance(VI-距离),它能够计算不同类别的软或硬聚类之间的距离,因此提供了最大的应用灵活性。
类似的聚类倾向于具有高概率p(·| d m)的共现对(c = j,z = k)。 相反,相异性对应于所有文档的类分布的独立性,即 p ( c = j , z = k ) = p ( c = j ) p ( z = k ) p(c=j,z=k)= p(c=j)p(z=k) p(c=j,z=k)=p(c=j)p(z=k)。 为了找到相似程度,我们现在可以在实际分布和假设独立的分布之间应用KL散度。 在信息论中,这对应于随机变量C和Z的互信息,它们描述了在两个聚类中观察具有文档的类的事件。
I ( C , Z ) = D K L { P ( c , z ) ∣ ∣ P ( c ) P ( z ) } = ∑ j = 1 J ∑ k = 1 K p ( c = j , z = k ) l o g 2 p ( c = j , z = k ) p ( c = j ) P ( z = k ) ( 91 ) I(C,Z) = D_{KL}\{P(c,z)||P(c)P(z)\}\\ =\sum_{j=1}^J\sum_{k=1}^Kp(c=j,z=k)log_2\frac{p(c=j,z=k)}{p(c=j)P(z=k)}\qquad(91) I(C,Z)=DKL{P(c,z)∣∣P(c)P(z)}=j=1∑Jk=1∑Kp(c=j,z=k)log2p(c=j)P(z=k)p(c=j,z=k)(91)
8. Conclusion
我们已经介绍了概率估计的基本概念,例如ML,MAP和贝叶斯参数估计方法,并且已经显示了它们在离散数据领域中的行为,尤其是文本。 我们进一步介绍了共轭分布的原理以及贝叶斯网络的图形语言。 通过这些预备,我们提出了潜在Dirichlet分配模型(LDA)和通过Gibbs抽样的近似推断的完全推导,并讨论了超参数估计,这在文献中大多被忽略。 潜在Dirichlet分配模型可以被认为是文本概率建模的一般框架的基本构建块,并且可以用于开发更复杂和面向应用的模型,例如分层模型,结合内容和关系数据的模型(例如 社交网络)或包含在高斯域中建模的多媒体特征的模型。