本系列博文介绍常见概率语言模型及其变形模型,主要总结PLSA、LDA及LDA的变形模型及参数Inference方法。初步计划内容如下
第一篇:PLSA及EM算法
第三篇:LDA变形模型-Twitter LDA,TimeUserLDA,ATM,Labeled-LDA,MaxEnt-LDA等
第四篇:基于变形LDA的paper分类总结
第二篇 LDA及Gibbs Sampling
[本文PDF版本下载地址 LDA及Gibbs Sampling-yangliuy]
1 LDA概要
LDA是由Blei,Ng, Jordan 2002年发表于JMLR的概率语言模型,应用到文本建模范畴,就是对文本进行“隐性语义分析”(LSA),目的是要以无指导学习的方法从文本中发现隐含的语义维度-即“Topic”或者“Concept”。隐性语义分析的实质是要利用文本中词项(term)的共现特征来发现文本的Topic结构,这种方法不需要任何关于文本的背景知识。文本的隐性语义表示可以对“一词多义”和“一义多词”的语言现象进行建模,这使得搜索引擎系统得到的搜索结果与用户的query在语义层次上match,而不是仅仅只是在词汇层次上出现交集。
2 概率基础
2.1 随机生成过程及共轭分布
要理解LDA首先要理解随机生成过程。用随机生成过程的观点来看,文本是一系列服从一定概率分布的词项的样本集合。最常用的分布就是Multinomial分布,即多项分布,这个分布是二项分布拓展到K维的情况,比如投掷骰子实验,N次实验结果服从K=6的多项分布。相应的,二项分布的先验Beta分布也拓展到K维,称为Dirichlet分布。在概率语言模型中,通常为Multinomial分布选取的先验分布是Dirichlet分布,因为它们是共轭分布,可以带来计算上的方便性。什么是共轭分布呢?在文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计一文中我们可以看到,当我们为二项分布的参数p选取的先验分布是Beta分布时,以p为参数的二项分布用贝叶斯估计得到的后验概率仍然服从Beta分布,由此我们说二项分布和Beta分布是共轭分布。这就是共轭分布要满足的性质。在LDA中,每个文档中词的Topic分布服从Multinomial分布,其先验选取共轭先验即Dirichlet分布;每个Topic下词的分布服从Multinomial分布,其先验也同样选取共轭先验即Dirichlet分布。
2.2 Multinomial分布和 Dirichlet分布
上面从二项分布和Beta分布出发引出了Multinomial分布和Dirichlet分布。这两个分布在概率语言模型中很常用,让我们深入理解这两个分布。Multinomial分布的分布律如下
多项分布来自N次独立重复实验,每次实验结果可能有K种,式子中为实验结果向量,N为实验次数,
为出现每种实验结果的概率组成的向量,这个公式给出了出现所有实验结果的概率计算方法。当K=2时就是二项分布,K=6时就是投掷骰子实验。很好理解,前面的系数其实是枚举实验结果的不同出现顺序,即
后面表示第K种实验结果出现了次,所以是概率的相应次幂再求乘积。但是如果我们不考虑文本中词出现的顺序性,这个系数就是1。 本文后面的部分可以看出这一点。显然有
各维之和为1,所有
之和为N。
Dirichlet分布可以看做是“分布之上的分布”,从Dirichlet分布上Draw出来的每个样本就是多项分布的参数向量