潜在狄利克雷分配(LDA)基础


潜在狄利克雷分配(latnet Dirichlet allocation, LDA)模型是文本集合的生成概率模型。假设每个文本由话题的一个多项分布表示,每个话题由单词的一个多项分布表示,特别假设文本的话题分布的先验分布是狄利克雷分布,话题的单词分布的先验分布也是狄利克雷分布。

狄利克雷分布

1、多项分布

假设重复进行nn次独立随机试验,每次试验可能出现的结果有kk种,第ii种结果出现的概率为pip_i,第ii种结果出现的次数为nin_i,随机变量X=(X1,X2,,Xk)X=(X_1,X_2,\ldots,X_k) 表示试验所有可能的结果的次数,XiX_i表示第ii种结果出现的次数。那么随机变量X服从多项分布:
P(X1=n1,X2=n2,,Xk=nk)=n!n1!n2!nk!p1n1p2n2pknk P(X_1=n_1,X_2=n_2,\ldots,X_k = n_k) = \frac{n!}{n_1!n_2!\ldots n_k!} p_1^{n_1} p_2^{n_2}\ldots p_k^{n_k}
记作:XMult(n,p)X \sim Mult(n,p)

其中:i=1kpi=1,i=1kni=n\sum_{i=1}^k p_i =1, \sum_{i=1}^k n_i =n

2、狄利克雷分布

多元连续随机变量θ=(θ1,θ2,,θk)\theta = (\theta_1,\theta_2,\ldots,\theta_k)的概率密度为:
P(θα)=Γ(i=1Kαi)i=1KΓ(αi)i=1Kpkαi1 P(\theta| \alpha) = \frac{\Gamma(\sum\limits_{i=1}^K\alpha_i)}{\prod_{i=1}^K\Gamma(\alpha_i)}\prod_{i=1}^Kp_k^{\alpha_i-1}
其中i=1kθi=1,θi0,α=(α1,α2,,αk),αi0\sum_{i=1}^k \theta_i =1,\theta_i \geq 0, \alpha=(\alpha_1,\alpha_2,\ldots,\alpha_k), \alpha_i \geq 0。则称随机变量θ\theta 服从参数为α\alpha的狄利克雷分布,记作θDir(α)\theta \sim Dir(\alpha)

其中:
Γ(s)=0xs1exdxs>0 \Gamma(s) = \int_{0}^\infty x^{s-1}e^{-x}dx \qquad s>0
性质:(1)狄利克雷分布属于指数分布族;(2)狄利克雷分布是多项分布的共轭先验。

共轭先验的定义:如果后验P(yx)P(y|x)与先验P(y)P(y)分布属于同类,则先验分布与后验分布称为共轭分布,先验分布称为共轭先验。

李航统计学习方法(第二版)P389页证明了如下结论:

多项分布的先验分布和后验分布都是狄利克雷分布,所以,狄利克雷分布是多项分布的共轭先验;但二者参数不同,狄利克雷后验分布的参数等于狄利克雷先验分布参数α=(α1,α2,,αk)\alpha=(\alpha_1,\alpha_2,\ldots,\alpha_k) 加上多项分布的观测计数n=(n1,n2,,nk)n=(n_1,n_2,\ldots,n_k)

LDA模型

基本想法

LDA文本生成过程如下图所示:

潜在狄利克雷分配(LDA)基础

(1)生成每一个话题的单词分布:基于单词分布的先验分布(狄利克雷分布)生成多个单词分布,即决定多个话题内容;

(2)生成每一个文本的话题分布:基于话题分布的先验分布(狄利克雷分布)生成多个话题分布,即决定多个文本内容;

(3)基于每一个话题分布生成话题序列,针对每一个话题,基于话题的单词分布生成单词,整体构成一个单词序列,即生成文本,重复这个过程生成所有文本。

这个过程中,文本的单词序列是观测变量,文本的话题序列,文本的话题分布和话题的单词分布都是隐变量。利用LDA进行话题分析,就是对给定文本集合,学习到每个文本的话题分布,以及每个话题的单词分布

