SVD推荐算法(二)

SVD推荐算法(二)

这次讲解的是model-based的SVD推荐算法。

跟ALS推荐算法一样,都是矩阵分解的推荐算法,只不过求解的方式不同而已。

 

假如评分矩阵是R,那么我们希望拟合这样一个模型

R=U*M

其中U是user特征,M是item特征。

假如一个user的特征是u,一个item的特征是i,那么这个user对这个item的评分就是

u*i(两个特征的内积)。

 

损失函数是:


然后我们的目标就是最小化这个E了。

 

这是SVD矩阵分解预测评分最基本的一种方法。

基于这个思想,各种最优化的方式和损失函数的改造也随之提出来了,来优化这个算法。

 

最小化损失函数,我们可以用Batch Gradient Descent,Stochastic Gradient Descent等。

损失函数,我们可以加上正则项防止过拟合。

矩阵分解模型上,我们可以加上user评分偏差和item评分偏差。

 

我用了论文《A Guide to Singular Value Decomposition for Collaborative Filtering

》的一种方法,实现了一个单机版的SVD矩阵分解预测评分。

https://github.com/linger2012/svd-for-recommendation-implemented-by-java

 

用到的损失函数是



求解用SGD,对于每个已知user-item的评分,都更新一次模型。


1000次遍历训练集,对于测试集的rmse能达到0.96,还是不错的。

用到的数据集是movielens的一个。

代码和数据集都可以在上面我提供的github地址下载到。

 

 

 

参考资料:

 

 

A Guide to Singular Value Decomposition forCollaborative Filtering

http://www.csie.ntu.edu.tw/~r95007/thesis/svdnetflix/report/report.pdf

 

Collaborative Filtering for Netflix

https://classes.soe.ucsc.edu/cmps242/Fall09/proj/mpercy_svd_paper.pdf

 

在MovieLens数据集上用SVD进行评分预测

http://blog.csdn.net/daer520/article/details/19929523

 

基于矩阵分解的推荐算法,简单入门 - kobeshow

http://itindex.net/detail/48960-%E7%9F%A9%E9%98%B5%E5%88%86%E8%A7%A3-%E6%8E%A8%E8%8D%90%E7%AE%97%E6%B3%95-kobeshow

 

 


本文作者:linger

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值