主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis)

上一篇总结了潜在语义分析(Latent Semantic Analysis, LSA),LSA主要使用了线性代数中奇异值分解的方法,但是并没有严格的概率推导,由于文本文档的维度往往很高,如果在主题聚类中单纯的使用奇异值分解计算复杂度会很高,使用概率推导可以使用一些优化迭代算法来求解。

Thomas Hofmann 于1998年根据似然原理定义了生成模型并由此提出了概率潜在语义分析模型(Probabilistic Latent Semantic Analysis),简称PLSA。

PLSA属于概率图模型中的生成模型,相关的模型还有语言模型中的一元模型(Unigram Model)、混合一元模型(Mixture of Unigrams Model)等。

首先对文集进行设定。假设文集的词典中共有V个词,词典向量为,假设词是独立同分布的(一袋子词),即,一篇文章可以表示为,其中表示第i个词在当前文档中出现的次数。

一元模型中假设每篇文档的词都独立遵从于多项式分布,即假设词典中第i个词在文档中出现的次数遵从多项式分布,即。打个比方来说假设我们有一个V面的骰子,骰子第i面向上的概率为,每掷一次骰子得到一个词,掷M次后便得到一篇由M个词组成的文档(文档的词之间是独立同分布的)。根据多项式分布可以知道文档的概率为

下图中图(a)便是一元语言模型的概率图模型,而图(b)中是PLSA的概率图模型。

PLSA模型中与一元模型中假设词遵从多项式分布不同,PLSA模型中引入了潜层变量作为主题变量,即假设当前文集由K个主题构成。设为文集中的第m篇文档,表示第t个主题,为第i个词。为所有文档的概率分布,是文档的概率,为文档对应的主题的分布,为主题对应的词的分布。

PLSA模型的生成过程如下:

  1. 根据概率选择一篇文档
  2. 根据概率选择一个潜性主题,并且
  3. 根据概率生成一个词,并且

当然每个模型都对文集有一定的假设,PLSA做了如下的假设:

  1. 并元的每一对共现是独立的
  2. 当已知潜性变量的时候,变量和变量是条件独立的。

PLSA最初是根据视面模型(Aspect Model)提出的,假设1与一元模型中的“一袋子词”的假设相似,假设2与PLSA定义的图模型的生成关系有关,PLSA的图模型类似于X->Z->Y这种模式,在贝叶斯网络中被称为间接因果影响(“Indirect Causal Effect”)。举个例子来说,X表示你口袋里有没有2块钱,Z表示你能不能买一只笔,Y表示你能不能参加考试。假如不知道你能不能买一支笔(Z),那么你口袋里有没有2块钱(X)将影响到你能不能参加考试(Y)。但是假如你已经知道你是否可以买一只笔(Z),则你口袋里有没有2块钱(X)就影响不到你能不能参加考试了(Y)。即已知变量Z,变量X和Y是独立的。

PLSA最终是要求得每个并元对应主题的概率,即。下面我们来推导公式。PLSA使用极大似然估计(MLE)。

首先求解隐变量z的对数似然函数

由于PLSA模型的假设1,所以有:

其中表示第n篇文档中的第m个词出现的次数。

又由于在已知变量z的情况下d和w是独立的,可得:

PLSA使用EM算法求解极大似然,EM算法是一种机器学习中非常常用的迭代近似算法。一般用来求解得到极大似然或极大后验的参数值。E步指的是在当前参数的情况下隐变量的后验概率(Expectation),M步指的是求解得到极大似然或极大后验的参数值(Maximization)。

首先计算上面似然函数的期望值:

上式有两个限制条件:

根据拉格朗日乘数法进行极值推导,分别对两个约束设定两个参数

在上式中分别对变量求偏导得到:

与之前的限制条件联立得到:

于是便得到了M步求最大化的等式。

PLSA的EM步骤便可以化简如下:

E步:计算变量z的后验概率

M步:计算

PLSA的问题便是在变量中含有文档d这个变量,在模型上受限使其很难应用到其他文档上去。之后David Blei提出的LDA(Latent Dirichlet Allocation)便是给文集设定了两个超参来省略掉文档这个固定变量。

PLSA的实现C++代码:【还未上传】

https://blog-potatolife.rhcloud.com/?p=147

时间: 2024-10-27 11:24:17

主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis)的相关文章

主题模型之潜在语义分析(Latent Semantic Analysis)

主题模型(Topic Models)是一套试图在大量文档中发现潜在主题结构的机器学习模型,主题模型通过分析文本中的词来发现文档中的主题.主题之间的联系方式和主题的发展.通过主题模型可以使我们组织和总结无法人工标注的海量电子文档.较早的主题模型有混合语言模型(Mixture of Unigram),潜在语义索引(Lantent Semantic Index,LSI),概率潜在语义索引(Probabilistic Latent Semantic Indexing,PLSI).主题模型中文档是由主题组

