目录
潜在狄利克雷分配(latent Dirichlet allocation,LDA)
多项分布(Multinomial Distribution)
狄利克雷分布(Dirichlet distribution)
LSA/LSI
略
PLSA
略
潜在狄利克雷分配(latent Dirichlet allocation,LDA)
伯努利分布(Bernoulli Distribution)
举个例子,在一次“抛硬币”的试验中,出现正面朝上的的概率为,反面朝上的概率为,则在一次试验中出现正面朝上的次数服从伯努利分布。出现正面朝上的次数有两个值:0和1,0次正面朝上的概率为,1次正面朝上的概率为,概率分布如下:
0 | 1 | |
二项分布(Binomial Distribution)
在伯努利试验中,我们只做了一次试验,那么如果重复独立n次伯努利试验,则正面朝上的次数k服从二项分布,正面朝上的次数为k的概率如下:
其中
,k的取值可能是0,1,...,n。概率分布如下:
0 | 1 | ... | n | |
... |
在二项分布中,如果n=1,就是伯努利分布,所以伯努利分布可以看成二项分布的特例。
多项分布(Multinomial Distribution)
在二项分布中,每次抛硬币可能出现的结果只有两个:正面朝上和反面朝上,那假设现在一个事件可能出现的结果不再是2个,而是个。第i个结果出现的概率为,则
,在n次试验中,第i个结果出现的次数为,则
,在上述假设下,次试验中,第个结果出现次数为服从多项分布
其中系数
由排列组合得到,即先在n次试验中选取个结果为1的试验,可能的选取方式有个,接着从剩下的次试验中再选择次试验,可能的选取方式有,依次选择下去……,总共可能的方式就是这个系数。实际上,多项分布式二项分布的推广,比如在多项分布中假设k=2,则概率变为:
令(因为在二项分布中,使用k表示的次数,多项分布中使用的k表示结果的个数,注意区别),就可以得到二项分布。
贝塔分布(beta distribution)
设连续随机变量的取值范围为,它的概率密度函数如下:
其中是参数,是beta函数,定义如下:
beta函数也可以由伽马函数得到,伽马函数定义如下:
beta函数和伽马函数之间的关系如下:
可以如下证明这个关系:
令,利用重积分性质既能得到。
狄利克雷分布(Dirichlet distribution)
狄利克雷分布是一种多元连续随机变量的分布,是贝塔分布(beta distribution)的推广。我们将beta分布的单个随机变量推广到由k个随机变量构成的随机向量,每个随机变量的取值范围为,不过他们之间和为1,即
表示第i个随机变量的取值。 概率密度函数如下定义:
是参数。
在狄利克雷分布中,取,则就变成了Beta分布。
为了可以和Beta分布有相同的形式,令
,,
则
因为,所以实际上可以看成一个归一化因子。
下面以k=3来直观认识下狄利克雷分布,此时,如果看成是在三维空间中,如图:
图中正三角形区域表示的各种可能的取值,也就是说的取值会落在三角形上或者内部。现在我们取不同的,
(1)的情况,
,分别对应如下图:
也就是说当各个分量相等时,的分布是对称的,随着分量的增大,分布更集中。
(2)当的各个分量不全部相等时
比如
分别对应如下图:
越小越向靠近。
以上介绍的各种分布,整理如下:
伯努利分布 | |
二项分布 | |
多项分布 | |
贝塔分布 | |
狄利克雷分布 |
共轭先验(conjugate prior)
这里有几个分布需要搞清楚,分别是先验分布,后验分布和似然函数。我们以抛硬币为例,假设正面朝上的概率为,但是在未抛硬币之前我们是不知道的具体值,根据当前已有的经验,我们通常会假设服从[均为分布,当然也可以假设服从其他分布,也就是说正面朝上的概率取[0,1]之间任意值是等可能的,假设均匀分布的密度函数是
这个均匀分布称为的先验分布。假设现在抛了5次,得到如下一组数据:
正面,正面,反面,反面,正面
在参数下,产生“如此数据“的条件概率称之为似然函数,如下:
这里说个题外话,很多时候,我们会碰到最大似然估计,指的是什么样的概率,最有可能产生“如此数据”,即求似然函数的最大值对应的值,可以通过似然函数两边取对数解出。下面我们还说后验分布,根据贝叶斯公式:
如果是连续的,就是
表示在得到数据X之后的概率,服从的分布称为的后验分布。先验分布和后验分布的区别就是后验分布比先验分布多了数据这样的“证据”。在本例中的先验分布是均为分布,但是在拿到数据后,从数据来看,正面朝上的可能性更大,所以后验分布并不是均匀分布,事实上可以根据贝叶斯公式准确计算出来,如下:
从结果的密度函数来看确实不是均匀分布。上面表明如果二项分布的先验分布是均匀分布,它的后验分布并不是均匀分布。
如果的先验分布和后验分布具有相同的分布类型,比如都是高斯分布,则称先验分布和后验分布为共轭分布。先验分布称为共轭先验。下面这个结论在LDA模型中比较重要
如果多项分布的先验分布是狄利克雷分布,则其后验分布也是狄利克雷分布。
下面我们给出证明:
假设随机变量X服从多项分布,可能的k个结果为,概率如下:
假设现在得到n个数据的样本,则似然函数为
其中。假设的先验分布是狄利克雷分布,即
根据贝叶斯公式,的后验分布为
(其中)
(由得到)
从最后结果来看,任然是一个狄利克雷分布,只不过参数由变为。
LDA文本生成
LDA模型是一个文本生成概率模型。假设文本集合,含有M个文档,表示文档由个词构成,是一个词典,含有L个词。文本集合与K个主题相关,主题集合。下面看如何生成文本,事实上,生成一个文本只要生成构成文本的每个词就可以了。但我们并不是直接生成词,而是通过中间隐含变量——主题来间接生成,首先生成文档的主题序列,然后由主题序列生成词序列,从而生成文档。生成过程如下:
(1)生成主题序列
对于文档,在给定参数的情况下,按照狄利克雷分布
随机生成一组概率,概率表示的是文档生成主题的概率。因为有M个文档,生成一个阶矩阵:
得到文档主题分布
()
构成一个矩阵:
根据这个密度函数就可以生成文档对应的主题序列了(实际不关心顺序),如下:
,
注意到主题序列中总共有个分量,这些主题分量可能会有重复,但是总共只有K个主题,所以我们只需要关注这K个主题即可,对于任意主题,可以如下生成词。
(2)生成词序列
对于主题,在给定参数的情况下,按照狄利克雷分布
随机产生一组概率,概率表示的是主题生成词的概率。因为有个主题,总共生成组,构成如下阶矩阵:
得到主题生成词的分布
()
正好构成一个阶矩阵
根据该密度函数和主题序列,就可以生成如下词序列了
也就是文档。
上面的整个生成过程,可以使用如下概率图表示:
方框右下角符号表示方框中相同图形的数量。