# LDA

2191人阅读 评论(0)

Probabilistic latent semantic analysis（PLSA） LDA可以看成是服 从贝叶斯分布的PLSA

LDA，就是将原来向量空间的词的维度转变为Topic的维度，这一点是十分有意义的。

100万词汇中的第2维（便于举例），微机这个词是100万词汇中的第3维，维上的投影简单看作是tf，即文档中出现的次数。

A={x,2,0,...,x} 表示文档A中电脑出现了2次.x表示出现次数不care
B={x,0,3,...,x} 表示文档B中微机次数出现了3次。

A={x,2*pi,x,...x}，pi表示电脑这个词到Topic2的转移概率。
B={x,3*pj,x,...x}

lda是一个集合概率模型，主要用于处理离散的数据集合，目前主要用在数据挖掘（dm）中的text mining和自然语言处理中，主要是用来降低维度的。据说效果不错。

Latent Dirichlet allocation (LDA) is a generative probabilistic model of a corpus. The basic idea is
that documents are represented as random mixtures over latent topics, where each topic is characterized
by a distribution over words.

We describe latent Dirichlet allocation (LDA), a generative probabilistic model for collections of
discrete data such as text corpora. LDA is a three-level hierarchical Bayesian model, in which each
item of a collection is modeled as a finite mixture over an underlying set of topics. Each topic is, in
turn, modeled as an infinite mixture over an underlying set of topic probabilities. In the context of
text modeling, the topic probabilities provide an explicit representation of a document.

=========================================

## Latent Dirichlet allocation

This is a C implementation of variational EM for latent Dirichlet allocation (LDA), a topic model for text or other discrete data. LDA allows you to analyze of corpus, and extract the topics that combined to form its documents. For example, click here to see the topics estimated from a small corpus of Associated Press documents. LDA is fully described in Blei et al. (2003) .

This code contains:

• an implementation of variational inference for the per-document topic proportions and per-word topic assignments
• a variational EM procedure for estimating the topics and exchangeable Dirichlet hyperparameter

### Sample data

Top 20 words from 100 topics estimated from the AP corpus [pdf].

=============================================

[论文导读][教程][介绍]文本处理、图像标注中的一篇重要论文Latent Dirichlet Allocation

Latent Dirichlet Allocation
David.M.Blei
Andrew.Y.Ng
Michael.I.Jordan
JMLR2003

1. discriminative model，就是由样本直接设计判别函数，例如SVM；
2. generative model，就是先从样本恢复概率模型——例如我们熟悉的参数方法：混合高斯模型GMM;非参数方法Parzen 窗。然后再充分挖掘模型，用以分类。例如Bayes最大后验概率准则；或者将模型中的参数当作提取的特征（参数一般都比较少，所以这么做实际上是在降维），在这些新特征上设计分类器（例如又用SVM）。

- 仅考虑文本的词频，而不考虑单词在文本中出现的先后顺序及其约束关系
- 文本中的单词来自大小为|V|的词汇表。例如： V = {FILM, MUSIC, TAX, MILLION, STUDENT, TEACHER, SCHOOL}. |V| = 7
- 每篇文本有N个单词
- 文本来自k个主题（topic）。例如: T = {Arts, Budgets, Education}. k = 3

For each of the N words w_n:
Choose a word w_n ～ p(w);

Mixture of unigram(原文中Figure 3(b)). 它这样描述某一文本中单词的“发生方式”：
Choose a topic z ～ p(z);
For each of the N words w_n:
Choose a word w_n ～ p(w|z);

Latent Dirichlet Allocation (LDA, 原文中Figure 1). 它这样描述某一文本中单词的“发生方式”：
Choose parameter θ ～ p(θ);
For each of the N words w_n:
Choose a topic z_n ～ p(z|θ);
Choose a word w_n ～ p(w|z);

LDA在“发生”一篇文本前,先随机生成一个1×k的向量θ（根据Dirichlet分布p(θ)）,生成的这个θ非负且归一化，可以看作某个随机变量的分布(也就是说，Dirichlet可以看作是分布的分布...)；然后随机选取p(w|z)的第z_1行（根据分布p(z|θ)）,接着随机选取z_1行的w_1列（根据分布p(w|z = z_1)）,同样的方法依次选出z_2,w_2,...z_N,w_N,这就“发生”出了文本中的所有单词。

- 分布p(θ)的表达式需要一个1×k行向量的参数，记为α
- p(w|z)可看作k×|V|的矩阵，记该矩阵为β

1 Introduction 综述其它方法
2 Notation and terminology 符号约定
3 Latent Dirichlet allocation 详细介绍
4 Relationship with other latent variable models LDA与 unigram, mixture of unigram, pLSI的区别。前两个本导读已经提到了，建议读者再仔细比较pLSI和LDA的区别，理解为什么作者说pLSI不是well-defined graphic model
5 Inference and Parameter Estimation Inference部分介绍了 variational inference，就是本导读前面提到的如何近似计算隐藏变量的后验概率。Parameter Estimation就是用 EM法估计α和β
6 Examples和7 Applications and Empirical Results 给出的具体例子、应用和实验结果

