Coursera课程地址

因为Coursera的课程还有考试和论坛,后续的笔记是基于Coursera
https://www.coursera.org/learn/machine-learning/home/welcome

Recommender Systems 推荐系统

1. 问题制定 Problem formulation

推荐是目前非常流行的机器学习应用。

假设我们正在尝试向客户推荐电影。我们可以使用以下定义

  • n(u) = 用户数
  • n(m) = 电影数量
  • r(i,j) = 1 如果用户 j 对电影 i 进行了评分
  • y(i,j) = 用户 j 对电影 i 的评分(仅在 r(i,j)=1 时定义)

2. 基于内容的推荐 Content-based recommendations

我们可以介绍两个特点,X(1) 和 X(2) 它表示一部电影可能有多少浪漫或多少动作(在 0-1 的范围内)。

一种方法是我们可以对每个用户进行线性回归。对于每个用户 j,学习一个参数 θ(j) ∈ R(3)

  • θ(j) = 用户 j 的参数向量

  • x(i) = 电影 i 的特征向量
    对于用户 j,电影 i,预测评分:

  • θ(j) = 用户 j 评分的电影数量

学习θ(j) 我们做以下

这就是我们熟悉的线性回归。第一个求和的基础是选择所有 i 使得 r(i, j) = 1.

要获取所有用户的参数,我们执行以下操作:

我们可以使用上述成本函数应用我们的线性回归梯度下降更新。

唯一真正的区别是我们消除了常数 1/m

3. 协同过滤 Collaborative filtering

在电影中找到诸如“浪漫的数量”或“动作的数量”之类的特征可能非常困难。为了解决这个问题,我们可以使用特征查找器。

我们可以让用户告诉我们他们对不同类型的喜欢程度,立即为我们提供他们的参数向量。

为了从给定参数推断特征,我们使用对所有用户进行正则化的平方误差函数:

您还可以随机猜测theta 的值以重复猜测特征。你实际上会收敛到一组好的特征。

4. 协同过滤算法 Collaborative filtering algorithm

为了加快速度,我们可以同时最小化我们的特征和参数:

看起来很复杂,但我们只结合了 theta 的成本函数和 x 的成本函数。

因为算法可以自己学习它们,x0=1 的偏置单元已经被去除,因此 x∈ℝn 和 θ∈ℝn。

这些是算法中的步骤:

  1. 初始化 X(i), …, X(nm), θ(i), …, θ(nu) 到小的随机值。这有助于打破对称性并确保算法学习特征 X(i), …, X(ni) 彼此不同。

  2. 最小化 J(X(i),… X(nm), θ(i), …, θ(nu)) 用梯度下降(或高级优化算法)。

  3. 对于具有参数 θ 的用户和具有(学习)特征 x 的电影,预测星级评分 (θ^T) * X.

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

给定矩阵 X(每行包含特定电影的特征)和 Θ(每行包含给定用户的这些特征的权重),则所有用户对所有电影的所有预测评分的完整矩阵 Y 由下式给出:

可以使用它们各自的特征向量 x 之间的距离来预测两部电影 i 和 j 的相似程度。具体来说,我们正在寻找一个小的值||x(i) - x(j)|| .

6. 实现细节:均值归一化 Implementational detail: Mean normalization

如果使用之前讲座中的电影排名系统,那么新用户(没有看过电影)将错误地分配新电影。具体来说,由于正则化项的最小化,它们将被分配 θ,所有分量都为零。也就是说,我们假设新用户将对所有电影进行排名 0,这在直观上似乎并不正确。

我们通过相对于均值对数据进行归一化来纠正这个问题。首先,我们使用矩阵 Y 来存储来自先前评分的数据,其中 Y 的第 i 行是第 i 部电影的评分,第 j 列对应于第 j 个用户的评分。

我们现在可以定义一个向量

μ= [μ1, μ2, ..., μnm]

以至于

这实际上是第 i 部电影的先前评分的平均值(其中仅计算用户观看过的电影)。我们现在可以通过从每个用户的实际评分(矩阵 Y 中的列)中减去 u(平均评分)来标准化数据:

例如,考虑以下矩阵 Y 和平均评分 μ:

得到的 Y’ 向量为:

现在我们必须稍微修改线性回归预测以包括平均归一化项:

现在,对于新用户,初始预测值将等于 μ 项,而不是简单地初始化为零,这样更准确。

#pic_center =600x

参考

https://www.coursera.org/learn/machine-learning/resources/szFCa
https://www.coursera.org/learn/machine-learning/supplement/gXdW5/lecture-slides

