概念主题模型简记

概念主题模型(PTM, probabilitytopical model)在自然语言处理(NLP,natural language processing)中有着重要的应用。主要包括以下几个模型:LSA(latentsemantic
analysis)、 PLSA(probability latent semantic analysis)、LDA(latentdirichlet allocation)和HDP(hirerachical
dirichlet processing),这里用一张图给出它们的发展历程。此记主要记录PLSA和LDA模型.

PLSA:

PLSA是在LSA的基础上发展起来的,因为LSA有以下缺点:(1)svd奇异值分解对数据的变化较为敏感,同时缺乏先验信息的植入等而显得过分机械。(2)缺乏稳固的数理统计基础(奇异值分解物理意义,如何从数学上推导得出高维降到的低维语义结构空间),此外svd分解比较耗时。基于以上两个原因,提出了PLSA(概率潜在语义结构分析),这样我们就从概率的角度对LSA进行新的诠释,使得LSA有了稳固的统计学基础。

PLSA不关注词和词之间的出现顺序,所以pLSA是一种词袋方法(BOW: 一个文档用一个向量表示,向量中元素就是一个词出现与否或者是出现次数或者TF-IDF,各个词是否出现相互独立),具体说来,该模型假设一组共现(co-occurrence)词项关联着一个隐含的主题类别。同时定义:

  • P(di)表示海量文档中某篇文档被选中的概率。
  • P(wj|di)表示词wj在给定文档di中出现的概率。
    • 怎么计算得到呢?针对海量文档,对所有文档进行分词后,得到一个词汇列表,这样每篇文档就是一个词语的集合。对于每个词语,用它在文档中出现的次数除以文档中词语总的数目便是它在文档中出现的概率P(wj|di)。
  • P(zk|di)表示具体某个主题zk在给定文档di下出现的概率。
  • P(wj|zk)表示具体某个词wj在给定主题下出现的概率zk,与主题关系越密切的词,其条件概率P(wj|zk)越大。

利用上述的第1、3、4个概率,我们便可以按照如下的步骤得到“文档-词项”的生成模型:

  1. 按照概率P(di)选择一篇文档di
  2. 选定文档di后,从主题分布中按照概率P(zk|di)选择一个隐含的主题类别zk
  3. 选定zk后,从词分布中按照概率P(wj|zk)选择一个词wj

这样可以根据大量已知的文档-词项信息P(wj|di),训练出文档-主题P(zk|di)和主题-词项P(wj|zk),如下公式所示:

故得到文档中每个词的生成概率为:

由于P(di)可事先计算求出,P(wj|zk)和P(zk|di)未知,所以就是我们要估计的参数(值).由于含有隐含的主题变量z,所有我们考虑使用EM算法。

我们使用最大似然估计得到:

这里:n(di,wj)表示词项wj在文档di中词频,n(di)表示文档di中词的总数。M表示文档数量,N表示单词数量

其对数似然估计为:

下面用EM算法进行求解:

E-step:

M-step:

由前面的对数似然函数知:

我们去除不必要的常数项得到:

约束条件为:

这里通过largange乘数法求:

最终我们便求得参数即为每个文档中主题发生的概率及在该主题下词发生的概率,然后就

可以用得到得参数对文档或者文档中的词进行分类等。

LDA

LDA:隐含的狄利克雷分布,要了解LDA,需要一些数学基础,包括二项分布,多项式分布,beta分布,dirichlet分布.这几个分布可以参看这篇blog:http://blog.csdn.net/v_july_v/article/details/41209515,此外这篇blog:http://blog.csdn.net/lu597203933/article/details/45933719讲解MLE(最大似然估计)、MAP(最大后验概率估计)及贝叶斯估计的区别。

这里我们会得出:

参数p的先验概率为beta(或者dirichlet)分布,那么以p为参数的二项分布(或者多项式分布)通过贝叶斯估计得到的后验概率分布仍然是beta分布(或者dirichlet分布)。我们说beta分布式是二项式分布的共轭先验概率分布,而dirichlet分布为多项式分布的共轭先验概率分布。如何理解这句话呢?

我们举一个简单的例子:比如投硬币,我们将p记为正面发生的概率,这样我们投了20次,出现正面12次,反面8次。这就是所谓的样本空间X,
P(X|p) = p^12*(1-p)^8是以p为参数的二项式分布。假设p有个先验分布beta(a,b)(a和b为beta分布的参数,为什么选择beta,后面讲)。现在我们用贝叶斯估计,即最大化P(p|X),通过公式推导我们会发现P(p|X)服从的也是beta分布,为beta(a+12,b+8)。如果看不懂可以再看看这篇blog:http://blog.csdn.net/lu597203933/article/details/45933719

那么现在有以下几个问题:

1:为什么选用beta分布或者dirichlet分布?

<1>beta分布+二项分布得到的仍然是beta分布,这样就给计算带来了方便,可以直接利用beta分布的均值方差公式得到结果

<2>beta分布可以通过变换不同参数得到不同形状分布的概率密度函数,通过选择参数(称为超参数)一定能满足我们的需求(形状千奇百怪,高低胖瘦)。

dirichlet分布和多项式分布分别是beta分布和二项分布在多维情况的推广!

2:为什么选择贝叶斯估计?

贝叶斯估计参数的表示方式更为精确,得到的参数也更为精确,越来越能反应基于样本的真实参数情况。没有将参数作为固定未知值,而是将其作为随机变量,先验为一个概率分布(人们已经知道或普遍接受的规律),这样就会对后续参数估计产生一定的影响。

这里给出频率学派和贝叶斯学派的区别:

频率学派:参数是未知的,但是固定,样本空间X是随机变量,最大似然估计(MLE,maximumlikehood estimation)

贝叶斯学派:参数具有一个先验概率分布(人们已经知道或者普遍接受的规律),参数可以看做是一个随机变量,不再固定,有最大后验估计(MAP,maximum
a posterior)和贝叶斯估计两种方法。

LDA的过程为:

lda实质上就是plsa加了一个贝叶斯框架,过程可以描述为:由先验dirichlet分布得到主题的概率分布(P(p)),然后通过已有样本得到的主题样本空间(潜在的)服从的是以dirichlet分布概率作为参数的多项式分布(P(X|p)),这样通过贝叶斯估计得到每个主题的后验概率分布仍为dirichlet分布(P(p|X));;一个主题下的每个词先验分布也是dirichlet分布,词样本空间服从的是以dirichlet分布概率作为参数的多项式分布,这样通过贝叶斯估计得到的后验概率分布仍然为dirichlet分布。

之所以选择dirichlet分布作为先验概率分布,因为主题和词的分布都是多项式分布,所以dirichlet先验概率分布+多项式分布得出的结果仍然是dirichlet分布,这样就可以使用dirichlet分布的性质了。

总结:plsa和lda最终需要求得的参数都是每个文档中主题发生的概率及在该主题下词发生的概率,参数即为两个矩阵,然后就可以用得到得参数对文档或者文档中的词进行分类等。只不过lda是plsa的贝叶斯化,先验概率服从dirichlet分布,贝叶斯化的好处一方面使得到的参数更加精确,另一方面贝叶斯学派的观点可以降低过拟合等优点!

此外:对lda的参数估计方法gibbs sampling算法,我还没有看,后续再补充!。欢迎有任何问题的进行交流!

这里给出一般的共轭分布表:

参考文献:

1:http://blog.csdn.net/v_july_v/article/details/41209515 通俗理解LDA主题模型

2:http://blog.csdn.net/yangliuy/article/details/8296481文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计

3:http://blog.csdn.net/yangliuy/article/details/8330640

4http://maider.blog.sohu.com/306392863.html如何理解beta分布和dirichlet分布

5:http://vdisk.weibo.com/s/zrFL6OXKgKMAf沈博ppt

时间: 2024-10-13 19:24:21

概念主题模型简记的相关文章

主题模型及其在文本情感分析中的应用

随着Web2.0技术的出现和发展,互联网上(包括门户网站.电子商务网站.社交网站.音/视频分享网站.论坛.博客.微博等)产生了海量的.由用户发表的对于诸如人物.事件.产品等目标实体的评论信息.例如,下面这两个短文本评论:(1)“比较了多个智能手机后选择了8150,性价比还可以.另外,就是考虑到它是3.7的屏幕,大小比较合适,否则携带很不方便.”(京东商城用户,2011.11.25):(2)“我以前在杭州做二手房地产,用温州炒房客的话说:全世界房价降了,杭州的房价永远不会降,因为他们有一道坚不可摧

Latent Dirichlet Allocation 文本分类主题模型

