美文网首页机器学习
吴恩达机器学习—推荐系统

吴恩达机器学习—推荐系统

作者: 魏清宇 | 来源:发表于2019-01-22 19:20 被阅读178次

问题规划

引例—电影推荐

假设已有的数据如上所示,洋红色线内的数据表示缺失数据,那么我们如何根据已有的评分数据r(i,j),y(i,j)来预测这些缺失的数据呢?

基于特征的推荐算法

基于内容的推荐系统

已知数据如上,有四个人对于不同电影的评分,我们还有x_{1},x_{2}  分别表示电影包含浪漫成分和动作片成分的多少。那么每一个电影都可以用一个向量来表示,如第一个电影可以表示为x^1=[1,0.9,0],其中第一个元素为常数。那么对于每一个用户j,我们可以用一个学习算法学习参数\theta ^j,然后根据公式(\theta ^j)Tx^i预测用户j对电影i的评分。现在问题就变为如何学习到用户的参数向量\theta ^j

基于内容的推荐问题

问题的正规表示方式如上所示,我们可以建立一个类似于线性回归的模型进行用户参数向量的预测,\theta ^j表示用户的参数向量,x^i表示电影的特征向量,现在已经有了该用户的历史评价数据,那么可以通过最小化上式计算用户的参数向量,即使得参数与特征的乘积作为电影预测的评分减去用户对电影实际的评分,当两者最接近的时候求得的用户参数向量就是我们要求的向量。同时可以加入正则项进行调整。

目标最优化

我们可以通过最小化方差得到某一个用户的参数向量,也可以最小化所有用户的和来得到所有用户的参数向量。

梯度下降法求最优

同样可以利用梯度下降法求最优参数。

以上是基于内容的推荐算法,即已经有了表示电影特征的向量,但是在实际中可能没有这些信息,那么要如何进行推荐呢?

协同过滤

之前的数据已经有信息表明,该电影包含浪漫成分,包含多少动作片成本,但是在实际中我们不可能花钱让每一个人看完这部电影然后给出这些信息,而且有时候你可能需要的不止这两个特征。

求解电影的特征向量

假设我们现在已经有了每个用的参数向量和每个用户对电影的评分,要求得电影的特征向量,如对于用户一来说,根据他的参数向量可知他比较喜欢浪漫电影,而他对电影一的评分为5分,那么我们可以推断电影一包含1的浪漫成分,包含0的动作成分,那么就可以得到电影一的特征向量为[1,1,0]。这一思想的正规表示如下:

最优化过程

再给定用户参数和评分的情况下,学习电影特征x^i,通过最小化第一个式子,每一个用户的参数向量与电影特征的内积表示某个用户对该电影的预测评分,而我们还有每个人对该电影的实际评分,使两者平方和最小,则可以求得某一个电影的特征向量。正则化约束了特征值的大小。要求得所有电影的特征向量,则要使所有人对所有电影的预测评分与实际评分误差平方和最小。

协同过滤的思想

现在我们已经知道如果根据评分和电影特征求得用户参数向量,也知道如何根据用户的参数向量和评分来预测电影的特征向量。将两者结合起来就是协同过滤的基本思想:首先初始化用户的参数,然后根据参数和评分计算电影的特征,得到特征以后在进行用户参数向量的预测,如此迭代下去,直至收敛。之所以称之为协同过滤,是因为这一系统结合了每一个用户的行为,协同所有的用户信息在一起,每个用户都在帮助系统进行更好的学习。

这一过程必须在每个用户都对多个电影进行评分,而且每个电影都被多个用户评分的情况下才能有效。

协同过滤算法

协同过滤算法

将用户参数求解和电影特征向量求解结合起来进行最优化,可以避免反复迭代从而达到最优,具体的优化模型如上所示,将两个最优化目标结合在一起,此时特征向量和用户参数向量的维度都是n维,因为系统会自动学习特征,就不用人为设置硬特征x_{0}=1 了。

协同过滤算法流程

