Notes—Latent Dirichlet Allocation,LDA主题模型

【数学之美】
……未完待续……
ref:
1、★★★★★★★★★★通俗理解LDA主题模型★★★★★★★★★★
2、主题模型-LDA浅析
3、搜索背后的奥秘――浅谈语义主题计算
4、主题模型TopicModel:主题模型LDA的应用
5、David M. Blei, AndrewY. Ng, Michael I. Jordan, LatentDirichlet Allocation, Journal of Machine Learning Research 3, p993-1022,2003
6、http://blog.****.net/pipisorry/article/category/3128727

1.背景
传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少,如TF-IDF等,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似的。

举个例子,有两个句子分别如下:
“乔布斯离我们而去了。”
“苹果价格会不会降?”

可以看到上面这两个句子没有共同出现的单词,但这两个句子是相似的,如果按传统的方法判断这两个句子肯定不相似,所以在判断文档相关性的时候需要考虑到文档的语义,而语义挖掘的利器是主题模型,LDA就是其中一种比较有效的模型。

2.生成&主题模型

生成模型(generative model):我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到的。那么,如果我们要生成一篇文档,它里面的每个词语出现的概率为:
Notes—Latent Dirichlet Allocation,LDA主题模型

这个概率公式用矩阵来表示:
Notes—Latent Dirichlet Allocation,LDA主题模型

其中:
”文档-词语”矩阵表示每个文档中每个单词的词频,即出现的概率,可以对文档分词来计算;
”主题-词语”矩阵中的元素表示每个主题中每个单词的出现概率,称为词分布,服从一个多项式分布(multi-nomial distribution);
”文档-主题”矩阵中的元素表示每个文档中每个主题出现的概率,称为主题分布,服从一个多项式分布;

主题模型:
给定一系列文档,通过对文档进行分词,计算各个文档中每个单词的词频就可以得到左边这边”文档-词语”矩阵。
主题模型就是通过左边这个矩阵进行训练,学习出右边两个矩阵

主题模型有两种:pLSA(ProbabilisticLatent Semantic Analysis)和LDA(Latent Dirichlet Allocation)。

LDA是一种非监督机器学习技术,由Blei, David M.、Ng, Andrew Y.、Jordan于2003年提出,是一种主题模型,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。

它将文档集 中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出它们的主题(分布)出来后,便可以根据主题(分布)进行主题聚类或文本分类。

它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。

一些用到的数学知识:
这篇文章已经讲得很详细了
(1)一个函数:gamma函数
(2)四个分布:二项分布、多项分布、beta分布、Dirichlet分布
(3)一个概念和一个理念:共轭先验和贝叶斯框架
(4)两个模型:pLSA、LDA(在本文第4 部分阐述)
(5)一个采样:Gibbs采样
(6)参数估计方法:极大似然估计MLE,EM估计(MLE思想,有隐含变量),MAP,Bayes估计

3.pLSA模型
3.1 pLSA生成文档
假定有K个可选主题,V个可选词,每生成一篇文档的步骤如下:
(1)先以一定概率选择主题(主题分布)
(2)在每个主题下,以一定概率选择词(词分布)
(3)重复(1)(2)N次,产生N个词,完成一篇文档
(4)重复(1)(2)(3)M次,完成M篇文档

3.2 根据文档反推主题分布
Notes—Latent Dirichlet Allocation,LDA主题模型
要估计右边两个概率
参数估计:EM估计

4.LDA模型
LDA就是在pLSA的基础上加层贝叶斯框架,即LDA就是pLSA的贝叶斯版本(正因为LDA被贝叶斯化了,所以才需要考虑历史先验知识,才加的两个先验参数)
4.1 LDA生成文档步骤
(1)从Dirichlet分布α中取样选择主题,即主题分布是由超参数为α的Dirichlet分布生成的
(2)在每个主题下,从Dirichlet分布β中取样选择词(词分布),即主题分布是由超参数为β的Dirichlet分布生成的
(3)重复(1)(2)N次,产生N个词,完成一篇文档
(4)重复(1)(2)(3)M次,完成M篇文档

Notes—Latent Dirichlet Allocation,LDA主题模型

由上面可看出,LDA在PLSA的基础上,为主题分布和词分布分别加了两个Dirichlet先验(红色标记)。 LDA就是在pLSA的基础上加层贝叶斯框架,即LDA就是pLSA的贝叶斯版本(正因为LDA被贝叶斯化了,所以才需要考虑历史先验知识,才加的两个先验参数)。

所以,LDA中,主题分布和词分布不再唯一确定不变,由Dirichlet先验随机确定。

4.2 根据文档反推主题分布
参数估计:
(1)变分(variational inference)-EM算法
(2)Gibbs采样√
从给定的输入语料中学习训练两个控制参数α和β