文章目录
1. LDA模型是什么
LDA可以分为以下5个步骤:
- 一个函数:gamma函数。
- 四个分布:二项分布、多项分布、beta分布、Dirichlet分布。
- 一个概念和一个理念:共轭先验和贝叶斯框架。
- 两个模型:pLSA、LDA。
- 一个采样:Gibbs采样
关于LDA有两种含义,一种是线性判别分析(Linear Discriminant Analysis),一种是概率主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),本文讲后者。
按照wiki上的介绍,LDA由Blei, David M.、Ng, Andrew Y.、Jordan于2003年提出,是一种主题模型,它可以将文档集 中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出它们的主题(分布)出来后,便可以根据主题(分布)进行主题聚类或文本分类。同时,它是一种典型的词袋模型,即一篇文档是由一组词构成,词与词之间没有先后顺序的关系。此外,一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。
人类是怎么生成文档的呢?首先先列出几个主题,然后以一定的概率选择主题,以一定的概率选择这个主题包含的词汇,最终组合成一篇文章。如下图所示(其中不同颜色的词语分别对应上图中不同主题下的词)。
那么LDA就是跟这个反过来:根据给定的一篇文档,反推其主题分布。
在LDA模型中,一篇文档生成的方式如下:
- 从狄利克雷分布 α \alpha α 中取样生成文档 i 的主题分布 θ i \theta_i θi。
- 从主题的多项式分布 θ i \theta_i θi 中取样生成文档i第 j 个词的主题 z i , j z_{i,j} zi,j。
- 从狄利克雷分布 β \beta β 中取样生成主题 z i , j z_{i,j} zi,j 对应的词语分布 ϕ z i , j \phi_{z_{i,j}} ϕzi,j。
- 从词语的多项式分布 ϕ z i , j \phi_{z_{i,j}} ϕzi,j 中采样最终生成词语 w i , j w_{i,j} wi,j。
其中,类似Beta分布是二项式分布的共轭先验概率分布,而狄利克雷分布(Dirichlet分布)是多项式分布的共轭先验概率分布。此外,LDA的图模型结构如下图所示(类似贝叶斯网络结构):
1.1 5个分布的理解
先解释一下以上出现的概念。
-
二项分布(Binomial distribution)
二项分布是从伯努利分布推进的。伯努利分布,又称两点分布或0-1分布,是一个离散型的随机分布,其中的随机变量只有两类取值,非正即负{+,-}。而二项分布即重复n次的伯努利试验,记为 X ∼ b ( n , p ) X\sim_{}b(n,p) X∼b(n,p)。简言之,只做一次实验,是伯努利分布,重复做了n次,是二项分布。
-
多项分布
是二项分布扩展到多维的情况。多项分布是指单次试验中的随机变量的取值不再是0-1的,而是有多种离散值可能(1,2,3…,k)。比如投掷6个面的骰子实验,N次实验结果服从K=6的多项分布。其中:
∑ i = 1 k p i = 1 , p i > 0 \sum_{i=1}^{k}p_i=1,p_i>0 i=1∑kpi=1,pi>0
-
共轭先验分布
在贝叶斯统计中,如果后验分布与先验分布属于同类,则先验分布与后验分布被称为共轭分布,而先验分布被称为似然函数的共轭先验。
-
Beta分布
二项分布的共轭先验分布。给定参数 α > 0 \alpha>0 α>0 和 β > 0 \beta>0 β>0,取值范围为[0,1]的随机变量 x 的概率密度函数:
f ( x ; α , β ) = 1 B ( α , β ) x α − 1 ( 1 − x ) β − 1 f(x;\alpha,\beta)=\frac{1}{B(\alpha,\beta)}x^{\alpha-1}(1-x)^{\beta-1} f(x;α,β)=B(α,β)1xα−1(1−x)β−1
其中:
1 B ( α , β ) = Γ ( α + β ) Γ ( α ) Γ ( β ) \frac{1}{B(\alpha,\beta)}=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} B(α,β)1=Γ(α)Γ(β)Γ(α+β)
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t \Gamma(z)=\int_{0}^{\infty}t^{z-1}e^{-t}dt Γ(z)=∫0∞tz−1e−tdt
注:这便是所谓的gamma函数,下文会具体阐述。
-
狄利克雷分布
是beta分布在高维度上的推广。Dirichlet分布的的密度函数形式跟beta分布的密度函数如出一辙:
f ( x 1 , x 2 , . . . , x k ; α 1 , α 2 , . . . , α k ) = 1 B ( α ) ∏ i = 1 k