1.来源
矩阵分解算法(MF)是为了解决协同过滤算法(CF)在以下两点上的不足而提出的。
- CF处理稀疏矩阵的能力弱。
- CF中相似度矩阵的维护难度大。
e.g. user矩阵为mm,item矩阵为nn,当m与n很大时,维护起来难度大
2.解决
张三,李四,王五分别对音乐A,B,C进行了打分,其中标红的为应用MF预测的分数,根据线代知识我们可以知道,只要知道了图1 矩阵A
和图2 矩阵B
两个矩阵,便可以得到
图3 矩阵C
矩阵。因此,MF的目的便是学习得到前两个矩阵。
在矩阵A、B、C中,小清新等叫做隐向量,给每个用户每首音乐打上标签。
下面针对稀疏矩阵来看MF
在实际的应用场景中,我们不可能知道每个用户对每首音乐的偏好与打分情况,因此,我们需要用MF来进行预测。如果能把共现矩阵R拆解成为用户矩阵U与物品矩阵V,并且用一定的K1,K2…等隐向量来表示U与V矩阵,则可以进行打分预测。
- 矩阵是稀疏的
- List item隐向量的个数决定了隐向量的表达能力的强弱,K的个数越多,表达能力就越强,理解起来就是把用户的兴趣和物品的分类划分的越详细
- 这里的k,即隐向量是不可解释的,即我们不知道具体的含义,需要模型自己去学习
- 通过用户矩阵和物品矩阵,预测评分。公式: