矩阵论(三):矩阵分解—从Schur分解、特征值分解EVD到奇异值分解SVD(下)

Schur分解、特征值分解、奇异值分解是三种联系十分紧密的矩阵分解,它们的关系是SchurEVDSVDSchur\rightarrow{}EVD\rightarrow{}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和对角矩阵Σ\Sigma使得A=UΣUHA=U\Sigma{U^H},则称A=UΣUHA=U\Sigma{U^H}是A的一个谱分解

  • 定义(正规矩阵):若n阶方阵A满足AHA=AAHA^HA=AA^H,则称A是正规矩阵
    (容易验证Hermite矩阵(共轭对称矩阵)、实对称矩阵、酋矩阵等都是正规矩阵)

  • 引理4:任意一个上三角矩阵S,若S是正规矩阵,则S必然是对角矩阵
    证明:(对S的阶数n进行归纳)
    当n=1时,S本身就是对角矩阵。假定结论对n-1成立,现证明结论对n也成立。设S=[S1b0Ha]S=\begin{bmatrix}S_1&b\\0^H&a\end{bmatrix},其中a是一个标量,S1S_1是一个n-1阶上三角阵。计算可得SHS=[S1HS1S1HbbHS1bHb+aˉa]S^HS=\begin{bmatrix}S_1^HS_1&S_1^Hb\\b^HS_1&b^Hb+\bar{a}a\end{bmatrix}SSH=[S1S1H+bbHaˉbabHaaˉ]SS^H=\begin{bmatrix}S_1S_1^H+bb^H&\bar{a}b\\ab^H&a\bar{a}\end{bmatrix},由SHS=SSHS^HS=SS^HbHb+aˉa=aaˉb^Hb+\bar{a}a=a\bar{a},故bHb=b2=0b^Hb=||b||^2=0,故b=0b=0,故S1S1H+bbH=S1S1H=S1HS1S_1S_1^H+bb^H=S_1S_1^H=S_1^HS_1,即S1S_1是正规矩阵,由归纳假设知S1S_1是对角矩阵。则S=[S100Ha]S=\begin{bmatrix}S_1&0\\0^H&a\end{bmatrix}是对角矩阵,得证。

  • 定理12:n阶方阵A酋相似于一个对角矩阵的充要条件为A是正规矩阵
    证明:
    必要性:若A酋相似于一个对角矩阵,即存在酋矩阵U和对角矩阵Σ\Sigma使得A=UΣUHA=U\Sigma{U^H},则AHA=UΣUHUΣUH=UΣΣUHA^HA=U\overline{\Sigma}U^HU\Sigma{U^H}=U\overline{\Sigma}\Sigma{U^H}AAH=UΣUHUΣUH=UΣΣUHAA^H=U\Sigma{U^H}U\overline{\Sigma}U^H=U\Sigma{}\overline{\Sigma}U^H,注意到ΣΣ=ΣΣ\overline{\Sigma}\Sigma=\Sigma\overline{\Sigma},故AHA=AAHA^HA=AA^H
    充分性:设A的Schur分解为A=PTPHA=PTP^H,其中P是酋矩阵,T是上三角矩阵。由A是正规矩阵,将A代入AHA=AAHA^HA=AA^HPTHTPH=PTTHPHPT^HTP^H=PTT^HP^H,故THT=TTHT^HT=TT^H,即上三角矩阵T是正规矩阵。于是由引理4知T是对角矩阵,故A酋相似于对角矩阵T。证毕。

EVD得到矩阵的特征值和特征向量

定理12说明仅正规矩阵可进行谱分解。在探讨谱分解有何用处之前,我们先认识一下谱分解究竟是怎样的,看看分解出来的对角矩阵是什么,以及那个酋矩阵到底是什么:

  • 定理13:设正规矩阵A的谱分解为A=UΣUHA=U\Sigma U^H,则λ\lambda是A的特征值的充要条件为λ\lambdaΣ\Sigma的主对角线上,且A的每个特征值的代数重数等于其在Σ\Sigma的主对角线上出现的次数
  • 定理14:设n阶正规矩阵A的谱分解为A=UΣUHA=U\Sigma U^H,且Σ=diag(λ1,...,λn)\Sigma=diag(\lambda_1,...,\lambda_n)U=[u1un]U=\begin{bmatrix}u_1&\cdots&u_n\end{bmatrix},则uiu_i是A对应于特征值λi\lambda_i的特征向量,且u1,...,unu_1,...,u_nCnC^n的标准正交基
    证明:由A=UΣUHA=U\Sigma U^HAU=UΣAU=U\Sigma,故Aui=λiui,i=1,...,nAu_i=\lambda_iu_i,i=1,...,n,即uiu_i是A对应于特征值λi\lambda_i的特征向量。因为U是酋矩阵,所以u1,...,unu_1,...,u_nCnC^n的标准正交基。
    【推论】n阶正规矩阵A有n个相互正交的特征向量
    【推论】n阶正规矩阵A的任意特征值的几何重数与代数重数相等

上面两个定理的结论解释了“特征值分解”这个名称的来源,之所以称之为特征值分解,是因为其既分解出了特征值,还分解出了对应的特征向量。特征值分解还表明,正规矩阵的特征值和特征向量包含了原矩阵的“全部信息”,因此我们可以通过一定的方法利用特征值和特征向量重构出原矩阵。

EVD的构造方法

