本章内容
本章主要介绍矩阵分解常用的三种方法,分别为:
1 ◯ \textcircled{1} 1◯特征值分解
2 ◯ \textcircled{2} 2◯奇异值分解
3 ◯ \textcircled{3} 3◯Funk-SVD
矩阵分解原理: \textbf{\large 矩阵分解原理:} 矩阵分解原理:
矩阵分解算法将 m × n m\times n m×n 维的矩阵 R R R分解为 m × k m \times k m×k的用户矩阵 P P P和 k × n k \times n k×n维的物品矩阵 Q Q Q相乘的形式。其中 m m m为用户的数量, n n n为物品的数量, k k k为隐向量(Latent Factor)的维度。 k k k的大小决定了隐向量表达能力的强弱,实际应用中,其取值要经过多次的实验来确定。在得到了 P P P用户矩阵和物品矩阵 Q Q Q后,将两个矩阵相乘,就可以得到一个满秩的矩阵。那么,我们就对未被评价过的物品,有了一个预测评分。接下来,可以将评分进行排序,推荐给用户。这就是矩阵分解对于推荐系统最基本的用途。
矩阵分解的目的就是通过分解之后的两矩阵内积,来填补缺失的数据,用来做预测评分。矩阵分解的核心是将矩阵分解为两个低秩的矩阵的乘积,分别以 k k k维的隐因子向量表示,用户向量和物品向量的内积则是用户对物品的偏好度,即预测评分。值得注意的是 k k k的选取是通过实验和经验而来的,因此矩阵分解的可解释性不强。
一、特征值分解 \textbf{\large 一、特征值分解} 一、特征值分解
A A A为 n n n阶矩阵,若数 λ \lambda λ和 n n n维非0列向量 v ⃗ \vec{v} v满足 A v ⃗ A \vec{v} Av = λ \lambda λ v ⃗ \vec{v} v