机器学习- 吴恩达Andrew Ng Week9 知识总结 Recommender Systems相关推荐

  1. 【斯坦福公开课-机器学习】1.机器学习的动机和应用(吴恩达 Andrew Ng)

    文章目录 0三个目标 0先修课程要求 基本工具 1-网址 2-邮箱 3-本系列课程链接 1机器学习的定义 1-1非正式定义 1-2正式的定义 2监督学习(Supervised Learning) 2- ...

  2. 第06周:吴恩达 Andrew Ng 机器学习

    10 应用机器学习的建议 10.1 决定下一步做什么 依旧用房价预测的例子,假设我们使用已经正则化的线性回归的模型得到了参数,并将参数带入预测函数来预测一组新的房价,但是结果误差很大,那么为了解决问题 ...

  3. 第01周:吴恩达 Andrew Ng 机器学习

    学习内容: 1 机器学习 1.1 机器学习定义 ①Arthur Samuel:在没有明确设置的情况下,使计算机具有学习能力的研究领域. e.g.跳棋游戏,使计算机与自己对弈上万次,使计算机学习到什么是 ...

  4. 第10周:吴恩达 Andrew Ng 机器学习

    15 异常检测(Anomaly Detection) 这种算法虽然主要用于非监督学习问题,但从某些角度看,它又类似于一些监督学习问题. 15.1 问题动机 例:假想一个飞机引擎制造商,当他生产的飞机引 ...

  5. 机器学习(Machine Learning) - 吴恩达(Andrew Ng) 视频笔记

    背景:写于20190408,大概一周前我已经看到了P47 8-4 - Model Representation II 视频链接:https://www.bilibili.com/video/av991 ...

  6. 第02周:吴恩达 Andrew Ng 机器学习

    学习目标: 完成对机器学习逻辑回归部分 完成习题 整理理论与编程题笔记 学习内容: 六.逻辑回归 6.1 分类问题Classification 二分类问题:通常结果有两种可能(0:negative c ...

  7. 第09周:吴恩达 Andrew Ng 机器学习

    14 降维(Dimensionality Reduction) 第二种类型的无监督学习问题叫降维 14.1 目标Ⅰ:数据压缩 使用降维的原因之一是数据压缩,数据压缩可以使数据占用较小的内存或硬盘空间, ...

  8. 第08周:吴恩达 Andrew Ng 机器学习

    13 聚类 聚类算法是学习的第一个无监督学习算法,它所用到的数据是不带标签的. 13.1 无监督学习 什么是无监督学习? 在无监督学习中,所有的数据不带标签,而无监督学习要做的就是将这一系列无标签的数 ...

  9. 第04周:吴恩达 Andrew Ng 机器学习

    学习内容: 8 神经网络 8.1 为什么用神经网络 当只有两个特征时(x1.x2),使用sigmoid函数得到的结果还可以,因为可以把x1.x2的所有组合都包含到多项式中.但当很多问题含有很多特征,不 ...

  10. 第05周:吴恩达 Andrew Ng 机器学习

    学习内容: 9 神经网络的运用 9.1 代价函数 其中: 假设训练集为m组的训练样本 用L表示神经网络的总层数,对于上图来说,L=4 用表示第L层的单元数,也就是神经元的数量(不包括这一层的偏差单元) ...

最新文章

  1. python 内置函数
  2. 鸿蒙发布的意义,华为鸿蒙正式发布!“鸿蒙”是什么意思?
  3. SQL Server代理(8/12):使用SQL Server代理外部程序
  4. HTML和CSS初级前端面试题汇总(持续补充)
  5. windows下手把手教你捕获数据包
  6. 字节输出流写多个字节的方法
  7. matlab对图像进行傅里叶变换_数字图像处理(一)—— 傅里叶变换
  8. cannot import name ‘Imputer‘ from ‘sklearn.preprocessing‘
  9. Luogu4438[HNOI/AHOI2018] 道路
  10. gg修改器修改数值没有用怎么办_gg修改器怎么用教学 gg修改器修改游戏方法介绍...
  11. 什么是工业物联网网关?
  12. 发布宅男神器:视频直播app for Android ----- 万紫千红
  13. 机器学习必知的八大神经网络架构
  14. 爱快固件是Linux系统吗,Linux 系统下 VirtualBox 里安装爱快系统 (2.4.4)
  15. 13. 线性动态电路的复频域分析
  16. UCK Network为区块链生态环境搭建一个完善自循环供水系统
  17. 一起去追寻那大漠孤烟
  18. OC中的^怎么理解?
  19. 257套工业机器人SW设计3D图纸焊接机械手/发那科ABB安川臂模型
  20. Maix Bit K210识别色块(确定目标颜色)【保姆级教程】

热门文章

  1. mysql 联合索引底层结构_MySQL联合索引底层数据结构
  2. java 截取掉数字前面的0_java 保留字符串数字的位数,不够前面补0
  3. 小米路由器3无线网连接到服务器,小米路由器3设置完成后,手机能用,电脑没法上网...
  4. java 防止反射_解决反射型XSS漏洞攻击
  5. 【转】for循环中进行Promise异步操作的问题总结
  6. WPF 美化界面,样式的使用
  7. SpringBoot+SpringAOP+Java自定义注解+mybatis实现切库读写分离
  8. 闲鱼Flutter混合工程持续集成的最佳实践
  9. 你还敢用鼠标吗?黑客在百米之外控制你的鼠标
  10. [ IOS ] iOS-控制器View的创建和生命周期