# 写在前面

前一个博客涉及到矩阵追踪的算法,因此补了一下相关文献[1],^,[2]。第一个文献发在了机器学习的顶会上,先占坑。第二篇同年发在了SIAM上,相当于第一篇的加强版。不过两篇应该是同期出来的。这两篇文章的主要贡献如下:

  • 将正交匹配追踪算法从向量推广至矩阵版本
  • 标准算法具有线性收敛速度
  • 简化版算法降低了计算量并维持收敛速度
  • 无需调参,理论上证明收敛性
  • 将算法推广至更一般的矩阵感知问题

第一篇文章标题是矩阵补全的秩1矩阵追踪,第二篇标题为低秩矩阵补全的正交秩1矩阵追踪,两篇虽然字面意思相差在正交性上,但是基矩阵都是默认互正交的,所以应该是区分一下两个文章的,后者没有实际意义上的改进。

# 秩1矩阵追踪

众所周知,任意实矩阵可表示为若干个秩1矩阵的线性组合

X=M(θ)=iIθiMiX=M(\boldsymbol\theta)=\sum_{i\in\mathcal I}\theta_i M_i

其中{Mi}\{M_i\}是秩1矩阵且具有单位长度的F范数,即rank(Mi)=1MiF=1\text{rank}(M_i)=1,\|M_i\|_F=1。这样的表示可以通过奇异值分解(SVD)来获得。

低秩矩阵近似问题常数找到θ\theta0\ell_0范数来满足约束:

minθθ0s.t.PΩ(M(θ))=PΩ(Y)\min_\boldsymbol\theta \|\boldsymbol\theta\|_0 \quad\text{s.t.}\quad \mathcal P_\Omega(M(\boldsymbol\theta))=\mathcal P_\Omega(Y)

该问题也等价于稀疏约束下的优化问题:

minθPΩ(M(θ))PΩ(Y)F2s.t.θ0r\min_\boldsymbol\theta \|\mathcal P_\Omega(M(\boldsymbol\theta))-\mathcal P_\Omega(Y)\|_F^2 \quad\text{s.t.}\quad \|\boldsymbol\theta\|_0\leq r

该问题可通过正交匹配追踪类型的贪婪算法来求解,其基(原子)MiM_i可设置为秩1矩阵。

如果字典{Mi:iI}\{M_i:i\in\mathcal I\}是已知且有限的,那么上述问题等价于压缩感知问题。然而,字典基的个数通常是无限且未知的,需要用基追踪算法来求解。通常情况下,我们可使用若干个秩1矩阵作为过完备字典的原子,再学习对应的稀疏系数。因此此类型的贪婪算法交替迭代以下两个步骤:

  • 构造过完备字典的基
  • 学习基对应的权系数

假设第k1k-1次迭代得到了秩1的基矩阵M1,,Mk1M_1,\ldots,M_{k-1}以及对应的系数θ(k1)=(θ1,,θk1)\boldsymbol \theta^{(k-1)}=(\theta_{1},\ldots,\theta_{k-1}),在第kk次迭代中我们需要寻找一个新的秩1基矩阵MkM_k和对应的系数θk\theta_k

# 基的追踪

令当前的残差R(k)=PΩ(Y)X(k1)R^{(k)}=\mathcal P_\Omega(Y)-X^{(k-1)},其中

X(k1)=(M(θ(k1)))Ω=i=1k1θi(k1)(Mi)ΩX^{(k-1)}=(M(\boldsymbol\theta^{(k-1)}))_\Omega=\sum_{i=1}^{k-1}\theta_i^{(k-1)} (M_i)_\Omega

这个基MkRm×nM_k\in\mathbb R^{m\times n}需要与当前残差R(k)R^{(k)}尽可能的相关,即

maxMM,Rks.t.rank(M)=1,MF=1\max_M \left\langle M,R_k\right\rangle\quad\text{s.t.}\quad\text{rank}(M)=1,\|M\|_F=1

注意到具有单位F范数的秩1矩阵可用两个单位向量的乘积表示,即M=uvTM=\boldsymbol u\boldsymbol v^T,其中向量uRm,vRn\boldsymbol u\in\mathbb R^m,\boldsymbol v\in\mathbb R^n满足u=v=1\|\boldsymbol u\|=\|\boldsymbol v\|=1。因此上面矩阵形式的优化问题可等价表示为向量形式

maxu,vuTRkvs.t.u=v=1\max_{\boldsymbol u,\boldsymbol v} \boldsymbol u^TR_k\boldsymbol v\quad\text{s.t.}\quad\|\boldsymbol u\|=\|\boldsymbol v\|=1

显然,最优解(u,v)(\boldsymbol u_*,\boldsymbol v_*)是矩阵RkR_k的最大奇异值对应的左右奇异向量对,因此新的秩1矩阵可以很容易得到:Mk=uvTM_k = \boldsymbol u_*\boldsymbol v_*^T

# 系数的更新

得到当前所有的基M1,,Mk1,MkM_1,\ldots,M_{k-1},M_{k}后,所有的权系数θ(k)=(θ1,,θk1,θk)Rk\boldsymbol \theta^{(k)}=(\theta_{1},\ldots,\theta_{k-1},\theta_{k})\in\mathbb R^{k}可通过如下最小二乘回归问题得到

minθi=1kθiMiYΩ2\min_{\boldsymbol \theta}\|\sum_{i=1}^k\theta_iM_i-Y\|_\Omega^2

将矩阵(Y)Ω(Y)_\Omega(Mi)Ω(M_i)_\Omega拉成向量y˙\dot ym˙i\dot m_i,记向量组成的矩阵Mˉk=[m˙1,,m˙k]\bar M_k=[\dot m_1,\ldots,\dot m_k],则上述最小二乘解可显示表示为

θ(k)=(MˉkTMˉk)1MˉkTy˙\boldsymbol \theta^{(k)}=(\bar M_k^T\bar M_k)^{-1}\bar M_k^T\dot y

# R1MP算法

# 收敛性结论

  • 残差与基的垂直关系

R(k+1),Mi=0,i=1,,k\left\langle R^{(k+1)},M_i\right\rangle=0,\quad\forall i=1,\ldots,k

  • 对应某些k>1k>1R(k)0R^{(k)}\neq0,则对所有的iki\leq kMˉi\bar M_i列满秩。

  • 残差递减关系

R(k+1)R(k),k1\|R^{(k+1)}\|\leq\|R^{(k)}\|,\quad\forall k\geq 1

引入辅助变量θ(k)=θ(k1)+η(k)\boldsymbol \theta^{(k)}=\boldsymbol \theta^{(k-1)}+\boldsymbol \eta^{(k)},不难得到

η(k)=argminηi=1kηiMiRkΩ2\boldsymbol \eta^{(k)}=\arg\min_\boldsymbol\eta\|\sum_{i=1}^k \eta_iM_i-R_k\|_\Omega^2

L(k)=i=1kηi(k)(Mi)ΩL^{(k)}=\sum_{i=1}^k \eta_i^{(k)}(M_i)_\Omega,则

X(k+1)=X(k1)+L(k),R(k+1)=R(k+1)L(k),R(k+1)2=R(k)2L(k)2,L(k)2R(k),Mk.\begin{aligned} X^{(k+1)}&=X^{(k-1)}+L^{(k)},\\ R^{(k+1)}&=R^{(k+1)}-L^{(k)},\\ \|R^{(k+1)}\|^2&=\|R^{(k)}\|^2-\|L^{(k)}\|^2,\\ \|L^{(k)}\|^2&\geq\left\langle R^{(k)},M_k\right\rangle. \end{aligned}

  • 秩1矩阵追踪算法的结果满足

Rk(11min(m,n))k1YΩ,k1\|R_k\|\leq\left(\sqrt{1-\frac{1}{\min(m,n)}}\right)^{k-1}\|Y\|_\Omega,\quad\forall k\geq 1

实际上,上界可以更小

RkYΩi=1k11σmax2(Ri)Ri2\|R_k\|\leq\|Y\|_\Omega\prod_{i=1}^{k-1}\sqrt{1-\frac{\sigma_{\max}^2(R_i)}{\|R_i\|^2}}

因为Ri2σmax2(Ri)\frac{\|R_i\|^2}{\sigma_{\max}^2(R_i)}实际上往往比min(m,n)\min(m,n)更小。

# 注记

  • Ω\Omega是整个矩阵时,OR1MP等价于SVD
  • 低秩表示可以用来去除(高斯)噪声
  • OMP是次线性收敛的,而OR1MP是线性收敛的

# 经济的秩1分解算法

R1MP算法需要同时处理所有的基和系数,耗时又耗复杂度的缺点不利于大规模的矩阵问题。

# 系数的更新

回到原来的系数更新问题

minθi=1kθiMiYΩ2\min_{\boldsymbol \theta}\|\sum_{i=1}^k\theta_iM_i-Y\|_\Omega^2

在第k1k-1次迭代有一个现成的近似组合

X(k1)=(M(θ(k1)))Ω=i=1k1θi(k1)(Mi)ΩX^{(k-1)}=(M(\boldsymbol\theta^{(k-1)}))_\Omega=\sum_{i=1}^{k-1}\theta_i^{(k-1)} (M_i)_\Omega