实际上,我们已经知道U的列向量组是A的单位正交特征向量组,那么怎么求出A的n个单位正交的特征向量呢?我们容易保证属于同一特征值的特征向量间的正交性(只要求出该特征值对应的特征子空间的标准正交基即可),但是,如何保证不同特征值的特征向量间的正交性呢?实际上,正规矩阵本身的性质就保证了这一点。下面我们就来看看正规矩阵的性质:

  • 定理15:设A是正规矩阵,则AAAHA^H的特征值互为共轭,且AA对应于λ\lambda的特征子空间VλV_\lambdaAHA^H对应于λˉ\bar{\lambda}的特征子空间VλˉV_{\bar{\lambda}}相同,即Vλ=VλˉV_\lambda=V_{\bar{\lambda}}
    证明:
    将A谱分解得A=UΣUHA=U\Sigma U^H,则AH=UΣUHA^H=U\overline{\Sigma}U^H。因为Σ\SigmaΣ\overline{\Sigma}主对角线上对应的元素互为共轭,所以A和AHA^H的特征值互为共轭。又AU=UΣAU=U\SigmaAHU=UΣA^HU=U\overline \Sigma,且U的列向量组是正交向量组,所以AA的特征子空间VλV_\lambdaAHA^H的特征子空间VλˉV_{\bar{\lambda}}有同一组正交基,故Vλ=VλˉV_\lambda=V_{\bar{\lambda}}
  • 定理16:设A是正规矩阵,则A对应于不同特征值的特征向量是正交的
    证明:
    λ\lambdaμ\mu是A的两个不同特征值,xxyy分别是A的对应于λ\lambdaμ\mu的特征向量,即λμ,Ax=λx,Ay=μy,x0,y0\lambda \neq \mu,Ax=\lambda x,Ay=\mu y,x\neq 0,y\neq 0。由定理15知μˉ\bar \muAHA^H的特征值,且由yVμ,Vμ=Vμˉy\in{V_\mu},V_\mu=V_{\bar \mu}yVμˉy\in{V_{\bar \mu}},故AHy=μˉyA^Hy=\bar \mu yμˉxHy=xH(μˉy)=xHAHy=(Ax)Hy=λˉxHy\bar \mu x^Hy=x^H(\bar \mu y )=x^HA^Hy=(Ax)^Hy=\bar \lambda x^Hy(μˉλˉ)xHy=0(\bar \mu-\bar \lambda)x^Hy=0,由λμ\lambda \neq \muxHy=0x^Hy=0,即xxyy是正交的,得证。

上面的定理说明只要求出A的每个特征值的特征子空间的标准正交基,那么所有的这些基向量一定两两正交。于是,我们有如下方法来求正规矩阵的特征值分解:
矩阵论(三):矩阵分解—从Schur分解、特征值分解EVD到奇异值分解SVD(下)
矩阵论(三):矩阵分解—从Schur分解、特征值分解EVD到奇异值分解SVD(下)
注意,之所以我们构造出的矩阵U是酋矩阵,是因为U的列向量组是单位正交的(其中对应于同一特征值的特征向量两两正交,对应于不同特征值的特征向量也两两正交)。而这样的UU一定可以保证构造出了AA的一个谱分解:
因为UHAU=[u11H...usrsH][Au11...Ausrs]=[u11H...usrsH][λ1u11...λsusrs]=[λ1Ir1λsIrs]U^HAU=\begin{bmatrix}u^H_{11}\\...\\u^H_{s_{r_s}}\end{bmatrix}\begin{bmatrix}Au_{11}&...&Au_{s_{r_s}}\end{bmatrix}\\=\begin{bmatrix}u^H_{11}\\...\\u^H_{s_{r_s}}\end{bmatrix}\begin{bmatrix}\lambda_1u_{11}&...&\lambda_su_{s_{r_s}}\end{bmatrix}=\begin{bmatrix}\lambda_1I_{r_1}&&\\&\ddots&\\&&\lambda_sI_{r_s}\end{bmatrix}所以A=UΛUHA=U\Lambda U^H是A的谱分解。

EVD的其他结论

谱分解还能得到其他一些有用的结论,如:

  • 定理17:设n阶正规矩阵A的谱分解为A=UΣUHA=U\Sigma U^H,则r(A)=r(Σ)r(A)=r(\Sigma),即A的秩等于A的非零特征值的个数(如果重特征值按重数算的话),零特征值的代数重数为nr(A)n-r(A)
  • 定理18:共轭对称矩阵A的特征值都是实数
    证:
    因A是共轭对称矩阵,故A是正规矩阵。考虑A的谱分解A=UΣUHA=U\Sigma U^H,因为AH=AA^H=A,即UΣUH=UΣUHU\overline{\Sigma}U^H=U\Sigma U^H,所以Σ=Σ\overline{\Sigma}=\Sigma,则对角矩阵Σ\Sigma的对角元都是实数,即A的特征值都是实数。

此外,类似于schur分解,谱分解也可以加快矩阵的幂运算,且效果要更好。谱分解(酋相似对角化)是相似对角化的一个特殊情形,在相似对角化中有一个计算幂的经典例子:求斐波那契数列的通项,谱分解也能用在与之类似的情形。感兴趣的读者请参考矩阵论(零):线性代数基础知识整理(5)——特征值与相似

