低秩矩阵补全

2014年07月25日

问题描述:

如果有这样一个矩阵
  • 矩阵中有部分元素缺失
  • 矩阵的秩相较于矩阵维数来说很小,并作为先验已知

我们希望恢复那些缺失的元素,这个问题就是低秩矩阵补全问题。

思考过程:

  • 需要恢复一个低秩矩阵
  • 直接想法是极小化矩阵的秩
  • 但是的优化问题非凸,不好求解
  • 核范数是秩的凸近似,所以想到

极小化核范数的集中式算法:

求解的集中式算法有很多,比如:
  • singular value thresholding algorithm
  • fixed-point shrinkage algorithm
  • proximal gradient algorithm
  • ADMM

但如果矩阵规模和秩增大,以上算法的计算代价也增大,因为它们都需要求解奇异值分解(SVD)。SVD中求伪逆的步骤运算量大,很耗费资源。因此需要想更好的方法,避免极小化核范数。

极小化分解矩阵之积的集中式方法:

将问题写为,其中是对的估计,在元素没有缺失的位置上的元素相同,,是对的乘法分解。介绍两种求解该问题的方法:

  • nonlinear Gauss-Seidel method
  • nonlinear SOR(Successive Over-Relaxation)-like scheme:LMaFit

其中SOR方法是GS方法的拓展,区别仅在于SOR方法中对于X的更新加了权重,并对权值进行更新。

去中心式算法:

当矩阵规模大到一定程度时,集中式算法在计算能力上要求过高,普通计算机也许无法计算。这时,我们需要在由许多普通计算机作为节点组成的网络中运算,这需要实现去中心式计算。去中心式计算式很容易实现的,将,,分别切块放在每个节点上,将作为公共信息在网络各个邻居节点间交换,优化问题形式不变,但需要加上的约束。而这样一个约束就引出了另一个子问题:一致平均(average consensus)问题。

关于一致平均问题的介绍请看: