[例会报告]LDA主题模型

报告人:王雨婷    时间:2017.4.19

图片2

与会人员:

教师:安宁、杨矫云

学生:段优、江思源、刘杰、刘硕、唐晨、腾越、王雨婷、严金戈、姚小慧、殷越、景波

请假人员:丁会通

本次报告的参考文献包括:

1.文献《Latent Dirichlet Allocation》作者DM BleiAY NgMI Jordan

出版源《Journal of Machine Learning Research》2003     被引量3000,这篇文献是所有研究LDA的开篇之作,最经典的一篇文章。

2.通俗理解LDA主题模型,网址为http://blog.csdn.net/v_july_v/article/details/41209515

用比较通俗的语言详细的介绍了LDA的整体过程,包括公式推导,以及用了一些具体的例子方便理解整体流程。

3.主题模型之LDA,一篇博客,网址为 http://blog.jqian.net/post/lda.html ,其中关于LDA Gibbs的公式推导部分尤其清晰,公式推导推荐看这个。

本次报告先介绍了主题模型,LDA的基本原理,最后介绍了LDA的基本流程。

主题模型:

主题模型旨在一系列文章中找到一种结构。一篇文档是由多个主题构成的,每个主题占一部分比例。一个主题模型能回答以下这样的问题:X文章讨论的是什么?X文章和Y文章有多相似?如果我对Z文章感兴趣,我应该先读哪些文章?

LDA(Latent Dirichlet Allocation)

LDA由Blei, David M.、Ng, Andrew Y.、Jordan于2003年提出,它是一种典型的词袋模型,即一篇文档是由一组词构成,词与词之间没有顺序以及先后的关系。一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。是迄今最成功的主题模型。LDA主要思想:根据给定的文档,推测其主题分布。

生成文档的过程:

当我们看到一篇文章后,往往喜欢推测这篇文章是如何生成的,我们可能会认为作者先确定这篇文章的几个主题,然后围绕这几个主题遣词造句,表达成文。人类是根据上述文档生成过程写成了各种各样的文章,现在想让计算机利用LDA干一件事:推测分析各篇文章分别都写了些什么主题,且各篇文章中各个主题出现的概率大小(主题分布)是什么。

基本字母定义:

图片1

D中涉及的所有不同单词组成一个大集合VOCABULARY(简称VOC)

LDA以文档集合D作为输入(会有切词,去停用词,取词干等常见的预处理)
希望训练出的两个向量(设聚成k个Topic,VOC中共包含m个词结果):

文档的主题分布θd< pt1,…, ptk>,其中,pti表示d对应T中第i个主题zi的概率。
主题对应的词语分布φt< pw1,…, pwm>,其中,pwi表示主题zi生成VOC中第i个单词的概率。

LDA文档生成模型:

图片2

图片3

给定一个文档集合,w是可以观察到的已知变量,α和β是根据经验给定的先验参数,其他的变量z,θ和φ都是未知的隐含变量,需要根据观察到的变量来学习估计的。根据LDA的图模型,可以写出所有变量的联合分布:

图片4

LDA把要估计的主题分布和词分布看作是其先验分布是Dirichlet分布的随机变量,所以,在LDA这个估计主题分布、词分布的过程中,它们的先验分布(即Dirichlet分布)事先由人为给定,那么LDA就是要去求它们的后验分布(LDA中可用gibbs采样去求解它们的后验分布,得到期望的θd, φt)

LDA学习过程:

LDA的核心公式如下:
p(w|d) = p(w|t)*p(t|d)
其中p(t|d)利用θd计算得到,p(w|t)利用φt计算得到

算法开始时,先随机地给θd和φt赋值(对所有的d和t),给定超参数。然后上述过程不断重复,最终收敛到的结果就是LDA的输出。再详细说一下这个迭代的学习过程: 1)针对一个特定的文档ds中的第i单词wi,利用当前的θd和φt,可以计算它对应任意一个Topic的pj(wi|ds),其中j取值1~k。然后可以根据这些概率值结果以及超参数为ds中的第i个单词wi选择一个topic。 2)然后,如果ds中的第i个单词wi在这里选择了一个与原先不同的topic,就会反过来影响θd和φt 。
对D中所有的d中的所有w进行一次p(w|d)的计算并重上面新选择topic看作一次迭代。这样进行n次循环迭代之后,就会收敛到LDA所需要的结果了。

(具体过程涉及公式比较复杂,上述仅简单介绍了流程,不妨碍理解,若想深入了解,推荐参考资料3)

 

anyShare分享到:
This entry was posted in 例会. Bookmark the permalink.

发表评论