1.LDA是主题生成模型,由三层贝叶斯模型构成。
三层贝叶斯包括:文档-主题、主题-词、前两者的联合分布。
2.对每篇文章(或者每个topic)而言,文章-主题属于多项式分布。
而多篇文章组成的多项式分布并不属于同一个多项式分布(参数不同)。由于主题是属于具体的每篇文章的,所以不能使用类似NB的策略。
多项式分布和Dirichlet分布属于共轭分布。因此多篇文档的分布可以构成一个分布:dirichlet分布。
因此,可以得到文档-主题的dirichlet分布、主题-词的dirichlet分布。因此文档和词的分布可以由前面两种dirichlet分布的联合分布获得。
3.现在我们得到了最终的一个分布公式。
由于训练样本比较大,通常情况下,我们都是选择对样本进行抽样进行优化计算过程。
抽样由马尔科夫链蒙特卡洛抽样方法,其核心是MH算法。而Gibbs sampling是该算法的特例。
吉布斯采用通过计算边缘分布,一步步的得到最终样本。
有了上述样本之后,便可以进行计算。
4.由于上述分布公式过于复杂
我们没必要求出精确的参数值(即使算出具体的参数值,也可能出现过拟合的现象。这也是贝叶斯派相对频率派的区别),也很难算出具体的值。
这里面就涉及到EM算法(期望最大值算法)。
1.E步:
我们通过计算类似似然函数的方法,求解得到一个简化的函数,Q函数(正态分布的右尾函数)。
2.M步:
通过对上述获得的Q函数进行优化,计算出最终的参数值。即可得到两个dirichlet分布的参数。
这里有个问题:为什么一定可以求解得到参数?
因为文档-主题、主题-词从事实上来讲,是有一个分类的(这也是说为什么人可以进行打标,因为我们认为谋篇文章就属于某一类、某个词以多大可能性属于某主题)
5.通过上述过程,我们计算得到最终的两个参数:θ、fai
上述的文档-主题是训练样本中辅助我们对生成主题的参数,因此θ只是在训练集中有效。最终结果