nmf java_NMF pLSA
今天在围脖中看到自动化所刘康的围脖中给了一个关于NMF和pLSA对比分析的链接http://ezcodesample.com/plsaidiots/NMFPLSA.html,大体读了一下,下面用中文对文中的思想重新解释,版权归原作者Andrew Polar。
一、名词解释
(1)NMF, nonnegative matrix factorization,直观理解即非负矩阵分解,通常用于矩阵填充,推荐系统等。贡献较大的几位学者有Chris Ding,Daniel D. Le等,还有大陆浙江大学的Deng Cai和Xiaofei He等,还有台湾学者Chih-Jen Lin等。其严格的数学定义如下(1)所示,(1)中"*"范数通常取L2。
(1)
(2)pLSA, probabilistic latent semantic analysis,带概率的潜在语义模型,是Topic model家族中重要一员,其实质是一个生成模型,主要用于文档分类。它假设一篇文章中的词汇生成过程是这样的:文档d中包含有若干个以一定概率p(z)分布的topic,每个词汇w的生成有相应的概率p(w|z)决定。文档d和词汇w的联合概率分布如下(2)所示。
(2)
二、NMF和pLSA的对比分析
链接中对NMF和pLSA的比较是放在文档分类处理的背景下的。假设一批文档可以被分成若干个类别,由于这里是通过关键字来描述文档,同时也通过关键字来描述类别,根据实际经验,描述不同类别会有不同的关键字结合。比如描述大学文化,通常选课,逃课,挂科,恋爱,搞基等词出现的频率会相对较高,描述民生中蜗居,房价,医疗,死猪,雾霾等词汇出现比较频繁。文档分类的结果就是求文档所属的类别或者文档所属各类别的概率。
利用NMF进行文档分类的时候,首先已知文档的document-word矩阵N,其中N(i,j)表示词汇j在文档i中的出现频数。将文档N分解为W*H,其中W为document-category矩阵,H为category-word矩阵,W的行和H的行是归一化的。从概率的观点看,W(i,j)表达的物理含义想的那个鱼p(z|d),H(i,j)表达的物理含义是p(w|z),(W*H)(i,j)表达的就是p(w|d)。为了估计W和H,采用最大似然估计,假设各个词汇出现是相互独立的,似然函数取对数如下(3)所示。
(3)
对于函数(4),
(4)
可以知道在r>=0时,f是一个凸函数,当pi=ri/(r1+r2+…rN)时f取得最大值。同理,在(3)中,
,所以当N(i,j)=(WH)(i,j)时,L取得最大似然。即说明了非负矩阵分解N≈WH其背后的概率解释是最大话似然(3)。
再来看看pLSA方法,通过上面的名词解释(2)知道,pLSA的概率图模型如下所示。
其对应的全概率表示为p(d,z,w)=p(d)*p(z|d)*p(w|z),其中d表示文档,z表示类别,w表示词汇。通过变换易知,p(d,w|z)=p(d|z)p(w|z),故上图所表示的条件独立也可以等价用下图表达,对应的全概率为p(d,z,w)=p(z)*p(d|z)*p(w|z)。
pLSa优化的似然函数为(5),
(5)
参数估计的方法EM算法,
通过上述分析,我们可以从(3)(5)看到NMF和pLSA的相似性,同时,由于各自不同的特点,所采取的优化算法有所不同,一个是从纯粹线性代数的方式,一个是从概率参数估计EM算法出发。
nmf java_NMF pLSA相关推荐
- nmf java_NMF的算法原理
NMF(Non-negative matrix factorization,非负矩阵分解),即对于任意给定的一个非负矩阵V,其能够寻找到一个非负矩阵W和一个非负矩阵H,满足条件V=W*H,从而将一个非 ...
- 文本主题模型之非负矩阵分解(NMF)
1. 非负矩阵分解(NMF)概述 非负矩阵分解(non-negative matrix factorization,以下简称NMF)是一种非常常用的矩阵分解方法,它可以适用于很多领域,比如图像特征识别 ...
- 文本话题聚类(Kmeans/LDA)
K-means 1 聚类是一种无监督的学习方法.聚类区别于分类,即事先不知道要寻找的内容,没有预先设定好的目标变量. 2 聚类将数据点归到多个簇中,其中相似的数据点归为同一簇,而不相似的点归为不同的簇 ...
- LSA、pLSA、LDA、NMF、BERTopic、Top2Vec进行主题建模
在自然语言处理(NLP)中,主题建模是一种技术,用于从文本数据中发现隐藏的语义主题(或主题).这是一个无监督机器学习问题,即在没有标签或标签的情况下学习模式.主题建模的应用非常广泛,可用于搜索引擎.情 ...
- 主题模型、LDA、LSA、LSI、pLSA
主题模型.LDA.LSA.LSI.pLSA LSA = LSI PLSA = PLSI LSA(SVD),PLSA,NMF,LDA均可用于主题模型. LFM.LSI.PLSI.LDA都是隐含语义分析技 ...
- 潜在语义分析 (LSA),概率潜在语义分析 (PLSA)
目录 潜在语义分析 (latent semantic analysis, LSA) 单词向量空间与话题向量空间 单词向量空间 (word vector space) 话题向量空间 (topic vec ...
- 概率潜在语义分析(Probabilistic Latent Semantic Analysis,PLSA)
概率潜在语义分析(Probabilistic Latent Semantic Analysis,PLSA) 目录 概率潜在语义分析(Probabilistic Latent Semantic Anal ...
- 独立成分分析ICA、因子分析、LDA降维、NMF非负矩阵分解
独立成分分析ICA.因子分析.LDA降维.NMF非负矩阵分解 目录 独立成分分析ICA.因子分析.LDA降维.NMF非负矩阵分解 独立成分分析ICA
- SVD(奇异值分解)+NMF(非负矩阵分解)
SVD(奇异值分解)+NMF(非负矩阵分解) NMF==>变为两个矩阵相乘 SVD==>变为三个矩阵相乘
最新文章
- 前端抱怨 API 响应慢,怎么办?
- 绩效C,看不到希望...
- 经典回顾 | 人脸照片秒变艺术肖像画:清华大学提出APDrawingGAN CVPR 2019 oral paper...
- 人工智能抢饭碗,你的工作还保得住吗?
- java 堆栈 对象_在Java中,哪些对象放在堆栈上,哪些放在堆上?
- 【BZOJ-2325】道馆之战 树链剖分 + 线段树
- leetcode-387-字符串中的第一个唯一字符
- hadoop学习之:Map、Reduce详解
- Rotation Matching CodeForces - 1365C(贪心)
- Spring Webflux – Kotlin DSL –实现的演练
- 字符串匹配算法(KMP)
- GC之Minor/Young/Major GC的区别
- QT.pro工程文件中判断宏定义是否存在
- oracle获取当前年上一年时间,Oracle获取一年中的所有日期和一个月中的所有日期...
- batchplot插件用法_教大家Batchplot批量打印插件用不了怎么办
- js生成二维码的几种方法
- matlab中codegen是什么,matlab中mcc编译器参数的含义
- 洗牌、发牌算法 (打乱扑克牌顺序)
- FFmpeg是什么?
- excel 两组数据交点_数据分析入门:8种常用的数据分析方法