![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SOhVjYyI2YycTZ5UmNxkTM5kDZykzNxAjN4UTM1EDZ58CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
本文参考《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),那么我们从任意一个初始状态
出发沿着马氏链转移,得到一个转移序列
,如果马氏链在第n步已经收敛了,于是我们就得到了样本
,他们是满足概率分布p(x)的采样。
细致平稳条件: 如果非周期马氏链的转移矩阵和分布![]()
lda数学八卦_LDA主题模型详解(面试的问题都在里面) 满足下式,且对任意![]()
lda数学八卦_LDA主题模型详解(面试的问题都在里面) 都成立,那么![]()
lda数学八卦_LDA主题模型详解(面试的问题都在里面) 是马氏链的平稳分布,下式被称为细致平稳条件。![]()
lda数学八卦_LDA主题模型详解(面试的问题都在里面) ![]()
lda数学八卦_LDA主题模型详解(面试的问题都在里面)
我们引入一个接受率
,就可以把原来具有转移矩阵
的一个很普通的马氏链,改造成具有转移矩阵
的马氏链,而
恰好满足细致平稳条件,由此马氏链
的平稳分布就是p(x)。
MCMC采样的过程:
- 首先随机初始化初始状态 (假设是三维)
lda数学八卦_LDA主题模型详解(面试的问题都在里面) - 然后按照状态转移矩阵,采样 ,
lda数学八卦_LDA主题模型详解(面试的问题都在里面) ~lda数学八卦_LDA主题模型详解(面试的问题都在里面) lda数学八卦_LDA主题模型详解(面试的问题都在里面) - 接着从均匀分布采样u,若 ,那么就接受转移;否则不接受转移,原地踏步
lda数学八卦_LDA主题模型详解(面试的问题都在里面) - 收敛之后的采样就是满足要求的。
因为
可能偏小,所以在采样过程中马氏链容易原地踏步,所以会用在等式两边同时乘以一个数的方式扩大接受率。这就是M-H采样。
6.2 Gibbs Sampling
MCMC采样和M-H采样存在两个问题:
- 对于高维的情形,由于接受率 的存在,所以效率并没有很高,那是否能找到一个转移矩阵Q使接受率为1呢
lda数学八卦_LDA主题模型详解(面试的问题都在里面) - 有可能我们采样了上百万次马尔可夫链还没有收敛,也就是上面这个n1要非常非常的大,这让人难以接受
:
- 首先随机初始化初始状态 (假设是三维)
lda数学八卦_LDA主题模型详解(面试的问题都在里面) - 然后按照条件概率,采样 ,
lda数学八卦_LDA主题模型详解(面试的问题都在里面) ~lda数学八卦_LDA主题模型详解(面试的问题都在里面) lda数学八卦_LDA主题模型详解(面试的问题都在里面) - 采样 ,
lda数学八卦_LDA主题模型详解(面试的问题都在里面) ~lda数学八卦_LDA主题模型详解(面试的问题都在里面) lda数学八卦_LDA主题模型详解(面试的问题都在里面) - 采样 ,
lda数学八卦_LDA主题模型详解(面试的问题都在里面) ~lda数学八卦_LDA主题模型详解(面试的问题都在里面) lda数学八卦_LDA主题模型详解(面试的问题都在里面) - 采样得到的数据就是满足要求的
我们发现,Gibbs采样没有接受率的限制也无需等到马氏链收敛。,它与MCMC在采样流程上的区别是它是每个维度依次采样的。
为什么Gibbs采样没有接受率的限制 ,因为在这条平行于y轴的直线上,如果使用条件分布![]()
lda数学八卦_LDA主题模型详解(面试的问题都在里面) 作为任何两个点之间的转移概率,那么任何两个点之间的转移满足细致平稳条件。![]()
lda数学八卦_LDA主题模型详解(面试的问题都在里面)
7. LDA 中主题数目如何确定?
在 LDA 中,主题的数目没有一个固定的最优解。模型训练时,需要事先设置主题数,训练人员需要根据训练出来的结果,手动调参,有优化主题数目,进而优化文本分类结果。
关注微信公众号“算法岗从零到无穷”,微信后台回复“LDA”,《LDA数学八卦》送给你!