文本挖掘之降维技术之特征抽取之非负矩阵分解(NMF)

2024-06-20 18:08

本文主要是介绍文本挖掘之降维技术之特征抽取之非负矩阵分解(NMF),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通常的矩阵分解会把一个大的矩阵分解为多个小的矩阵,但是这些矩阵的元素有正有负。而在现实世界中,比如图像,文本等形成的矩阵中负数的存在是没有意义的,所以如果能把一个矩阵分解成全是非负元素是很有意义的。在NMF中要求原始的矩阵的所有元素的均是非负的,那么矩阵可以分解为两个更小的非负矩阵的乘积,这个矩阵

有且仅有一个这样的分解,即满足存在性和唯一性。

 

Contents

 

   1. NMF问题描述

   2. NMF实现原理

   3. NMF的应用

   4. NMF的R实现

   5. NMF的Julia实现

   6. 结束语

 

 

1. NMF问题描述

 

   传统的NMF问题可以描述如下

 

   给定矩阵,寻找非负矩阵和非负矩阵,使得

 

   分解前后可理解为:原始矩阵的列向量是对左矩阵中所有列向量的加权和,而权重系数就是右矩阵对应列

   向量的元素,故称为基矩阵,为系数矩阵。一般情况下的选择要比小,即满足

   这时用系数矩阵代替原始矩阵,就可以实现对原始矩阵进行降维,得到数据特征的降维矩阵,从而减少存储空

   间,减少计算机资源。

 

 

2. NMF实现原理

 

   NMF求解问题实际上是一个最优化问题,利用乘性迭代的方法求解,非负矩阵分解是一个NP问题。NMF

   问题的目标函数有很多种,应用最广泛的就是欧几里得距离和KL散度。

 

   在NMF的分解问题中,假设噪声矩阵为,那么有

 

                

 

   现在要找出合适的使得最小。假设噪声服从不同的概率分布,通过最大似然函数会得到不同类型

   的目标函数。接下来会分别以噪声服从高斯分布和泊松分布来说明。

 

 

   (1)噪声服从高斯分布

 

       假设噪声服从高斯分布,那么得到最大似然函数为

 

       

 

       取对数后,得到对数似然函数为

 

       

 

       假设各数据点噪声的方差一样,那么接下来要使得对数似然函数取值最大,只需要下面目标函数值最小。

 

       

 

       该损失函数为2范数损失函数,它是基于欧几里得距离的度量。又因为

 

       

 

       那么得到

 

       

 

       同理有

 

       

 

       接下来就可以使用梯度下降法进行迭代了。如下

 

       

 

       如果选取

 

       

 

       那么最终得到迭代式为

 

       

 

       可看出这是乘性迭代规则,每一步都保证了结果为正数,一直迭代下去就会收敛,当然收敛性的证明省略。

 

 

   (2)噪声服从泊松分布

 

       若噪声为泊松噪声,那么得到损失函数为

 

       

 

       同样经过推到得到

 

       

 

   

3. NMF的应用

 

   NMF能用于发现数据库中图像的特征,便于快速识别应用,比如实现录入恐怖分子的照片,然后在安检口对可疑

   人员进行盘查。在文档方面,NMF能够发现文档的语义相关度,用于信息的自动索引和提取。在生物学中,在

   DNA阵列分析中识别基因等。在语音识别系统中NMF也能发挥重要作用。

 

 

4. NMF的R实现

 

   先说NMF的R使用,R语言中已经有NMF包可用于NMF。非负矩阵分解已经有了很多算法,例如Multiplicative

   Update,Projected Gradient Method,Gradient Descent。交替最小二乘法比较符合上面的解释,具

   有更好的统计意义,而且收敛性质很好,计算速度快。已有的交替最小二乘法都使用冷冰冰的二次规划算法求解

   非负回归,在bignmf中使用的最小角回归的思路解非负回归,更有统计的感觉,而且速度更快。安装包如下

 

   bignmf:https://github.com/panlanfeng/bignmf

 

   bignmf的部分源码如下

 

   

 

   从上面代码可以看出,当矩阵V中元素是非double时,会强制转化为double类型。而W和H矩阵是服从高斯分布

   的随机矩阵,随后传入参数调用whupdate,如果迭代次数太少会打印警告Iteration doesn't converge!

 

   所以用bignmf分解非负矩阵调用如下函数就行了

 

   

 

   代码:

   

 

   以上是NMF分解的R语言实现,bignmf借助伟大的Rcpp和RcppEigen包,算法内层用C++ 代码实现接下来会接

   着讲NMF在Julia中的实现。

 

 

5. NMF的Julia实现

 

   在Julia语言中,有一个NMF包专门用来进行NMF分解的,现在就来详细了解它。首先来安装NMF,在Julia交互

   式环境下使用如下命令

 

   

 

   在Julia中,关于NMF的计算有很多方法,详见:https://github.com/JuliaStats/NMF.jl

 

   NMF分解的一个例子如下

 

   

 

 

6. 结束语

 

   关于NMF的解的收敛性和唯一性以后再证明,除了NMF分解以外,还有一种非负分解也用的比较多,而且很有

   效,叫做非负张量分解法。可以参考如下论文

 

   论文链接:http://www.doc88.com/p-8942237517189.html

