主题模型LDAppt课件
- 格式:ppt
- 大小:6.40 MB
- 文档页数:16
LDA主题模型(⼀)LDA作⽤传统判断两个⽂档相似性的⽅法是通过查看两个⽂档共同出现的单词的多少,如TF-IDF等,这种⽅法没有考虑到⽂字背后的语义关联,可能在两个⽂档共同出现的单词很少甚⾄没有,但两个⽂档是相似的。
举个例⼦,有两个句⼦分别如下:“乔布斯离我们⽽去了。
”“苹果价格会不会降?”可以看到上⾯这两个句⼦没有共同出现的单词,但这两个句⼦是相似的,如果按传统的⽅法判断这两个句⼦肯定不相似,所以在判断⽂档相关性的时候需要考虑到⽂档的语义,⽽语义挖掘的利器是主题模型,LDA就是其中⼀种⽐较有效的模型。
在主题模型中,主题表⽰⼀个概念、⼀个⽅⾯,表现为⼀系列相关的单词,是这些单词的条件概率。
形象来说,主题就是⼀个桶,⾥⾯装了出现概率较⾼的单词,这些单词与这个主题有很强的相关性。
怎样才能⽣成主题?对⽂章的主题应该怎么分析?这是主题模型要解决的问题。
⾸先,可以⽤⽣成模型来看⽂档和主题这两件事。
所谓⽣成模型,就是说,我们认为⼀篇⽂章的每个词都是通过“以⼀定概率选择了某个主题,并从这个主题中以⼀定概率选择某个词语”这样⼀个过程得到的。
那么,如果我们要⽣成⼀篇⽂档,它⾥⾯的每个词语出现的概率为:这个概率公式可以⽤矩阵表⽰:其中”⽂档-词语”矩阵表⽰每个⽂档中每个单词的词频,即出现的概率;”主题-词语”矩阵表⽰每个主题中每个单词的出现概率;”⽂档-主题”矩阵表⽰每个⽂档中每个主题出现的概率。
给定⼀系列⽂档,通过对⽂档进⾏分词,计算各个⽂档中每个单词的词频就可以得到左边这边”⽂档-词语”矩阵。
主题模型就是通过左边这个矩阵进⾏训练,学习出右边两个矩阵。
主题模型有两种:pLSA(ProbabilisticLatent Semantic Analysis)和LDA(Latent Dirichlet Allocation),下⾯主要介绍LDA。
(⼆)LDA介绍如何⽣成M份包含N个单词的⽂档,LatentDirichlet Allocation这篇⽂章介绍了3⽅法:⽅法⼀:unigram model该模型使⽤下⾯⽅法⽣成1个⽂档:For each ofthe N words w_n:Choose a word w_n ~ p(w);其中N表⽰要⽣成的⽂档的单词的个数,w_n表⽰⽣成的第n个单词w,p(w)表⽰单词w的分布,可以通过语料进⾏统计学习得到,⽐如给⼀本书,统计各个单词在书中出现的概率。
⽂本主题模型之LDA(⼀)LDA基础在前⾯我们讲到了基于矩阵分解的LSI和NMF主题模型,这⾥我们开始讨论被⼴泛使⽤的主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,以下简称LDA)。
注意机器学习还有⼀个LDA,即线性判别分析,主要是⽤于降维和分类的,如果⼤家需要了解这个LDA的信息,参看之前写的。
⽂本关注于隐含狄利克雷分布对应的LDA。
1. LDA贝叶斯模型 LDA是基于贝叶斯模型的,涉及到贝叶斯模型离不开“先验分布”,“数据(似然)”和"后验分布"三块。
在中我们也已经讲到了这套贝叶斯理论。
在贝叶斯学派这⾥:先验分布 + 数据(似然)= 后验分布 这点其实很好理解,因为这符合我们⼈的思维⽅式,⽐如你对好⼈和坏⼈的认知,先验分布为:100个好⼈和100个的坏⼈,即你认为好⼈坏⼈各占⼀半,现在你被2个好⼈(数据)帮助了和1个坏⼈骗了,于是你得到了新的后验分布为:102个好⼈和101个的坏⼈。
现在你的后验分布⾥⾯认为好⼈⽐坏⼈多了。
这个后验分布接着⼜变成你的新的先验分布,当你被1个好⼈(数据)帮助了和3个坏⼈(数据)骗了后,你⼜更新了你的后验分布为:103个好⼈和104个的坏⼈。
依次继续更新下去。
2. ⼆项分布与Beta分布 对于上⼀节的贝叶斯模型和认知过程,假如⽤数学和概率的⽅式该如何表达呢? 对于我们的数据(似然),这个好办,⽤⼀个⼆项分布就可以搞定,即对于⼆项分布:Binom(k|n,p)=(nk)pk(1−p)n−kBinom(k|n,p)=(nk)pk(1−p)n−k 其中p我们可以理解为好⼈的概率,k为好⼈的个数,n为好⼈坏⼈的总数。
虽然数据(似然)很好理解,但是对于先验分布,我们就要费⼀番脑筋了,为什么呢?因为我们希望这个先验分布和数据(似然)对应的⼆项分布集合后,得到的后验分布在后⾯还可以作为先验分布!就像上⾯例⼦⾥的“102个好⼈和101个的坏⼈”,它是前⾯⼀次贝叶斯推荐的后验分布,⼜是后⼀次贝叶斯推荐的先验分布。
LDA(主题模型)算法&&概念:首先引入主题模型(Topic Model)。
何谓“主题”呢?望文生义就知道是什么意思了,就是诸如一篇文章、一段话、一个句子所表达的中心思想。
不过从统计模型的角度来说,我们是用一个特定的词频分布来刻画主题的,并认为一篇文章、一段话、一个句子是从一个概率模型中生成的。
LDA可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。
它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为易于建模的数字信息。
LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。
所谓生注:每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。
备注:流程(概率分布):→→许多(单)词某些主题一篇文档/**解释:LDA生成过程*对于语料库中的每篇文档,LDA定义了如下生成过程(generativeprocess): *1.对每一篇文档,从主题分布中抽取一个主题;*2.从上述被抽到的主题所对应的单词分布中抽取一个单词;*3.重复上述过程直至遍历文档中的每一个单词。
**/把各个主题z在文档d中出现的概率分布称之为主题分布,且是一个多项分布。
把各个词语w在主题z下出现的概率分布称之为词分布,这个词分布也是一个多项分布。
&&深入学习:理解LDA,可以分为下述5个步骤:1.一个函数:gamma函数2.四个分布:二项分布、多项分布、beta分布、Dirichlet分布3.一个概念和一个理念:共轭先验和贝叶斯框架4.两个模型:pLSA、LDA(在本文第4 部分阐述)5.一个采样:Gibbs采样本文便按照上述5个步骤来阐述,希望读者看完本文后,能对LDA有个尽量清晰完整的了解。
LDA模型的原理及其应用1. 简介LDA(Latent Dirichlet Allocation)模型是一种生成模型,用于从文本中发现主题及其分布。
LDA模型在文本挖掘、信息检索和推荐系统等领域有着广泛的应用。
2. LDA模型原理LDA模型基于以下两个假设: - 文档主题是从主题分布中随机抽取的。
- 文档中的每个单词是由文档的主题生成的。
LDA模型通过概率分布计算文档主题和主题中的单词。
具体步骤如下:2.1 数据预处理•分词:将文档中的句子分成单词。
•去除停用词:去除常见的无意义单词,如“是”、“的”等。
•词形还原:将词语还原为其基本形式。
2.2 主题生成步骤LDA模型假设每个文档包含多个主题,每个主题由多个单词组成。
具体生成步骤如下:1. 随机给定每个文档一个主题分布。
2. 随机给定每个主题一个单词分布。
3. 针对每个文档中的每个单词,依据主题分布和单词分布,重新分配主题。
4. 重复步骤3直到达到停止条件。
2.3 参数估计LDA模型通过迭代算法估计参数: 1. 随机初始化主题分布和单词分布。
2. 利用迭代算法(如Gibbs采样算法)更新主题分布和单词分布。
3. 重复步骤2直到达到停止条件。
3. LDA模型的应用LDA模型在文本挖掘和机器学习中有着广泛的应用。
下面列举了一些主要的应用领域:3.1 文档主题分析LDA模型可以用于发现文档集合中每个文档的主题及其分布。
这对于文档分类、信息检索和文本摘要等任务非常有用。
例如,可以利用LDA模型分析新闻文章的主题分布,从而快速了解文章内容。
3.2 推荐系统LDA模型可以应用于推荐系统中,用于推测用户的潜在主题兴趣。
通过利用LDA模型计算用户的主题分布,可以为用户生成个性化的推荐结果,提高推荐系统的准确性。
3.3 社交网络分析LDA模型可以应用于社交网络分析中,用于发现用户的主题兴趣和关联性。
通过分析用户发表的帖子或评论,可以了解用户的兴趣范围和社交网络中的关系。
LDA主题模型发现LDA主题模型发现1.LDA概念:LDA(Latent Dirichlet Allocation)主题模型由Blei于2003年提出,是在概率隐性语义索引(probabilistic Latent Semantic Indexing,pLSI)上扩展得到的三层贝叶斯概率模型,是⽂档⽣成概率模型。
LDA模型包含词项、主题和⽂档三层结构,其基本思想是把⽂档看成其隐含主题的混合,⽽每个主题则表现为跟该主题相关的词项的概率分布,LDA可以⽤来识别⼤规模⽂档集或语料库中潜在的主题信息。
LDA基于词袋(bag of words)模型,认为⽂档和单词都是可交换的,忽略单词在⽂档中的顺序和⽂档在语料库中的顺序,从⽽将⽂本信息转化为易于建模的数字信息。
在主题模型中,主题表⽰⼀个概念、⼀个⽅⾯,表现为⼀系列相关的单词,是这些单词的条件概率。
形象来说,主题就是⼀个桶,⾥⾯装了出现概率较⾼的单词,这些单词与这个主题有很强的相关性。
2.LDA⽣成过程:⾸先,可以⽤⽣成模型来看⽂档和主题这两件事。
所谓⽣成模型,就是说,我们认为⼀篇⽂章的每个词都是通过“以⼀定概率选择了某个主题,并从这个主题中以⼀定概率选择某个词语”这样⼀个过程得到的。
那么,如果我们要⽣成⼀篇⽂档,它⾥⾯的每个词语出现的概率为:这个概率公式可以⽤矩阵表⽰其中”⽂档-词语”矩阵表⽰每个⽂档中每个单词的词频,即出现的概率;”主题-词语”矩阵表⽰每个主题中每个单词的出现概率;”⽂档-主题”矩阵表⽰每个⽂档中每个主题出现的概率。
LDA整体流程为:先定义⼀些字母的含义:⽂档集合D,topic集合TD中每个⽂档d看作⼀个单词序列,wi表⽰第i个单词,设d有n个单词。
(LDA⾥⾯称之为word bag,实际上每个单词的出现位置对LDA算法⽆影响)D中涉及的所有不同单词组成⼀个⼤集合VOCABULARY(简称VOC)LDA以⽂档集合D作为输⼊(会有切词,去停⽤词,取词⼲等常见的预处理,略去不表),希望训练出的两个结果向量(设聚成k个Topic,VOC中共包含m 个词):对每个D中的⽂档d,对应到不同topic的概率θd,其中,pti表⽰d对应T中第i个topic的概率。
主题模型(概率潜语义分析PLSA、隐含狄利克雷分布LDA)⼀、pLSA模型1、朴素贝叶斯的分析(1)可以胜任许多⽂本分类问题。
(2)⽆法解决语料中⼀词多义和多词⼀义的问题——它更像是词法分析,⽽⾮语义分析。
(3)如果使⽤词向量作为⽂档的特征,⼀词多义和多词⼀义会造成计算⽂档间相似度的不准确性。
(4)可以通过增加“主题”的⽅式,⼀定程度的解决上述问题:⼀个词可能被映射到多个主题中(⼀词多义),多个词可能被映射到某个主题的概率很⾼(多词⼀义)2.pLSA模型基于概率统计的pLSA模型(probabilistic latentsemantic analysis, 概率隐语义分析),增加了主题模型,形成简单的贝叶斯⽹络,可以使⽤EM算法学习模型参数。
(1)D代表⽂档,Z代表主题(隐含类别),W代表单词;P(d i )表⽰⽂档d i 的出现概率, P(z k |d i )表⽰⽂档d i 中主题z k 的出现概率, P(w j |z k )表⽰给定主题z k 出现单词w j 的概率。
(2)每个主题在所有词项上服从多项分布,每个⽂档在所有主题上服从多项分布。
(3)整个⽂档的⽣成过程是这样的:以P(d i )的概率选中⽂档d i ;以P(z k |d i )的概率选中主题z k ;以P(w j |z k )的概率产⽣⼀个单词w j观察数据为(d i ,w j )对,主题z k 是隐含变量。
(d i ,w j )的联合分布为⽽对应了两组多项分布,⽽计算每个⽂档的主题分布,就是该模型的任务⽬标。
(4)极⼤似然估计:w j 在d i 中出现的次数n(di,wj)(5)使⽤逐次逼近的办法:假定P(z k |d i )、P(w j |z k )已知,求隐含变量z k 的后验概率;在(d i ,w j ,z k )已知的前提下,求关于参数P(z k |d i )、P(w j |z k )的似然函数期望的极⼤值,得到最优解P(z k |d i )、P(w j |z k ) ,带⼊上⼀步,从⽽循环迭代;隐含变量z k 的后验概率;在(d i ,w j ,z k )已知的前提下,求关于参数P(z k |d i )、P(w j |z k ) 的似然函数期望的极⼤值,得到最优解P(z k |d i )、P(w j |z k ) ,带⼊上⼀步,从⽽循环迭代;(6)分析似然函数期望在(d i ,w j ,z k )已知的前提. 在(d i ,w j ,z k )已知的前提下,求关于参数P(z k |d i )、P(w j |z k ) 的似然函数期望的极⼤值,得到最优解P(z k |d i )、P(w j |z k ) ,带⼊上⼀步,从⽽循环迭代分析似然函数期望:(7)完成⽬标函数的建⽴关于参数P(z k |d i )、P(w j |z k ) 的函数E,并且,带有概率加和为1的约束条件:显然,这是只有等式约束的求极值问题,使⽤Lagrange乘⼦法解决。