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概率模型 上图代表了LDA概率模型。 计算边缘概率便可得: 其中D代表一个语料库,M代表语料库中文档总数。 参数估计 对文本的建模就是要计算α和β两个参数。α和β可以采用极大似然估计。LDA原始paper中选择使用variational inference方法来计算似然函数的下界。这样,分别给定一个α和β的值,就可以计算出一个似然函数的值。极大似然函数的参数估计,就是要找出一对α和β,使得似然函数值最大。这时就用到了EM算法,每次E-STEP输入α和β,计算似然函数,也就是variational inference的过程,M-STEP最大化这个函数,求出α和β。这样不断迭代知道收敛,就求得了最终的α和β值。在variational inference中需要选取Q的分布形式,使得Q容易计算。在LDA原始paper中,作者选取了: 其中γ和Φ为q的参数。这里假设了θ和z相互独立,并丢掉w节点,简化的模型如下: 则: 原始paper的作者在其paper的附录做了推导,计算出γ和Φ迭代公式: 其中 接下来的工作,就是要进行EM迭代,直到α和β收敛。 E-STEP:对每一篇文档,计算参数γ和Φ M-STEP:最大化Variational Inference中的下界,求出此时的 α和β
原文地址:http://blog.sina.com.cn/s/blog_8eee7fb60101cztv.html