![9d15158601792d991916e9e72cb2b5a9.png](https://i-blog.csdnimg.cn/blog_migrate/780fe802b34c4fa1471b40cfabfbbe24.jpeg)
本文参考《LDA数学八卦》,想获得此书,关注我,并在微信后台回复“LDA”,资源送给你。请帮忙分享给你的朋友喔!
1. LDA主题模型想要完成什么任务
我们设有20个主题,LDA主题模型的目标是为每一篇文章找到一个20维的向量,向量中的20个值代表着这篇文章属于某一个主题的概率大小。是一个类似于聚类的操作。
2. 在LDA主题模型下,一篇文章是怎么生成的
在LDA主题模型中,文章的生成有三个要素【词语,主题,文章】,词语和主题是多对多的关系,每个词语都可能代表着多个主题,每个主题下也有多个代表的词语;主题和文章也是多对多的关系,每个主题都对应着多篇文章,每篇文章也可能有多个主题。
在LDA主题模型下,一篇文章由词语的序列组成。首先以一定概率选择一个主题,其次以一定概率在这个主题中选择一个词。如果一篇文章由1000个词组成,那么就把上述方式重复1000遍,就能组成这篇文章。那么值得注意的是,以一定概率选择一个主题是服从多项式分布的,而多项式分布的参数是服从 Dirichlet分布的。以一定概率在特定主题中选择一个词也是服从多项式分布的,多项式分布的参数是服从Dirichlet分布的。为什么呢?因为Dirichlet分布是多项式分布的共轭分布,也就是说由贝叶斯估计得到的后验分布仍然是Dirichlet分布。
3. LDA主题模型如何求解参数
- Gibbs采样
- 变分推断EM算法
4. Gibbs采样训练流程
- 选择合适的主题数 K,选择合适的超参数 α, β
- 对于语料库中每一篇文档的每一个词,随机的赋予一个主题编号 z
- 重新扫描语料库,对于每一个词,利用Gibbs采样公式更新它的topic编号,并更新语料库中该词的编号
- 重复第三步中基于坐标轴轮换的Gibbs采样,直到Gibbs采样收敛。
- 统计语料库中各个文档各个词的主题,得到文档主题分布;然后统计语料库中各个主题词的分布,得到主题与词的分布。
5. Gibbs采样预测流程
- 对当前文档的每一个词,随机的赋予一个主题编号z
- 重新扫描当前文档,对于每一个词,利用Gibbs采样算法更新它的topic编号
- 重复第二步的基于坐标轴轮换的Gibbs采样,直到Gibbs采样收敛
- 统计文档中各个词的主题,得到该文档主题分布。
6. 什么是采样
统计模拟中有一个重要的问题就是给定一个概率分布p(x),我们如何在计算机中生成它的样本。一般来说均匀分布是比较容易生成的,我们程序里所生成的随机数就是用线性同余发生器产生的伪随机数。
但是很多概率分布我们无法简单的找到一种算法来进行采样,所以就需要一些更加复杂的随机模拟方法来生成样本。
常用的采样方法有MCMC(Markov Chain Monte Carlo 马尔科夫链蒙特卡洛方法),Gibbs Sampling(Gibbs采样)
6.1 MCMC
MCMC的核心是马氏链的平稳分布。我们假设现在有【上等马,中等马,下等马】三种马,它们出现的概率分别是【0.1,0.7,0.2】,而且有一个状态转移矩阵,告诉我们上等马的后代有多大的概率繁衍出【上等马,中等马,下等马】。
我们会发现,给定转态状态矩阵之后,最后【上等马,中等马,下等马】的概率分布会收敛,不再改变,比如收敛到【0.2,0.6,0.2】,且不受初始概率影响,只于状态转移矩阵有关。
那么我们想到,如果我们能构造一个状态转移矩阵为P的马氏链,使得该马氏链的平稳分布恰好是p(x),那么我们从任意一个初始状态
细致平稳条件: 如果非周期马氏链的转移矩阵和分布
满足下式,且对任意
都成立,那么
是马氏链的平稳分布,下式被称为细致平稳条件。
![]()
我们引入一个接受率
MCMC采样的过程:
- 首先随机初始化初始状态
(假设是三维)
- 然后按照状态转移矩阵,采样
,
~
- 接着从均匀分布采样u,若
,那么就接受转移;否则不接受转移,原地踏步
- 收敛之后的采样就是满足要求的。
因为
6.2 Gibbs Sampling
MCMC采样和M-H采样存在两个问题:
- 对于高维的情形,由于接受率
的存在,所以效率并没有很高,那是否能找到一个转移矩阵Q使接受率为1呢
- 有可能我们采样了上百万次马尔可夫链还没有收敛,也就是上面这个n1要非常非常的大,这让人难以接受
Gibbs采样的过程:
- 首先随机初始化初始状态
(假设是三维)
- 然后按照条件概率,采样
,
~
- 采样
,
~
- 采样
,
~
- 采样得到的数据就是满足要求的
我们发现,Gibbs采样没有接受率的限制也无需等到马氏链收敛。,它与MCMC在采样流程上的区别是它是每个维度依次采样的。
为什么Gibbs采样没有接受率的限制,因为在这条平行于y轴的直线上,如果使用条件分布
作为任何两个点之间的转移概率,那么任何两个点之间的转移满足细致平稳条件。
7. LDA 中主题数目如何确定?
在 LDA 中,主题的数目没有一个固定的最优解。模型训练时,需要事先设置主题数,训练人员需要根据训练出来的结果,手动调参,有优化主题数目,进而优化文本分类结果。
关注微信公众号“算法岗从零到无穷”,微信后台回复“LDA”,《LDA数学八卦》送给你!
![657d304283678e32e9e5b983f6b8a677.gif](https://i-blog.csdnimg.cn/blog_migrate/9416d79a80bafd36d0007ab19364ca22.gif)