`
zangwenyang
  • 浏览: 124756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

LDA主题模型简介(转载)

 
阅读更多

在上一篇博文中提到了LDA(Latent Dirichlet Allocation)模型,翻译成中文就是——潜在狄利克雷分配模型。今天进一步对其作简要介绍。需要注意的是,LDA也是有名的Linear Discriminant Analysis(线性判别分析)的缩写。

LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。由于Dirichlet分布随机向量各分量间的弱相关性(之所以还有点“相关”,是因为各分量之和必须为1),使得我们假想的潜在主题之间也几乎是不相关的,这与很多实际问题并不相符,从而造成了LDA的又一个遗留问题。

对于语料库中的每篇文档,LDA定义了如下生成过程(generative process):

  1. 对每一篇文档,从主题分布中抽取一个主题;
  2. 从上述被抽到的主题所对应的单词分布中抽取一个单词;
  3. 重复上述过程直至遍历文档中的每一个单词。

更形式化一点说,语料库中的每一篇文档与 T(通过反复试验等方法事先给定)个主题的一个多项分布(multinomial distribution)相对应,将该多项分布记为 \theta 。每个主题又与词汇表(vocabulary)中的 V 个单词的一个多项分布相对应,将这个多项分布记为 \phi 。上述词汇表是由语料库中所有文档中的所有互异单词组成,但实际建模的时候要剔除一些停用词(stopword),还要进行一些词干化(stemming)处理等。\theta 和 \phi 分别有一个带有超参数(hyperparameter)\alpha 和 \beta 的Dirichlet先验分布。对于一篇文档 d 中的每一个单词,我们从该文档所对应的多项分布 \theta 中抽取一个主题 z,然后我们再从主题 z 所对应的多项分布 \phi 中抽取一个单词 w 。将这个过程重复 N_d次,就产生了文档 d,这里的 N_d 是文档 d 的单词总数。这个生成过程可以用如下的图模型表示:

这个图模型表示法也称作“盘子表示法”(plate notation)。图中的阴影圆圈表示可观测变量(observed variable),非阴影圆圈表示潜在变量(latent variable),箭头表示两变量间的条件依赖性(conditional dependency),方框表示重复抽样,重复次数在方框的右下角。

该模型有两个参数需要推断(infer),一个“文档-主题”分布 \theta,另外是 T 个“主题-单词”分布 \phi 。通过学习(learn)这两个参数,我们可以知道文档作者感兴趣的主题,以及每篇文档所涵盖的主题比例。推断方法主要有LDA模型作者提出的变分-EM算法,还有现在常用的Gibbs抽样法

LDA模型现在已经成为了主题建模(topic modeling)中的一个标准。LDA模型自从诞生之后有了许多扩展,特别是在社会网络和社会媒体研究领域最为常见。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics