首页 > 代码库 > Latent Dirichlet allocation学习笔记

Latent Dirichlet allocation学习笔记

LDA是一个关于语料的生成概率模型,基本思想是文档可以表达为隐含主题的随机混合,每个主题刻画为关于词语的分布。

LDA假设在语料D中生成一篇文章w的过程如下:

1. 根据泊松分布选在文章长度N

2.     选择主题分布

3.   对于每一个词Wn

    (a) 根据多项式分布选择一个主题

    (b)  根据多项式条件概率分布选择Wn

 一些基本模型的简单假设:

    (1)主题个数k是预先设定的;

    (2)主题和词的概率分布矩阵式一个k*V的矩阵,

    (3)文章长度N与其它变量独立

K维的Dirichlet随机变量θ服从以下概率分布

      

 给定参数α和β,关于主题混合θ,N个主题z,N个词语w的联合概率分布如下:

      

对θ进行积分,对z进行加和得到关于文档的边缘概率分布:

    

对单个文档的边缘概率分布进行加和,我们得到关于语料的概率分布:

    

 

LDA的图模型的表达如下:

      

其中α和β是语料级别的参数,θd 是文档级别参数,对于每一篇文档,该参数不同,Zdn和Wdn是词语级别的参数。

 

一元连续混合

 关于文档的概率分布

本方法与上面比较少了一个步骤,直接通过θ得到词的概率分布,中间不用选择主题z

 

四、与其它隐变量模型之间的关系

1. 一元模型

,在没有主题的情况下,只看词语的联合分布

2. 混合一元模型

文章中所c有的词语只对应一个主题,即所有的词语都是有同一个主题生成的

3. pLSI(probabilistic latent semantic indexing 潜在意义索引)概率模型

,每篇文章可以有多个主题,

但是

a. 概率模型职能用于训练数据,不能用户未来输入的数据

b. 参数个数随着文章个数呈线性增长

c. 每个文档对应的主题分布是相同的

五、推断和参数估计

1. 推断

    推断的关键问题是给定文章计算隐含变量的后验分布

其中:

 2. 变分法推断

 上面提到的推断算法是很难实现的,可以在原LDA贝叶斯网络上删除部分边和节点得到以下推断图

该图将θ 和z的依赖独立开来,并且删除w, 可以用以下概率分布描述

根据指定的简化版概率分布,通过最小化交叉熵KL计算γ和Φ来近似θ 和z

得到以下近似求解

而θ 的数学期望如下:

变量推断算法如下:

通过该算法求出γ和Φ

3. 参数估计

  给定语料库D求参数α和β的最大似然估计

然而直接计算上面似然函数比较困难,但是上面讲到的变量推断算法为我们提供了便利的方法。

下面用EM算法进行迭代求解

A. E-step:对于每篇文档求变量参数的优化值,步骤如上

B. M-step: 对α和β求最大似然估计

两个步骤迭代进行,直到收敛

 4. 平滑

最好的办法就是应用变量推断的方法进行平滑。其中β是一个k*V的矩阵,每一行都可以看做一个可交换的dirichlet分布,该分布的参数为标量η。

这里的η本质上就是一个先验数据,可以看做一个正则化项