文本提取特征常用的模型有:1.Bag-of-words:最原始的特征集,一个单词/分词就是一个特征.往往一个数据集就会有上万个特征:有一些简单的指标可以帮助筛选掉一些对分类没帮助的词语,例如去停词,计算互信息熵等等,但不管怎么训练,特征维度都很大,每个特征的信息量太小:2.统计特征:包括Term frequency(TF) , Inverse document frequency(IDF), 以及合并起来的TF-IDF.这种语言模型主要是用词汇的统计特征来作为特征集,每个特征都能够说得出物理意义

通俗理解LDA主题模型(boss)

0 前言 看完前面几篇简单的文章后,思路还是不清晰了,但是稍微理解了LDA,下面@Hcy开始详细进入boss篇.其中文章可以分为下述5个步骤: 一个函数:gamma函数 四个分布:二项分布.多项分布.beta分布.Dirichlet分布 一个概念和一个理念:共轭先验和贝叶斯框架 两个模型:pLSA.LDA(在本文第4 部分阐述) 一个采样:Gibbs采样 本文便按照上述5个步骤来阐述,希望读者看完本文后,能对LDA有个尽量清晰完整的了解.同时,本文基于邹博讲LDA的PPT.rickjin的LDA

LDA主题模型浅析

上个月参加了在北京举办SIGKDD国际会议,在个性化推荐.社交网络.广告预测等各个领域的workshop上都提到LDA模型,感觉这个模型的应用挺广泛的,会后抽时间了解了一下LDA,做一下总结: (一)LDA作用 传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少,如TF-IDF等,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似的. 举个例子,有两个句子分别如下: "乔布斯离我们而去了." "苹果价格会不会降?&

主题模型-LDA浅析

(一)LDA作用 传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少,如TF-IDF等,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似的. 举个例子,有两个句子分别如下: “乔布斯离我们而去了.” “苹果价格会不会降?” 可以看到上面这两个句子没有共同出现的单词,但这两个句子是相似的,如果按传统的方法判断这两个句子肯定不相似,所以在判断文档相关性的时候需要考虑到文档的语义,而语义挖掘的利器是主题模型,LDA就是其中一种比较有效的模

004 JMS中的基本概念和模型支持

一 .概述 在前面我们简单的使用的ativemq完成了一个小的例子,最主要的作用就是帮助我们了解一下mq. 在这里我们就需要了解一下jms的规范的主要内容. 二 .JMS是什么 JMS是java消息服务,是jee中的一个技术. jms仅仅只是给出了规范(接口),我们需要使用不同的中间件完成任务. 如我们使用的activemq就是一个jms的中间件. jms的消息: [1]消息头 : [2]消息属性 [3]消息体:封装具体的消息数据. 生产者: 创建和发送消息的客户端应用 消费者:接收和处理消息的

主题模型--机器学习

两篇文档是否相关往往不只决定于字面上的词语重复,还取决于文字背后的语义关联.对语义关联的挖掘,可以让我们的搜索更加智能化.本文着重介绍了一个语义挖掘的利器:主题模型.主题模型是对文字隐含主题进行建模的方法.它克服了传统信息检索中文档相似度计算方法的缺点,并且能够在海量互联网数据中自动寻找出文字间的语义主题.近些年来各大互联网公司都开始了这方面的探索和尝试.就让我们看一下究竟吧. 关键词:主题模型 技术领域:搜索技术.自然语言处理 假设有两个句子,我们想知道它们之间是否相关联: 第一个是:"乔布斯

我是这样一步步理解--主题模型(Topic Model)、LDA(案例代码)

1. LDA模型是什么 LDA可以分为以下5个步骤: 一个函数:gamma函数. 四个分布:二项分布.多项分布.beta分布.Dirichlet分布. 一个概念和一个理念:共轭先验和贝叶斯框架. 两个模型:pLSA.LDA. 一个采样:Gibbs采样 关于LDA有两种含义,一种是线性判别分析(Linear Discriminant Analysis),一种是概率主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),本文讲后者. 按照wiki上的介绍,L

R语言-文本挖掘 主题模型 文本分类

####需要先安装几个R包,如果有这些包,可省略安装包的步骤.#install.packages("Rwordseg")#install.packages("tm");#install.packages("wordcloud");#install.packages("topicmodels") 例子中所用数据 数据来源于sougou实验室数据. 数据网址:http://download.labs.sogou.com/dl/so