【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week9-2 Recommender Systems

9-2 Recommender Systems 课程内容

此文为Week9 中Recommender Systems的部分。

9-2-1 Predicting Movie Ratings

Problem Formulation

推荐系统,第一是机器学习的一个重要应用;第二是通过算法来学习到使用什么特征量的一个例子。

推荐系统问题就是给定这些数据, r(i, j) 和 y(i, j) 数值,然后浏览全部数据,关注所有没有电影评分的地方并试图预测这些带问号的地方应该是什么数值。
在这里插入图片描述
我们开发一个推荐系统,主要工作就是想出一种学习算法,能够帮我们自动地填上这些缺失的数值。这样我们就能,比方说,看一下用户还没看过哪些电影,然后向用户推荐新电影。你试图预测还有什么电影可能会让一位用户感兴趣。

Content Based Recommendations

假设每部电影有两种特征,x1表示这部电影属于爱情电影的程度,x2表示这部电影是动作电影的程度。
在这里插入图片描述
我们用r(i,j)=1 来表示用户j 对电影i进行了评分 ,y(i,j)则表示用户j对电影i的评分值。θ(j) 表示用户j对应的参数向量,x(i)是某部电影i的特征向量。m(j) 来表示用户j评价过的电影数。
这是一个基本的线性回归问题。因此我们要做的就是选择一个参数向量θ(j) 使得预测的结果尽可能接近我们在训练集中的观测值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
应用一种事实上是线性回归的一个变体来预测不同用户对不同电影的评分值。这种具体的算法叫 “基于内容的推荐”或者”“基于内容的方法”。因为我们假设我们有不同电影的特征,我们有了电影内容的特征,比如电影的爱情成分有多少?动作成分有多少?我们就是用电影的这些特征来进行预测。但事实上,对很多电影,我们并没有这些特征,或者说很难得到所有电影的特征。

9-2-2 Collaborative Filtering

Collaborative Filtering

一种构建推荐系统的方法叫做协同过滤(collaborative filtering),有一个值得一提的特点那就是它能实现对特征的学习,我的意思是这种算法能够自行学习所要使用的特征。协同过滤算法的特点是其特征量和数据比较多.
在这里插入图片描述
让我们将这一学习问题标准化到任意特征 x(i)。假设我们的用户告诉了我们的偏好,就是说用户们已经给我们提供了 θ(1) 到 θ(nu) 的值 θ(1) 到 θ(nu) 的值。 而我们想知道电影 i 的 特征向量 x(i) 。我们能做的是列出以下的最优化的问题,所以我们想要把所有指数 j 相加得到对电影 i 的评分,因为我们想要求得电影 i 的特征向量 x(i)。
在这里插入图片描述
总结一下,这一阶段要做的就是为所有为电影评分的用户 j 选择特征 x(i)。 这一算法同样也预测出一个值,表示该用户将会如何评价某部电影,而这个预测值在平方误差的形式中与用户对该电影评分的实际值尽量接近。
在这里插入图片描述
协同过滤算法指的是当你执行这个算法时,你通过一大堆用户得到的数据,这些用户实际上在高效地进行了协同合作来得到每个人对电影的评分值。只要用户对某几部电影进行评分,每个用户就都在帮助算 更好的学习出特征。

Collaborative Filtering Algorithm

将这两个优化目标函数给合为一个优化目标函数 J ,能够将 x 和 θ 同时计算出来。
在这里插入图片描述
协同过滤算法 (Collaborative Filtering Algorithm):
首先,把 x 和 θ 初始为小的随机值。
接下来,用梯度下降或者某些其他的高级优化算法把这个代价函数最小化。
最后,给你一个用户。如果这个用户具有一些参数 θ 以及给你一部电影带有已知的特征 x ,我们可以预测这部电影会被 θ 转置乘以 x 给出怎样的评分。
在这里插入图片描述

9-2-3 Low Rank Matrix Factorization

Vectorization: Low Rank Matrix Factorization

当给出一件产品时,你能否找到与之相关的其它产品?

首先,我们有关于五部电影的数据集。我将要做的是将这些用户的电影评分进行分组并存到 一个矩阵中 。
在这里插入图片描述
给出预测评分矩阵一个更简化的向量化的方法。
在这里插入图片描述
我们用的这个协同过滤算法还有另外一个名字,也被称作是低秩矩阵分解
最后,在运行了协同过滤算法后,仍有一些你可以去做的事,比如说为了找到某部相关的电影来学习特征。
在这里插入图片描述
通常来说,特征学习对于 捕获哪些是电影的重要或显著的属性是很有意义的。有一个很方便的方法来度量两部电影之间的相似性。例如说,电影i有一个特征向量x(i) 你是否能找到一部不同的电影 j 。保证两部电影的特征向量之间的距离x(i)和x(j)很小,那就能很有力地表明电影 i 和电影 j 在某种程度上有相似。

Implementational Detail: Mean Normalization

假如,有一个用户没有给任何电影评分。
在这里插入图片描述
均值归一化可以让我们解决这个问题。

要实现均值归一化,我要做的就是计算每个电影所得评分的均值,我要把它们存在一个向量中,我们称这个向量为 µ。所以我做的就是把每个电影都归一化为平均评分为零。
在这里插入图片描述
这就是可以说是作为协同过滤算法的预处理步骤。均值归一化的实现根据你的数据集的不同,它可能有时会让实现的算法表现得好一点儿。

测验 Recommender Systems

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

课程链接

https://www.coursera.org/learn/machine-learning/home/week/9

课件

课件链接

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值