【综述】矩阵补全问题
前言最近接触到这个问题, 看了一些相关的资料,觉得维基百科的介绍是最为精炼详实的, 以这篇笔记翻译了一下, 也供自己查阅所用。矩阵补全顾名思义, 矩阵补全就是指将一个部分元素已知的矩阵的缺失值补全的问题。 这个问题的著名背景是美国的视频公司Netflix提出了这样的问题, 给出一个矩阵,其每行代表一个用户, 每列则代表用户所看过的电影。 这样一个矩阵的维度是非常庞大的, 因此Netflix公司希望
前言
最近接触到这个问题, 看了一些相关的资料,觉得维基百科的介绍是最为精炼详实的, 以这篇笔记翻译了一下, 也供自己查阅所用。
矩阵补全
顾名思义, 矩阵补全就是指将一个部分元素已知的矩阵的缺失值补全的问题。 这个问题的著名背景是美国的视频公司Netflix提出了这样的问题, 给出一个矩阵, 其每行代表一个用户, 每列则代表用户所看过的电影。 这样一个矩阵的维度是非常庞大的, 因此Netflix公司希望可以只储存其中的个别值,就能将矩阵进行补全, 算是一种信息的压缩。
如果没有任何其他的辅助限制的话, 这个问题其实有无数组解——除了被观测到的元素之外, 其他矩阵元素可以是任意值。 因此, 矩阵补全往往要求补全的矩阵的秩最小。 或者, 假设已知了原始矩阵的秩 r r r,我们就是补全一个秩为 r r r的矩阵。
上图展示了一个例子。 左边的是缺失的矩阵, 我们希望将其补全。 如果已知矩阵的秩为1,那么就能很轻松的知道, 每一行都必须和第三行是一样的(否则秩不为1)。
低秩矩阵补全
常见的矩阵补全问题可以表示如下:
min
X
rank
(
X
)
subject to
X
i
j
=
M
i
j
∀
i
,
j
∈
E
\begin{array}{lc} \min _{X} & \operatorname{rank}(X) \\ \text { subject to } & X_{i j}=M_{i j} \forall i, j \in E \end{array}
minX subject to rank(X)Xij=Mij∀i,j∈E
求解这个问题的时候, 我们需要保证足够多的矩阵采样数(即已知元素的个数)来确保这个问题不是欠定的, 能求得一个唯一解。
均匀采样
为了使分析更为简便, 我们往往假设观测的元素是在 E E E中均匀采样所得。 一种更特殊的假设是考虑伯努利采样( Bernoulli sampling), 即每个矩阵元素都有 p p p的概率被观测到。 我们令 p = N m n p = \frac{N}{mn} p=mnN, 其中 N N N 为 总的期望采样元素数,m,n为矩阵的维度。
最少的观测数量
假设我们现在要恢复一个 秩为 r r r的 m × n m\times n m×n的矩阵 M M M。 【3】中证明了, 当 r ≤ n 2 r \le \frac{n}{2} r≤2n 时, 至少需要 4 n r − 4 r 2 4nr - 4r^2 4nr−4r2个观测元素,可以确保该矩阵补全问题有唯一解。
同时, 每一行和每一列都必须要被采样到。
这个也很容易证明: 我们可以把矩阵M奇异值分解为:
M
=
U
Σ
V
H
M = U\Sigma V^H
M=UΣVH
比如
M
M
M的第一行没有被采样到, 由矩阵相乘我们可知,
U
U
U的第一行只参与了构建
M
M
M的第一行,那么当
M
M
M的第一行是任意的时候, 我们可以任意的设置
U
U
U的第一行。 同理, 如果第一列没有被采样到, 我们可以任意的设置
V
H
V^H
VH的第一列。 如果考虑伯努利采样的话, 已被证明 需要
O
(
n
log
n
)
O(n \log n)
O(nlogn)个元素被观测才能确保大概率每一行和每一列都被观测到了。
综合这两点考虑, 我们认为所需的观测元素数的下界为 n r l o g n nr \mathrm{log}n nrlogn。
Incoherence
并不是所有的矩阵都能很好的补全。 事实上, 我们希望被补全的矩阵不要太 稀疏。 尽可能的在每个奇异值方向上都有分量的矩阵是较为容易补全的。 反例是 这样的一个矩阵 [ 1 0 ⋯ 0 ⋮ ⋮ 0 0 0 0 ] \left[\begin{array}{cccc}1 & 0 & \cdots & 0 \\ \vdots & & \vdots & \\ 0 & 0 & 0 & 0\end{array}\right] ⎣⎢⎡1⋮000⋯⋮000⎦⎥⎤ 几乎只能通过观测所有元素才能确定。
噪声情况下
在实际中, 我们的观测可能还存在噪声:
Y i j = M i j + Z i j , ( i , j ) ∈ Ω Y_{i j}=M_{i j}+Z_{i j},(i, j) \in \Omega Yij=Mij+Zij,(i,j)∈Ω
Z
Z
Z代表观测的噪声。 最后观测到的矩阵可以写为:
P
Ω
(
Y
)
=
P
Ω
(
M
)
+
P
Ω
(
Z
)
P_{\Omega}(Y)=P_{\Omega}(M)+P_{\Omega}(Z)
PΩ(Y)=PΩ(M)+PΩ(Z)
那么,我们可以把问题建模为:
min
X
∥
X
∥
∗
subject to
∥
P
Ω
(
X
−
Y
)
∥
F
≤
δ
\begin{array}{lr} \min _{X} & \|X\|_{*} \\ \text { subject to } & \left\|P_{\Omega}(X-Y)\right\|_{F} \leq \delta \end{array}
minX subject to ∥X∥∗∥PΩ(X−Y)∥F≤δ
∥
X
∥
∗
\|X\|_{*}
∥X∥∗代表
X
X
X的核范数, 等于奇异值之和。 可以近似的将最小化核范数看做最小化秩, 原理就和将
l
0
l_0
l0范数近似为
l
1
l_1
l1范数类似。
算法
凸优化
上面的最小化核函数的问题, 可以看做是一个凸松弛, 将一个NP-hard问题放松成了凸问题。 他可以改写为下式:
min
W
1
,
W
2
trace
(
W
1
)
+
trace
(
W
2
)
subject to
X
i
j
=
M
i
j
∀
i
,
j
∈
E
[
W
1
X
X
T
W
2
]
⪰
0
\begin{array}{ll} \min _{W_{1}, W_{2}} & \operatorname{trace}\left(W_{1}\right)+\operatorname{trace}\left(W_{2}\right) \\ \text { subject to } & X_{i j}=M_{i j} \forall i, j \in E \\ & {\left[\begin{array}{cc} W_{1} & X \\ X^{T} & W_{2} \end{array}\right] \succeq 0} \end{array}
minW1,W2 subject to trace(W1)+trace(W2)Xij=Mij∀i,j∈E[W1XTXW2]⪰0
这个经典的半正定规划(SDP)问题。 可以用凸优化算法进行求解。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)