机器学习应用中,常常遇到实矩阵而非复矩阵的问题。为避免复数运算,提高效率,需尽可能熟悉实矩阵中的相关结论:

  • 定理19:设ARn×nA\in R^{n\times n},则AA存在谱分解A=UΣUTA=U\Sigma U^T(其中UU是实正交矩阵,Σ\Sigma是实对角矩阵)的充要条件为AA是实对称矩阵
    证明:
    充分性:实对称矩阵都是共轭对称矩阵,故A的特征值都是实数。考虑特征方程(λIA)x=0(\lambda I-A)x=0,由于λ\lambda是实数,AA是实矩阵,故λIA\lambda I-A是实矩阵。取N(λIA)N(\lambda I-A)的一组实向量基,根据前述谱分解的构造方法,可以构造出AA的一个谱分解A=UΣUTA=U\Sigma U^T,其中UU是实正交矩阵,Σ\Sigma是实对角矩阵。
    必要性:设AA存在谱分解A=UΣUTA=U\Sigma U^T,其中UU是实正交矩阵,Σ\Sigma是实对角矩阵,则有AT=(UΣUT)T=UΣUT=AA^T=(U\Sigma U^T)^T=U\Sigma U^T=A
    【注】该定理的一个等价表述为:任意实对称矩阵必可正交相似对角化。

EVD用于求矩阵的逼近

谱分解在机器学习中有重要的应用,一个典型的例子就是主成分分析(PCA)。主成分分析能够将高维数据“压缩”成低维数据,在去噪的同时还能保留原数据的大部分主要特征。PCA算法会在后面的博客中详细说,这里我们大致了解一下如何求得正规矩阵的近似矩阵,以达到去噪的效果:
设n阶正规矩阵A的特征值分解为A=UΣUHA=U\Sigma U^H,且Σ=diag(λ1,...,λn)\Sigma=diag(\lambda_1,...,\lambda_n)U=[u1un]U=\begin{bmatrix}u_1&\cdots&u_n\end{bmatrix}。则A=[u1un]diag(λ1,...,λn)[u1HunH]=[λ1u1λnun][u1HunH]=Σi=1nλiuiuiH\begin{aligned}A&=\begin{bmatrix}u_1&\cdots&u_n\end{bmatrix}diag(\lambda_1,...,\lambda_n)\begin{bmatrix}u_1^H\\\cdots\\u_n^H\end{bmatrix}\\&=\begin{bmatrix}\lambda_1u_1&\cdots&\lambda_nu_n\end{bmatrix}\begin{bmatrix}u_1^H\\\cdots\\u_n^H\end{bmatrix}\\&=\Sigma_{i=1}^n\lambda_iu_iu_i^H\end{aligned}于是我们可以将原矩阵A看成是它的不同特征的加权和。这样我们就可以对A的特征值按照模的大小排序,去掉模较小(注意特征值是复数,在PCA中我们会对一个实对称矩阵进行谱分解,此时特征值都是实数,直接比较大小就行)的特征值λ\lambda对应的项λuuH\lambda uu^H,也就是去掉权重较小的项,就得到了A的一个近似矩阵。(显然,去掉模越接近0的特征值的对应项,得到的矩阵与原矩阵的近似程度越高)
不过,由于特征值分解的适用性有限,我们无法对任何矩阵都使用特征值分解的方法来求近似矩阵。但是,后面要说的奇异值分解是适用于任意矩阵的,而奇异值分解出的奇异值和奇异向量就类似于特征值和特征向量的作用,故奇异值分解可以用来“分解任意矩阵的特征”。在求任意矩阵的近似矩阵时,可以使用SVD的方法。

实正规矩阵的正交相似拟对角化(拓展内容)

