简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)

引言

LDA(Latent Dirichlet Allocation)称为潜在狄利克雷分布,是文本语义分析中比较重要的一个模型,同时,LDA模型中使用到了贝叶斯思维的一些知识,这些知识是统计机器学习的基础。为了能够对LDA原理有清晰的认识,也为了能够对贝叶斯思维有全面的了解,在这里对基本知识以及LDA的相关知识进行阐述,本系列包括两个部分:

  • Latent Dirichlet Allocation——理论篇
  • Latent Dirichlet Allocation——实践篇

在理论篇中将重点阐述贝叶斯相关的知识和LDA的基本思想,基本的知识点包括Gamma函数和分布,Beta函数和分布,Dirichlet函数和分布,贝叶斯定理,Gibbs采样等等。在接下来的文章,我们通过以下几个方面具体介绍LDA的核心思想:

  • 基础知识:二项分布,多项式分布,Gamma分布,Beta分布,Dirichlet分布,贝叶斯定理,共轭分布
  • 文本建模:Unigram Model,概率主题模型,Gibbs采样以及贝叶斯推理

一、基础知识

在贝叶斯思维以及LDA中需要使用到一些概率的知识,下面我们罗列下会使用到的一些基本知识。

1、二项分布

二项分布是概率分布里面最简单也是最基本的分布,要理解二项分布,我们首先得定义 n 次独立重复试验的概念:n次独立重复试验是指在相同的条件下,重复做的 n 次试验称为n次独立重复试验。

假设对于一个事件 A ,在一次试验中,其发生的概率为p,那么其不发生的概率为 1p ,那么在 n 次独立重复试验中事件A恰好发生 k 次的概率为:

Pn(k)=Cknpk(1p)nk

在这里,参数 k 是一个随机变量,便称这样的随机变量k服从二项分布,记为: kB(n,p)

可以验证下式成立:

k=0nPn(k)=k=0nCknpk(1p)nk=1

2、多项式分布

多项式分布是二项分布的一个推广形式,在二项分布中,事件 A 的取值可能只能是发生或者是没有发生,而在多项式分布中事件A的取值可能有 k 种,取每一种可能的概率为pi,其中 pi 满足:

i=1kpi=1

多项式分布的概率形式为:

P(x1,x2,,xk;n;p1,p2,,pk)=n!x1!x2!xk!px11px22pxkk

3、Gamma分布

Gamma函数的具体形式如下:

Γ(x)=0euux1du

其中, x>0 。Gamma函数的图像如下所示:

这里写图片描述

Gamma函数 Γ(x) 具有如下的一些性质:

  • 性质1:

Γ(x+1)=xΓ(x)

这个性质可以通过分部积分的方法得到证明,证明如下:

Γ(x+1)=0euuxdu=0uxdeu=uxeu00euxux1du=x0euux1du=xΓ(x)

  • 性质2:

Γ(1)=1,Γ(12)=π

  • 性质3:

Γ(n+1)=n!

4、Beta分布

Beta函数的具体形式如下:

Beta(a,b)=10xa1(1x)b1dx

其中, a>0,b>0 。Beta函数有如下的一个性质:

Beta(a,b)=Γ(a)Γ(b)Γ(a+b)

上述的关于Beta函数的性质将Beta函数与Gamma函数联系起来,对于该性质的证明如下所示:

Γ(a)Γ(b)=0euua1du0evvb1dv=00e(u+v)ua1vb1dudv

此时,令 z=u+v t=uu+v ,上式可转化为:

Γ(a)Γ(b)=010ez(zt)a1[z(1t)]b1zdzdt=0ezza1zdz10ta1(1t)b1dt=Γ(a+b)10ta1(1t)b1dt=Γ(a+b)Beta(a,b)

由此可知: Beta(a,b)=Γ(a)Γ(b)Γ(a+b)

5、Dirichlet分布

Dirichlet函数的基本形式为:

D(a1,a2,,ak)=xa111xak1kdx1dxk

其中, x1xk0 ki=1xi=1 。而Dirichlet分布的概率密度函数为:

p(x1,,xk)=1D(a1,,ak)xa11xakk

其中, 0x1xn1 ,且 ki=1xk=1 D(a1,,ak) 的形式为:

D(a1,,ak)=Γ(a1)Γ(ak)Γ(a1++ak)

注意到Beta分布是特殊的Dirichlet分布,即 k=2 时的Dirichlet分布。

6、贝叶斯定理

