LDA的全称是Latent Dirichlet allocation
LDA算法可以根据给定的文本集合以及预先指定的主题个数,对文本进行主题分类,并给出每个类别下的主题关键词。
理解LDA算法的关键是共轭先验分布,LDA利用了共轭先验分布的特性:经过Bayes推断之后的后验分布仍然和先验分布的形式相同,这意味着可以利用一批数据来更新先验分布P0的参数,使其变成服从同样分布的后验分布P1,并可以将P1作为下一批数据的先验分布。这样,我们就可以使用解析的方法进行机器学习了。
用公式来解释:
其中
如果制定了数据生成过程的概率分布,以及参数模型的先验分布,我们可以推导出后验概率分布服从的概率分布模型。如果先验分布和后验分布可以使用同一种概率分布模型来表示,则称
共轭分布描述的是概率分布之间的关系。比如高斯分布是高斯分布的先验分布,Beta分布是二项分布的先验分布。这里有个小技巧,为了证明上述两个例子,无须完整计算Bayes后验分布的表达形式,即可得出结论:
如何理解共轭先验分布?
我们可以将先验分布看做机器学习中的模型(比如Beta分布),那么Beta分布中的参数a,b可以作为模型状态的表示。每次有新的训练数据(样本观测结果),我们就可以更新模型参数(根据数据将先验分布转换为后验分布),以Beta分布为例,如果数据生成过程服从二项分布,参数a,b根据数据更新后的值为a+s,b+f,其中s和f只依赖于训练数据。那么我们可以说模型得到了“训练”,训练的结果就是模型的状态(a,b)得到了更新。这个解释类似于维基百科【1】中的Dynamical system的解释。
更多细节可以参考文末给出的两个链接。
参考文献
1. https://en.wikipedia.org/wiki/Conjugate_prior
2.https://courses.engr.illinois.edu/cs598jhm/sp2010/Slides/Lecture02HO.pdf