首页 > 编程知识 正文

lda主题模型原理介绍,lda模型软件

时间:2023-05-03 06:07:24 阅读:164949 作者:2452

1关于主题模型

使用LDA进行推荐已经有一段时间了,但LDA的导出过程我反复看了好几次。 今天感觉有点整理好了,所以写一版。 隐含颜色的时间分布简称LDA(latentdirichletallocation ),是主题模型(topic model )的一种,由Blei,David M .Ng,Andrew Y .Jordan编写主题模型是一种聚类方法,是一种无监督的学习方法。

与普通的tf-idf相比,主题模型能够从语义上计算文本内容的关联性是很重要的。 主题模型是指只考虑文本总词数,不考虑顺序的词袋模型。

根据是,一个文本以一定的概率属于多个主题(概率加起来为1 ),一个单词也以一定的概率属于多个主题(一个单词有可能以不同的概率属于不同的主题)。

参数的事前

topic-word分布受参数为的对称Dirichlet约束

doc-topic分布受参数的对称Dirichlet约束

双频率学派和贝叶斯学派

这里简单介绍频率学派和贝叶斯学派。 因为PLSA和LDA分别使用了这两个学派的思想。 直到今天,关于统计推断的主张和想法,大致被纳入了两个体系。 被称为频率数学派,其特点是将待估计的参数视为固定且未知的常数,但样本x是随机的,其着眼点是样本空间,相关概率计算均为x的分布。 另一个叫贝叶斯学派,他们把参数看作随机变量,样本x是固定的,其着眼点是参数空间,重视参数的分布,固定的操作模式通过参数的先验分布和结合样本信息得到参数的后验分布

以投硬币为例,正面朝上的概率是被求出的参数。 在小的方面,频率派认为参数是客观存在的,不会变化,是未知的,但是作为固定值的贝叶斯派认为参数是随机值,因为没有观察到,所以与随机数没有变化,所以参数也可以有分布。

大致说来,频率派最关心的是似然函数,贝叶斯派最关心的是后验分布。 可见,后验分布实际上是将似然函数乘以先验分布,normalize后积分为1。 所以,两者的很多方法是共通的。 贝叶斯派所有参数都是随机变量且具有分布,因此可以方便地使用基于采样的方法(如MCMC )来构建复杂模型。 频率派的优点是因为没有假设先验分布,所以更客观、不偏不倚。

例如,概率学派扔硬币证明的概率可能为0.5贝叶斯学派首先获取先验概率,进行实验观察,结合先验概率和观察结果得到后验概率。 这个事后概率才是硬币证明向上的概率,事后概率本身也符合某种分布。