贝叶斯定理中牵涉到概率的一些基本知识,包括:

  • 条件概率
  • 联合概率
  • 边缘概率

条件概率的表达形式为: P(AB) ,其表示的含义是事件 A 在事件B发生的条件下发生的概率。

联合概率的表达形式为: P(A,B) ,其表示的含义是事件 A 和事件B同时发生的概率。

事件 A 的边缘概率的表达形式为:P(A),其表示的含义是事件 A 发生的概率。

有了以上的定义,贝叶斯定理可以通过如下的贝叶斯公式表示:

P(BA)=P(AB)P(B)P(A)

对于上述的贝叶斯公式, P(B) 称为先验概率,即在得到新的数据前某一假设的概率; P(BA) 称为后验概率,即在得到了新的数据后,对原假设的修正; P(A) 称为标准化常量; P(AB) 称为似然度。

对于两个相互独立的事件的联合概率有如下的性质:

P(A,B)=P(A)P(B)

7、共轭分布

有了如上的贝叶斯定理,对于贝叶斯派而言,有如下的思考方式:

先验分布+样本信息 后验分布

上述的形式定义是贝叶斯派的思维方式,人们对于事物都会存在着最初的认识(先验分布),随着收集到越来越多的样本信息,新观察到的样本信息会不断修正人们对事物的最初的认识,最终得到对事物较为正确的认识(后验分布)。若这样的后验概率 P(θx) 和先验概率 P(x) 满足同样的分布,那么先验分布和后验分布被称为共轭分布,同时,先验分布叫做似然函数的共轭先验分布。

有了如上的的共轭先验分布的定义,有如下的两个性质:

1、Beta分布是二项分布的共轭先验分布,即:

Beta(pα,β)+Count(m1,m2)=Beta(pα+m1,β+m2)

对于上式,对于事件 A ,假设其发生的概率为p,不发生的概率为 1p ,发生的次数为 m1 ,不发生的概率为 m2 ,且有 m1+m2=n 。则对于参数 m1 ,则有:

P(m1p)=pm1(1p)nm1=pm1(1p)m2

而对于参数 p ,则是服从参数为α β 的Beta分布:

P(pα,β)=pa1(1p)b110pa1(1p)b1dp

已知在贝叶斯定理中有如下的公式成立:

P(BA)=P(AB)P(B)P(A)P(AB)P(B)

则对于上述的后验概率,即为:

P(pm1)=P(m1p)P(p)P(m1)P(m1p)P(p)=pm1(1p)m2pa1(1p)b110pa1(1p)b1dppm1(1p)m2pa1(1p)b1=pa+m11(1p)b+m21

由上可知,Beta分布是二项分布的共轭先验分布。

2、Dirichlet分布是多项式分布的共轭先验分布,即:

Dir(p⃗ α⃗ )+MultCount(m⃗ )=Dir(p⃗ α⃗ +m⃗ )

我们对上式采用与Beta分布同样的证明方式,对于多项式分布,有下式成立:

P(m⃗ p⃗ )=pm11pm22pmkk

然而概率 p⃗  服从的参数为 α⃗  的Dirichlet分布,即:

P(p⃗ α⃗ )=pα11pα22pαkkD(α1,α2,,αk)

由贝叶斯定理可知:

P(p⃗ m⃗ )=P(m⃗ p⃗ )P(p⃗ )P(m⃗ )P(m⃗ p⃗ )P(p⃗ )=pm11pm22pmkkpα11pα22pαkkD(α1,α2,,αk)pm11pm22pmkkpα11pα22pαkk=pm1+α11pm2+α22pmk+αkk

由此可知,Dirichlet分布是多项式分布的共轭先验分布。

二、文本建模

对于一篇文章,是文章中出现的次的过程,在文章中,我们已经知道每个词出现的概率,则在省城文章的过程中,我们在词库中根据概率取出每个词,形成一篇文章。

1、Unigram Model

1.1、频率派

上述的过程说明了最简单的文本是如何产生的,我们对上述的过程数学化,假设:

  • 词库中(即对所有文档中的词去停用词)共有 V 个词:v1,v2,,vV
  • 词库中每一个词出现的次数记为: n1,n2,,nV ,所有词出现的总次数为 N
  • 每个词对用的概率记为:p⃗ ={p1,p2,,pV}

假设有 m 篇文档,记为W=(w⃗ 1,w⃗ 2,,w⃗ m),则整个文档的概率为:

P(W)=P(w⃗ 1,w⃗ 2,,w⃗ m)

