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

本文链接:http://blog.csdn.net/lingerlanlan/article/details/45250831

时间: 2024-12-23 21:04:28

SVD推荐算法(二)的相关文章

SVD推荐算法(一)

看了不少论文,总结起来用SVD做推荐主要有两种不同的方式. 1 本质上是memory-based,只不过先用SVD对user-item的评分矩阵做降维,得到降维后的user特征和item特征,可以分别做userbased的协同过滤和itembased的协同过滤. 2  本质上是model-based,跟传统数学意义的SVD没有太大关系,只不过借鉴了SVD分解R=U*S*V这个形式,通过最优化方法进行模型拟合,求得R=U*V. 本文主要讲解第一种情况,第二种情况下次再讲. 可以参考的论文: <Ap

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情.简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口:困难是因为我们不了解算法细节,很难去根据业务的场景进行算法配置和调优. 本文将深入算法API去解释Mahout推荐算法底层的一些事. 1. Mahout推荐算法介绍 Mahoutt推荐算法,从数据处理能力上,可以划分为2类: 单机内存算法实现 基于Hadoop的分步式算法实现 1). 单机内存算法实现 单机内存算法实现:就是在单机下运行的算法

Mahout推荐算法API详解【一起学Mahout】

阅读导读: 1.mahout单机内存算法实现和分布式算法实现分别存在哪些问题? 2.算法评判标准有哪些? 3.什么会影响算法的评分? 1. Mahout推荐算法介绍 Mahout推荐算法,从数据处理能力上,可以划分为2类: 单机内存算法实现 基于Hadoop的分步式算法实现 1). 单机内存算法实现 单机内存算法实现:就是在单机下运行的算法,是由cf.taste项目实现的,像我们熟悉的UserCF,ItemCF都支持单机内存运行,并且参数可以灵活配置.单机算法的基本实例,请参考文章:用Maven

Mahout推荐算法API具体解释【一起学Mahout】

阅读导读: 1.mahout单机内存算法实现和分布式算法实现分别存在哪些问题? 2.算法评判标准有哪些? 3.什么会影响算法的评分? 1. Mahout推荐算法介绍 Mahout推荐算法,从数据处理能力上,能够划分为2类: 单机内存算法实现 基于Hadoop的分步式算法实现 1). 单机内存算法实现 单机内存算法实现:就是在单机下执行的算法,是由cf.taste项目实现的,像我们熟悉的UserCF,ItemCF都支持单机内存执行.而且參数能够灵活配置.单机算法的基本实例.请參考文章:用Maven

[转]Mahout推荐算法API详解

Mahout推荐算法API详解 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等. 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占

关于2015阿里移动推荐算法大赛的总结(二)——推荐算法

虽然开始走错了路,但是也学到了东西,美团技术团队的文档还是不错的,喜欢的童鞋可以经常去瞅瞅,后面我会给链接的~~~~ -------------------------------------------------------------- 具体流程 基本流程如下,借用美团的图. 从框架的角度看,推荐系统基本可以分为数据层.触发层.融合过滤层和排序层.数据层包括数据生成和数据存储,主要是利用各种数据处理工具对原始日志进行清洗,处理成格式化的数据,落地到不同类型的存储系统中,供下游的算法和模型使

从分类,排序,top-k多个方面对推荐算法稳定性的评价

介绍 论文名: "classification, ranking, and top-k stability of recommendation algorithms". 本文讲述比较推荐系统在三种情况下, 推荐稳定性情况. 与常规准确率比较的方式不同, 本文从另一个角度, 即推荐算法稳定性方面进行比较. 详细 参与比较的推荐算法 包括: baseline 传统基于用户 传统基于物品 oneSlope svd 比较方式 比较的过程分为两个阶段: 阶段一, 将原始数据分为两个部分, 一部分

协同过滤推荐算法总结

推荐算法具有非常多的应用场景和商业价值,因此对推荐算法值得好好研究.推荐算法种类很多,但是目前应用最广泛的应该是协同过滤类别的推荐算法,本文就对协同过滤类别的推荐算法做一个概括总结,后续也会对一些典型的协同过滤推荐算法做原理总结. 一.推荐算法概述 推荐算法是非常古老的,在机器学习还没有兴起的时候就有需求和应用了.概括来说,可以分为以下5种: 1)基于内容的推荐:这一类一般依赖于自然语言处理NLP的一些知识,通过挖掘文本的TF-IDF特征向量,来得到用户的偏好,进而做推荐.这类推荐算法可以找到用

【天池竞赛系列】阿里移动推荐算法思路解析

赛题地址:http://tianchi.aliyun.com/competition/information.htm?raceId=1 登录就可以下载数据 从4月到7月,学习了非常多也收获了非常多 题目就不多说了.一句话表达就是依据过去一个月的行为预測14年12月19号的购买情况. 看题目貌似推荐算法.自然就有队伍想到用协同过滤什么的.当然效果不好. 首先是特征的问题,然后是这是基于行为的相似,不太类似用户和商品类似的ItemCF.UserCF,还有非常多其它的原因.比方我买过一部手机,难道还要