机器学习之LDA

本文介绍了LDA(Latent Dirichlet Allocation)作为主题生成模型的工作原理。LDA由三层贝叶斯模型构成,涉及文档-主题、主题-词的分布。在训练过程中,利用Dirichlet分布和EM算法进行参数估计。最后,通过示例展示了如何求解P(词语|主题)和P(主题|文档),以理解和应用LDA模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

上述的文档-主题是训练样本中辅助我们对生成主题的参数,因此θ只是在训练集中有效。最终结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值