7、应用范围

   NMF的广泛应用,源于其对事物的局部特性有很好的解释。在众多应用中,NMF能被用于发现数据库中的图像特征,便于快速自动识别应用;能够发现文档的语义相关度,用于信息自动索引和提取;能够在DNA阵列分析中识别基因等等。我们将对此作一些大致的描述。

        (1) 图像分析
NMF最成功的一类应用是在图像的分析和处理领域。图像本身包含大量的数据,计算机一般将图像的信息按照矩阵的形式进行存放,针对图像的识别、分析和处理也是在矩阵的基础上进行的。这些特点使得NMF方法能很好地与图像分析处理相结合。人们已经利用NMF算法,对卫星发回的图像进行处理,以自动辨别太空中的垃圾碎片;使用NMF算法对天文望远镜拍摄到的图像进行分析,有助于天文学家识别星体;美国还尝试在机场安装由NMF算法驱动的识别系统,根据事先输入计算机的恐怖分子的特征图像库来自动识别进出机场的可疑恐怖分子。
        (2) 文本聚类/数据挖掘
文本在人类日常接触的信息中占有很大分量,为了更快更精确地从大量的文本数据中取得所需要的信息,针对文本信息处理的研究一直没有停止过。文本数据不光信息量大,而且一般是无结构的。此外,典型的文本数据通常以矩阵的形式被计算机处理,此时的数据矩阵具有高维稀疏的特征,因此,对大规模文本信息进行处理分析的另一个障碍便是如何削减原始数据的维数。NMF算法正是解决这方面难题的一种新手段。NMF在挖掘用户所需数据和进行文本聚类研究中都有着成功的应用例子。由于NMF算法在处理文本数据方面的高效性,著名的商业数据库软件Oracle在其第10版中专门利用NMF算法来进行文本特征的提取和分类。为什么NMF对于文本信息提取得很好呢?原因在于智能文本处理的核心问题是以一种能捕获语义或相关信息的方式来表示文本,但是传统的常用分析方法仅仅是对词进行统计,而不考虑其他的信息。而NMF不同,它往往能达到表示信息的局部之间相关关系的效果,从而获得更好的处理结果。
        (3) 语音处理
语音的自动识别一直是计算机科学家努力的方向,也是未来智能应用实现的基础技术。语音同样包含大量的数据信息,识别语音的过程也是对这些信息处理的过程。NMF算法在这方面也为我们提供了一种新方法,在已有的应用中,NMF算法成功实现了有效的语音特征提取,并且由于NMF算法的快速性,对实现机器的实时语音识别有着促进意义。也有使用NMF方法进行音乐分析的应用。复调音乐的识别是个很困难的问题,三菱研究所和MIT(麻省理工学院)的科学家合作,利用NMF从演奏中的复调音乐中识别出各个调子,并将它们分别记录下来。实验结果表明,这种采用NMF算法的方法不光简单,而且无须基于知识库。
(4) 机器人控制
如何快速准确地让机器人识别周围的物体对于机器人研究具有重要的意义,因为这是机器人能迅速作出相应反应和动作的基础。机器人通过传感器获得周围环境的图像信息,这些图像信息也是以矩阵的形式存储的。已经有研究人员采用NMF算法实现了机器人对周围对象的快速识别,根据现有的研究资料显示,识别的准确率达到了80%以上。
(5) 生物医学工程和化学工程
生物医学和化学研究中,也常常需要借助计算机来分析处理试验的数据,往往一些烦杂的数据会耗费研究人员的过多精力。NMF算法也为这些数据的处理提供了一种新的高效快速的途径。科学家将NMF方法用于处理核医学中的电子发射过程的动态连续图像,有效地从这些动态图像中提取所需要的特征。NMF还可以应用到遗传学和药物发现中。因为NMF的分解不出现负值,因此采用NMF分析基因DNA的分子序列可使分析结果更加可靠。同样,用NMF来选择药物成分还可以获得最有效的且负作用最小的新药物。
此外,NMF算法在环境数据处理、信号分析与复杂对象的识别方面都有着很好的应用。近年来采用NMF思想的应用才刚展开,相信以后会有更多的成功应用。这些成功的应用反过来也将促进NMF的进一步研究。

         应用部分转自博文:非负矩阵分解:数学的奇妙力量

5、有NMF的相关算法如下:Local NMF(LNMF),Discriminant NMF(DNMF),non-negative sparse coding(NNSC),non-smooth NMF(nsNMF),projective NMF,temporal NMF with spatial decorrelation constraints,shifted NMF,incremental NMF,sparse higher order NMF and polynomial NMF 等等,对于NMF分解的唯一性探讨也是NMF最近比较受关注的方面。具体还得慢慢学习。

相关资料及下载链接:

[1].Daniel D.Lee* & H. Sebastian Seung*Learningthe parts of objects by Non-negative Matrix Factorization

[2]. Daniel D.Lee* & H. Sebastian Seung* Algorithms for Non-negative Matrix Factorization

 3、Chih-Jen Lin的主页,上面有关于NMF的一些matlab源代码;

4、Non-negative Matrix factorization discussion forum excerpts ,一个论坛摘引;

5、NMF fuction- Mathworks 是对matlab中的NMF函数的使用说明;

6、维基百科NMF 维基百科的东西还是很赞的,里面的很多链接留着慢慢看。

7、http://books.nips.cc/cgi-bin/archer_query.cgi?first=1&scope=all&hits_per_page=10&description=long&keywords=NMF


这篇关于文本挖掘之降维技术之特征抽取之非负矩阵分解(NMF)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1078871

相关文章

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi