您的位置:首页 > 运维架构

TopicModel主题模型 - LDA详解

2015-01-12 21:07 281 查看
http://blog.csdn.net/pipisorry/article/details/42649657

主题模型LDA介绍INTRODUCTION



隐含狄利克雷分布简称LDA(Latent Dirichlet allocation),是一种主题模型,它可以将文档集中每篇文档的主题按照概率分布的形式给出。同时它是一种无监督学习算法,在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量k即可。此外LDA的另一个优点则是,对于每一个主题均可找出一些词语来描述它。

LDA首先由Blei, David M.、吴恩达和Jordan, Michael I于2003年提出,目前在文本挖掘领域包括文本主题识别、文本分类以及文本相似度计算方面都有应用。

LDA的数学模型



[http://engineering.intenthq.com/2015/02/automatic-topic-modelling-with-lda/]

Note:

1. 阴影圆圈表示可观测的变量,非阴影圆圈表示隐变量,箭头表示两变量间的条件依赖性conditional dependency,方框表示重复抽样,方框右下角的数字代表重复抽样的次数.

2. φ and θ are Dirichlet distributions, z and w are
multinomials.

LDA是一种典型的词袋模型,即它认为一篇文档是由一组词构成的一个集合,词与词之间没有顺序以及先后的关系。一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。

当我们看到一篇文章后,往往喜欢推测这篇文章是如何生成的,我们可能会认为作者先确定这篇文章的几个主题,然后围绕这几个主题遣词造句,表达成文。LDA就是要根据给定的一篇文档,推测其主题分布。

因此正如LDA‎贝叶斯网络结构中所描述的,在LDA模型中一篇文档生成的方式如下:

从狄利克雷分布

中取样生成文档i的主题分布


从主题的多项式分布

中取样生成文档i第j个词的主题


从狄利克雷分布

中取样生成主题

的词语分布


从词语的多项式分布

中采样最终生成词语


Note:

1. 正如Beta分布是二项式分布的共轭先验概率分布,狄利克雷分布作为多项式分布的共轭先验概率分布.

因此整个模型中所有可见变量以及隐藏变量的联合分布



最终一篇文档的单词分布的最大似然估计可以通过将上式的

以及

进行积分和对

进行求和得到



根据

的最大似然估计,最终可以通过吉布斯采样等方法估计出模型中的参数。


LDA参数的估计(吉布斯采样)


在LDA最初提出的时候,人们使用EM算法进行求解,后来人们普遍开始使用较为简单的Gibbs Sampling,具体过程如下:

首先对所有文档中的所有词遍历一遍,为其都随机分配一个主题,即zm,n=k~Mult(1/K),其中m表示第m篇文档,n表示文档中的第n个词,k表示主题,K表示主题的总数,之后将对应的n(k)m+1, nm+1, n(t)k+1, nk+1, 他们分别表示在m文档中k主题出现的次数,m文档中主题数量的和,k主题对应的t词的次数,k主题对应的总词数。
之后对下述操作进行重复迭代。
对所有文档中的所有词进行遍历,假如当前文档m的词t对应主题为k,则n(k)m-1, nm-1, n(t)k-1, nk-1, 即先拿出当前词,之后根据LDA中topic sample的概率分布sample出新的主题,在对应的n(k)m, nm, n(t)k, nk上分别+1。





迭代完成后输出主题-词参数矩阵φ和文档-主题矩阵θ


主题k中词t的概率分布


文档m中主题k的概率分布

[http://zh.wikipedia.org/wiki/隐含狄利克雷分布]

LDA中的数学模型

beta分布是二项式分布的共轭先验概率分布:
对于非负实数



,我们有如下关系



其中

对应的是二项分布

的计数。针对于这种观测到的数据符合二项分布,参数的先验分布和后验分布都是Beta分布的情况,就是Beta-Binomial 共轭。

狄利克雷分布(Dirichlet分布)是多项式分布的共轭先验概率分布:



从整数集合延拓到实数集合,从而得到更一般的表达式如下:



针对于这种观测到的数据符合多项分布,参数的先验分布和后验分布都是Dirichlet 分布的情况,就是 Dirichlet-Multinomial 共轭。

贝叶斯派思考问题的固定模式:

先验分布

+ 样本信息



后验分布



上述思考模式意味着,新观察到的样本信息将修正人们以前对事物的认知。换言之,在得到新的样本信息之前,人们对

的认知是先验分布

,在得到新的样本信息

后,人们对

的认知为



频率派与贝叶斯派各自不同的思考方式:

频率派把需要推断的参数θ看做是固定的未知常数,即概率

虽然是未知的,但最起码是确定的一个值,同时,样本X 是随机的,所以频率派重点研究样本空间,大部分的概率计算都是针对样本X 的分布;
贝叶斯派的观点则截然相反,他们认为待估计的参数

是随机变量,服从一定的分布,而样本X
是固定的,由于样本是固定的,所以他们重点研究的是参数

的分布。

[参考TopicModel - LDA中的数学模型]

皮皮Blog

LDA模型详解

LDA就是在pLSA的基础上加层贝叶斯框架。{lda基础模型可参见TopicModel
- Unigram、LSA、PLSA算法详解 }

{pLSA样本随机,参数虽未知但固定,属于频率派思想;区别LDA样本固定,参数未知但不固定,是个随机变量,服从一定的分布,LDA属于贝叶斯派思想}

pLSA跟LDA生成文档方式的对比

在pLSA模型中,我们按照如下的步骤得到“文档-词项”的生成模型:

按照概率

选择一篇文档


选定文档

后,确定文章的主题分布
从主题分布中按照概率

选择一个隐含的主题类别


选定

后,确定主题下的词分布
从词分布中按照概率

选择一个词



对比LDA模型中一篇文档生成的方式:

按照先验概率

选择一篇文档


从狄利克雷分布(即Dirichlet分布)

中取样生成文档

的主题分布

,换言之,主题分布

由超参数为

的Dirichlet分布生成
从主题的多项式分布

中取样生成文档

第 j 个词的主题


从狄利克雷分布(即Dirichlet分布)

中取样生成主题

对应的词语分布

,换言之,词语分布

由参数为

的Dirichlet分布生成
从词语的多项式分布

中采样最终生成词语



从上面两个过程可以看出,LDA在PLSA的基础上,为主题分布和词分布分别加了两个Dirichlet先验。

如前所述,在PLSA中,选主题和选词都是两个随机的过程,先从主题分布{教育:0.5,经济:0.3,交通:0.2}中抽取出主题:教育,然后从该主题对应的词分布{大学:0.5,老师:0.3,课程:0.2}中抽取出词:大学。

而在LDA中,选主题和选词依然都是两个随机的过程,依然可能是先从主题分布{教育:0.5,经济:0.3,交通:0.2}中抽取出主题:教育,然后再从该主题对应的词分布{大学:0.5,老师:0.3,课程:0.2}中抽取出词:大学。

pLSA跟LDA的概率图对比

接下来,对比下LDA跟pLSA的概率模型图模型,pLSA跟LDA生成文档的不同过程,左图是pLSA,右图是LDA(右图不太规范,z跟w都得是小写):






对应到上面右图的LDA,只有W / w是观察到的变量,其他都是隐变量或者参数,其中,Φ表示词分布,Θ表示主题分布,

是主题分布Θ的先验分布(即Dirichlet 分布)的参数,

是词分布Φ的先验分布(即Dirichlet 分布)的参数,N表示文档的单词总数,M表示文档的总数。

假定语料库中共有M篇文章,每篇文章下的Topic的主题分布是一个从参数为

的Dirichlet先验分布中采样得到
的Multinomial分布,每个Topic下的词分布是一个从参数为

的Dirichlet先验分布中采样得到
的Multinomial分布。
对于某篇文章中的第n个词,首先从该文章中出现的每个主题的Multinomial分布(主题分布)中选择或采样一个主题,然后再在这个主题对应的词的Multinomial分布(词分布)中选择或采样一个词。不断重复这个随机生成过程,直到M篇文章全部生成完成。

M 篇文档会对应于 M 个独立的 Dirichlet-Multinomial 共轭结构,K 个 topic 会对应于 K 个独立的 Dirichlet-Multinomial 共轭结构。

其中,

→θ→z 表示生成文档中的所有词对应的主题,显然

→θ 对应的是Dirichlet 分布,θ→z 对应的是 Multinomial 分布,所以整体是一个 Dirichlet-Multinomial 共轭结构,如下图所示:



类似的,

→φ→w,容易看出, 此时β→φ对应的是 Dirichlet 分布, φ→w 对应的是 Multinomial 分布, 所以整体也是一个Dirichlet-Multinomial 共轭结构,如下图所示:





pLSA跟LDA参数估计方法的对比

假定文档已经产生,反推其主题分布。那么,它们估计未知参数所采用的方法的不同?

pLSA中,我们使用EM算法去估计“主题-词项”矩阵Φ和“文档-主题”矩阵Θ,而且这两参数都是个未知的固定的值,使用的思想其实就是极大似然估计MLE。
LDA中,估计Φ、Θ这两未知参数可以用变分(Variational
inference)-EM算法,也可以用
gibbs采样,前者的思想是最大后验估计MAP(MAP与MLE类似,都把未知参数当作固定的值),后者的思想是贝叶斯估计。贝叶斯估计是对MAP的扩展,但它与MAP有着本质的不同,即贝叶斯估计把待估计的参数看作是服从某种先验分布的随机变量。

关于贝叶斯估计的例子。假设中国的大学只有两种:理工科和文科,这两种学校数量的比例是1:1,其中,理工科男女比例7:1,文科男女比例1:7。某天你被外星人随机扔到一个校园,问你该学校可能的男女比例是多少?然后,你实际到该校园里逛了一圈,看到的5个人全是男的,这时候再次问你这个校园的男女比例是多少?

因为刚开始时,有先验知识,所以该学校的男女比例要么是7:1,要么是1:7,即P(比例为7:1) = 1/2,P(比例为1:7)
= 1/2。
然后看到5个男生后重新估计男女比例,其实就是求P(比例7:1|5个男生)= ?,P(比例1:7|5个男生) = ?
用贝叶斯公式

,可得:P(比例7:1|5个男生) = P(比例7:1)*P(5个男生|比例7:1)
/ P(5个男生),P(5个男生)是5个男生的先验概率,与学校无关,所以是个常数;类似的,P(比例1:7|5个男生) = P((比例1:7)*P(5个男生|比例1:7)/P(5个男生)。
最后将上述两个等式比一下,可得:P(比例7:1|5个男生)/P(比例1:7|5个男生) = {P((比例7:1)*P(5个男生|比例7:1)}
/ { P(比例1:7)*P(5个男生|比例1:7)}。

由于LDA把要估计的主题分布和词分布看作是其先验分布是Dirichlet分布的随机变量,所以,在LDA这个估计主题分布、词分布的过程中,它们的先验分布(即Dirichlet分布)事先由人为给定,那么LDA就是要去求(可用gibbs采样)它们的后验分布,得到期望



。LDA中,主题分布和词分布本身都是多项分布,而由上文可知“Dirichlet分布是多项式分布的共轭先验概率分布”,因此选择Dirichlet
分布作为它们的共轭先验分布。意味着为多项分布的参数p选取的先验分布是Dirichlet分布,那么以p为参数的多项分布用贝叶斯估计得到的后验分布仍然是Dirichlet分布。

PLSA跟LDA的区别

PLSA中,主题分布和词分布是唯一确定的,能明确的指出主题分布可能就是{教育:0.5,经济:0.3,交通:0.2},词分布可能就是{大学:0.5,老师:0.3,课程:0.2}。
LDA中,主题分布和词分布不再唯一确定不变,即无法确切给出。例如主题分布可能是{教育:0.5,经济:0.3,交通:0.2},也可能是{教育:0.6,经济:0.2,交通:0.2},到底是哪个我们不再确定,因为它是随机的可变化的。但再怎么变化,也依然服从一定的分布,即主题分布跟词分布由Dirichlet先验随机确定。


面对多个主题或词,各个主题或词被抽中的概率不一样,所以抽取主题或词是随机抽取。主题分布和词分布本身也都是不确定的,正因为LDA是PLSA的贝叶斯版本,所以主题分布跟词分布本身由先验知识随机给定。

pLSA中,主题分布和词分布确定后,以一定的概率(



)分别选取具体的主题和词项,生成好文档。而后根据生成好的文档反推其主题分布、词分布时,最终用EM算法(极大似然估计思想)求解出了两个未知但固定的参数的值



)和





举个文档d产生主题z的例子。给定一篇文档d,主题分布是一定的,比如{ P(zi|d),
i = 1,2,3 }可能就是{0.4,0.5,0.1},表示z1、z2、z3,这3个主题被文档d选中的概率都是个固定的值:P(z1|d) = 0.4、P(z2|d) = 0.5、P(z3|d)
= 0.1。

贝叶斯框架下的LDA中,我们不再认为主题分布和词分布是唯一确定的(而是随机变量),而是有很多种可能。LDA为它们弄了两个Dirichlet先验参数,为某篇文档随机抽取出某个主题分布和词分布。

文档d产生主题z(准确的说,其实是Dirichlet先验为文档d生成主题分布Θ,然后根据主题分布Θ产生主题z)的概率,主题z产生单词w的概率都不再是某两个确定的值,而是随机变量。

例子:给定一篇文档d,现在有多个主题z1、z2、z3,它们的主题分布{
P(zi|d), i = 1,2,3 }可能是{0.4,0.5,0.1},也可能是{0.2,0.2,0.6},即这些主题被d选中的概率都不再认为是确定的值,而主题分布到底是哪个取值集合我们不确定(这就是贝叶斯派的核心思想,把未知参数当作是随机变量,不再认为是某一个确定的值),但其先验分布是dirichlet
分布,所以可以从无穷多个主题分布中按照dirichlet 先验随机抽取出某个主题分布出来




沈博PPT

换言之,LDA在pLSA的基础上给这两参数(



)加了两个先验分布的参数(贝叶斯化):一个主题分布的先验分布Dirichlet分布

,和一个词语分布的先验分布Dirichlet分布


综上,LDA真的只是pLSA的贝叶斯版本,文档生成后,两者都要根据文档去推断其主题分布和词语分布(即两者本质都是为了估计给定文档生成主题,给定主题生成词语的概率),只是用的参数推断方法不同,在pLSA中用极大似然估计的思想去推断两未知的固定参数,而LDA则把这两参数弄成随机变量,且加入dirichlet先验。 所以,pLSA跟LDA的本质区别就在于它们去估计未知参数所采用的思想不同,前者用的是频率派思想,后者用的是贝叶斯派思想。

估计未知参数所采用的思想不同的例子

我去一朋友家:

按照频率派的思想,我估计他在家的概率是1/2,不在家的概率也是1/2,是个定值。
而按照贝叶斯派的思想,他在家不在家的概率不再认为是个定值1/2,而是随机变量。比如按照我们的经验(比如当天周末),猜测他在家的概率是0.6,但这个0.6不是说就是完全确定的,也有可能是0.7。如此,贝叶斯派没法确切给出参数的确定值(0.3,0.4,0.6,0.7,0.8,0.9都有可能),但至少明白哪些取值(0.6,0.7,0.8,0.9)更有可能,哪些取值(0.3,0.4) 不太可能。进一步,贝叶斯估计中,参数的多个估计值服从一定的先验分布,而后根据实践获得的数据(例如周末不断跑他家),不断修正之前的参数估计,从先验分布慢慢过渡到后验分布。

皮皮Blog

LDA生成文档过程的进一步理解

LDA主题分布中
— 比如{ P(zi), i =1,2,3 }等于{0.4,0.5,0.1}或{0.2,0.2,0.6} —是由dirichlet先验给定的,不是根据文档产生的。所以,LDA生成文档的过程中,先从dirichlet先验中“随机”抽取出主题分布,然后从主题分布中“随机”抽取出主题,最后从确定后的主题对应的词分布中“随机”抽取出词。
Dirichlet先验是如何“随机”抽取主题分布的
事实上,从dirichlet分布中随机抽取主题分布,这个过程不是完全随机的。为了说清楚这个问题,咱们得回顾下dirichlet分布。事实上,如果我们取3个事件的话,可以建立一个三维坐标系,类似xyz三维坐标系,这里,我们把3个坐标轴弄为p1、p2、p3,如下图所示:



在这个三维坐标轴所划分的空间里,每一个坐标点(p1,p2,p3)就对应着一个主题分布,且某一个点(p1,p2,p3)的大小表示3个主题z1、z2、z3出现的概率大小(因为各个主题出现的概率和为1,所以p1+p2+p3 = 1 {三角平面},且p1、p2、p3这3个点最大取值为1)。比如(p1,p2,p3) = (0.4,0.5,0.1)便对应着主题分布{ P(zi), i =1,2,3 } = {0.4,0.5,0.1}。,空间里有很多这样的点(p1,p2,p3),意味着有很多的主题分布可供选择,那dirichlet分布如何选择主题分布呢?把上面的斜三角形放倒,映射到底面的平面上,便得到如下所示的一些彩图(3个彩图中,每一个点对应一个主题分布,高度代表某个主题分布被dirichlet分布选中的概率,且选不同的

,dirichlet
分布会偏向不同的主题分布
):



我们来看上图中左边这个图,高度就是代表dirichlet分布选取某个坐标点(p1,p2,p3)(这个点就是一个主题分布)的概率大小。如下图所示,平面投影三角形上的三个顶点上的点:A=(0.9,0.05,0.05)、B=(0.05,0.9,0.05)、C=(0.05,0.05,0.9)各自对应的主题分布被dirichlet分布选中的概率值很大,而平面三角形内部的两个点:D、E对应的主题分布被dirichlet分布选中的概率值很小





所以虽然说dirichlet分布是随机选取任意一个主题分布的,但依然存在着P(A) = P(B) = P(C) >> P(D) = P(E),即dirichlet分布还是“偏爱”某些主题分布的。至于dirichlet分布的参数

是如何决定dirichlet分布的形状的,可以从dirichlet分布的定义和公式思考。
此外,就算说“随机”选主题也是根据主题分布来“随机”选取,这里的随机不是完全随机的意思,而是根据各个主题出现的概率值大小来抽取。比如当dirichlet先验为文档d生成的主题分布{ P(zi), i =1,2,3 }是{0.4,0.5,0.1}时,那么主题z2在文档d中出现的概率便是0.5。


皮皮Blog

LDA参数估计:Gibbs采样

类似于pLSA,LDA的原始论文中是用的变分-EM算法估计未知参数,但不太好理解,并且EM算法可能推导出局部最优解。后来发现另一种估计LDA未知参数的方法更好,Heinrich使用了Gibbs抽样法。Gibbs抽样是马尔可夫链蒙特卡尔理论(MCMC)中用来获取一系列近似等于指定多维概率分布(比如2个或者多个随机变量的联合概率分布)观察样本的算法。

LDA Gibbs Sampler

为了构造LDA Gibbs抽样器,我们需要使用隐变量的Gibbs抽样器公式。在LDA模型中,隐变量为
zm,n
,即样本中每个词
wm,n
所属的主题,而参数
Θ
Φ
等可以通过观察到的
wm,n
和相应的
zm,n
积分求得,这种处理方法称作collapsed,在Gibbs
sampling中经常使用。

给出要推断的目标分布,它和联合分布成正比:



p(z|w)=p(z,w)p(w)=∏Wi=1p(zi,wi)∏Wi=1∑Kk=1p(zi=k,wi)
{
这里省略了超参数}
这个分布涉及很多离散随机变量,并且分母是
KW
个项的求和,很难求解。此时,就需要Gibbs
sampling发挥用场了,我们期望Gibbs抽样器可以通过Markov链利用全部的条件分布
p(zi|z¬i,w)
来模拟
p(z|w)


写出联合概率分布
p(w,z)
p(w,z|α,β)=p(w|z,β)p(z|α)


给定一个文档集合,w是可以观察到的已知变量,



是根据经验给定的先验参数,其他的变量z,θ和φ都是未知的隐含变量,需要根据观察到的变量来学习估计的。根据LDA的图模型,可以写出所有变量的联合分布:



注:

等价上文中定义的



等价于上文中定义的



等价于上文中定义的

,等价于上文中定义的



因为

产生主题分布θ,主题分布θ确定具体主题,且

产生词分布φ、词分布φ确定具体词,所以上述式子等价于下述式子所表达的所有变量的联合概率分布





计算的两个未知参数:第一项因子

表示的是根据确定的主题

和词分布的先验分布参数

采样词的过程,第二项因子

是根据主题分布的先验分布参数

采样主题的过程


由于这两个过程是独立的,可以分别处理:

第一个因子

,可以根据确定的主题

和从先验分布

取样得到的词分布Φ产生:



由于样本中的词服从参数为主题

的独立多项分布,这意味着可以把上面对词的乘积分解成分别对主题和对词的两层乘积:



其中,

是词 t 在主题 k 中出现的次数。{初始时随机分配主题,

也就得到初始值并不断修正【Gibbs sampling具体算法】}

回到第一个因子上来。目标分布

需要对词分布Φ积分,且结合我们之前在3.1节定义的Dirichlet 分布的归一化系数

的公式



可得:


(68)

{第一步推导:



第二步推导:


}

这个结果可以看作K个Dirichlet-Multinomial模型的乘积。

第二个因子

。类似于

的步骤,先写出条件分布,然后分解成两部分的乘积:



其中,

表示的单词 i 所属的文档,

是主题 k 在文章 m 中出现的次数。

对主题分布Θ积分可得:


(72)

{推导:


}

综合第一个因子和第二个因子的结果,得到

的联合分布结果为




通过联合分布[b]

来计算在给定可观测变量 w 下的隐变量 z 的条件分布(后验分布)

来进行贝叶斯分析[/b]
换言之,有了这个联合分布后,要求解第m篇文档中的第n个词(下标为

的词)的全部条件概率就好求了。
变量定义:



表示除去

的词





然后,排除当前词的主题分配,即根据其他词的主题分配和观察到的单词来计算当前词主题的概率公式为:{ 第二步的推导中的小错误:p(w, z) -> p(w | z) }



{note:这里省略了超参数

推导:




n(k)m,7i 文档m中除word i对应主题外的主题数

}

且有:



最后一步,根据Markov链的状态

获取主题分布的参数Θ和词分布的参数Φ
换言之根据贝叶斯法则和Dirichlet先验,以及上文中得到的



各自被分解成两部分乘积的结果,可以计算得到每个文档上Topic的后验分布和每个Topic下的词的后验分布分别如下(据上文可知:其后验分布跟它们的先验分布一样,也都是Dirichlet
分布



其中,

是构成文档m的主题数向量,

是构成主题k的词项数向量。
最终求解的Dirichlet 分布期望为



然后将



的结果代入之前得到的

的结果中,可得:



{m文档;k主题;t词;i除去i的词;当前词实例wi = t。 n(k)m,-i代表文档m(除词i对应的文档之外)中,主题的总个数。 n(t)k,-i代表当前i对应的主题外的某个主题k,当前词t出现的总次数。}

Note:直观上可以这么理解,其它词!i在主题k上的概率越大,那么当前词i被赋予当前主题k的概率就越大。

仔细观察上述结果,可以发现,式子的右半部分便是

,这个概率的值对应着

的路径概率。如此,K 个topic 对应着K条路径,Gibbs Sampling 便在这K 条路径中进行采样,如下图所示:



就这样,Gibbs Sampling通过求解出主题分布和词分布的后验分布,从而成功解决主题分布和词分布这两参数未知的问题。

Gibbs sampling算法实现
Gibbs sampling算法有三个阶段:初始化、burn-in和sampling

算法:
LdaGibbs({w,α,β,K})

输入:单词向量
w
,超参数
α
β
,主题数
K

全局变量:统计量
{n(k)m}
{n(t)k}
,以及它们的总数
{nm}
{nk}
,全部条件概率数组
p(zi|⋅)

输出:主题向量
{z}
,多项分布参数
Φ
Θ
,超参数估计量
α
β

[初始化] 设置全局变量
n(k)m
n(t)k
nm
nk
为零

对所有文档
m∈[1,M]


对文档
m

中的所有单词
n∈[1,Nm]


采样每个单词对应的主题
zm,n=k∼Mult(1/K)

增加“文档-主题”计数:
n(k)m+=1

增加“文档-主题”总数:
nm+=1

增加“主题-词项”计数:
n(t)k+=1

增加“主题-词项”总数:
nk+=1


迭代burn-in和sampling步骤:

[burn-in] 对所有文档
m∈[1,M]


对文档
m

中的所有单词
n∈[1,Nm]


减少计数:
n(k)m−=1;nm−=1;n(t)k−=1;nk−=1;

根据公式p(zi=k|z¬i,w) = ...采样主题:
k~∼p(zi|z¬i,w)

增加计数:
n(k~)m+=1;nm+=1;n(t)k~+=1;nk~+=1;


[sampling] 如果Markov链收敛:

根据公式φk,t生成参数
Φ

根据公式ϑm,k生成参数
Θ


【Gregor Heinrich - Parameter estimation for text analysis - 5.5 The collapsed LDA Gibbs sampler】

【http://blog.jqian.net/post/lda.html#content】

Note:

AMC algorithm的提示: After burn in phase, update the posterior distributions every sample lag.

sampleLag = -1; // Subject to change given the size of the data.

1. When the data is very small (e.g., 100 reviews), we only retain the last Markov chain status (i.e., sampleLag = -1). The reason is that it avoids the topics being dominated by the most frequent words.

2. When the data is not very small (e.g., 1000 reviews), we should set sampleLag as 20.

from:/article/1368063.html

ref:Blei, David; Ng, Andrew;Latent Dirichlet allocation.Journal
of Machine Learning Research.

通俗理解LDA主题模型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: