这篇文章看一下公式式怎么推导出来的。

正经的LDA,主要有以下几个方面:

  • 一个函数:gamma函数
  • 四个分布:二项分布,多项分布,beta分布,狄利克雷分布
  • 一个概念一个理念:共轭先验与贝叶斯框架
  • pLSA,LDA
  • 一个采样:Gibbs采样

我们来看一下它是怎么推导出来的。

共轭先验与共轭分布

directLDA推导_概率密度函数


假定似然函数directLDA推导_概率密度函数_02已知,问题是选取什么样的先验分布directLDA推导_二项分布_03和后验分布directLDA推导_二项分布_04,使得他们具有相同的数学形式(参数可以不一样)。如果先验分布和后验分布具有相同的数学形式,则称他们为共轭分布,且先验分布为似然函数的共轭先验分布。

举个例子就是
directLDA推导_概率密度函数_05
directLDA推导_二项分布_06
这就是具有相同的数学形式,但参数不一样的情况。

gamma函数

对于整数而言:

directLDA推导_二项分布_07

对于实数:

directLDA推导_概率密度函数_08

directLDA推导_概率分布_09

二项分布

二项分布是由n个独立的是、非重复实验中成功次数的离散概率分布其中每次成功的概率为p,相当于你去求婚,每次求婚都有两种结果,成功或失败,如果求婚一次,则称为伯努利分布,如果求婚n次的话(有点略倒霉呀!),则称为二项分布,记为:X ~ B(n,p),它的概率密度函数为:
directLDA推导_二项分布_10

分布如图

directLDA推导_directLDA推导_11

多项式分布(multinomial distribution)

多项式就是二项分布在高维情况下的推广,把求婚的例子改成抛骰子就OK了。

directLDA推导_概率密度函数_12

如果用骰子的例子,k=6,directLDA推导_二项分布_13表示出现第i点的次数directLDA推导_概率分布_14directLDA推导_directLDA推导_15表示出现第i点的概率。

beta分布

beta是指一组定义在(0,1)之间的连续概率分布,记为directLDA推导_概率分布_16

directLDA推导_二项分布_17

它的概率密度函数和累积分布函数为:

directLDA推导_概率分布_18

狄利克雷分布

事实上,它是Beta函数在高维空间上的推广,

directLDA推导_二项分布_19

其中:

directLDA推导_概率分布_20

对于三维的情况下,将它的概率密度函数取对数,绘制它的分布图像如下:

directLDA推导_概率密度函数_21


上图中,取K=3,也就是有两个独立参数x1,x2,分别对应图中的两个坐标轴,第三个参数始终满足directLDA推导_概率分布_22directLDA推导_二项分布_23,图中反映的是参数directLDA推导_二项分布_24directLDA推导_概率分布_25变化到directLDA推导_概率密度函数_26时的概率对数值的变化情况。


几个主题模型

1.生成模型unigram model

对于已经分好词的文档directLDA推导_概率分布_27,用directLDA推导_directLDA推导_28表示词 directLDA推导_概率分布_29的先验概率,则生成文档dd的概率为:
directLDA推导_二项分布_30

这个是最简单的方法,就是把文章中每个单词出现的概率是多少乘起来,就等于这篇文档的出现的概率。

2.Mixture of unigrams model

这个模型的生成过程是先给某个文档生成主题,再根据主题生成文档,该文档中的每个词都来源于同一主题。

举个例子,假如有k个主题:z1,z2,z3,…,zkz1,z2,z3,…,zk,那生成文档的概率为:
directLDA推导_概率分布_31

它的含义就是这篇文档属于某一主题 directLDA推导_二项分布_32 的概率乘以这篇文档中的每一个单词出现在该主题 directLDA推导_二项分布_32 下的概率的连乘。

directLDA推导_directLDA推导_34

与上一个模型相比,这个模型的主要改进是使用了Topic作为中间量。

这两个模型被我们称之为生成模型,扮演的角色相当于前面的似然函数likelihood.

3.PLSA

假设有三个主题,分别为教育,经济,交通,PLSA就像扔骰子一样,第一次得到文档到主题的概率分布:directLDA推导_概率分布_35,第二次呢,就得到主题都单词的分布:directLDA推导_概率密度函数_36,假设得到的主题是经济,那就是directLDA推导_概率分布_37,最后把这两个概率相乘,就得到了文档到单词的分布:directLDA推导_概率密度函数_38

directLDA推导_二项分布_39

我们用公式表示出来就是:directLDA推导_概率密度函数_40训练出
directLDA推导_概率分布_41

directLDA推导_二项分布_42

得到:
directLDA推导_概率分布_43
然后得到文档中每个词的生成概率:
directLDA推导_概率密度函数_44
其中,directLDA推导_directLDA推导_45可以事先计算出来,但是directLDA推导_概率密度函数_46是未知的,这就是我们要估计 的参数值,

directLDA推导_概率密度函数_47
最大化就是我们的优化目标。

4.LDA

LDA其实就是在PLSA上加了一层贝叶斯框架,为了更好的理解LDA,我们把LDA和PLSA比较一下:
对于PLSA:

  • 按照概率directLDA推导_二项分布_48选择一篇文档directLDA推导_概率分布_49
  • 选定文档directLDA推导_概率分布_49之后,确定该文档的主题;
  • 从主题分布中按照概率directLDA推导_概率分布_51选择隐含的主题的类别directLDA推导_directLDA推导_52;
  • 选择主题后,确定该主题下词分布
  • 从词分布中按照概率directLDA推导_概率密度函数_53选择一个词directLDA推导_directLDA推导_54

对于LDA:

  1. 按照先验概率directLDA推导_二项分布_48选择一篇文档directLDA推导_概率分布_49
  2. 从狄利克雷分布directLDA推导_概率密度函数_57中取样生成文档directLDA推导_概率分布_49的主题分布directLDA推导_概率密度函数_59,也就是主题分布directLDA推导_概率密度函数_59由超参数为directLDA推导_概率密度函数_57的狄利克雷分布构成
  3. 从主题的多项式分布directLDA推导_概率密度函数_59取样生成文档directLDA推导_概率分布_49的第directLDA推导_概率密度函数_64个词的主题directLDA推导_directLDA推导_65
  4. 从狄利克雷分布ββ中取样生成主题directLDA推导_directLDA推导_65对应的词语分布directLDA推导_directLDA推导_65,也就是说词语分布由参数为directLDA推导_directLDA推导_68的狄利克雷分布生成
  5. 从词语的多项式分布directLDA推导_概率分布_69采样最终生成词语directLDA推导_概率分布_70

用一分钟解释就是LDA把PLSA中按照固定概率取的参数都换成了某一固定的概率分布,它们的本质区别是估计未知参数所采用的思想不同,PLSA采用的是频率派的思维:参数directLDA推导_二项分布_71虽然未知,但它是一个确定的值;LDA采用的是贝叶斯思维:认为待估计参数为随机变量,且服从一定的概率分布。