传统推荐算法(一)利用SVD进行推荐(2)特征值与特征向量的直观理解

勘误

1.上篇文章标题应该为:矩阵相乘的本质而不是“矩阵分解的本质”。
2.上篇文章中"为什么非对称实矩阵不能像实对称矩阵一样分解呢?因为非对称实矩阵不能找到一组正交基(无解),使得矩阵相乘达到只在这组正交基的基向量上进行缩放。"这种说法不准确,不过结合这句话下面的内容大家应该可以理解我在说什么。就是非对称实矩阵无法进行形如A=USU-1(U为正交矩阵)的特征值分解。

写在前面

英国的数学家凯莱 (A.Cayley,1821-1895),首先把矩阵作为一个独立的数学概念提出来。他在1858年发表了论文《矩阵论的研究报告》,系统地阐述了关于矩阵的理论,还给出了方阵的特征方程和特征值以及有关矩阵的一些基本结果。 这就是特征值和特征向量的由来。本文主要分析了特征值与特征向量的意义,并举例说明它们的应用。

1.特征值与特征向量

在《利用SVD进行推荐(1)》中,我们知道,矩阵乘法对应了一个变换,向量左乘矩阵,其实相当于将向量进行旋转和缩放。而如果一个向量v在矩阵A的作用下, 不进行旋转,而只进行伸缩变换:

我们就说伸缩比例λ是矩阵A的特征值,向量v是A的特征向量。特征值分解是将一个矩阵分解成下面的形式:


其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。首先,要明确的是,一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。


如上图所示,在以i,j为基的二维坐标系中。将矩阵A的特征向量伸缩变换,仍然是A的特征向量。所有特征向量存在的空间称为特征空间

2.矩阵的运动

在《利用SVD进行推荐(1)》中,我们从方程组,坐标映射,投影和坐标变换以及行列式变换分析过矩阵乘法的意义。本节参考马同学的《如何理解矩阵特征值和特征向量?》,结合特征值和特征向量,从运动的角度再次分析矩阵乘法到底有什么意义。

在二维平面中,向量可以看成一个点。矩阵对向量进行缩放和旋转的结果,可以看成是从一个点到另一个点的运动,也就是说我们可以把矩阵看成某种运动

对于点我们是可以观察的,但是运动我们是不能直接观察的。要观察矩阵所代表的运动,需要把它附加到向量上才观察的出来:

好像没什么嘛。我们反复运用矩阵乘法再看看:

反复运用矩阵乘法,矩阵所代表的运动的最明显的特征,即速度最大的方向,就由最大特征值对应的特征向量展现了出来。

结论很明显了:矩阵相当于一个线性变换,这个变换有很多的变换方向,我们通过特征值分解得到的前k个特征向量,就对应了这个矩阵最主要的k个变化方向。那把握好一个矩阵的变换,只需要把握好最主要的几个变换方向就够了。我们利用前k个变换方向,就可以近似这个矩阵的变换。也就是说我们提取了这个矩阵最重要的k个特征。特征向量表示这个特征是什么,而特征值呢就表示对应方向上这个变换的程度,特征值的模越大,这个方向的变换越突出,那么这个特征就显得越重要

矩阵的一次乘法会在各方向上产生不同程度的伸缩,从而使得向量产生运动。从多次相乘的角度来看,各方向上运动的速度就是特征值的大小,速度大小可以表示为:模大小/次,方向由对应的特征向量确定。

3.特征值分解在PCA中的应用

主成分分析(PCA)是一种经典的降维算法,回头我会专门写一篇文章来细致分析。这里这要讲解特征值和特征向量在其中的应用,所以只简要介绍下。

PCA有多种解读, 其中最大化方差是一种非常直观的理解。假设原先数据由n维表达,我们希望把数据降到k维。 其实就是找到k个正交基(新的超平面),使得这个超平面能够对原先数据进行尽量表达。

当然降维肯定会损失信息,所以我们在降维的时候希望保留更多的信息,怎么保留更多的信息呢?

保留更多的信息,我们就可以更清晰地描述每个数据,就很更容易根据信息对数据进行区分。所以一种直观想法是:使得数据在新的坐标轴上的投影尽可能分散,最大化数据的差异性。而分散程度可以用数学上的方差来表示

这里直接参考周志华老师《机器学习》里的分析:

首先考虑数据Z,Z有m个样本,每个样本有d维。样本都针对自身做了去中心化。然后假设我们重新要找的坐标系(是一个正交矩阵)为:

那么样本在新坐标系下投影的方差可以表示为:

对上述公式运用拉格朗日乘子法得到:

这里ZZT是样本Z的协方差矩阵。它的特征值对应数据在各轴上投影的方差大小,特征值对应的向量表示具体的坐标轴。所以最大的特征值对应的特征向量则表示数据方差最大的方向

我们将特征值从大到小排列,保留前k个特征值对应的特征向量,就找到了我们所要的超平面,它由这k个正交单位基所确定。根据上一篇矩阵相乘分析的内容,得到新坐标系后,我们将某个样本左乘矩阵,就可以得到样本在新坐标系下的坐标。

参考

《线性代数的几何意义》
https://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
https://www.matongxue.com/madocs/228/
Zhou, Z.-H. Machine Learning. Tsinghua University Press, Beijing:, 2016.
https://www.visiondummy.com/2014/04/geometric-interpretation-covariance-matrix/

广告

所有传统推荐算法的代码在github:传统推荐算法

更多精彩内容请关注公众号:推荐算法工程师

公众号分享博主的推荐系统学习经验和心得,欢迎交流

你可能感兴趣的:(推荐系统,传统的推荐算法)