Schur分解、特征值分解、奇异值分解是三种联系十分紧密的矩阵分解,它们的关系是Schur→EVD→SVD,也就是说由Schur分解可以推导出EVD,再推导出SVD。
本篇博客讨论特征值分解和奇异值分解的相关内容。上篇博客(链接)讨论的是Schur分解以及利用Schur分解能够解决的若干问题,其中包括大名鼎鼎的Hamilton-Cayley定理。
本文内容以线性代数知识为基础(主要是特征值和相似的知识):
矩阵论(零):线性代数基础知识整理(1)——逆矩阵、初等变换、满秩分解
矩阵论(零):线性代数基础知识整理(2)——矩阵的秩与向量组的秩
矩阵论(零):线性代数基础知识整理(3)——矩阵的秩与向量组的秩
矩阵论(零):线性代数基础知识整理(4)——线性空间与线性变换
矩阵论(零):线性代数基础知识整理(5)——特征值与相似
- 特征值分解EVD
- 正规矩阵与EVD
- EVD得到矩阵的特征值和特征向量
- EVD的构造方法
- EVD用于求矩阵的逼近
- 实正规矩阵的正交相似拟对角化(拓展内容)
- 奇异值分解SVD
- SVD的存在性定理
- SVD的构造方法(简介)
- SVD的性质
- SVD用于求矩阵的逼近
- SVD在推荐系统中的应用
特征值分解EVD(正规矩阵)
与Schur分解不同的是,特征值分解(又叫谱分解)要求将方阵酋对角化,这比schur分解的要求更高(Schur分解只是酋相似上三角化)。实际上,只有一类特殊的方阵才能进行特征值分解,这类特殊的方阵是正规矩阵。下面介绍特征值分解EVD。
-
定义(谱分解):设有n阶方阵A。若存在n阶酋矩阵U和对角矩阵Σ使得A=UΣUH,则称A=UΣUH是A的一个谱分解
-
定义(正规矩阵):若n阶方阵A满足AHA=AAH,则称A是正规矩阵
(容易验证Hermite矩阵(共轭对称矩阵)、实对称矩阵、酋矩阵等都是正规矩阵)
-
引理4:任意一个上三角矩阵S,若S是正规矩阵,则S必然是对角矩阵
证明:(对S的阶数n进行归纳)
当n=1时,S本身就是对角矩阵。假定结论对n-1成立,现证明结论对n也成立。设S=[S10Hba],其中a是一个标量,S1是一个n-1阶上三角阵。计算可得SHS=[S1HS1bHS1S1HbbHb+aˉa],SSH=[S1S1H+bbHabHaˉbaaˉ],由SHS=SSH得bHb+aˉa=aaˉ,故bHb=∣∣b∣∣2=0,故b=0,故S1S1H+bbH=S1S1H=S1HS1,即S1是正规矩阵,由归纳假设知S1是对角矩阵。则S=[S10H0a]是对角矩阵,得证。
-
定理12:n阶方阵A酋相似于一个对角矩阵的充要条件为A是正规矩阵
证明:
必要性:若A酋相似于一个对角矩阵,即存在酋矩阵U和对角矩阵Σ使得A=UΣUH,则AHA=UΣUHUΣUH=UΣΣUH,AAH=UΣUHUΣUH=UΣΣUH,注意到ΣΣ=ΣΣ,故AHA=AAH。
充分性:设A的Schur分解为A=PTPH,其中P是酋矩阵,T是上三角矩阵。由A是正规矩阵,将A代入AHA=AAH得PTHTPH=PTTHPH,故THT=TTH,即上三角矩阵T是正规矩阵。于是由引理4知T是对角矩阵,故A酋相似于对角矩阵T。证毕。
EVD得到矩阵的特征值和特征向量
定理12说明仅正规矩阵可进行谱分解。在探讨谱分解有何用处之前,我们先认识一下谱分解究竟是怎样的,看看分解出来的对角矩阵是什么,以及那个酋矩阵到底是什么:
- 定理13:设正规矩阵A的谱分解为A=UΣUH,则λ是A的特征值的充要条件为λ在Σ的主对角线上,且A的每个特征值的代数重数等于其在Σ的主对角线上出现的次数
- 定理14:设n阶正规矩阵A的谱分解为A=UΣUH,且Σ=diag(λ1,...,λn),U=[u1⋯un],则ui是A对应于特征值λi的特征向量,且u1,...,un是Cn的标准正交基
证明:由A=UΣUH得AU=UΣ,故Aui=λiui,i=1,...,n,即ui是A对应于特征值λi的特征向量。因为U是酋矩阵,所以u1,...,un是Cn的标准正交基。
【推论】n阶正规矩阵A有n个相互正交的特征向量
【推论】n阶正规矩阵A的任意特征值的几何重数与代数重数相等
上面两个定理的结论解释了“特征值分解”这个名称的来源,之所以称之为特征值分解,是因为其既分解出了特征值,还分解出了对应的特征向量。特征值分解还表明,正规矩阵的特征值和特征向量包含了原矩阵的“全部信息”,因此我们可以通过一定的方法利用特征值和特征向量重构出原矩阵。
EVD的构造方法
实际上,我们已经知道U的列向量组是A的单位正交特征向量组,那么怎么求出A的n个单位正交的特征向量呢?我们容易保证属于同一特征值的特征向量间的正交性(只要求出该特征值对应的特征子空间的标准正交基即可),但是,如何保证不同特征值的特征向量间的正交性呢?实际上,正规矩阵本身的性质就保证了这一点。下面我们就来看看正规矩阵的性质:
- 定理15:设A是正规矩阵,则A和AH的特征值互为共轭,且A对应于λ的特征子空间Vλ与AH对应于λˉ的特征子空间Vλˉ相同,即Vλ=Vλˉ
证明:
将A谱分解得A=UΣUH,则AH=UΣUH。因为Σ和Σ主对角线上对应的元素互为共轭,所以A和AH的特征值互为共轭。又AU=UΣ,AHU=UΣ,且U的列向量组是正交向量组,所以A的特征子空间Vλ和AH的特征子空间Vλˉ有同一组正交基,故Vλ=Vλˉ。
- 定理16:设A是正规矩阵,则A对应于不同特征值的特征向量是正交的
证明:
设λ和μ是A的两个不同特征值,x和y分别是A的对应于λ和μ的特征向量,即λ=μ,Ax=λx,Ay=μy,x=0,y=0。由定理15知μˉ是AH的特征值,且由y∈Vμ,Vμ=Vμˉ知y∈Vμˉ,故AHy=μˉy。μˉxHy=xH(μˉy)=xHAHy=(Ax)Hy=λˉxHy故(μˉ−λˉ)xHy=0,由λ=μ知xHy=0,即x和y是正交的,得证。
上面的定理说明只要求出A的每个特征值的特征子空间的标准正交基,那么所有的这些基向量一定两两正交。于是,我们有如下方法来求正规矩阵的特征值分解:


