Latent dirichlet allocation note

http://blog.csdn.net/wangran51/article/details/7408399

 

LDA是给文本建模的一种方法,它属于生成模型。生成模型是指该模型可以随机生成可观测的数据,LDA可以随机生成一篇由N个主题组成文章。通过对文本的建模,我们可以对文本进行主题分类,判断相似度等。在90年代提出的LSA中,通过对向量空间进行降维,获得文本的潜在语义空间。在LDA中则是通过将文本映射到主题空间,即认为一个文章有若干主题随机组成,从而获得文本间的关系。LDA模型有一个前提:bag of word。意思就是认为文档就是一个词的集合,忽略任何语法或者出现顺序关系。

3 生成模型

LDA的建模过程是逆向通过文本集合建立生成模型,在讨论如何建模时,我们先要理解LDA的生成模型如何生成一篇文档。

假设一个语料库中有三个主题:体育,科技,电影

一篇描述电影制作过程的文档,可能同时包含主题科技和主题电影,而主题科技中有一系列的词,这些词和科技有关,并且他们有一个概率,代表的是在主题为科技的文章中该词出现的概率。同理在主题电影中也有一系列和电影有关的词,并对应一个出现概率。当生成一篇关于电影制作的文档时,首先随机选择某一主题,选择到科技和电影两主题的概率更高;然后选择单词,选择到那些和主题相关的词的概率更高。这样就就完成了一个单词的选择。不断选择N个单词,这样就组成了一篇文档。

具体来说,生成一篇文档按照如下步骤:

1. 选择N,N服从Poisson(ξ)分布,这里N代表文档的长度。

2. 选择θ,θ服从Dirichlet(α)分布,这里θ是列向量,代表的是个主题发生的概率,α是dirichlet分布的参数

3. 对N个单词中的每一个:

a) 选择主题zn,zn服从Multinomial(θ)多项分布。zn代表当前选择的主题

b) 选择wn,根据p(wn | zn; β):在zn条件下的多项分布。

上式中β是一个K x V的矩阵,βij = P(wj = 1 | zi = 1),也就是说β记录了某个主题条件下生成某个单词的概率。

观察第二步,这里是LDA和PLSA的区别所在。假设每篇文档由3个主题组成,θ就表明每个主题发生的概率,比如{1/6,2/6,3/6},这样不同的文档对应的θ也就不同,而θ可以用来判断文档的相似度等。

LDA Graphical model representation:

clip_image002

几乎所有讨论LDA的文章都包括上面的这幅图。它代表的概率模型:

clip_image004

上式计算边缘概率,便可得:

clip_image006

其中D代表一个语料库,M代表语料库中文档的总数。

4 参数估计

通过对LDA生成模型的讨论我们理解到对文本的建模实际上就是要计算α和β两个参数。α和β可以采用极大似然估计,但是这里遇到一个问题,就是似然函数由于α和β的耦合无法直接求出来:

clip_image008

回想前面提到过的variational inference方法,为了估计后验分布,寻找一个似然函数的下界,在这里,这个下界正好可以被用来做为参数估计,因此LDA原始paper[6]选择使用variational inference方法来计算似然函数的下界。这样,分别给定一个α和β的值,就可以计算出一个似然函数的值。极大似然函数的参数估计,就是要找出一对α和β,使得似然函数值最大。这时就用到了EM算法,每次E-STEP输入α和β,计算似然函数,也就是variational inference的过程,M-STEP最大化这个函数,求出α和β。这样不断迭代知道收敛,就求得了最终的α和β值。在variational inference中需要选取Q的分布形式,使得Q容易计算。在LDA原始paper中,作者选取了:

clip_image010

其中γ和Φ为q的参数。这里假设了θ和z相互独立,并丢掉w节点,简化的模型如下:

clip_image012

下面要做的工作就很明显了:

clip_image014

原始paper的作者在其paper的附录做了推导,计算出γ和Φ迭代公式:

clip_image016

其中:

clip_image018

接下来的工作,就是要进行EM迭代,直到α和β收敛。

E-STEP:

对每一篇文档,计算参数γ和Φ

M-STEP:

最大化Variational Inference中的下界,求出此时的 α和β

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值