在这里,我们假设文档与文档之间是相互独立的,而且进一步词与词之间也是相互独立的——词袋模型(Bag-of-words)。词袋模型表名词的顺序是无关紧要。基于这样的假设后上述的概率可以表示为:

P(W)=P(w⃗ 1)P(w⃗ 2)P(w⃗ m)

对所有的这 m 篇文档中,词vi出现的次数为 ni ,由于文档与文档之间是相互独立的,且词与词之间也是相互独立的,则对于所有的文档集 W ,我们将相同的词记在一起,即对于词vi,记为总共出现的次数为 ni 。从词库中选择每个词的过程满足多项式分布,总共需要从词库中抽取 N 次,则全体文档的概率为:

P(W)=P(w⃗ 1)P(w⃗ 2)P(w⃗ m)=k=1Ni=1Vpnii

至此,已经计算出全部文档的联合概率,但是对于每个词被选择的概率 pi 是一个未知数,一个很重要的任务就是估计上式中的每个词被选择的概率,通常使用的方法是使用最大似然估计的方法:

  • 取上式的log似然函数:

log(P(W))=Ni=1Vnilog(pi)

  • 对上述似然函数取最大值,即对每个概率值 pi 求导数:

最终,可以求得参数 pi 的估计值:

pi=niN

1.2、贝叶斯派

对于贝叶斯派来说,其并不认同上述的求解参数值估计的方法,贝叶斯思维认为,一切的参数都是随机变量,因此上述的选择每个词的概率不是一个确定的值,而是一个随机变量,随机变量就应该服从一个分布。因此参数 p⃗  是由分布 P(p⃗ ) 决定的,该分布称为先验分布。则上述的过程就变成了如下的两个过程:

  • 首先由先验分布 P(p⃗ ) 得到参数的样本 p⃗ 
  • 由参数 p⃗  生成文档。

上述的过程,可以由下面的概率图模型表示:

这里写图片描述

依据上述的观点,则文档的概率可以表示为:

P(W)=P(Wp⃗ )P(p⃗ )dp⃗ 

此处的 P(p⃗ ) 称为先验分布,已知 P(Wp⃗ ) 服从多项式分布,由上述的共轭分布的知识可知:

多项式分布的共轭分布是Dirichlet分布。

因此对于先验分布 P(p⃗ ) 可以选择为Dirichlet分布:

Dir(p⃗ α⃗ )=1Δ(α⃗ )i=1Vpαi1i

其中, α⃗ =(α1,α2,,αV) Δ(α⃗ ) 称为归一化因子:

Δ(α⃗ )=i=1Vpαi1idp⃗ 

由共轭分布的知识可知:

先验分布为Dirichlet分布+多项分布的数据知识=后验分布为Dirichlet分布

Dir(p⃗ α⃗ )+MultCount(n⃗ )=Dir(p⃗ α⃗ +n⃗ )

基于上述的共轭分布的性质,已知了参数 p⃗  的先验分布为 Dir(p⃗ α⃗ ) ,对于每个词出现的次数的统计服从多项式分布,则可以通过上述的性质得到后验分布:

P(p⃗ W,α⃗ )=Dir(p⃗ n⃗ +a⃗ )=1Δ(n⃗ +a⃗ )i=1Vpni+αi1i

为了求得后验分布中的参数 p⃗  ,可以使用其均值来估计每一个参数,即:

E(p⃗ )=(n1+α1Vi=1(ni+αi),n2+α2Vi=1(ni+αi),,nV+αVVi=1(ni+αi))

即:

p^i=ni+αiVi=1(ni+αi)

对于整个文本的概率:

P(Wα⃗ )=P(Wp⃗ )P(p⃗ α⃗ )dp⃗ 

由于 P(Wp⃗ ) 服从多项式分布,而 P(p⃗ α⃗ ) 服从的Dirichlet分布,则上式可以表示成:

P(Wα⃗ )=i=1VpniiDir(p⃗ α⃗ )dp⃗ =i=1Vpnii1Δ(α⃗ )i=1Vpαi1idp⃗ =1Δ(α⃗ )i=1Vpni+αi1idp⃗ 

而已知: Δ(α⃗ )=Vi=1pαi1idp⃗  ,则上式可以表示成:

P(Wα⃗ )=Δ(n⃗ +α⃗ )Δ(α⃗ )

2、概率主题模型

