LDA与主题模型

最近看的东西。

主题模型

就是topic model。大意为,一篇文档是由多个主题构成的,每个主题占一部分比例。例如一部分是说电影的,一部分是说成本的。这里是不考虑词序的,就是词出现的先后没有关系。那么,主题是什么呢?主题包含一系列关键词,每个关键词都有一定概率在这个主题中出现。拿到一篇文档,对其中的词按照主题来归类,就可以得到这篇文章的主题的成分,包含多少比例这个主题,多少比例那个主题。

于是,这样就可以对文档进行分类。

狄利克雷分配Dirichlet Allocation

一篇文档可以由主题的分布来构成,就是说,包含百分之多少的这个主题,百分之多少的那个主题。不同的文章,包含的主题成分不同,这个分布是不同的的,有些文章这个分布可能是相同、相似的。把所有文章都统计一遍,有多少是属于这个分布的,多少是属于那个分布的,统计出来一个新的分布,就是狄利克雷分配。

这样的话,我想狄利克雷分配本身也可以继续统计,得到更高层的的分配,好吧,这里是我yy的。

LDA, Latent Dirichlet Allocation

就是说上面那个分配不是显然的,是隐式的,要算出来的意思。在主题模型中,利用LDA的思想,就可以这样描述某一文本中单词的“发生方式”。也就是说,我要根据概率模型,写一篇文章出来!

Choose parameter θ ~ p(θ); //按照狄利克雷分配,选出一个主题分布

For each of the N words w_n: //设文档中有N个单词,那么对每个单词做如下操作

Choose a topic z_n ~ p(z|θ); //按照主体分部,选择一个主题

Choose a word w_n ~ p(w|z); //按照这个主题,选择一个单词

于是,我们就通过上面的步骤,把这篇文档”写”了出来。有木有很厉害!(当然词序是不考虑的)

把上面的通俗语言表达的方式,换成数学语言,就可以得到下面的盘子图,和那个公式。

lda

细节上,一个主题里面包含的词的分布(就是每个词的可能性),也可以通过狄利克雷分配构建一个高层的分配,即你从狄利克雷分配中以某一个概率选了一个分布,这个分布就是p(w|z),因此,公式中不是p(w|z),而是p(w|z,β),这个β就是指这个狄利克雷分布。这样,公式中α也是类似的,是指上面第一步中的狄利克雷分布。

这里有两个狄利克雷分布哦~其构建的分布的基础是不一样的。:)

总结

咻~总算用大白话把这么复杂的数学公式解释清楚了,哇咔咔~~

上面的公式构建了之后,接下来的任务,就是通过各种其他模型和样品数据来计算出公式中每一个部分的值,从而当我手拿一篇未分类的文档时,可以通过对每个关键词的主题的判断,得出文档的主题分布,从而进行分类。

更加细致的数学语言的描述参考:

3 thoughts on “LDA与主题模型

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>