有效地解决低阶矩阵完全问题

有效地解决低阶矩阵完全问题(对矩阵的ky-norm做惩罚)

Solving Low-Rank Matrix Completion Problems Efficiently

Donald Goldfarb   Shiqian Ma(马士谦,香港中文大学)   Zaiwen Wen(文再文,北京大学)

摘要:我们提出(present)几个求解低秩矩阵完全问题的一阶算法,通过最小化核范数(nuclear norm)代替矩阵的秩得到的它的最紧凸松弛(tightest convex relaxation)。我们的第一个算法是一个不动点延拓算法(fixed point continuation algorithm),它整合了一个近似奇异值分解过程(FPCA, approximate singular value decomposition procedure)。FPCA可以有效地解决大型矩阵完全问题,并达到高水平的可恢复性(recoverability)。例如,FPCA可以在大约3分钟内恢复秩为50的1000×1000矩阵,相对误差为105,仅仅需要对20%的元素进行抽样。我们知道没有其他的方法能够达到这么良好的可恢复性。我们的第二个算法是求解核范数矩阵完全问题的半定规划重写(semidefinite programming reformulation)的逐行法(row by row method)。这种方法能够高效地产生相当大的核范数矩阵完全问题的高精度解(highly accurate solutions)。最后,我们介绍一种基于增广拉格朗日框架(augmented Lagrangian framework)的交替方向方法。

 

1 介绍

 

本文中,我们对求解矩阵完全问题的方法感兴趣。

\begin{align*}&\min &&\rank (X)\\

&s.t. &&X_{ij}=M_{ij},\quad \forall (i,j)\in \Omega,

\end{align*}

其中XM都是p×q矩阵和Ω是指标对(i,j)的子集.此问题是仿射约束矩阵秩最小化问题(affinely constrained matrix rank minimization problem)

\begin{align*}&\min &&\rank (X)\\

&s.t. &&\mathcal{A}(X)=b,

\end{align*}

的特殊情形,其中XRp×q为决策变量,而线性映射A:Rp×qRm且向量bRm是给定的.

 

所谓的协同过滤问题(collaborative filtering problem) [17]可以被视为(be cast as)一个矩阵完全问题.假设用户在一个在线调查提供一些电影的评分.这产生一个以用户为行和电影为列的矩阵M,它的(i,j)Mij是第i位用户对第j部电影给出的评分.因为大多数用户只对一小部分的电影评分,我们通常只知道矩阵所包含项的一个小的子集{Mij|(i,j)Ω}.根据某个用户的已知评分,我们想要预测用户对那些他没评过分的电影的评分;也就是,我们要填写矩阵的那些空白项.通常认为,只有少量因素影响一个人对电影的品味或偏好.因此评分矩阵M可能从数值上看是低秩的,在此意义上,相对较少的大奇异值占(account for)所有的奇异值的总和的很大一部分。找到这样一个低秩矩阵M对应于解决矩阵完全问题(I.1).

 

矩阵的秩是其正奇异值的个数.矩阵秩最小化问题(I.2)一般是NP难的,这是由函数\rank()的组合性质导致的。为了得到一个便于计算的近似(I.2),我们可以用它的凸包来代替\rank(X),也就是核范数X,它被定义为矩阵X所有奇异值的总和 [8].由此产生了以下核范数最小化问题,这是(I.2)的最紧凸松弛:

\begin{align*}&\min &&\|X\|_\ast\\

&s.t. &&\mathcal{A}(X)=b.

\end{align*}

如果b被噪声污染(contaminated by)了,约束(constraint) A(X)=b应该被放宽,也就产生了另一个问题

\begin{align*}&\min &&\|X\|_\ast\\

&s.t. &&\|\mathcal{A}(X)-b\|_2\leq \theta.

\end{align*}

或者是拉格朗日函数的说法(version)

minμX+12A(X)b22,

其中θμ是参数.

 

一个重要的问题是:核范数最小化问题(I.3)的最优解啥时候能给出矩阵秩最小化问题(I.2)的最优解.针对这一问题,Recht等人[15]证明了:若A (A为线性算子A的矩阵说法,也就是A(X)=Avec(X))的各项是适当随机的(suitably random), 例如,独立同分布的正态分布,那么只要mCr(p+q),大部分秩为rp×q矩阵均可被复原为求解核范数最小化问题(I.3),其中C为正常数.

 

对于矩阵完全问题(I.1),相应的核范数优化问题为

\begin{align*}&\min &&\|X\|_\ast\\

&s.t. &&X_{ij}=M_{ij},\forall (i,j)\in \Omega.