模型定义

VV个单词集合W={w1,,wv,,wV}W=\{w_1,\ldots,w_v,\ldots,w_V\}MM个文本的集合D={w1,,wm,,wM}D=\{\mathbf w_1,\ldots,\mathbf w_m,\ldots, \mathbf w_M \},文本wm\mathbf w_m 的单词(共NmN_m个单词)序列wm=(wm1,,wmn,,wmNm)\mathbf w_m = (w_{m1},\ldots,w_{mn},\ldots,w_{mN_m})kk个话题的集合Z={z1,,zk,,zK}Z=\{z_1,\ldots,z_k,\ldots,z_K\}

生成过程如下:

(1)生成话题的单词分布

随机生成K个话题的单词分布:按照狄利克雷分布Dir(β)Dir(\beta) 随机生成一个参数向量φk=(φk1,φk2,,φkV),φkDir(β)\varphi_k = (\varphi_{k1},\varphi_{k2},\ldots,\varphi_{kV}), \varphi_k \sim Dir(\beta)φkV\varphi_{kV}表示话题zkz_k 生成单词wvw_v的概率,φk\varphi_{k}作为话题zkz_k的单词分布P(wzk)P(w|z_k)

(2)生成文本的话题分布

随机生成MM个文本的话题分布:按照狄利克雷分布Dir(α)Dir(\alpha) 随机生成一个参数向量θm=(θm1,θm2,,θmk),θmDir(α)\theta_m = (\theta_{m1},\theta_{m2},\ldots,\theta_{mk}), \theta_m \sim Dir(\alpha)θmk\theta_{mk}表示文本 wm\mathbf w_m 生成话题zkz_k的概率,θm\theta_m作为文本wm\mathbf w_m的话题分布P(zwm)P(z|\mathbf w_m)

(3)生成文本的单词序列

随机生成MM个文本的NmN_m个单词。文本 wm,(m=1,2,...,M)\mathbf w_m,(m= 1,2,... ,M) 的单词wmn(n=1,2,..,Nm)w_{mn} (n=1,2,.. ,Nm)的生成过程如下:

(3-1)首先按照多项分布Mult(θm)Mult(\theta_m)随机生成-一个话题zmnz_{mn}zmnMult(θm)z_{mn} \sim Mult(\theta_m)

(3-2)然后按照多项分布Mult(φzmn)Mult(\varphi_{z_{mn}})随机生成-一个单词wmn,wmnMult(φzmn)w_{mn}, w_{mn} \sim Mult(\varphi_{z_{mn}}),文本wm\mathbf w_m本身是单词序列wm=(wm1,,wmn,,wmNm)\mathbf w_m = (w_{m1},\ldots,w_{mn},\ldots,w_{mN_m}),对应着隐式的话题序列Z={zm1,zm2,,zmNm}Z=\{z_{m1},z_{m2},\ldots,z_{mN_m}\}

上述过程对应的概率图模型如下:

潜在狄利克雷分配(LDA)基础

展开图模型如下:

潜在狄利克雷分配(LDA)基础
注:LDA的文本生成过程中,假定话题个数KK给定,实际通常通过实验选定。狄利克雷分布的超参数aβa和β通常也是事先给定的。在没有其他先验知识的情况下,可以假设向量a和β的所有分量均为1,这时的文本的话题分布θm\theta_m是对称的,话题的单词分布φk\varphi_k也是对称的。

LDA 与 PLSA 异同

同:两者都假设话题是单词的多项分布,文本是话题的多项分布。

异:(1)在文本生成过程中,LDA使用狄利克雷分布作为先验分布,而PLSA不使用先验分布(或者说假设先验分布是均匀分布);使用先验概率分布,可以防止学习过程中产生的过拟合 。

(2)学习过程LDA基于贝叶斯学习,而PLSA基于极大似然估计。