非负矩阵分解算法概述之Lee&Seung的世界
- 格式:docx
- 大小:1.38 MB
- 文档页数:10
非负矩阵分解一、概述著名的科学杂志《Nature》于1999年刊登了两位科学家D.D.Lee和H.S.Seung对数学中非负矩阵研究的突出成果。
该文提出了一种新的矩阵分解思想——非负矩阵分解(Non-negative Matrix Factorization,NMF)算法,即NMF是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。
在科学文献中,讨论利用矩阵分解来解决实际问题的分析方法很多,如PCA(主成分分析)、ICA(独立成分分析)、SVD(奇异值分解)、VQ(矢量量化)等。
在所有这些方法中,原始的大矩阵V被近似分解为低秩的V=WH形式。
这些方法的共同特点是,因子W和H中的元素可为正或负,即使输入的初始矩阵元素是全正的,传统的秩削减算法也不能保证原始数据的非负性。
在数学上,从计算的观点看,分解结果中存在负值是正确的,但负值元素在实际问题中往往是没有意义的。
例如图像数据中不可能有负值的像素点;在文档统计中,负值也是无法解释的。
因此,探索矩阵的非负分解方法一直是很有意义的研究问题,正是如此,Lee和Seung两位科学家的NMF方法才得到人们的如此关注。
NMF的目标是要自动找到特征矩阵和权重矩阵。
也可将其看作是矩阵的乘法。
如矩阵A=[ 29 29; 43 33 ; 15 25; 40 28; 24 11; 29 29;37 23;21 6]; 可分解为如下形式:二、原理2.1 标准NMF对于非负矩阵分解,早期的研究方法采用传统的梯度下降方法和加性迭代规则,对于负值要强制为。
在文献[51]中考虑的是高斯噪声的模型,由此得到目标函数为欧几里德距离,其目标函数为:相应的迭代规则为:选择好;的值,配置矩阵牙和H的初始值进行迭代,文献[52]中提到了3种初始化W和H的方法。
在Lee给出的算法中,矩阵w和H的初始值可以是任意的,此迭代方法的收敛性的证明可参见文献「53]。
Donoh。
等人[54〕用几何学的方法来对NMF收敛性进行了解释。
数据降维-NMF⾮负矩阵分解1.什么是⾮负矩阵分解?NMF的基本思想可以简单描述为:对于任意给定的⼀个⾮负矩阵V,NMF算法能够寻找到⼀个⾮负矩阵W和⼀个⾮负矩阵H,使得满⾜,从⽽将⼀个⾮负的矩阵分解为左右两个⾮负矩阵的乘积。
如下图所⽰,其中要求分解后的矩阵H和W都必须是⾮负矩阵。
分解前后可理解为:原始矩阵的列向量是对左矩阵中所有列向量的加权和,⽽权重系数就是右矩阵对应列向量的元素,故称为基矩阵,为系数矩阵。
⼀般情况下的选择要⽐⼩,即满⾜,这时⽤系数矩阵代替原始矩阵,就可以实现对原始矩阵进⾏降维,得到数据特征的降维矩阵,从⽽减少存储空间,减少计算机资源。
2.⾮负矩阵分解⼀个⽰例解释通过图1中的⾯部特征提取例⼦可领略NMF处理数据的⽅式。
最左边的⼤矩阵由⼀系列的⼩图组成,这些⼩图是分析数据库中包含的2429个脸部图像的结果,每幅图像由19×19个像素组成。
传统⽅法中这样的⼩图是⼀幅完整的⼈脸图像,但是在NMF⽅法中,每个⼩图是通过⼀组基图像乘以⼀个权重矩阵⽽产⽣的⾯部特征图,经过这样处理的每幅⼩图像恰好表⽰了诸如“⿐⼦”、“嘴巴”、“眼睛”等⼈脸局部概念特征,这便⼤⼤压缩了存放的图像数据量。
左边的⼤矩阵由每幅⼩图像的19列⼀起组成矩阵的⼀列,那样它就是19×19=361⾏,2429列。
这个例⼦中,NMF⽅法⽤基图像来代表眼、眉⽑、⿐⼦、嘴、⽿朵、胡⼦等,它们⼀起组成了数据库中的脸。
这样给⼈最先的直觉就是它很好地压缩了数据。
事实上Lee和Seung在他们的论⽂中更深⼊地指出,与⼈类识别事物的过程相似,NMF也是⼀种优化的机制,近似于我们的脑分析和存储⼈脸数据的过程。
这个例⼦中,原图像表⽰这些局部特征的加权组合,这与⼈类思维中“局部构成整体”的概念是相吻合的。
因此,NMF算法似乎体现了⼀种智能⾏为。
3.⾮负矩阵分解NMF的应⽤(1)图像分析 NMF最成功的⼀类应⽤是在图像的分析和处理领域(2)⽂本聚类,数据挖掘(3)语⾳处理(4)机器⼈控制(5)⽣物医药⼯程和化学⼯程。
非负矩阵分解算法在推荐系统中的应用随着互联网飞速发展, 推荐系统已经成为了人们信息获取和购买习惯调整的重要方式之一。
而推荐算法也成为了推荐系统中的重要组成部分。
从最早的基于词频统计的分析算法到后来的协同过滤算法,推荐算法一直在不断改进,以期提高推荐系统的精度和效率。
近年来,非负矩阵分解算法(NMF)被引入到推荐系统中,成为了一种新的推荐算法,并且在一些领域中已经取得了很好的效果。
一、什么是非负矩阵分解算法?非负矩阵分解算法在2001年由Lee和Seung提出,也称为NMF算法。
它是一种在推荐系统中非常有用的算法,可以方便地推断出用户对物品的偏好。
简单来说,就是将一个原始的矩阵分解成两个非负的矩阵,一个是用户矩阵,另外一个是物品矩阵,并通过计算它们的积,可以预测用户之前没有评价过的物品。
NMF算法在推荐系统中的一个优势是它可以解决“数据稀疏”问题。
在推荐系统中,一个用户可能只对很少的几个物品进行了评价,这就导致了大部分的元素都是空值。
NMF算法通过矩阵分解,可以填充空间,并预测用户对新的物品的偏好,提高推荐的准确度。
因此,NMF算法被广泛应用在社交网络推荐、电影和音乐推荐、商品推荐等。
二、NMF算法在推荐系统中的优势除了可以解决数据稀疏的问题,NMF算法在推荐系统中有许多其他的优势。
1. 预测准确度高在很多情况下,NMF算法的预测准确度比传统的推荐算法更高。
这是因为它能够抽象出更多的特征,并用这些特征来更好地描述用户的偏好,从而提高预测的准确度。
2. 模型可解释性强NMF算法中的用户矩阵和物品矩阵都只包含非负值,这意味着它们都有一个自然的物理解释。
例如,在一个用户矩阵中,每一行都代表该用户对不同特征的偏好评分,如“音乐”、“体育”、“电影”等。
同样地,在一个物品矩阵中,每一列代表该物品各个特征的分值。
这种解释性强的模型可以让我们更好地观察用户和物品之间的关系,并更好地解释预测结果。
3. 算法参数少NMF算法的参数相对较少,只有两个矩阵需要分解,因此实现过程会更加简单,运算速度更快,这对于大规模的推荐系统来说尤其重要。
多通道非负矩阵分解概述及解释说明1. 引言1.1 概述:本文旨在介绍多通道非负矩阵分解(Multiple Channel Nonnegative Matrix Factorization)的基本原理、应用领域以及算法优势。
非负矩阵分解作为一种重要的数据降维和特征提取方法,已经被广泛应用于图像处理、语音识别、推荐系统等领域。
多通道非负矩阵分解则是对传统单通道非负矩阵分解进行拓展,能够更好地处理多模态或多源数据。
1.2 文章结构:本文共分为五个部分:引言、多通道非负矩阵分解、解释说明一、解释说明二以及结论与展望。
引言部分主要介绍本文的背景和目的,同时概述了接下来各个章节的内容安排。
多通道非负矩阵分解部分将详细探讨该方法的基本原理、应用领域和算法优势。
解释说明一和解释说明二部分将介绍两种具体的方法,并对其进行实验结果的分析以及相关案例的讨论。
最后,在结论与展望中对全文进行总结,并提出未来可能的研究方向。
1.3 目的:本文旨在向读者介绍多通道非负矩阵分解方法及其在数据处理中的应用。
通过对多通道非负矩阵分解的详细讲解和实例说明,读者将能够全面了解该方法的基本原理、适用范围以及实际效果。
同时,通过对比多种方法在实验中的表现和相关案例的讨论,读者还可以深入了解不同情况下选择不同方法可能带来的影响和优势。
最终,我们希望本文能够为相关领域的研究者提供有价值的参考,同时激发更多关于多通道非负矩阵分解方法的深入探索。
2. 多通道非负矩阵分解2.1 基本原理多通道非负矩阵分解是一种常用的数据降维和特征提取方法。
其基本原理是将一个高维度的数据矩阵分解为两个低维度的非负矩阵的乘积,其中一个矩阵具有原始数据的结构信息,而另一个矩阵包含了数据的隐含特征。
在多通道非负矩阵分解中,我们假设原始数据包含多个通道或属性。
每个通道可以代表不同的数据来源或者不同方面的特征。
通过对这些通道进行分离和抽取其中重要的特征,并且将这些特征进行融合,可以提高对原始数据的理解和表示能力。
Scikit-learn是一个用于机器学习的Python库,其中包含了许多常用的机器学习算法和工具。
其中之一就是非负矩阵分解(Non-negative Matrix Factorization,NMF)。
非负矩阵分解是一种矩阵分解技术,它将一个非负矩阵分解为两个非负矩阵的乘积。
这种分解可以用于特征提取、数据降维和模式识别等任务。
NMF的原理是基于以下假设:1. 原始矩阵中的元素都是非负的。
2. 原始矩阵可以由两个非负矩阵的乘积表示。
给定一个非负矩阵V,NMF的目标是找到两个非负矩阵W和H,使得它们的乘积WH近似等于原始矩阵V。
其中,W是一个m×r的矩阵,H是一个r×n的矩阵,r是一个用户指定的参数,表示分解后的矩阵的秩。
NMF的求解过程可以通过迭代算法来实现,其中最常用的算法是乘法更新规则(Multiplicative Update Rule)。
该算法通过迭代更新W和H的值,直到达到收敛条件。
具体而言,乘法更新规则的迭代步骤如下:1. 初始化W和H为随机非负矩阵。
2. 重复以下步骤直到达到收敛条件:-更新W:W = W * (VH^T) / (WHH^T)-更新H:H = H * (W^TV) / (W^TWH)在每次迭代中,乘法更新规则通过最小化原始矩阵V和近似矩阵WH之间的差异来更新W和H的值。
这个差异可以使用不同的损失函数来衡量,常见的有欧几里得距离和KL散度。
总结起来,非负矩阵分解是一种将非负矩阵分解为两个非负矩阵的乘积的技术。
它可以用于特征提取、数据降维和模式识别等任务。
Scikit-learn中的NMF模块提供了实现NMF的工具和算法。
非负矩阵分解算法概述(吴有光)NOTE:本文为科普文章,尽量做到通俗而不严格,比较适合理论小白补补NMF历史第一部分Lee&Seung的世界1 引言现实生活中的数据,我们总是希望有个稀疏表达,这是从压缩或数据存储的角度希望达到的效果。
从另一方面来讲,我们面对大量数据的时候,总是幻想能够发现其中的“规律”,那么在表示或处理的时候,直接操作这些提纲挈领的“规律”,会有效得多。
这个事情,让很多的科学家都伤透脑筋,不过也因此有了饭碗。
1.1第一个例子我们先来看一个简单的例子。
在人文、管理或社会学里,实证研究方法是常用的方法。
比如我们来考察大学生就业过程,对学生的选择工作类别的动机,我们常说“想吃劳保饭的同学铁了心要考公务员,喜欢轻松自由氛围的同学更趋向于外企,只想稳定的同学认为国企最好,富二代神马的最爱创业然后继承家产了”,这句话如果要严格来论证是不可能的,那么我们转而寻求“调查论证”,即通过设计问卷(问卷上设计了可能影响学生选择的因素,比如家庭情况、学业情况、性格取向、对大城市或家乡的热恋程度、以及人生观价值观等等各种我们可能会影响就业取向的因素)各种我们猜测会影响学生。
问卷上来后,我们通过统计得到如下的列表。
图1 第一个例子的统计表示例表中的各个因素我们进行了量化,比如性格因素从完全内向到热情奔放分为5个等级(可以用一些问题来直接或间接获得这个等级)。
那么剩下的问题就是回答开始的问题:(1)是不是我们设计的每个因素都有效?(显然不是,之所以设计问卷就是要来解决这个问题的)(2)是什么因素影响了学生的最终选择?或者说,从统计上来看,每个因素占多大比重?这时,用矩阵来表示可写为,其中就表示那个因素矩阵,表示最终取向,代表我们要求的系数。
我们把要求的用代替,写成矩阵形式为:(1)更进一步,如果我们不仅调查学生的去向,还想同时调查很多事情,那么就会有,这样上面的式子改写为:(2)此时问题转化为:Q1:已知,如何求解,使之满足上面的等式,其中具有初始值(就是我们设计的一堆东西)。
如果我们让固定,这就是一个方程求解的过程。
然而,当我们认为也可以缩减,即认为很少样本就足够表示我们真实取得的样本,那么问题进一步转化为:Q2:如何同时求解和,使之满足。
或者我们也可以只对因素矩阵进行分解,即直接对其进行消减:(3)其中,为消减后因素矩阵,为在基底下的表示系数,这里要求列数要大大低于的列数,否则就没有实际意义。
上面这个过程,就类似Paatero&T apper于1994年提出的实矩阵分解(Positive Matrix Factorization, PMF)模型,此模型后来被Lee&Seung提出的非负矩阵分解(Nonnegative Matrix Factorization, NMF/NNMF)模型所取代。
1.2 第二个例子第一个例子为了给非数学、非信号处理的同学一个印象,写的罗里吧嗦,那第二个例子我们就简单写。
给定一组信号,如何找到对其进行稀疏表示?即如何找到满足的和,因为,这里要求且。
这个问题对信号处理的同学来说,太熟悉了。
因为我们毕生的精力都在干这件事情。
如果去掉的非负限制,是有很多现成且高效的方法的,比如主成分分析(Principle Component Analysis,PCA)、独立成分分析(Independent Component Analysis,ICA)、因子分析(Factor Analysis,FA)等。
然而,施加了非负限制后,这些方法就不适用了。
而为什么要施加非负限制,回想第一个例子就明白了,我们最终找的是“影响因子”,因子会有负的么?于是,非负矩阵分解就出世了,1.3 非负矩阵分解非负矩阵分解(Non-negative Matrix Factorization,NMF)从1999年正式提出【1】至今,经过十多年的发展,已经成为一个相对成熟的数据分析手段,在图像分析、文本聚类、数据挖掘、语音处理等方面得到了广泛应用。
NMF得到研究人员的青睐,除了易于获得快速分解算法之外,主要归功于其分解结果有较为明确的物理意义。
例如在人脸识别中,分解结果为人脸的各个局部诸如鼻子、眼睛、嘴巴等,这符合人类思维中局部构成整体的概念。
如图1所示图1 Lee和Seung的经典文献中所使用的NMF说明图【1】上图为NMF对人脸图像的分解结果,可见每一个子图都是人脸的某个局部;下左图为VQ分解结果,每一个子图就是某个原始样本;右下图为PCA分解结果,子图由特征脸和各级误差脸组成据说,据Lee&Seung说,NMF由于在分解过程中做了非负限制,得到的结果会像图3上一样,每个子图(类似于基)是全图的一部分,这显然有别于我们往常所用的分解,并且更符合于人类直观视觉过程“局部组成整体”。
但是,我们的读者是勇于实践的,不管读不读完本文,他们都会自己coding或者到QQ 群180291507共享里面下载代码来自己尝试尝试。
注释:在我试验的算法中,很难重现Lee&Seung的上述分解结果,在Naiyang Guan的最新NMF方法——MahNMF里【9】,也没有看到这种完全局部化的分解结果,不知道Lee&Seung是不是吹牛还是怎的。
下面从NMF问题描述出发,介绍NMF的发展历史和常见算法。
1.4历史渊源矩阵分解是高维数据分析中重要方法,如主成分分析(Principle Component Analysis,PCA)、独立成分分析(Independent Component Analysis,ICA)、因子分析(Factor Analysis,FA)、矢量量化(Vector Quantization,VQ)等。
而包含于各分析算法中的矩阵分解包括特征值分解、QR分解、LU分解等。
关于这些分解,我在下一篇小白文里会介绍,等不及的筒子可以直接翻看矩阵论课本。
Paatero和T apper于1994年尝试对环境数据进行因子分解时建立了如下优化模型【2】:其中,为观测数据,为分解后左右矩阵,为权重矩阵。
三年后(1997年),Paatero将上述模型和求解方法进一步规范和推广为”Multilinear Engine”【3】,这时Paatero的算法已经现在乘性迭代的影子。
但Paatero和Tapper的算法还存在一个大问题:算法收敛性和解的唯一性没有被证明!解唯不唯一倒是不重要,但算法的收敛性证明是重要的。
没证明啊没证明,没证明怎么行!或许有人认为,好用就行了,管什么理论证明。
如果这样想,就大错特错了。
想想多么牛B的傅里叶变换是如何的历经磨难,由此导致傅里叶本人也是几经沉浮,唯一的原因就是傅里叶变换没有严格的理论证明,而当时的法国数学界是以严格出名的拉格朗日统治着。
现在和平时期,不搞战争不搞政变闲人多,我们立刻就能见到挥舞数学铲子跑过来填补漏洞的家伙。
这个数学铲子挥得好的第一人应该就是D. Lee和H. Seung(Seung现在是MIT脑认知科学实验室的头头),也是今天我们认为NMF的发明者【1】。
他们把填漏洞的过程记录下来,顺手补了一个插图,扔给Nature杂志,于是就被录用了。
于是他们这篇工程记录单就达到了三千多的引用率。
这个故事告诉我们,你在家修灯泡修洗衣机的记录单或者心得体会都可以加几个数学公式,整巴整巴投到Science一不小心就中了。
图2D.Lee和S. Seung(右)我觉得他们俩是韩国人,元芳你怎么看?后面还有很多挥铲子的,不过多是跟从者,包括因为写SVM代码包而大名鼎鼎的Chil-Jen Lin【4】,但在NMF界可就没人注意到他们的大名了。
1.2 问题描述现在我们来看看Lee 和Seung对本问题的描述。
从他们开始,这个问题就正式成为非负矩阵分解NMF。
NMF是在所有矩阵元素非负的约束下的分解方式。
形如:(5)式中为待分解矩阵,和为分解后两个矩阵。
这里表示。
熟悉矩阵分解的同学可以看做是满秩分解。
熟悉信号处理(正交分解,例如傅里叶变换)的同学可以把看做信号分解时候的基函数,而看做表示系数,在很多论文中作者也都是这么描述的,不过记住一点,基向量是相互正交的,而这里对矩阵的各向量无正交要求。
如果换一种写法会更像以前学过的信号分解方式:或者(7)式中为的第列,即第个基向量,为向量的第个元素,即表示系数。
在傅里叶变换里会有(8) 成立。
这里因为不是正交分解,所以不能使用式(8)。
因为各向量不正交,那么就很难用构造的方式来获得(比如傅里叶变换矩阵,小波变化矩阵都是用构造得到的)。
于是分解就面临如下问题:(1)已知如何同时确定?(2)分解中为数据降维的重要标志,如何选取?针对问题(2),我们可以直接回答,的选取是人为的!也就是你自己一个一个试,比如,啦,你根据实际情况设置。
不过可以想见的是原始数据为维,时,降维效果才好,数据量才能降下去。
但是,用脚趾头想问题都知道,太小了恢复效果肯定不好。
针对问题(1),就是本文的重点了,也是这么多人研究NMF的重点。
一个已知量,两个未知量怎么肯定求出来??直接求,肯定没有办法,神仙也没办法。
一些画瓢看多了的人就知道了,一定要加约束条件,加上约束条件问题就明朗了。
第一个约束条件是等式(5)中隐含的。
我们一般求解的问题中很难得到”=”,即我们得到的是近似解,于是式(5)可以改写为:(9)其中是逼近误差。
这样简单的一改,从理解问题的角度,可就大大的简单化了。
回头看式(5),要求我们找到两个矩阵,相乘等于,其他什么都不知道。
这怎么找?再看式(9),要求我们找到两个矩阵,相乘近似等于,这一“近似”,可就有很多找法了。
好比说,你找一个跟周杰伦一模一样的人来,你做不到;但要你找一个跟周杰伦有点像的人来,你就可以找一大堆。
废话太多了,就是希望搞工程的筒子理解起来简单点,搞数值计算的人看家本领就是这样的近似来近似去的。
好了,到这里我们把问题重新描述一下,我们称为NMF问题。
NMF问题:已知,求解,使得(10)这里要求尽可能小,并且算法是快速收敛的。
即找到求解下式的收敛算法(11) 1.3目标函数在Lee 和Seung的文章里,他们引入了两种目标函数,分别是欧式距离和K-L散度。
以欧式距离来度量,式(11)改写为(12)其中表示矩阵中的第行第列的那个元素。
如果以K-L散度为度量,则改写为(13)可以看出,只有当时,式(12)和式(13)才会得到最小值0.似乎的似乎,问题并没有解决。
如何同时求解式(12)或式(13)中的?做优化的告诉我们,对于或者,式(12)是凸的,有最优解。
但是对却不是,因为二者相乘了嘛。
似乎这是个难题,不凸的问题不好求最优解。
但是这种分解问题已经阻拦不了我们伟大的Lee和Seung了,他们从Paatero的文章思路出发,给出了交替迭代直至达到最优解的算法。