LDA系列的讲解分多个博文给出,主要大纲如下:
- LDA相关的基础知识
- 什么是共轭
- multinomial分布
- Dirichlet分布
- LDA in text
- LAD的概率图模型
- LDA的参数推导
- 伪代码
- GibbsLDA++-0.2源码分析
- Python实现GibbsLDA
- 参考资料
LDA相关的基础知识
LDA是Blei于2002年发表的概率语言模型,被广泛应用于主题建模中,通过对文本进行潜语义分析,发现文本在主题上的概率。通俗点说,给定一堆文档集合documents,每篇document由多个word表示,则LDA的作用就是找到document在topic上的分布情况,以及word在topic上的分布情况,而这些分布都服从某种概率分布,这样,可以解决一词多义这种情况,比如说apple这个词,在“电子产品”和“水果”这两个主题上都有概率,而且可能差不多。
首先,我们先来了解几个知识。
什么是共轭
以二维情况下为例,二项分布的参数p选取的先验分布是Beta分布时,以p为参数的二项分布用贝叶斯估计后得到的仍是Beta分布,所以二项分布和Beta分布共轭。
① p的先验:f(p)~Beta(p|α,β)
② 数据的知识:例如抛硬币,m次正面,n次负面,m~B(m+n,p)
③ p的后验:f(p|m,n)~Beta(p|α+m,β+n)
Note
- Dirichlet分布是Multinomial分布的先验分布
- 文本模型中,document-topic和topic-word都服从Multinomial分布,其先验选取Dirichlet分布
Multinomial分布和Dirichlet分布
Multinomial分布的分布律如下: