# 写在前面

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

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

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

# 秩1矩阵追踪

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

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

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

低秩矩阵近似问题常数找到θ\theta的ℓ0\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.∥θ∥0≤r\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:i∈I}\{M_i:i\in\mathcal I\}是已知且有限的,那么上述问题等价于压缩感知问题。然而,字典基的个数通常是无限且未知的,需要用基追踪算法来求解。通常情况下,我们可使用若干个秩1矩阵作为过完备字典的原子,再学习对应的稀疏系数。因此此类型的贪婪算法交替迭代以下两个步骤:

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

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

# 基的追踪

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

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

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

max⁡M⟨M,Rk⟩s.t.rank(M)=1,∥M∥F=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,其中向量u∈Rm,v∈Rn\boldsymbol u\in\mathbb R^m,\boldsymbol v\in\mathbb R^n满足∥u∥=∥v∥=1\|\boldsymbol u\|=\|\boldsymbol v\|=1。因此上面矩阵形式的优化问题可等价表示为向量形式

max⁡u,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=u∗v∗TM_k = \boldsymbol u_*\boldsymbol v_*^T。

# 系数的更新

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

min⁡θ∥∑i=1kθiMi−Y∥Ω2\min_{\boldsymbol \theta}\|\sum_{i=1}^k\theta_iM_i-Y\|_\Omega^2

将矩阵(Y)Ω(Y)_\Omega和(Mi)Ω(M_i)_\Omega拉成向量y˙\dot y和m˙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>1有R(k)≠0R^{(k)}\neq0,则对所有的i≤ki\leq k,Mˉi\bar M_i列满秩。

  • 残差递减关系

∥R(k+1)∥≤∥R(k)∥,∀k≥1\|R^{(k+1)}\|\leq\|R^{(k)}\|,\quad\forall k\geq 1

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

η(k)=arg⁡min⁡η∥∑i=1kηiMi−Rk∥Ω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(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≥⟨R(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∥≤(1−1min⁡(m,n))k−1∥Y∥Ω,∀k≥1\|R_k\|\leq\left(\sqrt{1-\frac{1}{\min(m,n)}}\right)^{k-1}\|Y\|_\Omega,\quad\forall k\geq 1

实际上,上界可以更小

∥Rk∥≤∥Y∥Ω∏i=1k−11−σmax⁡2(Ri)∥Ri∥2\|R_k\|\leq\|Y\|_\Omega\prod_{i=1}^{k-1}\sqrt{1-\frac{\sigma_{\max}^2(R_i)}{\|R_i\|^2}}

因为∥Ri∥2σmax⁡2(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θiMi−Y∥Ω2\min_{\boldsymbol \theta}\|\sum_{i=1}^k\theta_iM_i-Y\|_\Omega^2

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

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

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

α(k)=arg⁡min⁡α={α1,α2}∥α1X(k−1)+α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(k−1)α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(k−1)+α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(k−1)⟩=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Ω∥2−∥X(k)∥2,∀k≥1\|R^{(k+1)}\|^2=\|Y_\Omega\|^2-\|X^{(k)}\|^2,\quad\forall k\geq 1

  • 残差非减

∥R(k+1)∥≤∥R(k)∥,∀k≥1\|R^{(k+1)}\|\leq\|R^{(k)}\|,\quad\forall k\geq 1

  • 上式残差取等关系

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

  • 奇异值刻画不等式

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

  • 线性无关的必要条件

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

  • 迭代过程中的残差界限

∥R(k+1)∥≤∥R(k)∥−σmax⁡2(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∥≤(1−1min⁡(m,n))k−1∥Y∥Ω,∀k≥1\|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(k−1)X^{(k-1)}和基MkM_k,因此计算量和存储成本大大减少
  • 两个算法收敛性的证明过程一致,只是OP1MP是对所有的基和组合,而EOP1MP的结论针对当前的基和前一代的重构成立

# 矩阵感知问题

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

min⁡X∈Rn×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)T⋮vec⁡(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×m⟺matvecvec(X)mn×1X_{n\times m}\overset{\text{vec}}{\underset{\text{mat}}{\Longleftrightarrow}}\text{vec}(X)_{mn\times 1}

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

A=Avec:Rn×m→Rd×1A−1=mat∘A†:Rd×1→Rn×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=A−1(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ˉk−1,m˙k]T[Mˉk−1,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ˉk−1TMˉk−1Mˉk−1Tm˙km˙kTMˉk−1Tm˙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+dAbbTA−dAb−dbTAd]\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ˉk−1TMˉk−1)−1b=Mˉk−1Tm˙kd=(bTb−bTAb)−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ˉk−1TMˉk−1)−1({\mathbf {\bar M}_{k-1}}^T{\mathbf {\bar M}_{k-1}})^{-1}是上一步得到的逆矩阵

  • 除了逆矩阵以外,还需计算MˉkTy˙=[Mˉk−1Ty˙,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. ↩︎