- p(X|Y)的记法。注意|右边的Y既可以表示随机变量（已经取定了某具体值），也可以表示普通的非随机变量。这样我们可以在最大似然估计和 Bayes方法间方便的“切换”，而不会让符号记法影响我们的表述。例如，考虑具有确定但未知参数μ，Σ的高斯分布p(x),可以记为p(x|μ,Σ); 若按照Bayes学派观点，可以将μ和Σ也看作随机变量，x的分布就能记为随机变量μ，Σ取定某值后的条件分布p(x|μ,Σ)——统一的记法。

- k取1分布/多项式分布(Multinomial)。考虑取3个离散值的随机变量x ～ p(x)。这个看似很平庸的分布...就是所谓的k 取1分布或称多项式分布。一般我们习惯的把它记为p(x_i) = u_i, i = 1,2,3,且u_1 + u_2 + u_3 = 1. 但在有些数学推导中，将它记为指数形式会更方便些.将x看作3维的随机向量，各分量是“互斥”的，即它只能取(1,0,0),(0,1,0),(0,0,1)三组值。于是可将分布重新记为 p(x) = (u_1^x_1)*(u_2^x_2)*(u_3^x_3).注意论文原文中Multinomial就是这儿说的k取1分布，与一些概率教科书中的定义不同。一般的k维情况依次类推。具体参[Bishop]的2.2节.

- 共轭先验分布(Conjugate Prior)。考虑某概率密度函数，要估计其中的参数t。按照Bayes学派的观点，参数 t ～ p(t).我们有p(t|X) ∝ p(X|t)p(t),这个式子说：在没有做任何观测时，我们对t的知识用先验分布p(t)表示。当观察到X 后，就通过该式将先验概率p(t)更新（计算）为后验概率p(t|X)，使我们对t的知识增加。仔细观察，若p(t)与p(X|t)有相同的函数形式，那么后验概率p(t|X)就与先验概率p(t)有相同的函数形式——这使得t的后验概率与先验概率具有相同的表达式，只是参数被更新了！ 更妙的是，本次后验概率可以作为下次观测时的先验概率，于是当继续进行观测X_2,X_3...时，只是不断的在更新先验概率p(t)的参数,p(t)的函数形式不变。具体参见[Bishop]的2.2节。

- Dirichlet分布。现在我们可以说，Dirichlet分布就是k取1分布的Conjugate Prior。若k维随机向量 θ ～ Drichlet分布，则θ的k个分量θ_1,θ_2,...,θ_k都取连续的非负值，且 θ_1 + θ_2 + ... + θ_k = 1。Dirichlet分布的具体表达式参见[Bishop]的2.2节。

- Simplex。考虑2维的例子：以(0,1)与(1,0)为端点的线段就是simplex。考虑3维的例子，以(0,0,1), (0,1,0),(0,0,1)为端点的三角形内部就是simplex。更高维的情况可依次类推。考虑θ ～ Drichlet分布。注意到θ的k个分量 θ_1,θ_2,...,θ_k都取连续的非负值，且θ_1 + θ_2 + ... + θ_k = 1，可知Dirichlet分布的定义域是一个 simplex.这也就是原文中Figure 2那个三角形的含义（k = 3的示意图，让这个simplex三角形平躺在水平面上）。参见 [Bishop]的2.2节

- Graphical Models. 就是用图来表示随机变量中的依赖关系。这个tutorial一google一大把。建议参考 [Bishop]的8.1节，了解几个符号（空心圆圈——隐藏(latent)变量,实心圆圈——观察(observed)变量，方框——重复次数）就足够看懂原文中的Figure 1和Figure 3了。最多再看看[Bishop]的8.2节

- EM.关于这个的tutorial很多，但我觉得[Bishop]的9.2节是数学处理最为简洁，最容易看懂的(有个tutorial在关键的几步中用了大量∑和∏，让人抓狂) 。另外[Bishop]的9.4节也值得看，为理解其它内容如variational inference有好处。

- Variational Inference. 就是计算后验概率的近似方法。考虑随机变量{X,Z}，其中X是观察变量，Z = {Z_1,Z_2}是隐藏变量。用EM法或做Bayes推理的关键一步,就是要求后验概率p(Z|X).不巧的是,在一些复杂问题中 p(Z|X)没有解析表达式,需要近似求解.相关的方法很多,一种经常使用的是基于可分解(factorization)假设的方法：p(Z|X) ≈ p(Z_1|X)p(Z_2|X)——就是说强行假设Z_1和Z_2条件独立——然后进行后续推导。

[Bishop] Pattern Recognition And Machine Learning. C.M.Bishop. Springer, 2006（cryppie在本版曾发过电子版）
[Winn] Variational Message Passing and its Applications. John M. Winn. Ph.D. dissertation, 2004(可google到)

http://vibes.sourceforge.net/index.shtml john winn的通用框架,Java实现（里面有文档指导怎样在Matlab中调Java）

0
0

【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐（算法+实战）--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：1085489次
• 积分：8503
• 等级：
• 排名：第2263名
• 原创：32篇
• 转载：304篇
• 译文：0篇
• 评论：125条
评论排行
最新评论