前面对文档的生成方式做了简单的介绍,其实在写文章的过程中,每一篇文章都会有一些主题,表示这篇文章主要讲的是关于哪方面的文章,如本篇文章主要是在介绍贝叶斯,LDA等等,而文章的基本组成单元式词,文章的主题则主要表现在词在不同组题的分布上,每一个词是在这些确定的主题上产生的,具体的如下图所示:

这里写图片描述

文章的主题最终体现在词在每个主题的分布上。在写文章的过程中,首先我们需要做的是确定文章的主题,在确定了文章的主题的前提下,我们产生每一个词,从而构成了整篇文章。

如果要写一篇文章,我们往往是先确定其主题,比如这篇文章是写社会的,还是写的技术类的,或者游记类的,在主题确定的条件下,如要写一篇关于机器学习方面的文章,在确定了主题的条件下,会谈及到损失函数,模型,神经网络,深度学习等等,每个词在这篇文章中的比重会有所不同。这便是文章的生成过程,即:

一篇文章,通常是由多个主题构成的,而每个主题大概可以用于该主题相关的频率最高的一些词来描述。

在上面们提及到一篇文章的生成过程,即:

  • 对于文章选择主题
  • 每个主题下对词汇的选择

2.1、频率派

频率派的观点是选择每个主题的概率和根据主题选择具体词的概率都是具体的值,根据上述的概率主题模型的思想,我们假设文档集中有 M 篇文档,每一篇文章对应的主题的概率为:θ⃗ m,m[1,M],在选定了文章的主题后,对于一篇文章,可能会有几个主题,此时,在主题确定的条件下,选择每个主题对应的词,对于第 m 篇文章中的第n个词,有其所属主题的编号 zm,n ,假设有 K 个主题,在每个主题下选择词的概率为:φ⃗ 1,φ⃗ 2,,φ⃗ K,在对应的第 k 个主题下依据概率φ⃗ k选择词。

注意:这里的文档与文档之间是相互独立的,同一个文档中的词与词之间也是相互独立的。

因此,上述过程中很多步骤是可以合并在一起的,同样,我们有如下的假设:

  • 词库中(即对所有文档中的词去停用词)共有 V 个词:v1,v2,,vV
  • 词库中每一个词出现的次数记为: n1,n2,,nV ,所有词出现的总次数为 N
  • k个主题下对应的词的概率为: φ⃗ k={φk,1,φk,2,,φk,V} ,其中 k[1,K]
  • m 篇文档对应的主题的概率记为:θ⃗ m={θm,1,θm,2,,θm,K},其中 m[1,M]
  • 对于每一篇文章中对应的词所属主题的编号为: zm,n

则对于第 m 篇文档dm中的每一个词的生成概率为:

P(wdm)=z=1KP(wz)P(zdm)

其中 P(zdm) 表示的是在每一篇文章对应的主题的编号,可以由 θm,z 表示; P(wz) 表示的是在主题编号确定的条件下选择词的概率,可以由 φz,w ,因此上式可以表示成:

P(wdm)=z=1Kφz,wθm,z

由于在文档中词与词之间是相互独立的,因此对于一篇文档,其生成概率为:

P(w⃗ dm)=i=1Nmz=1KP(wiz)P(zdm)=i=1Nmz=1Kφz,wiθm,z

2.2、贝叶斯派

上面介绍的思路中,对于文档选择主题的概率以及依据主题选择每一个词的概率都是固定的数,对于贝叶斯派来说,这是无法接受的,贝叶斯派认为所有的值都是随机变量,因此,在文档对应的主题以及依据指定的主题选择每一个词的概率都服从特定的分布。因此上述的过程可以通过如下的概率图模型表示:

该图可以分解成如下的两个部分:

1、 α⃗ θ⃗ mzm,n ,表示的是对于第 m 篇文档,我们首先根据参数α⃗ 计算出其对应的主题的概率 θ⃗ m ,然后生成该文档中的第 n 个词对应的主题的编号zm,n
2、 β⃗ φ⃗ kwm,nk=zm,n ,表示的是根据参数 β⃗  计算出在主题编号确定的条件下主题对应的词的概率,依据这个概率选择出每个词。

对于上述过程中的两个阶段,其中从文档的主题的概率到词对应主题的编号服从的是多项式分布,由上述的共轭先验分布的知识可以知道:

多项式分布的共轭分布是Dirichlet分布。

可以选择 θ⃗ m 是服从参数为 α⃗  的Dirichlet分布,同样,我们可以选择 φ⃗ k 是服从参数为 β⃗  的Dirichlet分布。

