推荐系统学习笔记(三)——矩阵分解(特征值分解,奇异值分解)

一、矩阵分解介绍

上一节介绍了协同过滤算法,针对协同过滤算法的头部效应较为明显,泛化能力弱的问题,矩阵分解算法被提出。矩阵分解在协同过滤算法中“共现矩阵”的基础上,加入了隐向量的概念,加强了模型处理稀疏矩阵的能力,针对性地解决了协同过滤存在的主要问题。下面就通过一张图来看矩阵分解算法和协同过滤算法的原理。
推荐系统学习笔记(三)——矩阵分解(特征值分解,奇异值分解)_第1张图片
矩阵分解算法希望为每一个用户和视频生成一个隐向量,将用户和视频定位到隐向量的表示空间上(如图2-4(b)所示),距离相近的用户和视频表明兴趣特点接近,在推荐过程中,就应该把距离相近的视频推荐给目标用户。例如,如果希望为图2-4(b)中的用户Dave推荐视频,可以发现离Dave的用户向量最近的两个视频向量分别是“Ocean’s 11”和“The Lion King”,那么可以根据向量距离由近到远的顺序生成Dave的推荐列表。

在“矩阵分解”的算法框架下,用户和物品的隐向量是通过分解共现矩阵得到的,如下图
推荐系统学习笔记(三)——矩阵分解(特征值分解,奇异值分解)_第2张图片
矩阵分解算法将mxn维的共现矩阵R分解为m xk维的用户矩阵U和kxn维的物品矩阵V相乘的形式。其中m是用户数量,n是物品数量,k是隐向量的维度。k 的大小决定了隐向量表达能力的强弱。k 的取值越小,隐向量包含的信息越少,模型的泛化程度越高;反之,k的取值越大,隐向量的表达能力越强,但泛化程度相应降低。此外,k的取值还与矩阵分解的求解复杂度直接相关.

那么基于用户矩阵U和物品矩阵V,用户u对物品i的预估评分如下:
在这里插入图片描述
其中 p,是用户u在用户矩阵U中的对应行向量,qi是物品i在物品矩阵V中的对应列向量。

对矩阵进行矩阵分解的主要方法有三种:特征值分解(Eigen Decomposition ).奇异值分解( Singular Value Decomposition ,SVD)和梯度下降( GradientDescent)。

二、特征值分解

1.特征值与特征向量

特征值与特征向量是线代里面的知识,他们数学描述如下:

如果 A 是 n 阶方阵,数 λ 和 n 维非零列向量 x 是 A 的对应于特征值的特征向量,有:
A x = λ x Ax=λx Ax=λx
则矩阵A可以分解成
A = P Λ P − 1 A=P\Lambda P^{-1} A=PΛP1其中,P是这个矩阵 A 的特征向量组成的矩阵,Λ 是特征值组成的对角矩阵,当然对角阵Λ 特征值的摆放顺序要与特征向量一一对应。

由于特征值分解仅适用于方阵,因此不适用于用户-物品矩阵,下面讲解奇异值分解。

三、奇异值分解

1.定义与定理

矩阵的奇异值分解是指,将一个非零的mxn实矩阵A,表示为三个实矩阵乘积的运算,即进行矩阵的影子分解:
在这里插入图片描述
其中,U是m阶正交矩阵,V是n阶正交矩阵,∑是由降序排列的非负对角线元素组成的mxn矩形对角矩阵,满足
推荐系统学习笔记(三)——矩阵分解(特征值分解,奇异值分解)_第3张图片

2.分解过程

由于公式不好编辑,这里直接附上周志华老师《统计学习方法》的截图,特征值讲的很细致,大家可以参考这本书来理解。
推荐系统学习笔记(三)——矩阵分解(特征值分解,奇异值分解)_第4张图片
推荐系统学习笔记(三)——矩阵分解(特征值分解,奇异值分解)_第5张图片
推荐系统学习笔记(三)——矩阵分解(特征值分解,奇异值分解)_第6张图片推荐系统学习笔记(三)——矩阵分解(特征值分解,奇异值分解)_第7张图片
可以说,奇异值分解似乎完美地解决了矩阵分解的问题,但其存在两点缺陷,使其不宜作为互联网场景下矩阵分解的主要方法。
(1)奇异值分解要求原始的共现矩阵是稠密的。
(2)传统奇异值分解的计算复杂度达到了o(mn^2)的级别,由于上述两个原因,传统奇异值分解也不适用于解决大规模稀疏矩阵的矩阵分解问题。

下一节讲解逻辑回归模型。

你可能感兴趣的:(推荐系统,矩阵,学习,算法)