LDA主题模型即隐含狄利克雷分布,顾名思义是一种生成文本主题的模型,回忆之前介绍过的朴素贝叶斯算法,可以使用朴素贝叶斯对文本进行分类,这是通过词分布对文档的一种分类,LDA主题模型可以认为是在“词”与“文档”中间增添了“主题”的概念。

需要注意的是,一篇文章会有多个主题,一个主题会有多个词,同时,一个词也会属于多个主题。例如,“苹果”这个词,既可以属于“电子产品”的主题,也可以属于“农产品”的主题。用一系列主题来描绘一篇文档会比简单直接的文本分类更加详细。
LDA模型是一个统计模型,为何要使用狄利克雷分布对其进行一系列参数估计,而非其他的概率分布呢,这也与上文提及的文档、主题、词的一对多关系有关。回忆以前学过的抛硬币模型,重复抛同一枚硬币,这是一个二项分布。

而从一个文档中选取一个主题,或从一个主题中选取一个词,显然并不是一个抛硬币的二项分布模型,而是多项式分布,多项式分布是二项分布的推广,在多项式分布中,每次独立试验中结果都有K中,抛骰子就是一个典型的多项式分布。

Beta分布是二项分布的共轭先验分布,Dirichlet分布是多项式分布的共轭先验分布,Dirichlet分布可以认为是Beta分布的推广,其概率密度函数是:

其中Γ为Gamma函数,也叫欧拉第二积分,是阶乘函数在实数与复数上扩展的一类函数,gamma函数可以当成是阶乘在实数集上的延伸,而非一般认知上整数集才能使用阶乘。

将Dirichlet分布作为先验概率分布,多项式分布作为条件概率分布,求此时的后验概率分布可知,Dirichlet分布是多项式分布的共轭先验概率分布。

回到文档和主题的部分,可以认为词的生成是先从众多主题中选择了某个主题,再从该主题的众多特征词中选择了某个词,反复选择主题和词,生成了一篇文档。因此,主题应该服从某个概率分布,这个分布称为参数的先验分布,从概率论角度来看可以有很多种模型被选择,但前文已经提及过,这种生成模式是一个多项式分布,因此参数的先验分布要选择多项式分布的先验分布,显然,就是Dirichlet分布,这也就是为什么LDA主题模型会用到Dirichlet分布的原因。
Unigram Model,这是最简单的一种语言模型,该模型认为上帝拥有一个装有无穷多个骰子的袋子,每个骰子有V个面,每个面对应一个词,各个面的概率不同。上帝从从袋子中抽出一个骰子,然后用这个骰子不断地抛,产生一篇文档。首先,主题服从一个参数先验分布,显然选择Dirichlet分布,因为主题的选择是一个多项式分布,其共轭先验分布为Dirichlet分布。

文档各个词出现的次数服从多项式分布,则其后验分布为:

期望为:

那么对于文档W而言,其产生的概率为:

PLSA Model,在Unigram Model中,忽略了文档可以同时拥有多个主题的情况,因此可以进行改进,假设上帝拥有两种类型的骰子,一类为Doc-Topic骰子,每个骰子有K个面,每个面代表一个主题,另一类为Topic-Word,每个骰子有V个面,每个面代表一个词。上帝拥有K个Topic-Word骰子,每个骰子有一个编号(1~K)。生成文档的过程为,投掷一个Doc-Topic骰子,得到一个编号为z的主题,选择K个Topic-Word骰子中,编号为z的骰子,投掷这个骰子,得到一个词。也就是说,上帝先从Doc-Topic骰子中确定主题,再从这个主题对应的骰子中确定一个词,反复进行,得到这篇文档。
使用EM算法进行模型参数估计,似然函数为:

这里最终结果的第一项,当文档确定时,n(di)即第i篇文档的word数量也就确定了,因此可以当做是一个常量,最大化第二项即可。
引入Q为zk的概率分布

这里用到了Jensen不等式,当Qk(zk)=p(zk | wj , di)时取到等号,这里是E-step
然后就是一个最优化问题了,使用拉格朗日乘子法

解得,这里就是M-step,更新变量

重复E-step和M-step,直到概率值收敛,这就是PLSA模型
LDA Model,PLSA模型还能够改进,例如上帝可以有多个Doc-Topic骰子,也可以不用固定用K个Topic-Word骰子。LDA Model的规则是,上帝先随机抽取一个Doc-Topic骰子,重复投掷,获得文档中每个词的topic,然后对每个topic,再投掷Topic-Word骰子,获得主题下的词。
语料中主题的概率、词的概率和联合概率分布如下:(推导和Unigram Model是一样的)

但实际过程中,这个参数估计需要应用到Gibbs采样,Gibbs采样放到后面另外一篇介绍马氏链的文章里,因为Gibbs采样离不开马尔科夫链、MCMC采样等先导知识,这些在这里关系不大。
总结来说,LDA主题模型是使用了两个Dirichlet分布,首先第一个Dirichlet分布α生成一个主题的多项式分布θ,然后第二个Dirichlet分布β生成主题对应词的多项式分布φ,由词和主题的联合概率分布生成词语w,然后如此反复。最终,一个LDA模型的训练过程,就是得到最优的Dirichlet分布α和β的过程。