何为低秩矩阵(low-rank matrix)
我们先来回忆下矩阵的秩。举个简单的例子:
{ 2 x + 3 y + z = 10 3 x + y + z = 7 6 x + 2 y + 2 z = 14 \begin{cases} \ 2x+3y+z=10\\ \ 3x+y+z=7\\ \ 6x+2y+2z=14 \end{cases} ⎩⎪⎨⎪⎧ 2x+3y+z=10 3x+y+z=7 6x+2y+2z=14
对于上面的线性方程组,方程1和方程2有不同的解,而方程2和方程3的解完全相同。我们可以说方程3是多余的,因为它没有带来有用的信息,把它去掉对解方程组没影响。从方程组中去掉多余的方程,自然就导出了“矩阵的秩”这一概念。
还记得徒手求矩阵的秩吗?我们先通过矩阵初等变换将矩阵A化为阶梯型矩阵,若该阶梯型矩阵有r个非零行,那矩阵A的秩rank(A)就等于r。矩阵的秩度量的其实就是矩阵的行列之间的相关性。如果矩阵的各行或列是线性无关的,那么矩阵就是满秩的,也就是秩等于行数。
让我们回到上面线性方程组,因为线性方程组可以用矩阵描述,所以秩就表示有多少个有用的方程。上面的方程组实际上只有2个是有用的,方程3是多余的,因此对应的矩阵的秩就是2。
既然秩可以度量相关性,而矩阵的相关性实际上就表示矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间,也就是用几个向量就可以完全表达,那么它就是低秩的。
Summary:如果矩阵表达的是结构性信息,例如图像、用户-商品推荐表等等,那么这个矩阵各行之间存在这一定的相关性,那这个矩阵一般就是低秩的。
向量化:低秩矩阵分解(low-rank matrix factorization)
我们使用机器学习课程16中推荐系统(recommender system)的例子来说明。
将左边表格中的数据写为矩阵形式,即为右边的矩阵Y。因为用户j对电影i的评分预测为
( θ ( j ) ) T x ( i ) (\theta^{(j)})^Tx^{(i)} (θ(j))Tx(i)
则矩阵Y所对应的预测值矩阵如下:
我们整理一下x和θ: