潜在狄利克雷分配
-
潜在狄利克雷分配(latent狄利克雷allocation, LDA)于2002年由Blei等提出。它和概率潜在语义分析都属于概率主题建模方法,二者之间的差异恰好反映了频率学派与贝叶斯学派对参数估计上的不同理解:
- PLSA将模型参数看作是固定的未知常数,使用类似点估计的方法进行参数估计;
- LDA则将模型参数看作是服从特定分布的随机变量,引入了狄利克雷先验分布,并通过观察到的数据来修正这个先验,得到后验分布。
研究表明,虽然LDA更加复杂,但其模型性能比PLSA更好,泛化能力也更强。
狄利克雷分布
简要回顾一些概率论与数理统计的知识:
- 多项分布
重复进行次独立随机试验,每次试验可能出现的结果有种,第种结果出现的概率为,出现的次数为。- 如果用随机变量表示试验所有可能结果的次数(其中表示第种结果出现的次数),那么随机变量服从多项分布,对应概率密度函数为 也记作,其中。
- 特别地,当时,多项分布退化为类别分布,表示表示试验可能出现的种结果的概率。
- 狄利克雷分布
在贝叶斯学习中,狄利克雷分布常作为多项分布的先验分布使用。其定义如下:- 若多元连续随机变量的概率密度函数为 其中 表示Gamma函数,则称随机变量服从参数为的狄利克雷分布,记作。
- 上述概率密度函数表达式也可用多元Beta函数表示:记,则有 特别地,当时,就得到Beta分布。
- 狄利克雷分布有一些重要性质:
- 狄利克雷分布属于指数分布族;
- 狄利克雷分布是多项分布的共轭先验分布。【共轭先验分布概念可参见数理统计 Cheat Sheet】
- 具体而言,当总体分布,先验分布为,那么其后验分布为。因此也被称作先验伪计数(prior pseudo-counts)。
LDA模型
-
LDA是文本集合的生成概率模型。模型假设话题由单词的多项分布表示,文本由话题的多项分布表示,单词分布和话题分布的先验分布都是狄利克雷分布。
- 严格意义上说,这里的多项分布都是类别分布,不过在机器学习与自然语言处理中,有时对两者不作严格区分。
-
LDA的文本集合的生成过程示意图如下:

利用LDA进行话题分析就是对给定文本集合,学习到每个文本的话题分布,以及每个话题的单词分布。 -
下面给出模型的符号定义:
- 单词、文本、话题集合符号沿用上一讲;
- 设所有文本的长度均为,且每个文本都有对应可观测的单词序列与不可观测的话题序列;
- 每个话题可由单词的条件概率分布表示,其服从多项(类别)分布,参数用表示,因而整个话题的参数可用矩阵表示。【】
- 每个文本可由话题的条件概率分布表示,同样服从多项(类别)分布,参数用表示,因而整个文本的参数可用矩阵表示。【】
-
由此可得LDA文本生成算法如下:
- 对于话题():生成多项分布参数作为话题的单词分布。
- 对于文本():生成多项分布参数作为文本的话题分布。
- 对于文本的单词():生成话题作为单词对应的话题,生成单词作为该话题下的单词。
最终得到文本序列。
- 上述参数中,话题数一般通过实验确定。狄利克雷分布的超参数和通常也是事先给定的。在没有其他先验知识的情况下,可以假设向量和的所有分量均为,此时文本与话题的先验分布均为均匀分布。
-
LDA模型的概率图形式如下:

-
LDA假设文本由无限可交换的话题序列组成,即话题序列的任意一个有限子序列的联合概率对随机变量的排列不变。由De Finetti定理知,实际是假设文本中的话题对随机参数(即上面的)是条件独立同分布的。
- 实际上,我们也可以证明在给定的时,文本序列的各个元素都是相互条件独立的。
-
LDA模型的概率计算公式如下:
其中为所有文本序列集合,为所有话题序列集合。如果具体到第个文本,则概率为
然后考虑给定文本与话题参数后文本的生成概率:
将参数替换为超参数,得到
最终得到超参数给定条件下所有文本的生成概率:
其中表示重嵌套积分。
学习算法
- LDA的学习(参数估计)是一个复杂的最优化问题,很难精确求解,只能近似求解。常用的近似求解方法有吉布斯抽样和变分EM算法。
下面只给出算法的形式,具体阐述请参见下一讲。
吉布斯抽样算法
- 输入:文本的单词序列,其中。
- 输出:文本的话题序列,其中的后验概率分布的样本计数、模型的参数和的估计值。
- 参数:超参数和,话题个数。
- 设所有计数矩阵的元素、,计数向量的元素、初值为。
- 对所有文本(),对第个文本中的所有单词(),抽样话题;增加话题-单词计数,增加话题-单词和计数,增加文本-话题计数,增加文本-话题和计数。
- 循环执行以下操作,直到进入燃烧期:对所有文本(),对第个文本中的所有单词():
- 当前的单词是词汇表中第个单词,话题指派是第个话题;减少计数,,,;
- 按照满条件分布进行抽样: 得到新的第个话题,分配给;
- 增加计数,,,;
- 得到更新的两个计数矩阵和,表示后验概率分布的样本计数。
- 利用得到的样本计数,计算模型参数:
变分EM算法
- 输入:给定所有文本,主题数,词汇表大小。
- 输出:变分参数,以及完整模型参数:个主题的词分布矩阵,狄利克雷超参数。
- E 步(变分参数估计)
固定全局模型参数,通过最大化证据下界(ELBO),估计变分参数。- 初始化:对所有文档和主题,令变分狄利克雷参数;对所有位置和主题,令变分多项分布参数。
- 重复(直到变分参数收敛):
- 对所有文本位置,对所有主题: 其中是主题下单词的概率,为双伽马函数。(Gamma函数导数)
- 对每个进行归一化,使得。
- 更新文档-主题变分参数:
- M 步(模型参数估计)
固定当前的变分参数,通过最大化证据下界,估计全局模型参数。- 更新词分布矩阵:
- 首先计算个主题的词分布。对于每个主题和词汇表中的每个单词:
- 然后对每个主题的所有词汇进行归一化:
- 更新超参数:
- 没有解析解,可以通过牛顿法迭代求解,具体更新步骤如下:
- 计算梯度向量:对每个主题求导:
- 计算黑塞矩阵(Hessian)元素:
- 执行牛顿更新迭代:
- 没有解析解,可以通过牛顿法迭代求解,具体更新步骤如下:
- 更新词分布矩阵:
- E 步(变分参数估计)
