隐含狄利克雷分布(Latent Dirichlet allocation)是一种生成式统计模型,是泛化的pLSA模型,区别在于LDA假设主题分布是稀疏的Dirichlet prior,即所有文档只覆盖一小部分的主题,且这些主题只频繁地使用一小部分的单词。
LDA是三层贝叶斯模型,基于变分方法的近似推理和经验贝叶斯参数估计的EM算法,使用“先验分布”和“数据对数似然”得出“后验分布”,再用后验分布作为新的先验分布,往复迭代。这就要求先验分布和后验分布具有相同的形式,即二者为共轭分布。
一、相关概念
1、二项分布Binomial distribution
二项分布是重复n次独立的伯努利试验,每次试验只有两种可能的结果,期望为np,方差为np(1-p)。二项分布可以作为LDA中的数据对数似然。
2、Beta分布
Beta分布是一组定义在(0,1)or[0,1]区间的连续概率分布,有两个参数α,β>0,可看做是一系列pattern相似的二项分布(n、p未知),认为α与成功的事件数相关、β与失败的事件数相关:
Beta前面的系数起标准化作用,使得这个分布的概率密度积分为1。除去前面的系数以外,Beta分布和二项分布具有相同的形式,因此可知Beta分布是伯努利分布、二项分布的共轭先验分布的密度函数;若将Beta分布作为先验分布、二项分布作为似然函数,那么后验分布仍是Beta分布:
二、LDA主题模型
LDA是一种比较常用的主题模型,每篇文档是由一系列潜在主题构成,而每个主题又是一个在词上的多项分布。假设文集/语料库(corpus)D中共有M篇文档,第m个文档有
个单词,这些文档一共涉及K个主题,词汇表中所有词总数为V。
1、模型参数解释
(1)
,
为每篇文档主题分布的Dirichlet prior的参数,即一篇文档中主题k的先验权值,一般所有主题的α相等且比较稀疏(e.g. 0.1,每篇文档只有少量主题);(2)
,
为每个主题单词分布的Dirichlet prior的参数,即一个主题中单词v的先验权值,一般所有单词的β相等且非常稀疏(e.g. 0.001,每个主题只有很少的单词);(3)
为第m篇文档的主题分布,
;(4)
为主题k的单词分布,
;(5)
是第m篇文档中第n(
)个单词所属的主题;(6)
是根据
选择的单词,用深色表示是因为它是模型中唯一可观测的值。
2、模型生成过程
LDA从生成式模型的角度看待文档和主题,认为语料库中所有文档是隐含主题的随机混合,每个主题是由所有单词分布体现的。文档m的生成过程为:
三、LDA参数估计
scikit-learn API