斯坦福大学机器学习笔记——推荐系统(协同过滤、低秩分解、推荐系统)

本文深入探讨推荐系统,从其重要性到实际应用,如淘宝和亚马逊。介绍了基于内容的推荐系统利用特征进行预测,接着阐述协同过滤算法,包括协同过滤的构建过程和低秩矩阵分解。通过均值归一化处理解决新用户无评分情况,确保推荐的合理性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个博客让我们来讨论一下推荐系统,首先我们来讨论一下为什么学习推荐系统:
1. 推荐系统是机器学习中的一个重要应用,它已经用于很多企业中,比如淘宝、今日头条、亚马逊等。它们会根据你的浏览记录,当你再次访问时,会给你推荐一些你感兴趣的东西。
2. 我们从前面学过的机器学习知道,对于一个算法特征的选择,对算法性能的影响很大。而后面讲到的推荐系统的建立过程中,该算法可以自动的学习一套很好的特征,而不需要试图手动设计。

下面我们用一个例子来简单的介绍什么是推荐系统的问题:
假如我们有一个电影推荐的问题,其中我们已有的数据为5部电影和4个用户,用户给电影打分,具体的打分如下:
这里写图片描述
其中,前三部是爱情片,后两部是动作片,“?”代表该用户没有给这不电影打分。
推荐问题是我们希望构建一个算法来预测他们每个人可能会给他们没有看过的电影打多少分,根据这个预测结果的高低来判断是否将其推荐给用户。

基于内容的推荐系统:
基于内容的推荐系统我们假设对于我们推荐的东西有一些数据,这些数据也就是这些东西的特征。
我们还是以上面的那个例子来说明一下基于内容的推荐系统,我们假设每部电影有两个特征,其中 x1 代表电影的浪漫程度, x2 代表电影的动作程度,则数据集可以表示为:
这里写图片描述
下面我们基于这些特征来构建一个推荐系统的算法。假设我们采用线性回归模型,我们对每一个用户都训练一个线性回归模型,首先我们对使用的参数进行介绍。
θ(j) 代表用户j的参数向量; x(i) 代表电影i的特征向量; (θ(j))Tx(i) 代表用户j对电影i我们预测的评分; nu 代表用户的数量; nm 代表电影的数量; i:r(i,j) 表示我们只计算那些用户j评过分的电影。
于是针对用户j,该线性模型的代价函数为预测误差的平方,所以该代价函数的表达式为(带有正则项):
这里写图片描述
对于推荐系统,我们对上式进行了简化,将原来除以2m去掉,对最终的结果没有影响。
上面的表达式只是针对第j个用户建立的,为了学习所有用户,我们可以将代价函数形式表示为:
这里写图片描述
我们使用梯度下降法来求解最优解,我们的代价函数对参数求偏导数之后的更新公式为:
这里写图片描述
上述的过程就是基于内容的推荐系统的构建过程。

协同过滤算法:
前面我们讲述了基于内容的推荐系统的设计,它是在我们掌握了可用的特征之后,使用这些特征训练出每一个用户的参数;相反地,如果我们拥有用户的参数,我们也可以学习得出电影的特征,数据集的形式如下:
这里写图片描述
则对应的第i个电影的特征建立的代价函数的表达式为:
这里写图片描述
同样我们可以学习所有电影的特征,我们可以将代价函数的形式表示为:
这里写图片描述
所以对于给定的 x(1),...,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值