LDA主题模型
LDA是一种基于概率模型的主题模型算法(generative probabilistic model),用来识别大规模文档集或者语料库中隐含的主题信息。对于语料库中的每篇文档,LDA定义了如下生成过程:
- 对每一篇文档,从主题分布中抽一个主题
- 从上述被抽到的主题对应的单词分布中抽一个单词
- 重复上述过程直至遍历文档中的每个词
LDA认为每篇文档是多个主题混合而成,而每个主题可以由多个词的概率表征。
背景知识
共轭前驱分布(conjugate prior)
In Bayesian probability theory, if the posterior distribution p(θ|x) p ( θ | x ) are in the same family as the prior distribution p(θ) p ( θ ) , the prior and the posterior are then called conjugate distributions, and the prior is called a conjugate prior for the likelihood function.
如果后验分布和先验分布同属于一个函数族,那么后验和先验称为共轭分布,先验被称为似然函数的共轭先验分布。Beta分布是二项分布的共轭先验分布,Dirichlet分布是多项分布的共轭先验分布。
根据贝叶斯规则,后验分布=似然函数*先验分布:
其中 p(x|θ) p ( x | θ ) 为likelihood, p(θ) p ( θ ) 为prior belief, p(x) p ( x ) 为evidence。
Dirichlet Distribution
Dirichlet分布是描述 k(k≥2) k ( k ≥ 2 ) 个变量 X1,X2,⋯,Xk X 1 , X 2 , ⋯ , X k 的概率分布,其中 xi∈(0,1),∑ki=1xi=1 x i ∈ ( 0 , 1 ) , ∑ i = 1 k x i = 1 。Dirichlet分布的参数为 α⃗ ={α1,α2,⋯,αk} α → = { α 1 , α 2 , ⋯ , α k } ,其中 αi>0 α i > 0 (不需要是整数,只需要是正实数即可)。
- αi α i 越大,赋予 Xi X i 的权重就越多( ∑ixi=1 ∑ i x i = 1 )
- 当 αi α i 相等的时候,分布是对称的
- 当 αi<1 α i < 1 时,相当于一个anti-weight把 xi x i 推到一些极点(push away toward extremes)
- 当 αi>1 α i > 1 时,会使得 xi x i 聚集在中心值
α1=⋯=αk=1 α 1 = ⋯ = α k = 1 时,均匀分布
下图所展示的是三元Dirichlet分布,参数分别为:
1.
α1=α2=α3=1
α
1
=
α
2
=
α
3
=
1
2.
α1=α2=α3=10
α
1
=
α
2
=
α
3
=
10
3.
α1=1,α2=10,α3=5
α
1
=
1
,
α
2
=
10
,
α
3
=
5
4.
α1=α2=α3=0.2
α
1
=
α
2
=
α
3
=
0.2
LDA
在LDA模型中,一篇文档生成的方式如下:
1. 从狄利克雷分布 α⃗ α → 中取样生成文档 m m 的主题分布
2. 从主题的多项式分布 θ⃗ m θ → m 中取样生成文档 m m 第 个词的主题 zm,n z m , n
3. 从 K K 个topic-word的狄利克雷分布中,选择的Dirichlet 分布 ϕ⃗ k ϕ → k ,取样生成主题对应的词语分布
4. 从词语的多项式分布中采样最终生成词语 wm,n w m , n
通俗理解LDA
LDA算法漫游指南
What exactly is the alpha in the Dirichlet distribution?
LDA数学八卦