我们在复数域下证明了正规矩阵必可酋对角化的结论,并且讨论了实矩阵可正交相似对角化的充要条件(即必须是实对称矩阵)。根据正规矩阵的定义可得,实正规矩阵就是满足ATA=AATA^TA=AA^T的矩阵AA。显然,实对称矩阵一定是实正规矩阵,但实正规矩阵不一定是实对称阵(例如A=[1111]A=\begin{bmatrix}1&1\\-1&1\end{bmatrix}),所以并非所有实正规矩阵都可以正交相似对角化。但是,我们可以将它们“近似”对角化,即正交相似拟对角化。
拟对角阵具有如下形式:[R11Rnn]\begin{bmatrix}R_{11}&&\\&\ddots&\\&&R_{nn}\end{bmatrix}其中对角子块RiiR_{ii}1×11\times1矩阵或具有一对共轭特征值的2×22\times 2正规矩阵。(注意,为表述方便,这里的拟对角阵是狭义的)

  • 引理5:任意实的拟上三角阵TT,若TT是正规矩阵,则TT一定是拟对角阵
    证:(对TT对角线上的子块个数n进行归纳)
    n=1n=1时,TT本身就是拟对角阵。假设命题对n1n-1成立,现证明命题对nn也成立。设T=[T1SOR]T=\begin{bmatrix}T_1&S\\O&R\end{bmatrix},其中RR1×11\times1矩阵或2×22\times 2矩阵。TTT=[T1TOSTRT][T1SOR]=[T1TT1T1TSSTT1STS+RTR]T^TT=\begin{bmatrix}T_1^T&O\\S^T&R^T\end{bmatrix}\begin{bmatrix}T_1&S\\O&R\end{bmatrix}=\begin{bmatrix}T_1^TT_1&T_1^TS\\S^TT_1&S^TS+R^TR\end{bmatrix}TTT=[T1SOR][T1TOSTRT]=[T1T1T+SSTSRTRSTRRT]TT^T=\begin{bmatrix}T_1&S\\O&R\end{bmatrix}\begin{bmatrix}T_1^T&O\\S^T&R^T\end{bmatrix}=\begin{bmatrix}T_1T_1^T+SS^T&SR^T\\RS^T&RR^T\end{bmatrix}TTT=TTTT^TT=TT^TSTS+RTR=RRTS^TS+R^TR=RR^T,进而tr(RRT)=tr(STS)+tr(RTR)=tr(STS)+tr(RRT)tr(RR^T)=tr(S^TS)+tr(R^TR)=tr(S^TS)+tr(RR^T),故tr(STS)=0tr(S^TS)=0S=OS=OT1TT1=T1T1TT_1^TT_1=T_1T_1^T。于是T=[T1OOR]T=\begin{bmatrix}T_1&O\\O&R\end{bmatrix},注意到T1T_1是有n1n-1个对角子块的拟上三角阵,故由归纳假设知T1T_1是拟对角阵,进而TT也是拟对角阵。证毕。
  • 定理20:ARn×nA\in R^{n\times n}正交相似于一个拟对角矩阵的充要条件为A是正规矩阵
    证明:
    必要性:若A正交相似于一个拟对角矩阵,即存在正交矩阵U和拟对角矩阵TT使得A=UTUTA=UTU^T,则ATA=UTTUTUTUT=UTTTUTA^TA=UT^TU^TUTU^T=UT^TTU^TAAT=UTUTUTTUT=UTTTUTAA^T=UTU^TUT^TU^T=UTT^TU^T,注意到TT的对角子块都是正规矩阵,故TTT=TTTT^TT=TT^T,故ATA=AATA^TA=AA^T
    充分性:设A的Schur分解为A=PTPTA=PTP^T,其中P是正交矩阵,T是拟上三角矩阵。由A是正规矩阵,将A代入ATA=AATA^TA=AA^TPTTTPT=PTTTPTPT^TTP^T=PTT^TP^T,故TTT=TTTT^TT=TT^T,即拟上三角矩阵T是正规矩阵。于是由引理5知T是拟对角矩阵,故A正交相似于拟对角矩阵T。证毕。

奇异值分解SVD(任意矩阵)

奇异值分解在机器学习领域的应用实在是太广泛了:数据压缩、推荐系统、自然语言处理等等到处都有它的身影。这里介绍奇异值分解的数学推导,建议数学推导之外多了解一些应用和直观的几何解释。推荐学习奇异值的几何意义以及奇异值分解与特征值分解的区别与联系,以上知乎链接中的回答多是从线性变换的角度来讲解奇异值分解(实际上矩阵的几何意义就是线性变换),这样能够较为直观得理解EVD和SVD。照片压缩直观地给出了奇异值分解在照片压缩上呈现的效果。

  • 定义:设ACrm×nA\in{C^{m\times{n}}_r}AHAA^HA的特征值为λ1λ2...λr>λr+1=...=λn=0\lambda_1\geqslant \lambda_2\geqslant ...\geqslant\lambda_r\gt\lambda_{r+1}= ...=\lambda_n=0σi=λi(i=1,2,...,n)A\sigma_i=\sqrt \lambda_i(i=1,2,...,n)为A的奇异值
    【注1】关于AHAA^HA的特征值为什么都是非负实数的问题请参考矩阵论(零):线性代数基础知识整理(5)——特征值与相似),注意奇异值都是非负的
    【注2】因为r(AHA)=r(A)=rr(A^HA)=r(A)=r,且AHAA^HA是一个n阶正规矩阵,故AHAA^HA的零特征值的代数重数是nrn-r,这就是为什么λr+1=...=λn=0\lambda_{r+1}=...=\lambda_n=0
    【注3】网上看到有的人把AHAA^HAAAHAA^H的特征值完全等同起来,这是不对的(它们差就差在零特征值上)。对奇异值的定义就是采用AHAA^HA的特征值来定义,用AAHAA^H来定义是不准确的。(不过这不会影响奇异值分解的结果)