对于整个文档集来说,文档与文档之间是相互独立的,单个文档中词与词之间也是相互独立的,因此上述的两个过程我们可以分解成如下的两个过程:

  • 首先对于 M 篇文档生成其对应的词对应的主题的编号
  • 对于K个主题,生成所有的文本

有了上述的两个过程的分解,对于整个文档集,我们可以得到下述的生成概率:

P(W,Zα⃗ ,β⃗ )=P(WZ,β⃗ )P(Zα⃗ )

其中, P(WZ,β⃗ ) 表示的是在文章主题确定的条件下生成词的概率, P(Zα⃗ ) 表示的是文档对应主题的概率。

对于上述的第一个过程有:

P(z⃗ mα⃗ )=P(z⃗ mθ⃗ m)P(θ⃗ mα⃗ )dθ⃗ m

已知 P(z⃗ mθ⃗ m) 服从的是多项式分布,而 P(θ⃗ mα⃗ ) 服从的是Dirichlet分布,因此,上式可以转换成为:

P(z⃗ mα⃗ )=k=1Kθnkm,kDir(θ⃗ mα⃗ )dθ⃗ m=k=1Kθnkm,k1Δ(α⃗ )k=1Kθαk1m,kdθ⃗ m=1Δ(α⃗ )k=1Kθnk+αk1m,kdθ⃗ m=Δ(n⃗ m+α⃗ )Δ(α⃗ )

其中, n⃗ m=(n(1)m,n(2)m,,n(K)m) n(k)m 表示的是第 m 篇文档中属于第k个主题的词的个数。则对于所有的 M 篇文档有:

P(Zα⃗ )=m=1MP(z⃗ mα⃗ )=m=1MΔ(n⃗ m+α⃗ )Δ(α⃗ )

对于第二个过程,有下式成立:

P(w⃗ kz⃗ k,β⃗ )=P(w⃗ kφ⃗ k)P(φ⃗ kz⃗ k,β⃗ )dφ⃗ k

其中, P(w⃗ kφ⃗ k) 服从的是多项式分布,而 P(φ⃗ kz⃗ k,β⃗ ) 服从的是Dirichlet分布,则上式可以转化为:

P(w⃗ kz⃗ k,β⃗ )=v=1Vφnvk,vDir(φ⃗ kβ⃗ )dφ⃗ k=v=1Vφnvk,v1Δ(β⃗ )v=1Vφβv1k,vdφ⃗ k=1Δ(β⃗ )v=1Vφnv+βv1k,vdφ⃗ k=Δ(n⃗ k+β⃗ )Δ(β⃗ )

其中, n⃗ k=(n(1)k,n(2)k,,n(V)k) n(v)k 表示的是属于第 k 个主题的词中词v的个数,对于有所的 V 个词,有下面的公式成立:

P(WZ,β⃗ )=k=1KP(w⃗ kz⃗ k,β⃗ )=k=1KΔ(n⃗ k+β⃗ )Δ(β⃗ )

因此,对于整个文档,有:

P(W,Zα⃗ ,β⃗ )=P(WZ,β⃗ )P(Zα⃗ )=k=1KΔ(n⃗ k+β⃗ )Δ(β⃗ )m=1MΔ(n⃗ m+α⃗ )Δ(α⃗ )

3、LDA训练——Gibbs采样

3.1、Markov Chain的相关概念

MCMC(Markov Chain Monte Carlo)和Gibbs采样算法是用来生成样本的随机模拟方法,Gibbs采样算法是LDA中参数求解的一种很有效的方法,想要理解Gibbs采样,必须了解以下的几个概念:

1、马尔可夫链

马尔可夫链的数学表示如下所示:

P(Xt+1=xXt,Xt1,)=P(Xt+1=xXt)

上述公式的含义是由状态 Xt 到状态 Xt+1 只与状态 Xt 有关,而与之前的状态无关。

2、马氏链的平稳分布

如果一个非周期马氏链具有转移概率矩阵为 P ,且它的任何两个状态是连通的,那么limnPnij存在且与 i 无关,记limnPnijπ(j),我们有:

a.

limnPnij=π(1)π(1)π(1)π(2)π(2)π(2)π(j)π(j)π(j)

b.

π(j)=i=0π(i)Pij

c. π 是方程 πP=π 的唯一非负解,其中:

π=[π(1),π(2),,π(j),]

i=πi=1

π 称为马氏链的平稳分布。

3、细致平稳条件

