SVD SVD++
来源:互联网 发布:机器人编程培训班苏州 编辑:程序博客网 时间:2024/04/29 08:01
参考:
http://www.cnblogs.com/Xnice/p/4522671.html
http://blog.csdn.net/dark_scope/article/details/17228643
http://blog.csdn.net/qq_20599123/article/details/51509335
用户-电影评分矩阵形式
矩阵分解模型(matrix factorization model)
Pu代表用户隐因子矩阵(表示用户u对因子k的喜好程度),Qi表示电影隐因子矩阵(表示电影i在因子k上的程度)
Baseline Predictors
不过有些评分与用户和产品的交互无关:有些用户偏向于给产品打高分,有些产品会收到高分。我们将这类不涉及用户产品交互的影响建模为baseline predictors。
μ是平均值,然后分别用bi和bu来代表具体用户和物品的整体偏差
SVD:
SVD就是一种加入Baseline Predictors优化的matrix factorization model。
加入防止过拟合的 λ 参数,最简单的SVD是优化下面的Loss function:
采用随机梯度下降进行优化:
虽然看起来比较简单,但实际上对预测的效果已经超出Item-based很多了,而从SVD衍生出很多其它的算法,利用了更多的信息,我们在这里只予以介绍而不加实践。
SVD++:
SVD++算法是指在SVD的基础上引入隐式反馈,使用用户的历史浏览数据、用户历史评分数据、电影的历史浏览数据、电影的历史评分数据等作为新的参数。
模型的解释:这样的模型对于提供了很多隐式反馈(|R(u)|较高)的用户,使得它们的预测偏离基准预测。这对于推荐系统是一个较好的尝试,因为我们总是希望对那些提供了较多反馈用户从而可以较好建模的用户冒更大的风险。对于这类用户我们我们愿意提供不常见的推荐。而对于提供较少用户,我们更希望提供安全的预测,在基准值附近。
使用用户的历史评价数据作为隐式反馈,算法流程图如下:
0 0
- SVD
- SVD
- svd
- svd++
- SVD
- SVD
- svd++
- svd
- svd++
- svd
- SVD
- SVD
- SVD
- SVD
- svd++
- SVD
- SVD
- SVD
- spark troubleshooting--yarn-client模式导致的网卡流量激增问题
- Android框架设计模式
- 1044. 火星数字(20) python篇
- 这个形状用安卓的shape怎么做出来
- 汇编语言笔记一
- SVD SVD++
- 求大神前辈,急! SearchView Listview
- pom中的定义
- c++第四次实验-杨辉三角
- FIFO使用技巧
- spark troubleshooting--错误的持久化方式以及checkpoint的使用
- R-FCN: Object Detection via Region-based Fully Convolutional Networks
- Azkaban任务调度 理解和安装
- BP算法实现圆迹SAR点目标仿真(C++语言)