奇异值的相关性质:

  1. 奇异值的酋不变性(旋转不变性):
  • 定理21:设U是酋矩阵,则UAUA的奇异值与AA的奇异值相同
    证明:(UA)H(UA)=AHUHUA=AHA(UA)^H(UA)=A^HU^HUA=A^HA,故由奇异值的定义得UAUA的奇异值与AA的奇异值相同。
  • 定理22:设U是酋矩阵,则AUAU的奇异值与AA的奇异值相同
    证明:(AU)H(AU)=UH(AHA)U(AU)^H(AU)=U^H(A^HA)U,即(AU)H(AU)(AU)^H(AU)酋相似于AHAA^HA,故它们的特征值相同,由奇异值的定义得AUAU的奇异值与AA的奇异值相同。
  1. 逆矩阵的奇异值:
  • 定理23:设ACnn×nA\in C^{n\times n}_n,则AA的奇异值均非零。设AA的奇异值为σ1σ2σn>0\sigma_1\geqslant \sigma_2\geqslant\cdots\geqslant\sigma_n\gt 0,则A1A^{-1}的奇异值为1/σn1/σn11/σ11/\sigma_n\geqslant1/\sigma_{n-1}\geqslant\cdots\geqslant1/\sigma_1
    证明:
    由奇异值定义的注释2知AA的奇异值均为正。设AAHAA^H的一个谱分解为AAH=UΣUHAA^H=U\Sigma U^H,其中Σ=diag(λ1,λ2,,λn),λ1λ2λn>0\Sigma=diag(\lambda_1,\lambda_2,\cdots,\lambda_n),\lambda_1\geqslant\lambda_2\geqslant\cdots\geqslant\lambda_n\gt 0。由于AHAA^HAAAHAA^H的非零特征值相同,且同一非零特征值的代数重数相等,于是由奇异值的定义得σi=λi,i=1,2,...,n\sigma_i=\sqrt{\lambda_i},i=1,2,...,n。因为(A1)HA1=(AAH)1=UΣ1UH(A^{-1})^HA^{-1}=(AA^H)^{-1}=U\Sigma^{-1}U^H,于是由奇异值的定义得A1A^{-1}的奇异值为1/λn1/λn11/λ11/\sqrt{\lambda_n}\geqslant1/\sqrt{\lambda_{n-1}}\geqslant\cdots\geqslant1/\sqrt{\lambda_1},即1/σn1/σn11/σ11/\sigma_n\geqslant1/\sigma_{n-1}\geqslant\cdots\geqslant1/\sigma_1
  1. 正规矩阵的奇异值与特征值的关系:
  • 定理24:设正规矩阵ACn×nA\in C^{n\times n}的奇异值为σ1σ2...σn\sigma_1 \geqslant \sigma_2\geqslant...\geqslant\sigma_n,特征值为λ1,λ2,...,λn\lambda_1,\lambda_2,...,\lambda_n满足λ1 λ2...λn|\lambda_1|\geqslant\ |\lambda_2|\geqslant ...\geqslant|\lambda_n|,则σi=λi,i=1,2,...,n\sigma_i=|\lambda_i|,i=1,2,...,n
    证明:
    设A的一个谱分解为A=UΣUHA=U\Sigma U^H,其中Σ=diag(λ1,λ2,...,λn)\Sigma = diag(\lambda_1,\lambda_2,...,\lambda_n),则AHA=UΣUHUΣUH=UΣΣUHA^HA=U\overline{\Sigma}U^HU\Sigma U^H=U\overline{\Sigma}\Sigma U^H。注意到该式是AHAA^HA的一个谱分解,且ΣΣ\overline{\Sigma}\Sigma的对角元为λ12 λ22...λn2|\lambda_1|^2\geqslant\ |\lambda_2|^2\geqslant ...\geqslant|\lambda_n|^2,故根据奇异值的定义得σi=λi,i=1,2,...,n\sigma_i=|\lambda_i|,i=1,2,...,n

下面我们进入奇异值分解。

SVD的存在性定理

  • 定义1:设ACrm×nA\in{C^{m\times{n}}_r},若存在m阶酋矩阵U和n阶酋矩阵V,以及m×nm\times{n}广义对角矩阵Λ=[ΣOOO]\Lambda=\begin{bmatrix}\Sigma&O\\O&O\end{bmatrix},其中Σ=diag(σ1,...,σr)\Sigma=diag(\sigma_1,...,\sigma_r)σ1..σr>0\sigma_1\geqslant ..\geqslant \sigma_r>0为A的非零奇异值,使得A=UΛVHA=U\Lambda V^H,则称A=UΛVHA=U\Lambda V^H是A的一个奇异值分解
    【注1】由于在Σ\Sigma的对角线上AA的非零奇异值是从大到小排列的,故若AA的奇异值分解存在,则Λ\Lambda唯一。在有些资料的定义中,广义对角矩阵Λ\Lambda的对角线元素的大小顺序可以是任意的,但一般来说为便于分析更常约束Λ\Lambda的对角线元素从大到小排列。
    【注2】由于AHAA^HAAAHAA^H的非零特征值相同,且同一非零特征值的代数重数相等,故A的非零奇异值既是AHAA^HA的非零特征值的算数平方根,又是AAHAA^H的非零特征值的算数平方根。
    【注3】由奇异值分解的定义及注2知,若A=UΛVHA=U\Lambda V^H是A的一个奇异值分解,则AH=VΛUHA^H=V\Lambda U^HAHA^H的一个奇异值分解(但需注意的是,AA的奇异值与AHA^H的奇异值不完全等同,且只差在零奇异值上)

上述定义的条件可以减弱:

  • 定义2:设ACm×nA\in C^{m\times n},若存在m阶酋矩阵UU和n阶酋矩阵VV,以及m×nm\times{n}广义对角矩阵Λ=[ΣOOO]\Lambda=\begin{bmatrix}\Sigma&O\\O&O\end{bmatrix},其中Σ=diag(σ1,σ2,...,σr)\Sigma=diag(\sigma_1,\sigma_2,...,\sigma_r)σ1σ2...σr>0\sigma_1\geqslant\sigma_2\geqslant...\sigma_r\gt 0,使得A=UΛVHA=U\Lambda V^H,则称A=UΛVHA=U\Lambda V^HAA的一个奇异值分解
    【注】注意定义1和定义2的区别:定义1中设ACrm×nA\in{C^{m\times{n}}_r},而定义2中设ACm×nA\in C^{m\times n},即rr在定义1中指明为AA的秩,而在定义2中并未指明;定义1中直接指明σ1σ2...σr>0\sigma_1\geqslant\sigma_2\geqslant...\sigma_r\gt 0AA的非零奇异值,而在定义2中并未指明

