吴恩达机器学习[17]-推荐系统、协同过滤

问题规划Problem formulation

引入推荐系统(Recommender Systems)是机器学习的一个非常常见的实际应用,也是学习特征选择的一个例子(即判断选择哪些特征,涉及到机器学习的一些重要思想)。下面展示推荐系统的构成。

下面展示一个预测电影评分问题的例子。
假设网站能允许用户对电影打分,于是有下图所示的电影评分数据集,包含四个用户对五部电影的评分。其中, ? ? ?表示未评分。
定义一些常用的符号 n u , n m , r ( i , j ) , y ( i , j ) n_u, n_m, r(i,j), y^{(i,j)} nu,nm,r(i,j),y(i,j)。我们希望开发一个系统,能自动预测用户对未评分电影的评分,并据此给用户推荐新电影。
在这里插入图片描述

基于内容的推荐算法 Content-based recommendations

学习目标:学习基于内容的推荐算法(Content-based recommendations)

还是使用之前的数据集。假设每一部电影都有一些特征(这里取两个特征 x 1 , x 2 x_1, x_2 x1,x2 n = 2 n=2 n=2)。如果把评分问题看做多元线性回归问题,我们可以预测每个用户对未评分电影的评分为 ( θ ( j ) ) T x ( i ) (\theta^{(j)})^T x^{(i)} (θ(j))Tx(i)。此时,我们相当于为不同用户分别构建了多元线性回归副本
在这里插入图片描述

综上,得到每个用户对没评分电影的预测评分如图。为了得到 θ ( j ) \theta^{(j)} θ(j),也是需要最小化代价函数。
在推荐系统中,为了简化公式,可以去掉代价函数中的 m ( j ) m^{(j)} m(j)(这对 θ ( j ) \theta^{(j)} θ(j)的求导其实没有影响)。
在这里插入图片描述

综合所有用户,得到总体代价函数如图。
在这里插入图片描述

综上,得到最终的代价函数和梯度下降求导 θ \theta θ的公式。本质上,这跟线性回归是相同的。
在这里插入图片描述
总之,基于内容的推荐算法假设变量(也就是电影的各个特征)是已有的,再结合用户已有的评分数据进行预测。

协同过滤 Collaborative filtering

引入:基于内容的推荐算法假设变量(也就是电影的各个特征)是已有的,再结合用户已有的评分数据进行预测。但实际上,很多产品信息的特征并不是已知的。下面介绍一种新的推荐算法——协同过滤 (Collaborative filtering)。

协同过滤 (Collaborative filtering)能够实现特征学习(features learning),也就是自行学习需要使用的特征。

假设我们拥有一个数据集。其中,电影的特征值是未知的。
此时,可以把假设改为:已知用户对不同题材电影的喜爱程度。理论上来说,据此可以推测出 x 1 , x 2 x_1, x_2 x1,x2的值。
在这里插入图片描述

将上述问题标准化到任意特征 x ( i ) x^{(i)} x(i)。假设已知 θ \theta θ(用户对不同类型电影的喜好程度)求 x x x(不同电影各类特征值),那么代价函数如下图。跟之前一样,得到 x x x后就能预测出用户对未看过电影的评分。
在这里插入图片描述

总之,基于内容的推荐算法是给定 x x x θ \theta θ,协同过滤则是给定 θ \theta θ x x x。当然,这并不是协同过滤算法的全部,下部分将改进这一算法从而使其更加高效。
在这里插入图片描述
总之,协同过滤算法指的是:执行算法时需要观察大量的用户的行为,从而协同实现更加准确的用户电影评分值预测。此时每个评分过的用户都在帮助算法学习得到更适合的特征。也就是说,用户通过评分可以帮助系统得到更佳的特征,这些优秀的特征又可以用于更好地预测其他用户的评分。于是得到“协同”的另一层含义:每个用户都在帮助算法得到更佳的特征。

协同过滤算法 Collaborative filtering algorithm

引入:之前提到过使用已知电影特征值计算参数 θ \theta θ、以及已知用户参数 θ \theta θ学习得到电影特征,下面将结合这两种思想得到协同过滤算法(Collaborative filtering algorithm)。

对于下图的第一二个公式,存在实现同时得到最佳 θ 、 x \theta、x θx的优化方法。(上文中,为了得到最佳的 θ 、 x \theta、x θx,需要不断重复 x − > θ − > x … x ->\theta ->x… x>θ>x的过程。)
即将这两个公式结合得到第三个公式,得到关于 θ , x \theta, x θ,x的综合代价函数 J J J。其中,不需要再设置 θ 0 , x 0 \theta_0, x_0 θ0,x0。因为此时是在学习所有的特征,如果确实有需要设定 θ 0 , x 0 \theta_0, x_0 θ0,x0分别为0、1,代价函数的优化结果会自动实现它。
在这里插入图片描述

综上,得到协同过滤算法
在这里插入图片描述

矢量化:低秩矩阵分解 Vectorization: Low rank matrix factorization

学习目标:学习协同算法的向量化实现,并介绍该算法可以实现的一些功能。

还是之前的案例,将用户对电影的评分用矩阵 Y Y Y表示。
在这里插入图片描述

Y Y Y用向量表示得到 Y = X Θ Y=X \Theta Y=XΘ,这个过程又称低秩矩阵分解(Low rank matrix factorization)。因为 X Θ X \Theta XΘ存在一个性质:低秩矩阵。
在这里插入图片描述

下面介绍利用上述方法找到相关电影。
在这里插入图片描述

实施细节:均值规范化 Implementational detail: Mean normalization

引入均值规范化(Mean normalization)有时能使得协同过滤算法运行更好。

协同过滤算法会如何处理从未打分过的用户呢?
在这里插入图片描述

均值规范化能解决这一问题。
它首先对 Y Y Y进行均值规范化,然后通过最小化代价函数得到零向量 θ \theta θ(或 x x x)。但是在预测电影评分时,需要加上均值 u i u_i ui(用户对电影的平均评分)。此时,系统给新用户对新电影的评分预测为电影评分的平均值
在这里插入图片描述
注意:除了对行进行均值规范化,也可以尝试对列使用均值规范化。

参考链接
网易版吴恩达机器学习课程
吴恩达机器学习 网易云课堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值