前言
(LDA)是Blei等人在2002提出的生成式主题模型。被广泛用于文本数据挖掘、图像处理、生物信息处理等领域。这篇文章主要讲讲其中主要的数学推导。
几种常见的分布
- 多项分布
多项分布(multinomial distribution)是一种多元离散随机变量的概率分布,是二项分布(binomial distribution)的扩展。假设重复进行n次独立随机试验,每次试验可能出现的结果有k种,第i种结果出现的概率为pi,第i种结果出现的次数为ni,如果用随机变量X=(X1,X2,...Xk)表示试验所有可能结果的次数,其中Xi表示第i种结果出现的次数,那么随机变量X服从多项分布,X的概率密度函数为:
P(X1=n1,X2=n2,...Xk=nk)=n1!n2!...nk!n!p1n1p2n2...pknk
当试验的次数n为1时,多项分布变成类别分布(categorical distribution)类别分布表示试验可能出现的k种结果的概率
- Beta分布
二项分布和Beta分布类似,不同之处在于,二项分布表示离散型数据,而Beta分布表示连续性数据。X为连续型随机变量,x∈[0,1],其概率密度函数为:
f(x)=⎩⎪⎨⎪⎧B(s,t)1xs−1(1−x)t−1,0≤x<30,其他
其中s>0和t>0,Beta函数的定义如下:
B(s,t)=∫01xs−1(1−x)t−1dx
当s,t是自然数时,
B(s,t)=(s+t−1)!(s−1)!(t−1)!
- 狄利克雷分布
狄利克雷分布(Dirichlet distribution)是一种多元连续随机变量的概率分布,是贝塔分布(beta distribution)的扩展。在贝叶斯学习中,狄利克雷分布常作为多项分布的先验分布使用。多元连续型随机变量θ=(θ1,θ2,...θk)的概率密度函数为:
p(θ∣α)=∏i=1kΓ(αi)Γ(∑i=1kαi)i=1∏kθiαi−1
其中∑i=1kθi=1,θi>=0,α=(α1,α2,...αk),αi>0,i=1,2,...,k,则称θ服从参数为α的狄利克雷分布,记作θ~Dir(α)。其中Γ(s)是伽马函数,定义为:
Γ(s)=∫0∞xs−1e−xdx,s>0
具有性质:Γ(s+1)=sΓ(s),当s是自然数时,Γ(s+1)=s!。设B(α)为规范化因子,称为多元Beta函数,B(α)=Γ(∑i=1kαi)∏i=1kΓ(αi),相应的狄利克雷分布的概率密度函数可以这么写:p(θ∣α)=B(α)1∏i=1kθiαi−1,此外多元Beta的积分表示为:B(α)=∫∏i=1kθiαi−1dx,下图给出了几种概率分布之间的关系:
- 共轭先验
贝叶斯学习中常使用共扼分布,如果后验分布与先验分布属于同类,则先验分布与后验分布称为共扼分布(conjugate distributions),先验分布称为共扼先验(conjugate prior)。如果多项分布的先验分布是狄利克雷分布,则其后验分布也为狄利克雷分布,两者构成共扼分布作为先验分布的狄利克雷分布的参数又称为超参数,使用共扼分布的好处是便于从先验分布计算后验分布。下面举个例子:
设W=(w1,w2,...wk)是由k个元素组成的集合,随机变量X服从多项分布X~Mult(n,θ),n=(n1,n2,...nk),θ=(θ1,θ2,...,θk);将样本数据表示为D,目标是计算在样本数据D给定条件下参数 θ的后验概率。
假设随机变量θ服从狄利克雷分布p(θ∣α),α=(α1,α2,...,αk),则θ的先验分布为:
p(θ∣α)=∏i=1kΓ(αi)Γ(∑i=1kαi)i=1∏kθiαi−1=B(α)1i=1∏kθiαi−1
根据贝叶斯规则,在给定样本数据D和参数α条件下,θ的后验概率分布是 :
p(θ∣D,α)=p(D∣α)p(D∣θ)p(θ∣α)=∫∏i=1kθiniB(α)1θiαi−1dθ∏i=1kθiniB(α)1θiαi−1=B(α+n)1i=1∏kθiαi+ni−1=Dir(θ∣α+n)
可以看出先验分布和后验分布都是狄利克雷分布,两者有不同的参数,所以狄利克雷分布是多项分布的共扼先验,狄利克雷后验分布的参数等于狄利克雷先验分布参数加上多项分布的观测n=(n1,n2,...,nk)。
狄利克雷分布模型
- 基本想法
潜在狄利克雷分配(LDA)是文本集合的生成概率模型;模型假设话题由单词的多项分布表示,文本由话题的多项分布表示,单词分布和话题分布的先验分布都是狄利克雷分布;文本内容的不同是由于它们的话题分布不同。
LDA模型表示文本集合的自动生成过程:首先,基于单词分布的先验分布(狄利克雷分布)生成多个单词分布,即决定多个话题内容;之后,基于话题分布的先验分布(狄利克雷分布)生成多个话题分布,即决定多个文本内容,然后,基于每一个话题分布生成话题序列,针对每一个话题,基于话题的单词分布生成单词,整体构成一个单词序列,即生成文本,重复这个过程生成所有文本。下图刻画了这一过程:
LDA模型是概率图模型,其特点是以狄利克雷分布为多项分布的先验分布;学习就是给定文本集合,通过后验概率分布的估计,推断模型的所有参数;利用LDA进行 话题分析,就是对给定文本集合,学习到每个文本的话题分布,以及每个话题的单词分布。
可以认为LDA是PLSA(概率潜在语义分析)的扩展;相同点是两者都假设话题是单词的多项分布,文本是话题的多项分布;不同点是LDA使用狄利克雷分布作为先验分布,而PLSA不使用先验分布(或者说假设先验分布是均匀分布);学习过程LDA基于贝叶斯学习,而PLSA基于极大似然估计;LDA的优点是,使用先验概率分布,可以防止学习过程中产生的过拟合(over-fitting)。
- 模型要素
潜在狄利克雷分布(LDA)使用三个集合:单词集合W=(w1,...,wv,...,wV),文本集合 D=(w1,...,wm,...,wM),其中 wm是一个单词序列,wm=(wm1,...,wmn,...,wmN),话题集合Z=(z1,...,zk,...,zK)。
每一个话题 zk由一个单词的条件概率分布 p(w∣zk) 决定,分布p(w∣zk)服从多项分布(严格意义上类别分布),其参数为φk。参数φk服从狄利克雷分布(先验分布),其超参数为 β。参数φk是一个V维向量φk=(φk1,φk2,...,φkV),其中\varphi_{kv}表示话题zk生成单词wv的概率。所有话题的参数向量构成一个 K x V 矩阵,超参数β也是一个V维向量。每一个文本wm 由一个话题的条件概率分布p(z∣wm)决定,分布p(z∣wm)服从多项分布(严格意义上类别分布),其参数为θm,参数θm服从狄利克雷分布(先验分布),其超参数为α,
参数θm是一个K维向量θm=(θm1,θm2,...,θmK),其中\theta_{mk}表示文本wm生成话题zk的概率,所有文本的参数向量构成一个 M x K 矩阵,超参数α也是一个K维向量,每一个文本wm 中的每一个单词wmn由该文本的话题分布p(z∣wm) 以及所有话题的单词分布p(w∣zk)决定
- 生成过程
给定单词集合W(V个单词),文本集合D(M个文本),话题集合Z(K个话题),狄利克雷分布的超参数α和β。
生成话题的单词分布,随机生成K个话题的单词分布,按照狄利克雷分布Dir(β)随机生成一个参数向量φk,作为话题zk的单词分布p(w∣zk)。
生成文本的话题分布,随机生成M个文本的话题分布,按照狄利克雷分布Dir(α)随机生成一个参数向量θm,作为文本wm的话题分布p(z∣wm)。
生成文本的单词序列,随机生成M个文本的Nm个单词,首先按照多项分布Mult(θm)随机生成一个话题zmn, 然后按照多项分布Mult(φzmn)随机生成一个单词wmn。
文本wm本身是单词序列wm=(wm1,wm2,...,wmNm),对应着隐式的话题序列zm=(zm1,zm2,...,zmNm)。
LDA的文本生成过程中,假定话题个数K给定,实际通常通过实验选定,狄利克雷分布的超参数α和β通常也是事先给定的,在没有其他先验知识的情况下,可以假设向量α和 β的所有分量均为1,这时的文本的话题分布是对称的,话题的单词分布也是对称的。
LDA的吉布斯抽样算法
潜在狄利克雷分配(LDA)的学习(参数估计)是一个复杂的最优化问题,很难精确求解,只能近似求解;常用的近似求解方法有吉布斯抽样(Gibbs sampling)和变分推理(variational inference)。
- 基本想法
为了估计多元随机变量X的联合分布p(x),吉布斯抽样法选择x的一个分量,固定其他分量, 按照其条件概率分布进行随机抽样,依次循环对每一个分量执行这个操作,得到联合分布p(x)的一个随机样本,重复这个过程,在燃烧期之后,得到联合概率分布p(x)的样本集合,LDA模型的学习通常采用收缩的吉布斯抽(collapsed Gibbs sampling)方法。
通过对隐变量θ和φ积分,得到边缘概率分布p(w,z∣α,β),其中变量w可观测,变量z不可观测。对后验概率分布p(z∣w,α,β)进行吉布斯抽样,得到分布的样本集合p(z∣w,α,β),再利用这个样本集合对参数θ和φ进行估计,最终得到LDA模型p(w,z,θ,φ∣α,β)的所有参数估计。
根据上面的分析,问题转化为对后验概率分布p(z∣w,α,β)的吉布斯抽样,该分布表示在所有文本的单词序列给定条件下所有可能话题序列的条件概率。
结束语
本人大二学生一枚,学识尚浅,不喜勿喷,希望今日能抛砖引玉,请各位大佬一定不吝赐教!!!