[IR] Concept Search and PLSA
【Topic Model】主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis)
感觉LDA在实践中的优势其实不大,学好pLSA才是重点
阅读笔记
PLSI
2008年的时候,pLSA已经被新兴的LDA掩盖了。
LDA是pLSA的generalization:LDA的hyperparameter设为特定值的时候,就specialize成pLSA了。
从工程应用价值的角度看,这个数学方法的generalization,允许我们用一个训练好的模型解释任何一段文本中的语义。而pLSA只能理解训练文本中的语义。
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模型的生成过程如下:
- 根据概率
选择一篇文档
- 根据概率
选择一个潜性主题
,并且
- 根据概率
生成一个词
,并且
当然每个模型都对文集有一定的假设,PLSA做了如下的假设:
- 并元
的每一对共现是独立的(单词 与 文档 共现) - 当已知潜性变量
的时候,变量
和变量
是条件独立的。
- 并元
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是独立的,可得:

From: http://blog.csdn.net/yangliuy/article/details/8330640
为何 have to EM, 如下表述的更好:

其中是term
出现在文档
中的次数。
注意这是一个关于和
的函数,一共有N*K + M*K个自变量(注意这里M表示term的总数,一般文献习惯用V表示),
如果直接对这些自变量求偏导数,我们会发现由于自变量包含在对数和中,这个方程的求解很困难。
因此对于这样的包含“隐含变量”或者“缺失数据”的概率模型参数估计问题,我们采用EM算法。
PLSA使用EM算法求解极大似然,EM算法是一种机器学习中非常常用的迭代近似算法。一般用来求解得到极大似然或极大后验的参数值。
E步指的是在当前参数的情况下隐变量的后验概率(Expectation),M步指的是求解得到极大似然或极大后验的参数值(Maximization)。
首先计算上面似然函数的期望值:

上式有两个限制条件:


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

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


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


于是便得到了M步求最大化的等式。
PLSA的EM步骤便可以化简如下:
- E步:计算变量z的后验概率

- M步:计算
,
- E步:计算变量z的后验概率
PLSA的问题便是在变量中含有文档d这个变量,在模型上受限使其很难应用到其他文档上去。
之后David Blei提出的LDA(Latent Dirichlet Allocation)便是给文集设定了两个超参来省略掉文档这个固定变量。
其他资源:
代码:http://hpc.cs.tsinghua.edu.cn/research/cluster/plsa/index.html
Application
PLSA may be used in a discriminative setting, via Fisher kernels.
PLSA has applications in information retrieval and filtering, natural language processing, machine learning from text, and related areas.
It is reported that the aspect model used in the probabilistic latent semantic analysis has severe overfitting problems.
[IR] Concept Search and PLSA的更多相关文章
- [IR] Concept Search and LDA
重要的是通过实践更深入地了解贝叶斯思想,先浅浅地了解下LDA. From: http://blog.csdn.net/huagong_adu/article/details/7937616/ 传统方法 ...
- [Bayes] Concept Search and PLSA
[Topic Model]主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis) 感觉LDA在实践中的优势其实不大,学好pLSA才是重点 阅读笔记 ...
- [IR] Concept Search and LSI
基于术语关系的贝叶斯网络信息检索模型扩展研究 LSI 阅读笔记 背景知识 提出一种改进的共现频率法,利用该方法挖掘了索引术语之间的相关关系,将这种相关关系引入信念网络模型,提出了一个具有两层术语节点的 ...
- [Bayes] Concept Search and LDA
重要的是通过实践更深入地了解贝叶斯思想,先浅浅地了解下LDA. 相关数学知识 LDA-math-MCMC 和 Gibbs Sampling LDA-math - 认识 Beta/Dirichlet 分 ...
- [Bayes] Concept Search and LSI
基于术语关系的贝叶斯网络信息检索模型扩展研究 LSI 阅读笔记 背景知识 提出一种改进的共现频率法,利用该方法挖掘了索引术语之间的相关关系,将这种相关关系引入信念网络模型,提出了一个具有两层术语节点的 ...
- 本人AI知识体系导航 - AI menu
Relevant Readable Links Name Interesting topic Comment Edwin Chen 非参贝叶斯 徐亦达老板 Dirichlet Process 学习 ...
- [Bayesian] “我是bayesian我怕谁”系列 - Naive Bayes+prior
先明确一些潜规则: 机器学习是个collection or set of models,一切实践性强的模型都会被归纳到这个领域,没有严格的定义,’有用‘可能就是唯一的共性. 机器学习大概分为三个领域: ...
- [BOOK] Applied Math and Machine Learning Basics
<Deep Learning> Ian Goodfellow Yoshua Bengio Aaron Courvill 关于此书Part One重难点的个人阅读笔记. 2.7 Eigend ...
- [Bayesian] “我是bayesian我怕谁”系列 - Naive Bayes with Prior
先明确一些潜规则: 机器学习是个collection or set of models,一切实践性强的模型都会被归纳到这个领域,没有严格的定义,’有用‘可能就是唯一的共性. 机器学习大概分为三个领域: ...
随机推荐
- git 快照及分支
分支介绍 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平 ...
- JProfiler远程监控
1. 服务端安装JProfiler(与客户端版本一致) 2. 客户端配置连接: A).session——integration wizards——New remote integration B) ...
- Next Permutation leetcode java
题目: Implement next permutation, which rearranges numbers into the lexicographically next greater per ...
- 如何将Revit明细表导出为Excel文档
Revit软件没有将明细表直接导出为Excel电子表格的功能,Revit只能将明细表导出为TXT格式,但是这种TXT文件用EXCEL处理软件打开然后另存为XLS格式即可,以Revit2013版自带的建 ...
- XMAL定义后台数据
头部调用程序集xmlns:sys="clr-namespace:System;assembly=mscorlib" <Window.Resources><!--定 ...
- XMR恶意挖矿脚本处理笔记
一.登录 攻击者如何登录系统未能查出,所有日志已被清除.为防万一,把系统中没用的用户都删掉并修改其他用户密码. 二.被攻击后的表象 1.服务器资源被大量占用,资源占用率飙升: 2.服务器所有JS文件被 ...
- 一文看懂 Dubbo 的集成与使用
前言 今年年初时,阿里巴巴开源的高性能服务框架dubbo又开始了新一轮的更新,还加入了Apache孵化器.原先项目使用了spring cloud之后,已经比较少用dubbo.目前又抽调回原来的行业应用 ...
- UAC 实现原理及绕过方法-打洞专用
首页 新随笔 订阅 管理 随笔 - 7 文章 - 0 评论 - 0 UAC 实现原理及绕过方法 目录 0x01 UAC 实现方法(用户登陆过程)0x02 UAC 架构0x03 触发UAC0x0 ...
- Python中的format()函数
普通格式化方法 (%s%d)生成格式化的字符串,其中s是一个格式化字符串,d是一个十进制数; 格式化字符串包含两部分:普通的字符和转换说明符(见下表), 将使用元组或映射中元素的字符串来替换转换说明符 ...
- Android截图命令screencap与视频录制命令screenrecord
Android截图命令screencap 查看帮助命令 bixiaopeng@bixiaopeng ~$ adb shell screencap -v screencap: invalid optio ...