五、协同过滤
种类
基于记忆:
基于物品
基于用户
集成:
Combine the Model-based&Memory-based
基于模型:
矩阵分解
深度学习
基于用户
基于模型
不同算法
特征值和特征向量
A X = λ X AX = \lambda X AX=λX
X就是特征向量
$\lambda $就是特征值
A = w λ w − 1 A = w \lambda w^{-1} A=wλw−1
SVD的定义
SVD也是对矩阵进行分解,但是和特征分解不同,SVD并不要求分解的矩阵为方阵。假设我们的矩阵A是一个mn的矩阵,那么我们定义矩阵A的SVD为
A = U σ V T A = U \sigma V^T A=UσVT
其中U是一个mn的矩阵, σ \sigma σ是一个mn矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值,V是一个nm的矩阵,U和V都是酉矩阵(实正交矩阵),即满足 V T V = I , U T U = I V^T V = I,U^T U = I VTV=I,UTU=I
右奇异向量求解
如果我们将A的装置和A做矩阵乘法,那么会得到n*n的一个方阵 A T A A^TA ATA,既然 A T A A^TA ATA是方阵,那么我们就可以进行特征分解,得到的特征值和特征向量满足下式:
( A T A ) v i = λ v i (A^TA)v_i = \lambda v_i (ATA)vi=λvi
得到:矩阵 A T A A^TA ATA的n个特征值和对应的n个特征向量v。
A = U Σ V