LDA是三层贝叶斯模型。 简而言之,一篇文章可以以不同的概率属于多个主题,但各自有多少概率属于这些主题呢? 例如,文章a可以是{‘科技’:0.5,‘体育’:0.2,‘财经’:0.3 }的分布,也可以是{‘科技’:0.4,‘体育’:0.4,‘财经’

3 PLSA和LDA

介绍PLSA和LDA两种生产模式。

3.1 PLSA

3.1.1举例说明生成文本

一篇文章往往有多个主题,但这多个主题分别出现在文件中的概率大小不同。 例如,在介绍一个国家的文件中,往往从教育、经济、交通等多个主题分别进行介绍。 那么,在pLSA中,文档是如何生成的呢?

假设你要写一个m篇的文档。 由于一个文档由不同的单词组成,因此必须确定每个文档中每个位置的单词。

如果还有k个可选择的主题,有v个可选择的词,那就玩扔骰子的游戏吧。 每次写文档时,k面的“文档-主题”骰子(扔这个骰子可以得到k个主题中的任意一个(和k个v面的“主题-语言项目”骰子)各骰子与主题对应,k个骰子

例如,可以使K=3。 这意味着你将制作一个“文档-主题”骰子,包含教育、经济和交通三个主题。 然后设定V=3,制作3个具有3个面的“主题-语言项”骰子。 其中,教育主题骰子三面词为大学、老师、课程、经济主题骰子三面词为市场、企业、金融、交通主题骰子三面词为高铁、汽车、飞机。

每次写单词时,请先扔出其“文档-主题”骰子,选择一个主题,得到主题结果后,使用与主题结果对应的“主题-单词项”骰子,然后扔出骰子选择要写的单词

首先,投“文档-主题”的骰子。 假设“有一定概率”得到的主题是教育,下一步就要用教育主题的筛子来筛选。 得到与“一定概率”教育主题的筛子相对应的某个词。 是大学。

把上面的掷骰子造词的过程变得简单的话,就是“先按一定的概率选择主题,然后按一定的概率选择词语”。 实际上,最初可以选择的主题有教育、经济、交通三个,为什么选择教育这个主题呢? 其实是随机选出的,这个随机遵循一定的概率分布。 例如,如果选择教育主题的概率为0.5,选择经济主题的概率为0.3,选择交通主题的概率为0.2,则这三个主题的概率分布为{教育: 0.5,经济: 0.3,交通: 0.2},各主题

分布,且是一个多项分布。

同样的,从主题分布中随机抽取出教育主题后,依然面对着3个词:大学、老师、课程,这3个词都可能被选中,但它们被选中的概率也是不一样的。比如大学这个词被选中的概率是0.5,老师这个词被选中的概率是0.3,课程被选中的概率是0.2,那么这3个词的概率分布便是{大学:0.5,老师:0.3,课程:0.2},我们把各个词语w在主题z下出现的概率分布称之为词分布,这个词分布也是一个多项分布。

所以,选主题和选词都是两个随机的过程,先从主题分布{教育:0.5,经济:0.3,交通:0.2}中抽取出主题:教育,然后从该主题对应的词分布{大学:0.5,老师:0.3,课程:0.2}中抽取出词:大学。

最后,你不停的重复扔“文档-主题”骰子和”主题-词项“骰子,重复N次(产生N个词),完成一篇文档,重复这产生一篇文档的方法M次,则完成M篇文档。

3.1.2 流程总结

pLSA中生成文档的整个过程便是选定文档生成主题,确定主题生成词:

按照概率

选择一篇文档

选定文档

后,从主题分布中按照概率

选择一个隐含的主题类别

选定后,从词分布中按照概率

选择一个词

如下图所示(图中被涂色的d、w表示可观测变量,未被涂色的z表示未知的隐变量,N表示一篇文档中总共N个单词,M表示M篇文档):

上图中,文档d和词w是我们得到的样本(样本随机,参数虽未知但固定,所以pLSA属于频率派思想。区别于下文要介绍的LDA中:样本固定,参数未知但不固定,是个随机变量,服从一定的分布,所以LDA属于贝叶斯派思想),可观测得到,所以对于任意一篇文档,其

是已知的。

从而可以根据大量已知的文档-词项

信息,训练出文档-主题

和主题-词项

,如下公式所示: 

 

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

 

由于可事先计算求出

,而

未知,所以就是我们要估计的

参数(值),通俗点说,就是要最大化这个θ。

用什么方法进行估计呢,常用的参数估计方法有极大似然估计MLE、最大后验证估计MAP、贝叶斯估计等等。因为该待估计的参数中含有隐变量z,所以我们可以考虑EM算法。 本文不展开介绍。

3.2 LDA

LDA就是在pLSA的基础上加层贝叶斯框架。pLSA样本随机,参数虽未知但固定,属于频率派思想;而LDA样本固定,参数未知但不固定,是个随机变量,服从一定的分布,LDA属于贝叶斯派思想。 这里的参数是指文档的主题分布、主题的词分布。

3.2.1 LDA流程

从上图可以看出,lda中,依据Dirichlet采样到了不同的文档-主题分布和主题-词分布。1

2

Boxed: 

K is the number of topics

N is the number of words in the document

M is the number of documents to analyse

α is the Dirichlet-prior concentration parameter of the per-document topic distribution

β is the same parameter of the per-topic word distribution

φ(k) is the word distribution for topic k

θ(i) is the topic distribution for document i

z(i,j) is the topic assignment for w(i,j)

w(i,j) is the j-th word in the i-th document

φ and θ are Dirichlet distributions, z and w are multinomials.

生成文本的过程:

LDA模型中一篇文档生成的方式:按照先验概率

选择一篇文档

从彩色的时光分布α中取样生成文档

的主题分布

,换言之,主题分布

由超参数为α的Dirichlet分布生成

从主题的多项式分布

中取样生成文档

第 j 个词的主题

从彩色的时光分布(即Dirichlet分布)β中取样生成主题

 

对应的词语分布

,换言之,词语分布

由参数为β的Dirichlet分布生成

从词语的多项式分布

中采样最终生成词语 

3.2.2 Gibbs LDA

前面已经介绍了LDA流程,最终的目标函数是个联合概率。待求的doc-topic和topic-word两个矩阵,是借助上述流程中的

求得的。gibbs sample就是用来求这个两个概率矩阵的方法。 具体步骤再另一篇介绍采样和变分的文章中再做介绍。

4 在推荐算法中的应用

步骤:

1. 离线求的模型

2. 用模型对新文本预测topic,取topic概率带到阈值(例如0.2)且topN个topic,例如doc1 :topic1:0.5, topic2:0.2

3. 用户点击doc1,就说明用户对topic1和topic2感兴趣,保存用户新闻分析结果,以待推荐

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。