注意,之所以我们构造出的矩阵U是酋矩阵,是因为U的列向量组是单位正交的(其中对应于同一特征值的特征向量两两正交,对应于不同特征值的特征向量也两两正交)。而这样的U一定可以保证构造出了A的一个谱分解:
因为UHAU=⎣⎡u11H...usrsH⎦⎤[Au11...Ausrs]=⎣⎡u11H...usrsH⎦⎤[λ1u11...λsusrs]=⎣⎡λ1Ir1⋱λsIrs⎦⎤所以A=UΛUH是A的谱分解。
EVD的其他结论
谱分解还能得到其他一些有用的结论,如:
- 定理17:设n阶正规矩阵A的谱分解为A=UΣUH,则r(A)=r(Σ),即A的秩等于A的非零特征值的个数(如果重特征值按重数算的话),零特征值的代数重数为n−r(A)
- 定理18:共轭对称矩阵A的特征值都是实数
证:
因A是共轭对称矩阵,故A是正规矩阵。考虑A的谱分解A=UΣUH,因为AH=A,即UΣUH=UΣUH,所以Σ=Σ,则对角矩阵Σ的对角元都是实数,即A的特征值都是实数。
此外,类似于schur分解,谱分解也可以加快矩阵的幂运算,且效果要更好。谱分解(酋相似对角化)是相似对角化的一个特殊情形,在相似对角化中有一个计算幂的经典例子:求斐波那契数列的通项,谱分解也能用在与之类似的情形。感兴趣的读者请参考矩阵论(零):线性代数基础知识整理(5)——特征值与相似。
机器学习应用中,常常遇到实矩阵而非复矩阵的问题。为避免复数运算,提高效率,需尽可能熟悉实矩阵中的相关结论:
- 定理19:设A∈Rn×n,则A存在谱分解A=UΣUT(其中U是实正交矩阵,Σ是实对角矩阵)的充要条件为A是实对称矩阵
证明:
充分性:实对称矩阵都是共轭对称矩阵,故A的特征值都是实数。考虑特征方程(λI−A)x=0,由于λ是实数,A是实矩阵,故λI−A是实矩阵。取N(λI−A)的一组实向量基,根据前述谱分解的构造方法,可以构造出A的一个谱分解A=UΣUT,其中U是实正交矩阵,Σ是实对角矩阵。
必要性:设A存在谱分解A=UΣUT,其中U是实正交矩阵,Σ是实对角矩阵,则有AT=(UΣUT)T=UΣUT=A。
【注】该定理的一个等价表述为:任意实对称矩阵必可正交相似对角化。
EVD用于求矩阵的逼近
谱分解在机器学习中有重要的应用,一个典型的例子就是主成分分析(PCA)。主成分分析能够将高维数据“压缩”成低维数据,在去噪的同时还能保留原数据的大部分主要特征。PCA算法会在后面的博客中详细说,这里我们大致了解一下如何求得正规矩阵的近似矩阵,以达到去噪的效果:
设n阶正规矩阵A的特征值分解为A=UΣUH,且Σ=diag(λ1,...,λn),U=[u1⋯un]。则A=[u1⋯un]diag(λ1,...,λn)⎣⎡u1H⋯unH⎦⎤=[λ1u1⋯λnun]⎣⎡u1H⋯unH⎦⎤=Σi=1nλiuiuiH于是我们可以将原矩阵A看成是它的不同特征的加权和。这样我们就可以对A的特征值按照模的大小排序,去掉模较小(注意特征值是复数,在PCA中我们会对一个实对称矩阵进行谱分解,此时特征值都是实数,直接比较大小就行)的特征值λ对应的项λuuH,也就是去掉权重较小的项,就得到了A的一个近似矩阵。(显然,去掉模越接近0的特征值的对应项,得到的矩阵与原矩阵的近似程度越高)
不过,由于特征值分解的适用性有限,我们无法对任何矩阵都使用特征值分解的方法来求近似矩阵。但是,后面要说的奇异值分解是适用于任意矩阵的,而奇异值分解出的奇异值和奇异向量就类似于特征值和特征向量的作用,故奇异值分解可以用来“分解任意矩阵的特征”。在求任意矩阵的近似矩阵时,可以使用SVD的方法。
实正规矩阵的正交相似拟对角化(拓展内容)
我们在复数域下证明了正规矩阵必可酋对角化的结论,并且讨论了实矩阵可正交相似对角化的充要条件(即必须是实对称矩阵)。根据正规矩阵的定义可得,实正规矩阵就是满足ATA=AAT的矩阵A。显然,实对称矩阵一定是实正规矩阵,但实正规矩阵不一定是实对称阵(例如A=[1−111]),所以并非所有实正规矩阵都可以正交相似对角化。但是,我们可以将它们“近似”对角化,即正交相似拟对角化。
拟对角阵具有如下形式:⎣⎡R11⋱Rnn⎦⎤其中对角子块Rii是1×1矩阵或具有一对共轭特征值的2×2正规矩阵。(注意,为表述方便,这里的拟对角阵是狭义的)
- 引理5:任意实的拟上三角阵T,若T是正规矩阵,则T一定是拟对角阵
证:(对T对角线上的子块个数n进行归纳)
当n=1时,T本身就是拟对角阵。假设命题对n−1成立,现证明命题对n也成立。设T=[T1OSR],其中R是1×1矩阵或2×2矩阵。TTT=[T1TSTORT][T1OSR]=[T1TT1STT1T1TSSTS+RTR]TTT=[T1OSR][T1TSTORT]=[T1T1T+SSTRSTSRTRRT]由TTT=TTT得STS+RTR=RRT,进而tr(RRT)=tr(STS)+tr(RTR)=tr(STS)+tr(RRT),故tr(STS)=0,S=O,T1TT1=T1T1T。于是T=[T1OOR],注意到T1是有n−1个对角子块的拟上三角阵,故由归纳假设知T1是拟对角阵,进而T也是拟对角阵。证毕。
- 定理20:A∈Rn×n正交相似于一个拟对角矩阵的充要条件为A是正规矩阵
证明:
必要性:若A正交相似于一个拟对角矩阵,即存在正交矩阵U和拟对角矩阵T使得A=UTUT,则ATA=UTTUTUTUT=UTTTUT,AAT=UTUTUTTUT=UTTTUT,注意到T的对角子块都是正规矩阵,故TTT=TTT,故ATA=AAT。
充分性:设A的Schur分解为A=PTPT,其中P是正交矩阵,T是拟上三角矩阵。由A是正规矩阵,将A代入ATA=AAT得PTTTPT=PTTTPT,故TTT=TTT,即拟上三角矩阵T是正规矩阵。于是由引理5知T是拟对角矩阵,故A正交相似于拟对角矩阵T。证毕。
奇异值分解SVD(任意矩阵)
奇异值分解在机器学习领域的应用实在是太广泛了:数据压缩、推荐系统、自然语言处理等等到处都有它的身影。这里介绍奇异值分解的数学推导,建议数学推导之外多了解一些应用和直观的几何解释。推荐学习奇异值的几何意义以及奇异值分解与特征值分解的区别与联系,以上知乎链接中的回答多是从线性变换的角度来讲解奇异值分解(实际上矩阵的几何意义就是线性变换),这样能够较为直观得理解EVD和SVD。照片压缩直观地给出了奇异值分解在照片压缩上呈现的效果。
- 定义:设A∈Crm×n,AHA的特征值为λ1⩾λ2⩾...⩾λr>λr+1=...=λn=0称σi=λi(i=1,2,...,n)为A的奇异值
【注1】关于AHA的特征值为什么都是非负实数的问题请参考矩阵论(零):线性代数基础知识整理(5)——特征值与相似),注意奇异值都是非负的
【注2】因为r(AHA)=r(A)=r,且AHA是一个n阶正规矩阵,故AHA的零特征值的代数重数是n−r,这就是为什么λr+1=...=λn=0
【注3】网上看到有的人把AHA和AAH的特征值完全等同起来,这是不对的(它们差就差在零特征值上)。对奇异值的定义就是采用AHA的特征值来定义,用AAH来定义是不准确的。(不过这不会影响奇异值分解的结果)
奇异值的相关性质:
- 奇异值的酋不变性(旋转不变性):
- 定理21:设U是酋矩阵,则UA的奇异值与A的奇异值相同
证明:(UA)H(UA)=AHUHUA=AHA,故由奇异值的定义得UA的奇异值与A的奇异值相同。
- 定理22:设U是酋矩阵,则AU的奇异值与A的奇异值相同
证明:(AU)H(AU)=UH(AHA)U,即(AU)H(AU)酋相似于AHA,故它们的特征值相同,由奇异值的定义得AU的奇异值与A的奇异值相同。
- 逆矩阵的奇异值:
- 定理23:设A∈Cnn×n,则A的奇异值均非零。设A的奇异值为σ1⩾σ2⩾⋯⩾σn>0,则A−1的奇异值为1/σn⩾1/σn−1⩾⋯⩾1/σ1
证明:
由奇异值定义的注释2知A的奇异值均为正。设AAH的一个谱分解为AAH=UΣUH,其中Σ=diag(λ1,λ2,⋯,λn),λ1⩾λ2⩾⋯⩾λn>0。由于AHA和AAH的非零特征值相同,且同一非零特征值的代数重数相等,于是由奇异值的定义得σi=λi,i=1,2,...,n。因为(A−1)HA−1=(AAH)−1=UΣ−1UH,于是由奇异值的定义得A−1的奇异值为1/λn⩾1/λn−1⩾⋯⩾1/λ1,即1/σn⩾1/σn−1⩾⋯⩾1/σ1。
- 正规矩阵的奇异值与特征值的关系:
- 定理24:设正规矩阵A∈Cn×n的奇异值为σ1⩾σ2⩾...⩾σn,特征值为λ1,λ2,...,λn满足∣λ1∣⩾ ∣λ2∣⩾...⩾∣λn∣,则σi=∣λi∣,i=1,2,...,n
证明:
设A的一个谱分解为A=UΣUH,其中Σ=diag(λ1,λ2,...,λn),则AHA=UΣUHUΣUH=UΣΣUH。注意到该式是AHA的一个谱分解,且ΣΣ的对角元为∣λ1∣2⩾ ∣λ2∣2⩾...⩾∣λn∣2,故根据奇异值的定义得σi=∣λi∣,i=1,2,...,n。
下面我们进入奇异值分解。
SVD的存在性定理
- 定义1:设A∈Crm×n,若存在m阶酋矩阵U和n阶酋矩阵V,以及m×n广义对角矩阵Λ=[ΣOOO],其中Σ=diag(σ1,...,σr),σ1⩾..⩾σr>0为A的非零奇异值,使得A=UΛVH,则称A=UΛVH是A的一个奇异值分解
【注1】由于在Σ的对角线上A的非零奇异值是从大到小排列的,故若A的奇异值分解存在,则Λ唯一。在有些资料的定义中,广义对角矩阵Λ的对角线元素的大小顺序可以是任意的,但一般来说为便于分析更常约束Λ的对角线元素从大到小排列。
【注2】由于AHA和AAH的非零特征值相同,且同一非零特征值的代数重数相等,故A的非零奇异值既是AHA的非零特征值的算数平方根,又是AAH的非零特征值的算数平方根。
【注3】由奇异值分解的定义及注2知,若A=UΛVH是A的一个奇异值分解,则AH=VΛUH是AH的一个奇异值分解(但需注意的是,A的奇异值与AH的奇异值不完全等同,且只差在零奇异值上)
上述定义的条件可以减弱:
- 定义2:设A∈Cm×n,若存在m阶酋矩阵U和n阶酋矩阵V,以及m×n广义对角矩阵Λ=[ΣOOO],其中Σ=diag(σ1,σ2,...,σr),σ1⩾σ2⩾...σr>0,使得A=UΛVH,则称A=UΛVH是A的一个奇异值分解
【注】注意定义1和定义2的区别:定义1中设A∈Crm×n,而定义2中设A∈Cm×n,即r在定义1中指明为A的秩,而在定义2中并未指明;定义1中直接指明σ1⩾σ2⩾...σr>0为A的非零奇异值,而在定义2中并未指明
这两个定义是等价的:
显然若定义1的条件被满足,则定义2的条件也被满足(定义2的条件相较于定义1弱化了)。
若定义2的条件被满足,则由r(A)=r(UΛVH)=r(Λ)=r(Σ)=r知A∈Crm×n(即r恰为A的秩),注意到AHA=(UΛVH)H(UΛVH)=VΛTUHUΛVH=VΛTΛVH是AHA的一个谱分解,于是ΛTΛ的非零对角线元素σ12⩾σ22⩾...σr2>0恰为AHA的非零特征值,于是根据奇异值的定义得σ1⩾σ2⩾...σr>0是A的非零奇异值,即定义1的条件也被满足。
下面我们证明任意矩阵的奇异值分解的存在性:
- 定理25:任意矩阵A∈Crm×n都存在奇异值分解A=UΛVH,其中U、V分别为m、n阶酋矩阵,Λ=[ΣOOO],Σ=diag(σ1,...,σr),σ1⩾..⩾σr为A的非零奇异值
证明:
由于AHA是n阶正规矩阵,故存在n阶酋矩阵V使得VHAHAV=[Σ2OOO]。将V分块V=[V1V2],其中V1是n×r矩阵,V2是r×n矩阵。则V1HAHAV1=Σ2,V2HAHAV2=O,即Σ−1V1HAHAV1Σ−1=Ir,(AV2)H(AV2)=O。设U1=AV1Σ−1,则有U1HU1=Ir,AV2=O。由于U1的列向量组为单位正交向量组(注意是r个m维向量),故由扩充定理以及Schmidt正交化方法可将U1的列向量组扩充为Cm的一组标准正交基,于是构造出m阶酋矩阵U=[U1U2]。由UHAV=[U1HU2H]A[V1V2]=[U1HAV1U2HAV1U1HAV2U2HAV2]=[ΣOOO]=Λ知A=UΛVH就是A的一个奇异值分解。
【注】该定理的证明实际上就是通过将AHA进行谱分解构造出A的一个奇异值分解。若A是一实矩阵,使用类似的构造方法(不同之处在于AHA=ATA的谱分解应选择“实的”谱分解,且应将U1的列向量组扩充为Rm的标准正交基)可知,A存在“实的”奇异值分解,即A=UΛVT,其中U、V是实正交矩阵,Λ是实广义对角矩阵。
SVD的构造方法(参考资料)
由定理25的证明过程可以看出,奇异值分解的构造是比较复杂的(先构造AHA的特征值分解,再构造A的奇异值分解的话时间复杂度太高,且数值稳定性不好)。一般,奇异值分解采用如下算法:第一步用Householder变换将A化为双对角阵,第二步用QR分解或单边Jacobi旋转求双对角阵的SVD,复杂度可以到O(mn2),且有很好的数值稳定性。(详见英文维基百科)
SVD的性质
现在我们来认识一下奇异值分解的数学性质:
(以下均设A∈Crm×n且A=UΛVH是A的一个奇异值分解)
- 奇异值与奇异性的关系:若A是n阶方阵,则∣det(A)∣=∣det(U)∣det(Λ)∣det(VH)∣=σ1σ2...σn,可见A是非奇异的等价于A的奇异值都不为零
- 全奇异值分解与截尾奇异值分解:
- 全奇异值分解:就是前面我们所说的奇异值分解A=UΛVH。
- 截尾奇异值分解:设U=[U1U2],V=[V1V2],其中U1是U的前r列(注意r是A的秩),V1是V的前r列。则A=UΛVH=[U1U2][ΣrOOO][V1HV2H]=U1ΣrV1H。称A=U1ΣrV1H为A的截尾奇异值分解。
(注意:截尾奇异值分解表明,实际上酋矩阵U和V各自的子矩阵U1和V1和A的全部非零奇异值就已携带了原矩阵A的全部信息)
- 当A是满秩方阵时,A的截尾奇异值分解和全奇异值分解是等同的
- 如果仔细观察截尾奇异值分解式,会发现它是A的一个满秩分解:A=U1(ΣrV1H),U1是一列满秩矩阵,ΣrV1H是一行满秩矩阵;或者A=(U1Σr)V1H,U1Σr是一列满秩矩阵,V1H是一行满秩矩阵;再或者A=(U1Σr)(ΣrV1H),其中Σr=diag(σ1,...,σr),U1Σr是一列满秩矩阵,ΣrV1H是一行满秩矩阵……等等。
- 认识酋矩阵U和V:
- 左奇异向量与右奇异向量:
U的列向量称为A的左奇异向量,V的列向量称为A的右奇异向量。
A的左奇异向量都是AAH的特征向量,A的右奇异向量都是AHA的特征向量。(原因:根据A=UΛVH,有AAH=UΛVHVΛTUH=U(ΛΛT)UH,注意这是AAH的一个谱分解,于是U的列向量都是AHA的特征向量。同理,根据AHA=V(ΛTΛ)VH是AHA的一个谱分解就知道V的列向量都是AAH的特征向量)
- 设U=[U1U2],其中U1是U的前r列(注意r是A的秩)构成的子矩阵。则U1的列向量组是A的列空间R(A)的标准正交基,U2的列向量组是AH的零空间N(AH)的标准正交基
(原因:观察截尾奇异值分解式A=U1(ΣrV1H),可见A的列向量组可由U1的列向量组线性表示,又dim R(A)=r=r(U1),所以U1的列向量组是R(A)的标准正交基;计算可得AHU2=V1ΣrTU1HU2=V1ΣrTO=O,又dim N(AH)=m−r=r(U2),所以U2的列向量组是N(AH)的标准正交基)
【注】这说明奇异值分解可以用来求矩阵的列空间及其正交补的标准正交基。
- 设V=[V1V2],其中V1是V的前r列构成的子矩阵。则V1的列向量组是AH的列空间R(AH)的一组标准正交基,V2的列向量组是A的零空间N(A)的一组标准正交基
(原因和上面同理)
【注】这说明奇异值分解可以用来求矩阵的零空间及其正交补的标准正交基。
- 奇异值与特征值的关系
- 定理26:若A是对称半正定矩阵,则A的奇异值与A的特征值完全等同,A的一个特征值分解也是A的一个奇异值分解
证明:
若A是对称半正定矩阵,则A的特征值(为实数)均非负。设n阶方阵A的一个谱分解为A=UΛUH,其中Λ=diag(λ1,...,λn),则AHA=A2=UΛUHUΛUH=UΛ2UH。这说明AHA的特征值为λ12,...,λn2,故由奇异值的定义知A的奇异值σi=λi2=λi,i=1,2,...,n,即A的奇异值与其特征值等同。进而由奇异值分解的定义知A=UΛUH是A的一个奇异值分解。
SVD用于求矩阵的逼近
奇异值分解可以视作方阵(正规矩阵)的特征值分解在一般的长方矩阵上的推广,奇异值和奇异向量是描述长方矩阵的特征的量,这一点可以通过照片压缩的例子直观地理解。和特征值分解一样,奇异值分解可以改写成矩阵的特征的加权和:由A∈Crm×n的截尾奇异值分解式A=U1ΣrV1H,若设U1=[u1...ur],V1=[v1...vr],则有A=Σi=1rσiuiviH在求A的近似矩阵时,只要去掉奇异值较小的项即可(等价于在奇异值分解式中令对角矩阵上相应的奇异值为零)。另外,注意到r(A)=r(U1ΣrV1H)=r(Σr),故每去掉A=Σi=1rσiuiviH中的一项,A的秩就减少1,所以这样求得的近似矩阵实际上是对原矩阵的低秩逼近。这种方法可以实现对数据的去噪、压缩等。还有一点比较有趣,σiuiviH是一个秩为1的矩阵(因为r(σiuiviH)⩽r(ui)=1且r(σiuiviH)⩾r(ui)+r(viH)−1=1),所以A=Σi=1rσiuiviH实际上是把A拆分成了若干独立的低秩矩阵(秩为1)的加权和,每个低秩项都可视作A的一个特征项。
总的来说,每去掉A=Σi=1rσiuiviH中的一项,不仅去掉的是一个秩为1的项,还恰好使A的秩减少了1。
SVD在推荐系统中的应用
奇异值分解的应用有很多,这里简单介绍一下SVD在推荐系统中的应用:
推荐算法可以分为传统的SVD方法和凸优化的方法,这里介绍传统的SVD算法。传统算法中SVD的作用是提取每个user和每个item的主要特征(实际上是对原评分矩阵做低秩逼近),用于计算每个item间的相似度或每个user间的相似度,如果利用user间的相似度来预测评分,就是User_based的算法;如果利用item间的相似度来预测评分,就是Item_based的算法。