如果我们将求和项分为两项aX(k1)+bMkaX^{(k-1)}+bM_k,就不需要每次都逐个更新前k1k-1个基的系数θ(k1)\boldsymbol\theta^{(k-1)},只需要在X(k1)X^{(k-1)}的整体上{Mi:i=1,,k1}\{M_i:i=1,\ldots,k-1\}进行适当得与MkM_k组合。这只需要将第k1k-1次迭代的系数θ(k1)\boldsymbol\theta^{(k-1)}进行缩放,再加上第kk个系数θkk\theta_k^k,便可得到第kk次迭代的系数θ(k)\boldsymbol\theta^{(k)}。因此可以考虑一个简单化的问题

α(k)=argminα={α1,α2}α1X(k1)+α2M(k)YΩ2,\boldsymbol\alpha^{(k)}=\arg\min_{\boldsymbol\alpha=\{\alpha_1,\alpha_2\}}\|\alpha_1X^{(k-1)}+\alpha_2M^{(k)}-Y\|_\Omega^2,

其中αR2\boldsymbol\alpha\in\mathbb R^{2}。得到结果后,系数变化为

θk(k)=α2(k),θi(k)=θi(k1)α1(k),i<k.\theta_k^{(k)}=\alpha_2^{(k)},\quad\theta_i^{(k)}=\theta_i^{(k-1)}\alpha_1^{(k)},\forall i<k.

对应的近似为

X(k)=i=1kθi(k)(Mi)Ω=α1(k)X(k1)+α2(k)(Mk)Ω.X^{(k)}=\sum_{i=1}^{k}\theta_i^{(k)} (M_i)_\Omega=\alpha_1^{(k)}X^{(k-1)}+\alpha_2^{(k)}(M_k)_\Omega.

# ER1MP算法

# 收敛性结论

  • 残差与组合的两项具有垂直关系

R(k+1),X(k1)=0,R(k+1),Mk=0\left\langle R^{(k+1)},X^{(k-1)}\right\rangle=0,\left\langle R^{(k+1)},M_k\right\rangle=0

  • 残差与组合的长度关系

R(k+1)2=YΩ2X(k)2,k1\|R^{(k+1)}\|^2=\|Y_\Omega\|^2-\|X^{(k)}\|^2,\quad\forall k\geq 1

  • 残差非减

R(k+1)R(k),k1\|R^{(k+1)}\|\leq\|R^{(k)}\|,\quad\forall k\geq 1

  • 上式残差取等关系

如果X(k1)X^{(k-1)}(Mk)Ω(M_k)_\Omega线性相关,即存在非零常数β0\beta\neq0,有X(k1)=β(Mk)ΩX^{(k-1)}=\beta(M_k)_\Omega,则R(k+1)=R(k)\|R^{(k+1)}\|=\|R^{(k)}\|

  • 奇异值刻画不等式

R(k),Mk=σmax(Rk)Rkmin(m,n)\left\langle R^{(k)},M_k\right\rangle=\sigma_{\max}(R_k)\geq\frac{\|R_k\|}{\sqrt{\min(m,n)}}

  • 线性无关的必要条件

Rk0R_k\neq0,则对所有的非零常数β0\beta\neq0,有X(k1)β(Mk)ΩX^{(k-1)}\neq\beta(M_k)_\Omega

  • 迭代过程中的残差界限

R(k+1)R(k)σmax2(Rk)Mk,MkΩ\|R^{(k+1)}\|\leq\|R^{(k)}\|-\frac{\sigma_{\max}^2(R_k)}{\left\langle M_k,M_k\right\rangle}_\Omega

  • 经济的秩1矩阵追踪算法的结果满足

Rk(11min(m,n))k1YΩ,k1\|R_k\|\leq\left(\sqrt{1-\frac{1}{\min(m,n)}}\right)^{k-1}\|Y\|_\Omega,\quad\forall k\geq 1

# 注记

  • OP1MP与EOP1MP都是线性收敛的,收敛结论一致
  • EOP1MP仅处理重构X(k1)X^{(k-1)}和基MkM_k,因此计算量和存储成本大大减少
  • 两个算法收敛性的证明过程一致,只是OP1MP是对所有的基和组合,而EOP1MP的结论针对当前的基和前一代的重构成立

# 矩阵感知问题

考虑一个更一般的优化问题

minXRn×mrank(X):A(X)=A(Y)\min_{ {\mathbf X}\in \mathbb R^{n \times m}} \text{rank}({\mathbf X}): {\mathcal A}({\mathbf X}) ={\mathcal A}({\mathbf Y})

其中Y{\mathbf Y}是目标低秩矩阵,A{\mathcal A}是具有如下表示的线性算子

