推荐系统2--隐语义模型(LFM)和矩阵分解(MF)_Evey_zhang的博客-CSDN博客_推荐系统mf模型
这里主要是因为协同过滤存在一些问题,矩阵稀疏,难以评估相似性
1.lfm隐语义模型
找到隐含的匀速连接起用户与商品,用户会对不同的元素感兴趣,不同的商品包含的这些元素权重也不同,元素向量是要找的隐含变量
2.矩阵分解
共现矩阵(m*n)分解成用户矩阵(m*k)*物品矩阵(k*n)
k是隐含变量的维度,k的大小决定了隐含向量表达能力的强弱,越大,表达的信息越具体,挖掘到的用户的兴趣,物品的特征信息也越多。
3.矩阵分解的方法
evd(特征分解)要求矩阵是方阵
svd(奇异值分解)要求矩阵稠密,没空缺值
Funk-SVD(lfm)利用神经网络求解参数的方法 求解隐变量(r=p_u*q_i)
做法:初始化矩阵,已有的用户对物品的评分是label,用户,物品隐向量是特征,两个隐向量的乘积是预测值,最小化sse对用户矩阵,误差反向传播,更新两个隐向量,对物品矩阵进行填充,填充完毕就可以计算用户对未评分物品的评分了
rsvd加入了正则项(r=miu+b_u+b_i+p_u*q_i)
有些物品有些属性与用户没有关系,用户某些属性与商品没有关系,比如某些人偏悲观对所有的物品都会有低打分的倾向,这是与物品本身无关的,加入偏置消除评分系统本身的偏差
SVD++
前面的LFM模型没有显示的考虑用户的历史行为对用户评分预测的影响。但是可以知道的是,用户的历史行为记录,对当下物品的预测也可以作为一个参考
前面的矩阵分解当前的共现矩阵,没考虑到历史商品的评分