PLSA(Probabilistic Latent Semantic Analysis)模型

对于上次说的LSA模型,它能解决多个单词一个意义,但是不能解决多个意义一个单词,就是多义词的问题,而PLSA模型能较好的解决这个问题,首先说下,这个模型的假设: 1 假设生成一个单词的过程是这样的:首先选择一篇文章di,然后再次基础上选择一个潜变量zk(可以理解为主题),最后在此基础上再在生成一个单词.如果p(di,wj)表示第i个文本中有第j个单词的概率,根据假设有: 2 另外一个非常重要的假设是,单词wj和文本di是基于潜变量条件独立的,即: 与LSA模型相似,我们首先得到了一个加权词频矩阵

Latent semantic analysis note(LSA)

1 LSA Introduction LSA(latent semantic analysis)潜在语义分析,也被称为LSI(latent semantic index),是Scott Deerwester, Susan T. Dumais等人在1990年提出来的一种新的索引和检索方法.该方法和传统向量空间模型(vector space model)一样使用向量来表示词(terms)和文档(documents),并通过向量间的关系(如夹角)来判断词及文档间的关系:而不同的是,LSA将词和文档映射

Latent Semantic Analysis(LSA)

背景:什么是LSA? Latent Semantic Analysis(LSA)中文翻译为潜语义分析,也被叫做Latent Semantic Indexing ( LSI ).意思是指通过分析一堆(不止一个)文档去发现这些文档中潜在的意思和概念,什么叫潜在的意思?我第一次看到这个解释,直接懵逼.其实就是发现文档的中心主题吧?假设每个词仅表示一个概念,并且每个概念仅仅被一个词所描述,LSA将非常简单(从词到概念存在一个简单的映射关系). 根据常识我们知道两个很常见的语言现象:1. 存在不同的词表示

潜在语义分析Latent semantic analysis note(LSA)原理及代码实现

文章参考:http://blog.sina.com.cn/s/blog_62a9902f0101cjl3.html Latent Semantic Analysis (LSA)也被叫做Latent Semantic Indexing(LSI),从字面上的意思理解就是通过分析文档去发现这些文档中潜在的意思和概念.假设每个词仅表示一个概念,并且每个概念仅仅被一个词所描述,LSA将非常简单(从词到概念存在一个简单的映射关系) 不幸的是,这个问题并没有如此简单,因为存在不同的词表示同一个意思(同义词),

潜在语义分析Latent semantic analysis note(LSA)原理及代码

文章引用:http://blog.sina.com.cn/s/blog_62a9902f0101cjl3.html Latent Semantic Analysis (LSA)也被称为Latent Semantic Indexing(LSI),理解就是通过分析文档去发现这些文档中潜在的意思和概念. 如果每一个词仅表示一个概念.而且每一个概念只被一个词所描写叙述.LSA将很easy(从词到概念存在一个简单的映射关系) 不幸的是,这个问题并没有如此简单.由于存在不同的词表示同一个意思(同义词).一个

Probability Latent Semantic Analysis (PLSA) 模型 学习笔记

Probability Latent Semantic Analysis (PLSA) 模型 学习笔记 PLSA是前面LSA的兄弟版,相比于LSA而言,PLSA定义了概率模型,而且每个变量以及相应的概率分布和条件概率分布都有明确的物理解释了.这篇博文我们分三部分来说PLSA:基本思想,EM算法推导,以及优缺点分析. 1.  PLSA的基本思想 PLSA是一种主题模型topic model,是针对文本中隐含的主题来建模的方法.PLSA就是给定了文档d之后,需要以一定的概率选择与文档相对应的主题z,

Topic Model之Probabilistic Latent Semantic Indexing(PLSI/PLSA)

Probabilistic Latent Semantic Indexing(PLSI/PLSA)是常用的话题模型之一,他通过生成模型来模拟文档的产生过程,然后用Maximum likelihood的方法估计模型中未知参数的值,来获取整个生成模型中的参数值,从而构建起整个生成模型. 一. 基本概念 1.  SVD奇异值分解:SVD主要用来求低阶近似问题.当给定一个MXN的矩阵C时(其秩为r),我们希望找到一个近似矩阵C'(其秩不大于k),当k远小于r时,我们称C'为C的低阶近似,设X = C -

Latent Semantic Analysis (LSA) 模型 学习笔记

Latent Semantic Analysis (LSA) 模型 学习笔记 Latent Semantic Analysis 模型,隐性语义分析,也就是我们常说的LSA模型.后面还有他的兄弟PLSA和LDA模型,这个我们后面再说.这几个都是NLP中比较经典的模型!学习这个模型,主要总结到了三个方面:LSA模型可以应用在哪儿?LSA的理论部分,以及LSA的优缺点分析. 1. LSA的应用 LSA可以在VSM中降低样本的维度,并且可以从文本中发现隐含的语义维度. 在VSM中,文档被表示成由特征词出