A(X)=[vec(A1)Tvec(Ad)T]vec(X)\mathcal{A}(\mathbf{X})=\left[\begin{array}{c} \operatorname{vec}\left(\mathbf{A}_{1}\right)^{T} \\ \vdots \\ \operatorname{vec}\left(\mathbf{A}_{d}\right)^{T} \end{array}\right] \operatorname{vec}(\mathbf{X})

使用矩阵与向量的转化

Xn×mmatvecvec(X)mn×1X_{n\times m}\overset{\text{vec}}{\underset{\text{mat}}{\Longleftrightarrow}}\text{vec}(X)_{mn\times 1}

则线性算子A{\mathcal A}及其逆A1{\mathcal A}^{-1}可表示成

A=Avec:Rn×mRd×1A1=matA:Rd×1Rn×m\begin{aligned} \mathcal{A}&=\mathbf A\text{vec}:\mathbb R^{n\times m}\to\mathbb R^{d\times 1}\\ \mathcal{A}^{-1}&=\text{mat}\circ A^{\dagger}:\mathbb R^{d\times 1}\to\mathbb R^{n\times m} \end{aligned}

b=A(Y)=Avec(Y),R0=A1(b)\mathbf b={\mathcal A}({\mathbf Y})=\mathbf A\text{vec}(\mathbf Y),R_0=\mathcal{A}^{-1}(\mathbf b),则广义的矩阵感知问题便化为前面着重解决的低秩矩阵近似问题,可用秩1矩阵追踪算法求解。

# 计算矩阵逆的技巧

OR1MP算法的第2步需要计算(MˉkMˉk)1({\mathbf {\bar M}_k}{\mathbf {\bar M}_k} )^{-1}。在大规模问题里不方便直接算矩阵的逆,所以可以采取增量的方式降低计算量。因为矩阵乘积可分块表示

MˉkTMˉk=[Mˉk1,m˙k]T[Mˉk1,m˙k],{\mathbf {\bar M}_k}^T{\mathbf {\bar M}_k} = [{\mathbf {\bar M}_{k-1}}, \dot{\mathbf m}_k]^T[{\mathbf {\bar M}_{k-1}}, \dot{\mathbf m}_k],

其逆矩阵也可分块

(MˉkTMˉk)1=[Mˉk1TMˉk1Mˉk1Tm˙km˙kTMˉk1Tm˙kTm˙k]1({\mathbf {\bar M}_k}^T{\mathbf {\bar M}_k} )^{-1} = \begin{bmatrix} {\mathbf {\bar M}_{k-1}}^T{\mathbf {\bar M}_{k-1}} & {\mathbf {\bar M}_{k-1}}^T \dot{\mathbf m}_k \\ \dot{\mathbf m}^T_k{\mathbf {\bar M}_{k-1}}^T & \dot{\mathbf m}^T_k\dot{\mathbf m}_k \end{bmatrix}^{-1}

采用块反演的方法计算(blockwise inversion)

[A+dAbbTAdAbdbTAd]\begin{array}{lc} \begin{bmatrix} {\mathbf A}+ d{\mathbf A} {\mathbf b} {\mathbf b}^T{\mathbf A} & - d{\mathbf A} {\mathbf b} \\ - d {\mathbf b}^T{\mathbf A} & {d} \end{bmatrix} \end{array}

其中

A=(Mˉk1TMˉk1)1b=Mˉk1Tm˙kd=(bTbbTAb)1\begin{aligned} {\mathbf A} &= ({\mathbf {\bar M}_{k-1}}^T{\mathbf {\bar M}_{k-1}})^{-1}\\ {\mathbf b} &= {\mathbf {\bar M}_{k-1}}^T \dot{\mathbf m}_k\\ d &= ( {\mathbf b}^T {\mathbf b} - {\mathbf b}^T{\mathbf A}{\mathbf b} )^{-1} \end{aligned}

增量式计算体现在以下两点

  • (Mˉk1TMˉk1)1({\mathbf {\bar M}_{k-1}}^T{\mathbf {\bar M}_{k-1}})^{-1}是上一步得到的逆矩阵

  • 除了逆矩阵以外,还需计算MˉkTy˙=[Mˉk1Ty˙,m˙kTy˙]{\mathbf {\bar M}_k}^{T} {\dot{\mathbf y}}=[{\mathbf {\bar M}_{k-1}}^{T} {\dot{\mathbf y}}, \dot{\mathbf m}^T_k{\dot{\mathbf y}}]

# References


  1. Wang Z, Lai M J, Lu Z, et al. Rank-one matrix pursuit for matrix completion[C]//International Conference on Machine Learning. 2014: 91-99. ↩︎

  2. Wang Z, Lai M J, Lu Z, et al. Orthogonal rank-one matrix pursuit for low rank matrix completion[J]. SIAM Journal on Scientific Computing, 2015, 37(1): A488-A514. ↩︎