LDA是给文本建模的一种方法,属于生成模型。生成模型是指该模型可以随机生成可观测的数据,LDA可以随机生成一篇由N个主题组成的文章。通过对文本的建模,可以对文本进行主题分类,判断相似度等。LDA通过将文本映射到主题空间,即认为一篇文章有若干主题随机组成,从而获得文本间的关系。LDA模型有一个前提:bag of word。意思是认为文档就是一个词的集合,忽略任何语法或者出现顺序关系。
生成一篇文档按照如下步骤:1.选择N,N服从Poisson(ξ)分布,这里N代表文档的长度。
2.选择θ,θ服从Dirichlet(α)分布,这里θ是列向量,代表的是个主题发生的概率,α是dirichlet分布的参数
3.对N个单词中的每一个:
a) 选择主题Zn,Zn服从Multinomial(θ)多项分布。Zn代表当前选择的主题
b) 选择Wn,根据p(Wn | Zn; β):在Zn条件下的多项分布。
上式中β是一个K×V的矩阵,βij = P(Wj = 1 | Zi = 1),也就是说β记录了某个主题条件下生成某个单词的概率。
LDA概率模型

Latent <wbr>Dirichlet <wbr>Allocation(LDA)主题模型理论


上图代表了LDA概率模型。

Latent <wbr>Dirichlet <wbr>Allocation(LDA)主题模型理论


计算边缘概率便可得:

Latent <wbr>Dirichlet <wbr>Allocation(LDA)主题模型理论


其中D代表一个语料库,M代表语料库中文档总数。
参数估计对文本的建模就是要计算α和β两个参数。α和β可以采用极大似然估计。LDA原始paper中选择使用variational inference方法来计算似然函数的下界。这样,分别给定一个α和β的值,就可以计算出一个似然函数的值。极大似然函数的参数估计,就是要找出一对α和β,使得似然函数值最大。这时就用到了EM算法,每次E-STEP输入α和β,计算似然函数,也就是variational inference的过程,M-STEP最大化这个函数,求出α和β。这样不断迭代知道收敛,就求得了最终的α和β值。在variational inference中需要选取Q的分布形式,使得Q容易计算。在LDA原始paper中,作者选取了:

Latent <wbr>Dirichlet <wbr>Allocation(LDA)主题模型理论


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

Latent <wbr>Dirichlet <wbr>Allocation(LDA)主题模型理论

则:

Latent <wbr>Dirichlet <wbr>Allocation(LDA)主题模型理论


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

Latent <wbr>Dirichlet <wbr>Allocation(LDA)主题模型理论


其中

Latent <wbr>Dirichlet <wbr>Allocation(LDA)主题模型理论


接下来的工作,就是要进行EM迭代,直到α和β收敛。
E-STEP:对每一篇文档,计算参数γ和Φ
M-STEP:最大化Variational Inference中的下界,求出此时的 α和β