-----pLSA概率潜在语义分析、LDA潜在狄瑞雷克模型

一、pLSA(概率潜在语义分析)

  pLSA:    -------有过拟合问题,就是求D, Z, W

  pLSA由LSA发展过来,而早期LSA的实现主要是通过SVD分解。pLSA的模型图如下:

公式中的意义如下:

  具体可以参考2010龙星计划:机器学习中对应的主题模型那一讲

*****************************************************************************************************************

在论文《GoogleNews Personalization Scalable Online CF》一文中提级针对用户聚类,利用相似用户性信息计算喜欢的news。其中包含min-hash以及plsi,plsi是model-based 推荐算法,属于topic(aspect) model,其在NLP领域中用途很大。

引入:

在文本挖掘时,计算文档相似性是很基础的操作,通常,对文本进行分词,构建VSM,通过jaccard或者cosin计算距离或者相似性,这是基于corpus的思路,仅仅考虑词组,并未考虑文本的语义信息。针对下面情况,基于cropus很难处理:

*如果时间回到2006年,马云和杨致远的手还会握在一起吗

*阿里巴巴集团和雅虎就股权回购一事签署了最终协议

如果采用基于corpus的jaccard距离等算法,那么这两个文本的完全不相关,但是事实上,马云和阿里巴巴集团,杨致远和雅虎有着密切的联系,从语义上看,两者都和“阿里巴巴"有关系。

此外,另一个case:

*富士苹果真好,赶快买

*苹果四代真好,赶快买

从corpus上来看,两者非常相似,但是事实上,2个句子从语义上来讲,没有任何关系,一个是”水果“另一个是”手机"。

通过上面的例子,差不多也看出来topic model是什么以及解决什么问题。

概念:

topic model是针对文本隐含主题的建模方法,针对第一个case,马云对应的主题是阿里巴巴,阿里巴巴集团也隐含阿里巴巴主题,这样两个文本的主题匹配上,认为他们是相关的,针对第二个,分别针对水果以及手机主题,我们认为他们是不相关的。

究竟什么是主题?[接下来参考baidu搜索研发部官方博客中对语义主题的定义]主题就是一个概念、一个方面。它表现为一系列相关的词,能够代表这个主题。比如如果是”阿里巴巴“主题,那么”马云“”电子商务“等词会很高的频率出现,而设计到”腾讯“主题,那么“马化腾”“游戏”“QQ”会以较高的频率出现。如果用数学来描述一下的话,主题就是词汇表上词语的条件概率分布,与主题密切相关的词,条件概率p(w|z)越大。主题就像一个桶,装了出现频率很高的词语,这些词语和主题有很强的相关性,或者说这些词语定义了这个主题。同时,一个词语,可能来自于这个桶,也可能来自那个桶,比如“电子商务”可以来自“阿里巴巴”主题,也可以来自“京东“主题,所以一段文字往往包含多个主题,也就是说,一段文字不只有一个主题。

上面介绍了主题的概念,我们最为关心的是如何得到这些主题?这就是topic model要解决的问题。

define: d表示文档,w表示词语,z表示隐含的主题

其中 p(w|d)表示w在文档d中出现的概率,针对训练语料,对文本进行分词,w的频度除以文档所有词语的频度和,可以求出,对于未知数据,model用来计算该value.

        p(w|z)表示在给定主题情况下词语的出现的概率是多少,刻画词语和主题的相关程度。

        p(z|d)表示文档中每个主题出现的概率

所以主题模型就是
利用大量已知的p(w|d)词语-文档信息,训练出来主题-文档p(z|d)以及词语-主题p(w|z)。

plsa模型:

plsa是一种topic model,它属于生成模型(不是很理解),给定文档d后,以一定的概率选择d对应的主题z,然后以一定概率选择z中的词语w.

plsa提供了一种模型求解的方法,采用之前介绍的EM算法,EM算法在之前已经介绍,现在不作处理,直接利用EM信息对topic model进行求解。

 

其中Q是z的分布函数,表示在给定参数的情况下(w,d),z的后验概率。

根据EM算法,我们最后求解:

E-step :

M-step:

         

s.t.

符合上面约束的情况下,求解最大值,

         

其中θ代表期望估计的参数,p(wj|zk),p(zk|di),λz,λd

L(θ)的最大值,需要对各个参数求偏导,令其等于0,

首先求解p(wj|zk)对其求导后,

已知有约束,将带入可以求出:

最后可以求得参数:

基于同样的方式,求p(zk|di),求偏导后有:

利用约束,可以求得:

