嗯哼是个nlper酱--LDA学习笔记

来源:互联网 发布:指南针炒股软件好用吗 编辑:程序博客网 时间:2024/05/01 10:09

非常同意学东西,先学复杂,然后逐步简化的方式。
LDA模型学习系统的学习有一些时间了,闭上眼睛细想一下,似乎能够理解为什么有前辈们说LDA是一个比较简单的学习模型了。up一个学习笔记,记录一下自己在学习完了之后,对LDA各个步骤涉及的数学基础。
一、LDA算法主线
如果想要快速入门+70%理解的话,个人感觉看这一节就好了。本节不会像其他博客那样,从unigram、plsa巴拉巴拉一长串“前菜”开始,显得就不够通俗了,并且还没看到真正LDA相关的知识,耐心就磨完了。要了,开扯。
1、在LDA、PLSA这些topic model中,注意几点假设:

  • 独立性假设:语料中的每篇文档、每篇文档中的每个词都是独立的
  • 多项式分布和Dirichlet分布:每个词的出现符合多项式分布,多项式分布的参数的先验分布是Dirichlet分布
    正是基于上面两个假设,可以看出这些topic model都是基于词袋的,词的顺序什么的对文章并没有影响。

2、文本建模
文章中的词的出现符合多项式分布,那么文档的建模公式为:
一般文本多项式建模 (1)
如果,考虑每篇文档的主题分布,根据LDA定义,引入每篇文章主题多项式分布的先验Dirichlet分布(参数为α)、词多项式分布的先验分布(参数为β),则文档的建模公式为:
LDA文本建模 (2)
式中,前后两个子部分相互独立,可以分别处理:

各部分推理 (3)
公式(3)中,有几点需要注意,以左边的为例:
1)外面要取积分(离散分布的话用累加),表示求生成词的条件概率,要考虑每一个主题先验参数,这个事或的关系,所以在连续随机变量时用积分,离散型随机本用累加和;

2)公式中有一个黑色下划线,很多blog里,都是直接给出了它下面那一步的结果,讲道理,这样很不好,很容易导致歧义。
我们可以试着直接看倒数第二步,两个连乘符号,乍一眼,感觉要乘以K*N次(注意,我没有用V,因为V是词典集数量,已经去重,N表示去重之前的单词数)。我刚开始看的时候,就是这么理解的,但是怎么也想不通。因为如果是要考虑,在每个不同主题下词序列出现的概率,那么第一个关于K的连乘就应该改成累加。但是这样说不过去,因为回归到p(w|z,β)这个概率的初衷,还有联系rickjin在blog中的博客介绍:
这里写图片描述
其实,这个时候,我们在得到这一堆词的主题向量w的时候,剩下的工作就是去查前面投骰子的时候,对于这堆词w中的每个词w_i都分别指定了哪个主题,然后用一个类似于“查表”的过程得到它的出现概率。所以,根据论文【1】中的描述,有了下划线出的哪个中间公式,说的很清楚啊,{i, zi=k}这个集合,精髓啊,这个时候在得到倒数第二步,就非常直观了对不对!

3)倒数第二部得到倒数最后一步,去掉了积分符号,是因为用到了一个性质:
这里写图片描述 (4)
我在公式(3)中用括号分别括起来,△(α)、△(β)和积分无关,可以移到积分符号外面,所以就得到最后的等式。

至此,我们就得到了文档(用词向量表示)和主题的完全数据条件概率分布:
联合概率分布 (5)

有了这个完全数据条件概率分布,那么,我们就可以借助Gibbs采样算法,来对每个词w_i来更新它的主题(隐含变量,EM算法什么的这个时用起来了,这里介绍吉布斯采样),更新过程公式如下:
主题更新公式 (6)

公式(6)中,有几点需要注意:
1)公式出来第一步,可以联想:p(A|BC)=p(ABC)/p(AB),分母中去掉了A就好了;
2)得到①的分母,我们要注意w={wi, w_-i},上面的z也一样
3)得到②,吸取了上面公式(3)在推导过程中的结果,在明确主题 z和文档m的时候,外面的连乘符号需要去掉;
4)得到公式③就是把Dirichlet中的△展开来,△定义如下:
Dirichlet分布 (7)
顺便把Dirichlet分布也给出来了。
5)得到④用到了伽马函数的性质:
伽马函数
6)得到⑤,是因为在④中第二个式子的分母和是一个常数,和主题的条件概率无关,可以不考虑

这个每个词的主题迭代更新过程,用到了马氏链的平稳分布性质(这点很关键,第二节将会重点介绍我在看rickjin的blog时关于这个的一些领悟)。当各词的主题分布平稳之后,我们根据求得到的分布(每篇文档中每个词的主题概率),就可以求得每篇文章的主题分布θ、和主题下的词分布φ:
文档主题分布和主题的词分布 (8)
可以看出这两个后验分布和对应的先验分布一样,仍然为Dirichlet分布,这也是共轭分布的性质决定的。使用Dirichlet分布的期望计算公式,得到:
文档主题分布和主题词分布 (9)

二、Gibbs 采样及马氏链平稳性质
待续…

参考文献:
本博客只是一篇读书笔记性质的,参考了较多其它前辈大牛、相关论文的成果,秉着分享知识的初衷,无意侵权。
- 概率语言模型及其变形系列(2)-LDA及Gibbs Sampling
- LDA-math-LDA 文本建模
- Gregor Heinrich. Parameter estimation for text analysis. Technical report, 2004

0 0