设有n×m评分矩阵A(如上图),A的(i,j)元素是User(j)对Item(i)的评分。通常A是一个稀疏矩阵,即A中大多数元素是未定义的,可以使用均值归一化的方法填充(注意这里的填充是为了后续可计算,而不是作为预测值):先算出每个item已有评分的均分,然后给该item的每个已有评分减去该item的均分,并用0填充该item下未定义的评分。
设填充好的评分矩阵是B。求出B的“实的”奇异值分解式B=UΛVT(U、Λ、V都是实矩阵),其中B的奇异值在Λ的对角线上从大到小排列,令Λ中B的最小的k个非零奇异值为零(具体k取多少取决于你想保留原矩阵B的多少信息),就得到了B的一个低秩逼近矩阵C,C的截尾奇异值分解式是C=U1ΣV1T(如果保留了B的前l大奇异值,则U1就是U的前l列,V1就是V的前l列)。以User_based为例,注意到U1的列向量组是C的列空间的标准正交基,于是可将C的每一列在该基下的坐标向量求出(实际中不会求出矩阵C,所以实际计算时常是拿B的每一列求),得到了降维后User的特征,于是可以计算任意两个User间的相似度(余弦相似度、欧式距离、皮尔逊相关系数等相似度函数均可)。
现在,若要预测User(j)对item(i)的评分(前提是User(j)未对item(i)打分),可以看看其他user对item(i)的评分是多少,将其他user与User(j)的相似度作为权重系数,求出其他user对item(i)的评分的加权平均值,作为User(j)对item(i)的评分的预测值。最后,推荐过程则是基于预测的评分,将预测评分较高的item推荐给用户即可。
【补充】如何求C的列向量在已知C的列空间的标准正交基(即U1的列向量组)下的坐标:设C的第i个列向量的坐标向量是zi,Z=[z1...zn]。那么就是要求得矩阵Z使得C=U1Z,两端左乘U1T,得到U1TC=U1TU1Z=Z。故求Z的公式是Z=U1TC。