推荐系统中的矩阵分解
来源:互联网 发布:复杂网络建模基本概念 编辑:程序博客网 时间:2024/05/03 03:58
1、传统SVD(奇异值分解,正交的,可以将分解后的矩阵看作是原来矩阵的另一种表达)
针对用户与物品的打分表,表中肯定会存在一些缺失值,SVD是想通过将M矩阵分解,然后通过选择较大的特征值来降维。其中K是奇异值的个数,会远远小于用户数和商品数MN, 预测第i个用户对于第j个商品的打分,通过u^T∑v即可得到,这样就可以预测评分。
但是SVD要求矩阵必须是密集的,我们既然要预测打分矩阵,肯定说明打分矩阵中大部分是空白,因此很难SVD满足要求。
2、basic MF(也叫隐语义模型 latent factory model)
basic MF的思想是将矩阵分解为U^t *S,找到损失函数(下边的损失函数没有添加正则化项):
预测值接近真实值就是使其差最小,R表示用户i对于物品j的真实打分,U^t *S表示预测打分,然后对该函数进行梯度下降:
u=u+r*损失函数对于ui求偏导
v=v+r*损失函数对于vj求偏导
3、Funk SVD(非正交,就是将原来矩阵降维,分解后矩阵与原来矩阵是近似而不是等价)
由于SVD 不适合与稀疏矩阵,我们考虑将矩阵分解M=PQ,让用户的评分和预测评分的残差尽可能小,使用均方差MSE作为损失函数:
防止过拟合添加L2正则化,损失函数:
现在使用梯度下降,求解q,p
最终PQ矩阵。
4、bias SVD
就是在Funk SVD的基础上又增加了一些参数,一些和用户物品无关的评分因素,用户有一些和物品无关的评分因素,称为用户偏置项。而物品也有一些和用户无关的评分因素,称为物品偏置项。这其实很好理解。比如一个垃圾山寨货评分不可能高,自带这种烂属性的物品由于这个因素会直接导致用户评分低,与用户无关。
添加了第i个用户的偏置bi,第j个商品的偏置bj,损失函数变为:
现在需要优化四个变量,分别是pi,qj,bi,bj,通过梯度下降进行优化,最终得到PQ矩阵。
只是作为自己学习的总结:
拜读的博客:https://www.cnblogs.com/pinard/p/6351319.html
- 推荐系统中的矩阵分解
- 矩阵分解在推荐系统中的应用
- 矩阵分解在推荐系统中的应用
- 矩阵分解在推荐系统中的应用
- 矩阵分解在推荐系统中的应用
- 推荐系统中的矩阵分解演变方式
- 矩阵分解与推荐系统
- 推荐系统之矩阵分解
- 推荐系统之矩阵分解
- 推荐系统ALS矩阵分解
- 推荐系统ALS矩阵分解
- 浅谈矩阵分解在推荐系统中的应用
- 浅谈矩阵分解在推荐系统中的应用(转发)
- 浅谈矩阵分解在推荐系统中的应用
- 矩阵分解(MATRIX FACTORIZATION)在推荐系统中的应用
- 浅谈矩阵分解在推荐系统中的应用
- 谈矩阵分解在推荐系统中的应用
- 矩阵分解SVD在推荐系统中的应用
- Struts2 入门
- leetcode在线编程---树(java)
- Studio One 3.5.4 for Mac(音乐制作软件)附注册机 V3.5.4中文破解版
- Sublime Text 3 装了Anaconda 写Python代码出现框框的解决办法
- Ubuntu14.04系统10分钟搭建JavaWeb常用运行环境(jdk+tomcat+mysql+phpmyadmin)
- 推荐系统中的矩阵分解
- 数据结构实验之查找三:树的种类统计
- Interceptor登录拦截(Spring拦截器)
- (二十一)套接字
- 知识学习——Hadoop MapReduce开发入门程序WordCount详解
- cas配置
- 《人类简史》读书笔记(分析阅读)
- 二分搜索树的删除节点操作
- java