首先将用户参数向量和电影特征向量初始化为较小的值,然后最小化包含\theta 和x的损失函数J,利用梯度下降法能求得每一个用户的参数向量\theta ^j和每个电影的特征向量x^i 。最后,给定一个用户即其参数向量和电影的特征向量,就能进行评分预测了。

矢量化:低轶矩阵分解

协同过滤算法还能实现其他功能,比如,给定特定的商品,你可以找到与之相关的其他商品。比如用户一直在寻找某个产品,那么有没有一些相关的产品可以推荐给用户?

每个用户对每个电影的评分

每个用户对每个电影的评分可以表示为一个矩阵y。

低轶矩阵分解

所有电影的特征向量可以表示为一个矩阵X,所有用户的参数向量同样可以表示为一个矩阵\Theta ,这样Y就可以用这两个矩阵的乘积表示。这一过程称为低轶矩阵分解

相似电影推荐

那么我们如何发现并推荐相关电影呢?根据协同过滤算法,我们已经学习到了不同电影的特征向量,这些特征有时是难以可视化和难以理解的,但是他们确实是有意义的,能捕捉不同电影的特征。通过计算两个电影特征向量之间的模,即距离,我们可以找到和这个电影最相似的电影,如果我们要找到5个与某一电影最相近的电影,那么只要找到和该电影特征向量距离最小的前五个即可。

实施细节:均值规范化

没有评分数据的用户

如果对于某一个用户,如这里的Eve,没有她的评分数据,如果对数据进行协同过滤,求出的她的参数向量肯定是零向量,因为在进行最小化的时候,损失函数简化为求正则项的最小化,则求出的参数一定是零。此时预测该用户对电影的评分,得到的结果肯定也是0,这是无意义的。

均值归一化

为了使用户的预测评分有意义,采用均值归一化,首先求出每个电影的评分的均值,然后将每个人对该电影的评分减去均值,这样就实现了均值归一化,如上图所示。然后根据最优化求出用户参数和电影特征向量之后,在进行预测的时候,在每个电影的预测评分上加上该电影评分均值从而得到最终结果。

相关文章

  • AI学习清单(持续更新中)

    更新时间 18年8月22日 推荐网课 机器学习 吴恩达 DeepLearning 吴恩达 AML 推荐书目 《统计...

  • 《吴恩达 - 机器学习》笔记

    学习资源 b站:机器学习(Machine Learning)- 吴恩达(Andrew Ng)网易:吴恩达《机器学习...

  • 吴恩达机器学习—推荐系统

    问题规划 假设已有的数据如上所示,洋红色线内的数据表示缺失数据,那么我们如何根据已有的评分数据来预测这些缺失的数据...

  • 机器学习之基本了解篇

    机器学习推荐教程: 1.最好的入门教程,就是吴恩达讲授的机器学习。吴恩达这套课程发布很久了,虽然有些地方稍微过时,...

  • 机器学习笔记

    学习记录,从小白做起。 传统给机器学习 先来镇楼的,吴恩达机器学习:吴恩达机器学习 OCTAVE版本下载:http...

  • 吴恩达机器学习课程

    吴恩达机器学习课程

  • 机器学习相关资料整理

    初学机器学习,将部分资料整理在此,逐渐完善。 视频资源 吴恩达机器学习 介绍:吴恩达老师关于机器学习的入门级视频...

  • 吴恩达deep_learning_week2_logistic回

    吴恩达deep_learning_week2_logistic回归 标签: 机器学习深度学习 这是吴恩达深度学习里...

  • 机器学习资料汇总

    吴恩达深度学习讲义 http://www.ai-start.com/dl2017/ 吴恩达机器学习讲义 http:...

  • 引言

    这个文集是Coursera上吴恩达教授授课的《机器学习》课程的课程笔记与总结,下面是课程的链接:吴恩达教授机器学习...

网友评论

    本文标题:吴恩达机器学习—推荐系统

    本文链接:https://www.haomeiwen.com/subject/zwnljqtx.html