EM是迭代算法,所以针对 p(zk|dip(wj|zk)都需要给出一个初始值,而Q(zk|di,wj) 表示在参数已知(上一轮迭代结果)时Z的分布,所以每次迭代式Q(zk|di,wj) 是利用之前的结果直接算出来。

主题模型的用途:

1.计算文本的相似性,考虑到文本语义,更好的刻画文本相似性,避免多义词,同义词的影响

2.文本聚类,用户聚类(RS)

3.去除噪音,只保留最重要的主题,更好的刻画文档

plsa在推荐系统中的应用:

上面介绍的是文档和词语的关系,映射到推荐系统中,表示为用户和ITEM的关系,ITEM可以使网,视频等。

这样可以看出来描述的完全是同样的问题,求解p(s|u)=∑zp(s|z)p(z|u),模型参数为p(s|z)?p(z|u),里面上面的推导过程可以求得。

具体的可以参考:

Unsupervised learning by probabilisticlatent semantic analysis

Latent Semantic Models for collaborativefiltering

Google News Personalization Scalable OnlineCF

二、LDA(潜在狄瑞雷克模型)

  LDA:  主题模型,概率图如下:

  和pLSA不同的是LDA中假设了很多先验分布(Dirichlet),且一般参数的先验分布都假设为Dirichlet分布,其原因是共轭分布时先验概率和后验概率的形式相同。

【机器学习】主题模型(二):pLSA和LDA的更多相关文章

  1. 我是这样一步步理解--主题模型(Topic Model)、LDA

    1. LDA模型是什么 LDA可以分为以下5个步骤: 一个函数:gamma函数. 四个分布:二项分布.多项分布.beta分布.Dirichlet分布. 一个概念和一个理念:共轭先验和贝叶斯框架. 两个 ...

  2. LDA概率主题模型

    目录 LDA 主题模型 几个重要分布 模型 Unigram model Mixture of unigrams model PLSA模型 LDA 怎么确定LDA的topic个数? 如何用主题模型解决推 ...

  3. 理解 LDA 主题模型

    前言 gamma函数 0 整体把握LDA 1 gamma函数 beta分布 1 beta分布 2 Beta-Binomial 共轭 3 共轭先验分布 4 从beta分布推广到Dirichlet 分布 ...

  4. 通俗理解LDA主题模型

    通俗理解LDA主题模型 0 前言 印象中,最開始听说"LDA"这个名词,是缘于rickjin在2013年3月写的一个LDA科普系列,叫LDA数学八卦,我当时一直想看来着,记得还打印 ...

  5. 自然语言处理基础与实战(8)- 主题模型LDA理解与应用

    本文主要用于理解主题模型LDA(Latent Dirichlet Allocation)其背后的数学原理及其推导过程.本菇力求用简单的推理来论证LDA背后复杂的数学知识,苦于自身数学基础不够,因此文中 ...

  6. LDA( Latent Dirichlet Allocation)主题模型 学习报告

    1     问题描述 LDA由Blei, David M..Ng, Andrew Y..Jordan于2003年提出,是一种主题模型,它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一 ...

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

    0 前言 看完前面几篇简单的文章后,思路还是不清晰了,但是稍微理解了LDA,下面@Hcy开始详细进入boss篇.其中文章可以分为下述5个步骤: 一个函数:gamma函数 四个分布:二项分布.多项分布. ...

  8. NLP传统基础(2)---LDA主题模型---学习文档主题的概率分布(文本分类/聚类)

    一.简介 https://cloud.tencent.com/developer/article/1058777 1.LDA是一种主题模型 作用:可以将每篇文档的主题以概率分布的形式给出[给定一篇文档 ...

  9. 文本主题模型之潜在语义索引(LSI)

    在文本挖掘中,主题模型是比较特殊的一块,它的思想不同于我们常用的机器学习算法,因此这里我们需要专门来总结文本主题模型的算法.本文关注于潜在语义索引算法(LSI)的原理. 1. 文本主题模型的问题特点 ...

  10. 文本主题模型之非负矩阵分解(NMF)

    在文本主题模型之潜在语义索引(LSI)中,我们讲到LSI主题模型使用了奇异值分解,面临着高维度计算量太大的问题.这里我们就介绍另一种基于矩阵分解的主题模型:非负矩阵分解(NMF),它同样使用了矩阵分解 ...

随机推荐

  1. 奥森图标和CSS特殊字体使用方法

    作为第一篇博文,写这个 我快要被气炸,好吧,废话不说了 昨天在项目中发现有很多这些Awesome图标 也在网上找了下Font Awesome下载后这些文件,现在的版本是4.2,Font Awesome ...

  2. rail模型

    rail是一种以用户为中心的性能模型,又google提出,其主要目标是让用户满意,主要分为response animation idle load四个部分 response 输入延迟时间小于100毫秒 ...

  3. Luogu-3829 [SHOI2012]信用卡凸包

    这道题的转化很巧妙,可以把信用卡四个角的圆心看做平面上的点来做凸包,\(ans\)就是凸包周长加上一个圆的周长 // luogu-judger-enable-o2 #include<cmath& ...

  4. 算法(Algorithms)第4版 练习 1.5.6

    对于weighted quick-union,对每个输入数据对,其最大的循环次数为lgN(sites) 故对于109 sites和106 input pairs,其总的指令次数为:sum = lg10 ...

  5. Win7远程桌面_ZC01

    1.Win7的远程桌面,在一开始设置成全屏显示,当远程桌面窗口 切换为非全屏的状态时,要想再切换成全屏状态 就比较困难了(我的笔记本ThinkpadE440一直没有弄成功...) 1.1.网上搜索各种 ...

  6. Oracle数据库的三种验证机制

    关于超级管理员登陆不需要密码因为: 数据库的三种验证机制: 操作系统验证(具有sysdba和sysopera的用户) 密码文件验证(具有sysdba和sysopera的用户) 数据库验证(普通用户) ...

  7. Linux_笔记_01_设置静态IP与 SecureCRT连接Linux

    步骤一至三,即可设置好静态IP 步骤四至九,使SecureCRT连接Linux 步骤一:编辑ifcfg-eth0 文件 1.打开ifcfg-eth0 文件 使用命令:vi /etc/sysconfig ...

  8. ADO:连接,执行语句与关闭(sql server数据库)

    一,身份验证: sql server数据库连接身份验证有两种:windows身份验证和SQL Server身份验证 windows验证:是使用windows的安全子系统对用户连接进行有效性验证.(个人 ...

  9. 嵌套list的实例化

    在LeetCode上遇到这样返回值 public class Solution { public List<List<Integer>> levelOrder(TreeNode ...

  10. OpenCV-Python 霍夫直线检测-HoughLinesP函数参数

    cv2.HoughLines()函数是在二值图像中查找直线,cv2.HoughLinesP()函数可以查找直线段. cv2.HoughLinesP()函数原型: HoughLinesP(image, ...