这两个定义是等价的:
显然若定义1的条件被满足,则定义2的条件也被满足(定义2的条件相较于定义1弱化了)。
若定义2的条件被满足,则由r(A)=r(UΛVH)=r(Λ)=r(Σ)=rr(A)=r(U\Lambda V^H)=r(\Lambda)=r(\Sigma)=rACrm×nA\in C^{m\times n}_r(即rr恰为AA的秩),注意到AHA=(UΛVH)H(UΛVH)=VΛTUHUΛVH=VΛTΛVHA^HA=(U\Lambda V^H)^H(U\Lambda V^H)=V\Lambda^TU^HU\Lambda V^H=V\Lambda^T\Lambda V^HAHAA^HA的一个谱分解,于是ΛTΛ\Lambda^T\Lambda的非零对角线元素σ12σ22...σr2>0\sigma_1^2\geqslant\sigma_2^2\geqslant...\sigma_r^2\gt 0恰为AHAA^HA的非零特征值,于是根据奇异值的定义得σ1σ2...σr>0\sigma_1\geqslant\sigma_2\geqslant...\sigma_r\gt 0AA的非零奇异值,即定义1的条件也被满足。

下面我们证明任意矩阵的奇异值分解的存在性:

  • 定理25:任意矩阵ACrm×nA\in{C^{m\times{n}}_r}都存在奇异值分解A=UΛVHA=U\Lambda V^H,其中U、V分别为m、n阶酋矩阵,Λ=[ΣOOO]\Lambda=\begin{bmatrix}\Sigma&O\\O&O\end{bmatrix}Σ=diag(σ1,...,σr)\Sigma=diag(\sigma_1,...,\sigma_r)σ1..σr\sigma_1\geqslant ..\geqslant \sigma_r为A的非零奇异值
    证明:
    由于AHAA^HA是n阶正规矩阵,故存在n阶酋矩阵V使得VHAHAV=[Σ2OOO]V^HA^HAV=\begin{bmatrix}\Sigma^2&O\\O&O\end{bmatrix}。将V分块V=[V1V2]V=\begin{bmatrix}V_1&V_2\end{bmatrix},其中V1V_1n×rn\times{r}矩阵,V2V_2r×nr\times{n}矩阵。则V1HAHAV1=Σ2V_1^HA^HAV_1=\Sigma^2V2HAHAV2=OV_2^HA^HAV_2=O,即Σ1V1HAHAV1Σ1=Ir\Sigma^{-1}V_1^HA^HAV_1\Sigma^{-1}=I_r(AV2)H(AV2)=O(AV_2)^H(AV_2)=O。设U1=AV1Σ1U_1=AV_1\Sigma^{-1},则有U1HU1=IrU_1^HU_1=I_rAV2=OAV_2=O。由于U1U_1的列向量组为单位正交向量组(注意是r个m维向量),故由扩充定理以及Schmidt正交化方法可将U1U_1的列向量组扩充为CmC^m的一组标准正交基,于是构造出m阶酋矩阵U=[U1U2]U=\begin{bmatrix}U_1&U_2\end{bmatrix}。由UHAV=[U1HU2H]A[V1V2]=[U1HAV1U1HAV2U2HAV1U2HAV2]=[ΣOOO]=Λ\begin{aligned}U^HAV&=\begin{bmatrix}U^H_1\\U^H_2\end{bmatrix}A\begin{bmatrix}V_1&V_2\end{bmatrix}\\&=\begin{bmatrix}U_1^HAV_1&U_1^HAV_2\\U_2^HAV_1&U_2^HAV_2\end{bmatrix}\\&=\begin{bmatrix}\Sigma&O\\O&O\end{bmatrix}=\Lambda\end{aligned}A=UΛVHA=U\Lambda V^H就是A的一个奇异值分解。
    【注】该定理的证明实际上就是通过将AHAA^HA进行谱分解构造出A的一个奇异值分解。若A是一实矩阵,使用类似的构造方法(不同之处在于AHA=ATAA^HA=A^TA的谱分解应选择“实的”谱分解,且应将U1U_1的列向量组扩充为RmR^m的标准正交基)可知,A存在“实的”奇异值分解,即A=UΛVTA=U\Lambda V^T,其中UUVV是实正交矩阵,Λ\Lambda是实广义对角矩阵。

SVD的构造方法(参考资料)