\end{align*}

Candès和Tao在[6]证明了在某些无序条件下(under certain incoherence conditions),低秩矩阵完全可以以高概率复原为核范数最小化问题(I.5),如果样本数m的阶为O(nrpolylog(n)),其中n=max(p,q).

 

在本文的其余部分,我们提出一些高效的方法来求解(I.1), (I.2), (I.3), (I.4)和 (I.5).

 

II 不动点迭代算法

 

我们求解(I.4)的不动点迭代算法是如下简单的两行算法

\[

\begin{cases}

Y^k=X^k-\tau g(X^k)\\

X^{k+1}=S_{\tau \mu}(Y^k),

\end{cases}

\]

其中g(Xk)=A(A(Xk)b), AA的伴随算子,且Sν()为矩阵收缩算子(matrix shrinkage operator),定义为

Sν(Y)=UDiag(σ¯)VT,σ¯=max{σν,0},

其中UDiag(σ¯)VT是矩阵YRp×q的奇异值分解(SVD).

我们的算法(II.1)灵感来源于[12]提出的不动点迭代算法。因为(I.4)中的目标函数(objective function)是凸的,X是(I.4)的最优解(optimal solution)当且仅当

0μX+g(X).

注意到如果X的SVD为X=UΣVT,则(见[3])

$$

\partial \lVert X \rVert _{\ast}=\left\{ UV^T+W\left| U^TW=0,WV=0,\lVert W \rVert _2\leq 1 \right. \right\},

$$

其中范数W2定义为W的最大奇异值.

 

基于最优条件(II.3),我们可以通过采用算子分解技巧(an operator splitting technique)开发出一种求解(I.4)的不动点迭代方法.注意到(II.3)等价于对任意τ>0,均有

0τμX+X(Xτg(X)).

若令Y=Xτg(X),则(II.4)变为

0τμX+XY,

X

minτμX+12XYF2.

我们知道应用于Y的矩阵收缩算子,也就是Sτμ(Y),给出了(II.7)的最优解.(见[13])

 

基于以上结论我们得到本节一开始提到的求解问题(I.4)的不动点迭代算法(II.1).而且,我们有以下定理:

定理2.1. X是问题(I.4)的最优解当且仅当X=Sτμ(h(X)),其中h()=I()τg().

 

  1. 收敛性结果

我们现在分析不动点迭代算法的收敛性(证明见[13]).

引理2.2. 收缩算子Sν是非扩张的(nonexpansive),也就是对任何Y1Y2Rp×q,ν>0,均有

\left\|S_\nu (Y_1)-S_\nu (Y_2)\right\|_{\mathrm{F}}\leq \| Y_1- Y_2\right\|_{\mathrm{F}}.

而且,

$$

\lVert Y_1-Y_2 \rVert _F=\lVert S_{\nu}\left( Y_1 \right) -S_{\nu}\left( Y_2 \right) \rVert _F\Leftrightarrow Y_1-Y_2=S_{\nu}\left( Y_1 \right) -S_{\nu}\left( Y_2 \right) .

$$

我们现在说明不动点迭代(II.1)收敛到问题(I.4)的最优解.

 

定理2.3. 由不动点迭代算法(II.1)生成的数列{Xk}收敛到某些XX,其中X是问题(I.4)最优解集,而τ(0,2/λmax(AA)).

 

  1. 延拓性(Continuation)

 

受Hale [12]工作的启发,我们首先描述一个延拓(同伦)(continuation (homotopy))技巧,以加快不动点迭代(II.1)的收敛.我们求解(I.4)的不动点延拓(FPC, fixed point continuation)迭代算法如下所示:

  1. 基于FPC算法的一种近似SVD:FPCA

 

计算奇异值分解是算法1的主要计算代价.因此,为了取代在每次迭代中计算矩阵Y的完整SVD,我们执行了算法FPC的一个变体,这样的话我们只计算秩为ksY的近似(见下文),其中ks是一个在算法过程中调整的参数.我们称其为变体FPCA.

 

这种方法大大降低了算法所需的计算量.具体地说,我们通过快速蒙特卡罗算法(fast Monte Carlo algorithm)计算一个近似的SVD:Drineas等[7]所开发的线性时间SVD算法.对于一个给定的矩阵ARp×q,和参数cs,ksZ+,其中1kscsq{pi}i=1q,pi0,i=1qpi=1,该算法在线性O(p+q)时间内返回一个矩阵A的最大ks奇异值和相应的左奇异向量的近似.

 

下面概述了线性时间SVD算法.

 

posted on   Eufisky  阅读(1434)  评论(1编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示