大家好,又见面了,我是你们的朋友全栈君。
今天在围脖中看到自动化所刘康的围脖中给了一个关于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算法出发。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148215.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...