由定理25的证明过程可以看出,奇异值分解的构造是比较复杂的(先构造AHAA^HA的特征值分解,再构造AA的奇异值分解的话时间复杂度太高,且数值稳定性不好)。一般,奇异值分解采用如下算法:第一步用Householder变换将A化为双对角阵,第二步用QR分解或单边Jacobi旋转求双对角阵的SVD,复杂度可以到O(mn2)O(mn^2),且有很好的数值稳定性。(详见英文维基百科

SVD的性质

现在我们来认识一下奇异值分解的数学性质:
(以下均设ACrm×nA\in{C^{m\times{n}}_r}A=UΛVHA=U\Lambda V^H是A的一个奇异值分解)

  • 奇异值与奇异性的关系:若A是n阶方阵,则det(A)=det(U)det(Λ)det(VH)=σ1σ2...σn|det(A)|=|det(U)|det(\Lambda)|det(V^H)|=\sigma_1\sigma_2...\sigma_n,可见A是非奇异的等价于A的奇异值都不为零
  • 全奇异值分解与截尾奇异值分解:
    • 全奇异值分解:就是前面我们所说的奇异值分解A=UΛVHA=U\Lambda V^H
    • 截尾奇异值分解:设U=[U1U2]U=\begin{bmatrix}U_1&U_2\end{bmatrix}V=[V1V2]V=\begin{bmatrix}V_1&V_2\end{bmatrix},其中U1U_1是U的前r列(注意r是A的秩),V1V_1是V的前r列。则A=UΛVH=[U1U2][ΣrOOO][V1HV2H]=U1ΣrV1HA=U\Lambda V^H=\begin{bmatrix}U_1&U_2\end{bmatrix}\begin{bmatrix}\Sigma_r&O\\O&O\end{bmatrix}\begin{bmatrix}V_1^H\\V_2^H\end{bmatrix}=U_1\Sigma_rV_1^H。称A=U1ΣrV1HA=U_1\Sigma_rV_1^H为A的截尾奇异值分解。
      (注意:截尾奇异值分解表明,实际上酋矩阵U和V各自的子矩阵U1U_1V1V_1和A的全部非零奇异值就已携带了原矩阵A的全部信息)
    • 当A是满秩方阵时,A的截尾奇异值分解和全奇异值分解是等同的
    • 如果仔细观察截尾奇异值分解式,会发现它是A的一个满秩分解:A=U1(ΣrV1H)A =U_1(\Sigma_rV_1^H)U1U_1是一列满秩矩阵,ΣrV1H\Sigma_rV^H_1是一行满秩矩阵;或者A=(U1Σr)V1HA=(U_1\Sigma_r)V_1^HU1ΣrU_1\Sigma_r是一列满秩矩阵,V1HV_1^H是一行满秩矩阵;再或者A=(U1Σr)(ΣrV1H)A=(U_1\sqrt{\Sigma_r})(\sqrt{\Sigma_r}V_1^H),其中Σr=diag(σ1,...,σr)\sqrt{\Sigma_r}=diag(\sqrt{\sigma_1},...,{\sigma_r})U1ΣrU_1\sqrt{\Sigma_r}是一列满秩矩阵,ΣrV1H\sqrt{\Sigma_r}V_1^H是一行满秩矩阵……等等。
  • 认识酋矩阵U和V:
    • 左奇异向量与右奇异向量:
      U的列向量称为A的左奇异向量,V的列向量称为A的右奇异向量。
      AA的左奇异向量都是AAHAA^H的特征向量,AA的右奇异向量都是AHAA^HA的特征向量。(原因:根据A=UΛVHA=U\Lambda V^H,有AAH=UΛVHVΛTUH=U(ΛΛT)UHAA^H=U\Lambda V^HV\Lambda ^TU^H=U(\Lambda\Lambda^T)U^H,注意这是AAHAA^H的一个谱分解,于是UU的列向量都是AHAA^HA的特征向量。同理,根据AHA=V(ΛTΛ)VHA^HA=V(\Lambda^T\Lambda)V^HAHAA^HA的一个谱分解就知道VV的列向量都是AAHAA^H的特征向量)
    • U=[U1U2]U=\begin{bmatrix}U_1&U_2\end{bmatrix},其中U1U_1是U的前rr列(注意r是A的秩)构成的子矩阵。则U1U_1的列向量组是A的列空间R(A)R(A)的标准正交基,U2U_2的列向量组是AHA^H的零空间N(AH)N(A^H)的标准正交基
      (原因:观察截尾奇异值分解式A=U1(ΣrV1H)A=U_1(\Sigma_rV_1^H),可见A的列向量组可由U1U_1的列向量组线性表示,又dim R(A)=r=r(U1)dim\ R(A)=r=r(U_1),所以U1U_1的列向量组是R(A)R(A)的标准正交基;计算可得AHU2=V1ΣrTU1HU2=V1ΣrTO=OA^HU_2=V_1\Sigma_r^TU_1^HU_2=V_1\Sigma_r^TO=O,又dim N(AH)=mr=r(U2)dim\ N(A^H)=m-r=r(U_2),所以U2U_2的列向量组是N(AH)N(A^H)的标准正交基)
      【注】这说明奇异值分解可以用来求矩阵的列空间及其正交补的标准正交基。
    • V=[V1V2]V=\begin{bmatrix}V_1&V_2\end{bmatrix},其中V1V_1是V的前r列构成的子矩阵。则V1V_1的列向量组是AHA^H的列空间R(AH)R(A^H)的一组标准正交基,V2V_2的列向量组是A的零空间N(A)N(A)的一组标准正交基
      (原因和上面同理)
      【注】这说明奇异值分解可以用来求矩阵的零空间及其正交补的标准正交基。
  • 奇异值与特征值的关系
    • 定理26:若A是对称半正定矩阵,则A的奇异值与A的特征值完全等同,A的一个特征值分解也是A的一个奇异值分解
      证明:
      若A是对称半正定矩阵,则A的特征值(为实数)均非负。设n阶方阵AA的一个谱分解为A=UΛUHA=U\Lambda U^H,其中Λ=diag(λ1,...,λn)\Lambda=diag(\lambda_1,...,\lambda_n),则AHA=A2=UΛUHUΛUH=UΛ2UHA^HA=A^2=U\Lambda U^HU\Lambda U^H=U\Lambda^2 U^H。这说明AHAA^HA的特征值为λ12,...,λn2\lambda_1^2,...,\lambda_n^2,故由奇异值的定义知A的奇异值σi=λi2=λi,i=1,2,...,n\sigma_i=\sqrt{\lambda_i^2}=\lambda_i,i=1,2,...,n,即A的奇异值与其特征值等同。进而由奇异值分解的定义知A=UΛUHA=U\Lambda U^H是A的一个奇异值分解。

SVD用于求矩阵的逼近

奇异值分解可以视作方阵(正规矩阵)的特征值分解在一般的长方矩阵上的推广,奇异值和奇异向量是描述长方矩阵的特征的量,这一点可以通过照片压缩的例子直观地理解。和特征值分解一样,奇异值分解可以改写成矩阵的特征的加权和:由ACrm×nA\in{C^{m\times{n}}_r}的截尾奇异值分解式A=U1ΣrV1HA=U_1\Sigma_rV_1^H,若设U1=[u1...ur]U_1=\begin{bmatrix}u_1&...u_r\end{bmatrix}V1=[v1...vr]V_1=\begin{bmatrix}v_1&...v_r\end{bmatrix},则有A=Σi=1rσiuiviHA=\Sigma_{i=1}^r\sigma_iu_iv_i^H在求A的近似矩阵时,只要去掉奇异值较小的项即可(等价于在奇异值分解式中令对角矩阵上相应的奇异值为零)。另外,注意到r(A)=r(U1ΣrV1H)=r(Σr)r(A)=r(U_1\Sigma_rV_1^H)=r(\Sigma_r),故每去掉A=Σi=1rσiuiviHA=\Sigma_{i=1}^r\sigma_iu_iv_i^H中的一项,AA的秩就减少1,所以这样求得的近似矩阵实际上是对原矩阵的低秩逼近。这种方法可以实现对数据的去噪、压缩等。还有一点比较有趣,σiuiviH\sigma_iu_iv_i^H是一个秩为1的矩阵(因为r(σiuiviH)r(ui)=1r(\sigma_iu_iv_i^H)\leqslant r(u_i)=1r(σiuiviH)r(ui)+r(viH)1=1r(\sigma_iu_iv_i^H)\geqslant r(u_i)+r(v_i^H)-1=1),所以A=Σi=1rσiuiviHA=\Sigma_{i=1}^r\sigma_iu_iv_i^H实际上是把A拆分成了若干独立的低秩矩阵(秩为1)的加权和,每个低秩项都可视作A的一个特征项。
总的来说,每去掉A=Σi=1rσiuiviHA=\Sigma_{i=1}^r\sigma_iu_iv_i^H中的一项,不仅去掉的是一个秩为1的项,还恰好使AA的秩减少了1。

SVD在推荐系统中的应用

奇异值分解的应用有很多,这里简单介绍一下SVD在推荐系统中的应用:
推荐算法可以分为传统的SVD方法和凸优化的方法,这里介绍传统的SVD算法。传统算法中SVD的作用是提取每个user和每个item的主要特征(实际上是对原评分矩阵做低秩逼近),用于计算每个item间的相似度或每个user间的相似度,如果利用user间的相似度来预测评分,就是User_based的算法;如果利用item间的相似度来预测评分,就是Item_based的算法。
矩阵论(三):矩阵分解—从Schur分解、特征值分解EVD到奇异值分解SVD(下)
设有n×mn\times m评分矩阵A(如上图),A的(i,j)(i,j)元素是User(j)User(j)Item(i)Item(i)的评分。通常A是一个稀疏矩阵,即A中大多数元素是未定义的,可以使用均值归一化的方法填充(注意这里的填充是为了后续可计算,而不是作为预测值):先算出每个item已有评分的均分,然后给该item的每个已有评分减去该item的均分,并用0填充该item下未定义的评分。
设填充好的评分矩阵是B。求出B的“实的”奇异值分解式B=UΛVTB=U\Lambda V^TUUΛ\LambdaVV都是实矩阵),其中B的奇异值在Λ\Lambda的对角线上从大到小排列,令Λ\Lambda中B的最小的k个非零奇异值为零(具体k取多少取决于你想保留原矩阵B的多少信息),就得到了B的一个低秩逼近矩阵C,C的截尾奇异值分解式是C=U1ΣV1TC=U_1\Sigma V_1^T(如果保留了B的前ll大奇异值,则U1U_1就是UU的前ll列,V1V_1就是VV的前ll列)。以User_based为例,注意到U1U_1的列向量组是C的列空间的标准正交基,于是可将C的每一列在该基下的坐标向量求出(实际中不会求出矩阵C,所以实际计算时常是拿B的每一列求),得到了降维后User的特征,于是可以计算任意两个User间的相似度(余弦相似度、欧式距离、皮尔逊相关系数等相似度函数均可)。
现在,若要预测User(j)User(j)item(i)item(i)的评分(前提是User(j)User(j)未对item(i)item(i)打分),可以看看其他user对item(i)item(i)的评分是多少,将其他user与User(j)User(j)的相似度作为权重系数,求出其他user对item(i)item(i)的评分的加权平均值,作为User(j)User(j)item(i)item(i)的评分的预测值。最后,推荐过程则是基于预测的评分,将预测评分较高的item推荐给用户即可。
【补充】如何求C的列向量在已知C的列空间的标准正交基(即U1U_1的列向量组)下的坐标:设CC的第ii个列向量的坐标向量是ziz_iZ=[z1...zn]Z=\begin{bmatrix}z_1&...&z_n\end{bmatrix}。那么就是要求得矩阵Z使得C=U1ZC=U_1Z,两端左乘U1TU_1^T,得到U1TC=U1TU1Z=ZU_1^TC=U_1^TU_1Z=Z。故求Z的公式是Z=U1TCZ=U_1^TC