主题模型LDA简介

介绍性的讲解在此不多讲,本文主要讲主题模型LDA的原理。

我们可以从生成模型思考一下,一篇文章由文档进而生成文字,是怎样的一个概率过程呢。在主题模型中,文档“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”。按照该思路,文档中词语出现的概率为:

                                                     

上面的公式还可以用矩阵来表示:

                                                

当然,这只是粗略的模型描述,下面我们来说一下LDA主题模型具体用到了哪些概率模型。

LDA(LatentDirichlet Allocation)的概率模型

假设我们有M篇包含N个单词的文档,那么我们可以按照以下方式理解文档生出单词的流程:

1. 首先,每篇文档都有自己的主题,而且可能是多个主题,每个主题的成分有大小之分。所以我们可以假设一篇文档的主题符合多项式分布(参数为\theta)。而这个文档集合的任意一篇文档,其主题分布是符合狄利克雷分布的(参数为\alpha)(参考常见概率分布(一))。

2. 假设我们根据第一步的过程确立了某个主题,那么依据该不同词汇出现的概率是符合多项式分布的(我们这里仅仅考虑频率学派的观点,假如有v个词汇,可以把生成词汇的过程理解为掷N次具有v面的骰子),其参数为\beta

浓缩一下:

for each doc:

    choose \theta for \theta \sim Dir(\alpha)

    choose topic z_n for   z_n \sim Mul(\theta)

    choose w for w \sim Mul(\beta_{z_n})

或者用概率图模型的方式来表示:

                                           

LDA的参数求解

有了概率模型和数据,我们很自然的想到要用最大似然方法(MLE)求解改模型的参数,但是我们知道\theta和z_n是隐藏变量,也就是观测不到的,这时候我们想到要用EM算法。

对于EM算法第E-step,我们知道需要求得p(z|x),这里z是隐藏变量,x是可观测变量。对应到lda的情况下,就应该是求解后验概率:

                                                            

该后验概率非常不易求解,我们想到了使用变分推断技术。变分推断的推导过程可以参考博客Variational Inference 变分推断,这里不做赘述。

参考文献:

[1] Latent Dirichlet Allocation - David M.Blei

[2] LDA主题模型学习笔记2:求解隐变量和模型参数(EM思想)

[3] 主题模型-LDA浅析

[4] 一文详解LDA主题模型

猜你喜欢

转载自blog.csdn.net/xiaomeng29/article/details/89069103