如果非周期马氏链的转移矩阵 P 和分布π(x)满足:

π(i)Pij=π(j)Pji,i,j

π(x) 是马氏链的平稳分布,上式被称为细致平稳条件。

以上三条定理摘自参考文献1。

3.2、Gibbs采样

现在我们假设平面上有一些点,这些点服从概率分布 P(x,y) ,取其中两个点 A B,这两个点的横坐标一致,记为 x ,且每个点的概率由其坐标决定,即点A的概率为 P(x,yA) ,同样,点 B 的概率为P(x,yB)。由点 A 转移到点B的概率为 P(yBx) ,同样,由点 B 转移到点A的概率为 P(yAx) ,则有如下的公式成立:

P(x,yA)P(yBx)=P(x)P(yAx)P(yBx)

P(x,yB)P(yAx)=P(x)P(yBx)P(yAx)

由上式可得:

P(x,yB)P(yAx)=P(x,yA)P(yBx)

由上式可以知道,如果以 P(yx) 作为任意两点之间的转移概率,那么任何两点之间的转移满足细致平稳条件,前提是两点之间的转移概率的条件是相同的,即在两点之间转移,必须保证这两点的其中一个维度是相同的,如上式中的横坐标 x 是相同的。

由此,我们可以得到Gibbs采样的通俗理解方式,即已知样本(x0,y0),我们可以利用 P(xy0) 产生 (x1,y0) ,同样,可以由 P(yx1) 产生 (x1,y1) ,依次,我们便可以得到样本序列:

(x0,y0),(x1,y0),(x1,y1),(x2,y1),

当马氏链收敛后,得到的样本:

(xt,yt),(xt+1,yt),(xt+1,yt+1),
便是服从概率为 P(x,y) 的样本。

上述过程可由下面的形式描述:

这里写图片描述

这样的情况很容易推广到多维的情况:

这里写图片描述

上述两张图来自参考文献1。

3.3、LDA训练

对于LDA,我们希望的是能够计算在词确定的条件下计算其所属主题的概率,即如下的条件分布:

P(ZW,α⃗ ,β⃗ )

由于主题 Z 是一个隐含的变量,我们通过如上的Gibbs采样去求解,由贝叶斯公式可知:

P(zi=kZi)P(zi=k,wi=tZi,Wi)

而已知:

P(θ⃗ mZi,Wi)=Dir(θ⃗ mn⃗ m,i+α⃗ )

P(φ⃗ kZi,Wi)=Dir(φ⃗ kn⃗ k,i+β⃗ )

则可以推出下面的式子:

P(zi=kZi,W)P(zi=k,wi=tZi,Wi)=P(zi=k,wi=t,θ⃗ m,φ⃗ kZi,Wi)dθ⃗ mdφ⃗ k=P(zi=k,θ⃗ mZi,Wi)P(wi=t,φ⃗ kZi,Wi)dθ⃗ mdφ⃗ k=P(zi=kθ⃗ m)P(θ⃗ mZi,Wi)P(wi=tφ⃗ k)P(φ⃗ kZi,Wi)dθ⃗ mdφ⃗ kP(zi=kθ⃗ m)Dir(θ⃗ mn⃗ m,i+α⃗ )dθ⃗ mP(wi=tφ⃗ k)Dir(φ⃗ kn⃗ k,i+β⃗ )dφ⃗ k

=θmkDir(θ⃗ mn⃗ m,i+α⃗ )dθ⃗ mφktDir(φ⃗ kn⃗ k,i+β⃗ )dφ⃗ k=E(θmk)E(φkt)=θmk^φkt^

在Dirichlet分布中,我们知道:

θmk^n(k)m,i+αkKk=1(n(k)m,i+αk)

φkt^n(t)k,i+βtVt=1(n(t)k,i+βt)

因此有:

P(zi=kZi,W)n(k)m,i+αkKk=1(n(k)m,i+αk)n(t)k,i+βtVt=1(n(t)k,i+βt)

LDA的训练过程如下所示:

这里写图片描述

4、LDA推理

LDA推理的过程与LDA训练的过程类似,具体过程如下所示:

这里写图片描述

两张图来自参考文献1。

参考文献

1、LDA数学八卦

2、通俗理解LDA主题模型

3、零基础小白使用LDA模型

4、LDA理解以及源码分析(二)

5、Xuan-Hieu Phan and Cam-Tu Nguyen. GibbsLDA++: A C/C++ implementation of latent Dirichlet allocation (LDA), 2007

  • 12
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值