简单来讲矩阵结构的低秩性,表示矩阵包含信息的冗余度,矩阵包含信息的冗余度越大,矩阵的秩越低。
从物理意义上讲,矩阵的秩能够度量矩阵的行列之间的相关性。如果矩阵的各行或列是线性无关的,矩阵就是满秩的,也就是秩等于行数。回到上面线性方程组来说吧,因为线性方程组可以用矩阵描述嘛。秩就表示了有多少个有用的方程了。上面的方程组有3个方程,实际上只有2个是有用的,一个是多余的,所以对应的矩阵的秩就是2了。
既然秩可以度量相关性,而矩阵的相关性实际上有带有了矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间,也就是用几个向量就可以完全表达了,它就是低秩的。所以我们总结的一点就是:如果矩阵表达的是结构性信息,例如图像、用户-推荐表等等,那么这个矩阵各行之间存在这一定的相关性,那这个矩阵一般就是低秩的。
稍微数学化的表达:如果 X X X 是一个 m m m 行 n n n 列的数值矩阵, r a n k ( X ) rank(X) rank(X) 是 X X X 的秩,假如 r a n k ( X ) rank (X) rank(X) 远小于 m m m 和 n n n,则我们称 X X X是低秩矩阵。低秩矩阵每行或每列都可以用其他的行或列线性表出,可见它包含大量的冗余信息。利用这种冗余信息,可以对缺失数据进行恢复,也可以对数据进行特征提取。
举个例子:
可以理解为,草原是由很多草组成的,而草是相似的,所以如果全是草,那么这张图所包含的信息量是很少的的,因为可以理解为草是草的复制品。而上图的蒙古包,人,马之类的则可以理解为图片所包含的信息,实际上,相对于只有草的草原图片和有草和蒙古包的草原图片,后者的秩是较高的。也就是说,图片中比较突兀的成分,比如蒙古包,比如人像照片中的红眼亮点,会增加图像矩阵的秩。而现实生活中一张不错的图片的秩其实是比较低的,如果图像的秩比较高,往往是因为图像中的噪声比较严重。比如拍照的时候ISO感光度设置过高造成噪点太过泛滥之类的。所以,额,图像处理的低秩性其实可以拿来去除照片中的噪点,电影中的雨丝也可以通过低秩表达的方式来去除。
更为详细的解释可以参考文献[4][5][7]
已知一个部分可观察的矩阵 M M M。
显然,通过以上描述可知,矩阵分解可以用于矩阵补全任务。此外,做矩阵分解也可以用于分解一个完全观察的矩阵,比如通过分解来对一个完全观察的矩阵做有损压缩和低维表示等等。而且,矩阵补全也并不总是采用分解的方法。
总的来讲,矩阵填充是一个任务,矩阵分解是一类操作。
如在推荐系统中,有评分矩阵 M M M,其中的每个元素 ( i , j ) (i, j) (i,j) 可存在可缺失,代表用户 i i i 对商品 j j j 的评分,那么当我们基于协同过滤来推荐时,这个推荐问题可以较好地归约到矩阵填充这个任务上来。这是因为协同过滤本质上是考虑大量用户的偏好信息(协同),来对某一用户的偏好做出预测(过滤),那么当我们把这样的偏好用评分矩阵M表达后,这即等价于用M其他行的已知值(每一行包含一个用户对所有商品的已知评分),来估计并填充某一行的缺失值。若要对所有用户进行预测,便是填充整个矩阵,这是所谓“协同过滤本质是矩阵填充”。
那么,这里的矩阵填充如何来做呢?矩阵分解是一种主流方法。这是因为,协同过滤有一个隐含的重要假设,可简单表述为:如果用户 A A A 和用户 B B B 同时偏好商品 X X X ,那么用户 A A A 和用户 B B B 对其他商品的偏好性有更大的几率相似。这个假设反映在矩阵 M M M上即是矩阵的低秩。极端情况之一是若所有用户对不同商品的偏好保持一致,那么填充完的 M M M每行应两两相等,即秩为1。所以这时我们可以对矩阵 M M M进行低秩矩阵分解,用 U × V U \times V U×V来逼近 M M M,以用于填充——对于用户数为 m m m,商品数为 n n n的情况, M M M 是 m × n m \times n m×n 的矩阵, U U U 是 m × r m \times r m×r, V V V是 r × n r \times n r×n,其中 r r r 是人工指定的参数。这里利用 M M M 的低秩性,以秩为 r r r 的矩阵 M ′ = U × V M'=U \times V M′=U×V来近似 M M M,用 M ′ M' M′ 上的元素值来填充 M M M 上的缺失值,达到预测效果。
之所以说矩阵分解是一类operation,是因为上述的低秩矩阵分解只是矩阵分解的一种,为人熟知的矩阵分解还有LU-矩阵分解,QR-矩阵分解,特征值分解等等。之所以在协同过滤中经常把重点放在矩阵分解上,是因为在如今推荐系统问题的庞大数据规模下,矩阵分解这样的方法表现出了优秀的性能,是亮点。
[1]推荐系统使用到的矩阵分解SVD、SVD++、ALS、FM这些方法各有什么优缺点?
[2]矩阵填充与矩阵分解的区别是什么?
[3]矩阵低秩的意义?
[4]机器学习中的范数规则化之(二)核范数与规则项参数选择
[5]矩阵低秩分解理论及其应用分析
[6]矩阵低秩的意义
[7]推荐系统之—如何理解低秩矩阵?