潜在狄利克雷分配(latnet Dirichlet allocation, LDA)模型是文本集合的生成概率模型。假设每个文本由话题的一个多项分布表示,每个话题由单词的一个多项分布表示,特别假设文本的话题分布的先验分布是狄利克雷分布,话题的单词分布的先验分布也是狄利克雷分布。
狄利克雷分布
1、多项分布
假设重复进行n次独立随机试验,每次试验可能出现的结果有k种,第i种结果出现的概率为pi,第i种结果出现的次数为ni,随机变量X=(X1,X2,…,Xk) 表示试验所有可能的结果的次数,Xi表示第i种结果出现的次数。那么随机变量X服从多项分布:
P(X1=n1,X2=n2,…,Xk=nk)=n1!n2!…nk!n!p1n1p2n2…pknk
记作:X∼Mult(n,p)。
其中:∑i=1kpi=1,∑i=1kni=n ,
2、狄利克雷分布
多元连续随机变量θ=(θ1,θ2,…,θk)的概率密度为:
P(θ∣α)=∏i=1KΓ(αi)Γ(i=1∑Kαi)i=1∏Kpkαi−1
其中∑i=1kθi=1,θi≥0,α=(α1,α2,…,αk),αi≥0。则称随机变量θ 服从参数为α的狄利克雷分布,记作θ∼Dir(α)。
其中:
Γ(s)=∫0∞xs−1e−xdxs>0
性质:(1)狄利克雷分布属于指数分布族;(2)狄利克雷分布是多项分布的共轭先验。
共轭先验的定义:如果后验P(y∣x)与先验P(y)分布属于同类,则先验分布与后验分布称为共轭分布,先验分布称为共轭先验。
李航统计学习方法(第二版)P389页证明了如下结论:
多项分布的先验分布和后验分布都是狄利克雷分布,所以,狄利克雷分布是多项分布的共轭先验;但二者参数不同,狄利克雷后验分布的参数等于狄利克雷先验分布参数α=(α1,α2,…,αk) 加上多项分布的观测计数n=(n1,n2,…,nk)。
LDA模型
基本想法
LDA文本生成过程如下图所示:

(1)生成每一个话题的单词分布:基于单词分布的先验分布(狄利克雷分布)生成多个单词分布,即决定多个话题内容;
(2)生成每一个文本的话题分布:基于话题分布的先验分布(狄利克雷分布)生成多个话题分布,即决定多个文本内容;
(3)基于每一个话题分布生成话题序列,针对每一个话题,基于话题的单词分布生成单词,整体构成一个单词序列,即生成文本,重复这个过程生成所有文本。
这个过程中,文本的单词序列是观测变量,文本的话题序列,文本的话题分布和话题的单词分布都是隐变量。利用LDA进行话题分析,就是对给定文本集合,学习到每个文本的话题分布,以及每个话题的单词分布。
模型定义
设V个单词集合W={w1,…,wv,…,wV},M个文本的集合D={w1,…,wm,…,wM},文本wm 的单词(共Nm个单词)序列wm=(wm1,…,wmn,…,wmNm) ,k个话题的集合Z={z1,…,zk,…,zK}。
生成过程如下:
(1)生成话题的单词分布
随机生成K个话题的单词分布:按照狄利克雷分布Dir(β) 随机生成一个参数向量φk=(φk1,φk2,…,φkV),φk∼Dir(β),φkV表示话题zk 生成单词wv的概率,φk作为话题zk的单词分布P(w∣zk)。
(2)生成文本的话题分布
随机生成M个文本的话题分布:按照狄利克雷分布Dir(α) 随机生成一个参数向量θm=(θm1,θm2,…,θmk),θm∼Dir(α),θmk表示文本 wm 生成话题zk的概率,θm作为文本wm的话题分布P(z∣wm)。
(3)生成文本的单词序列
随机生成M个文本的Nm个单词。文本 wm,(m=1,2,...,M) 的单词wmn(n=1,2,..,Nm)的生成过程如下:
(3-1)首先按照多项分布Mult(θm)随机生成-一个话题zmn,zmn∼Mult(θm)。
(3-2)然后按照多项分布Mult(φzmn)随机生成-一个单词wmn,wmn∼Mult(φzmn),文本wm本身是单词序列wm=(wm1,…,wmn,…,wmNm),对应着隐式的话题序列Z={zm1,zm2,…,zmNm}。
上述过程对应的概率图模型如下:

展开图模型如下:

注:LDA的文本生成过程中,假定话题个数K给定,实际通常通过实验选定。狄利克雷分布的超参数a和β通常也是事先给定的。在没有其他先验知识的情况下,可以假设向量a和β的所有分量均为1,这时的文本的话题分布θm是对称的,话题的单词分布φk也是对称的。
LDA 与 PLSA 异同
同:两者都假设话题是单词的多项分布,文本是话题的多项分布。
异:(1)在文本生成过程中,LDA使用狄利克雷分布作为先验分布,而PLSA不使用先验分布(或者说假设先验分布是均匀分布);使用先验概率分布,可以防止学习过程中产生的过拟合 。
(2)学习过程LDA基于贝叶斯学习,而PLSA基于极大似然估计。