斯坦福NG机器学习听课笔记-推荐系统(recommender system)

推荐系统(recommender system)

Problem Formulation:

RecommenderSystems:为什么讲它有两个原因:首先它是一个很重要的机器学习应用方向,在很多公司中占据了重要作用,像亚马逊之类网站都是很好的建立推荐系统促进商品销售。其次推荐系统有机器学习中一些big idea,通过学习推荐系统学习机器学习中的big idea。接着描述一个电影评级的例子(整篇博客都将以电影评级为实例)。

电影评级有5级,打问号的是不知道的信息,推荐系统需要做的就是在已知数据上去预测打问号下的数据是什么。直观上我们可以分块发现Alice Bob 偏向于看爱情片,而后面两位偏向于看动作电影,这些是在数据上比较直白的信息获取(这就是后面说到的我们已知特征向量情况)。还有需要注意上图中形式化描述整个课程都是以这个为基础的。

习题:就是让大家熟悉NG对电影评级中各个变量参数表示。

Content Based Recommendations:

先看一下如果进行未评级电影预测的流程:

上图中右边可以看到我们把所有电影通过romance action 两个特征来进行描述,我们对空白位置预测思想方法就是:对每一个user 我们学习参数(怎么学习这个参数后面说),然后再通过上图参数向量与特征向量乘积值来判断。

习题:

上题只需要把参数向量代入与特征向量相乘和已知数据比较,拟合合适的就成立。

这个问题的形式化描述:

如何学习参数向量,利用线性回归方法。

目标函数是:

因为m(j) 是常数进行简化目标函数:

上面公式第一个是描述某一个用户的,而下面公式是对所有user 求和使得目标函数最小。这里求目标函数最小值就类似线性回归中方法,梯度下降法:

总结:这个算法我们假设我们已经拥有特征,我们知道电影用什么特征可以来进行描述。但是有很多电影我们可能无法通过特征向量来进行描述,下面方法解决这里提到的问题。

Collaborative Filtering:

这里问题条件就改变了,我们现在无法获得电影特征描述,但是我们可以获得不同用户对不同电影爱好也就是theta参数向量。

习题:已知theta向量求特征值。

需要优化的目标函数:

习题:梯度下降法迭代求解。

下面对Collaborative filtering 形式化描述真正的协同过滤比这个复杂,这里只是首先就行一个概念上的认知。

前面我们提到了两种方法:第一种是一直特征集描述,然后估计theta ,第二种是一直theta 去估计特征集。我们可以交叉使用这两种方法来更好估计特征与theta参数。这里计算性能不高接下来会讲到这个问题的计算优化。

CollaborativeFiltering Algorithm:

前面说到我们可以迭代优化theta和特征向量,但是这样性能比较低,所以现在考虑提升算法性能。同时对两种方法进行求解。

上图就是把两种方法优化函数进行合并得到总的目标函数。

算法流程图:

习题:

Vectorization Low rank matrix factorization:

这里主要讲的就是通过两个向量相乘构造Predicted ratings matrix

习题:

向量化后有一个很大的便利之处就是推荐发现相似的电影或者网站推荐相似物品。我们只需要计算两个物品特征向量之间的距离,距离越小意味着肯定是更加相似的东西。

Implementationaldetail : Mean normalization

我们加入新的一个user Eve,通过上面说的计算theta 和电影评分,我们发下如下图:

我们发现Eve对所有电影评分都是0,显然这样结果是不合适的,现在需要解决这个问题。

上面我们说了当一个user对电影没有任何评级时,我们很难处理,用前面说到算法执行得到都为0。现在我们改进方法如下图:

当theta与X(i)乘积为0 ,但是在加上均值所以像Eve这样用户我们不会把他评分都设定为0。

你可以用Mean Normalization 对数据进行预处理。这样可能会使得算法得到一些改进提高。

习题:

时间: 2024-11-10 11:14:06

斯坦福NG机器学习听课笔记-推荐系统(recommender system)的相关文章

ng机器学习视频笔记(十四) ——推荐系统基础理论

ng机器学习视频笔记(十三) --推荐系统基础理论 (转载请附上本文链接--linhxx) 一.概述 推荐系统(recommender system),作为机器学习的应用之一,在各大app中都有应用.这里以用户评价电影.电影推荐为例,讲述推荐系统. 最简单的理解方式,即假设有两类电影,一类是爱情片,一类是动作片,爱情片3部,动作片2部,共有四个用户参与打分,分值在0~5分. 但是用户并没有对所有的电影打分,如下图所示,问号表示用户未打分的电影.另外,为了方便讲述,本文用nu代表用户数量,nm代表

Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第五章应用机器学习的建议,主要介绍了在测试新数据出现较大误差该怎么处理,这期间讲到了数据集的分类,偏差,方差,学习曲线等概念,帮

Andrew Ng机器学习课程笔记(二)之逻辑回归

Andrew Ng机器学习课程笔记(二)之逻辑回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364598.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第二章逻辑回归的笔记,主要介绍了梯度下降法,逻辑回归的损失函数,多类别分类等等 简要介绍:逻辑回归算法是分类算法,我们将它作为分类算法使用.

Andrew Ng机器学习课程笔记(四)之神经网络

Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录Andrew Ng课程第四章和第五章的神经网络,主要介绍前向传播算法,反向传播算法,神经网络的多类分类,梯度校验,参数随机初始化,参数的更新等等 1.神经网络概述

ng机器学习视频笔记(三) ——线性回归的多变量、特征缩放、标准方程法

ng机器学习视频笔记(三) --线性回归的多变量.特征缩放.标准方程法 (转载请附上本文链接--linhxx) 一.多变量 当有n个特征值,m个变量时,h(x)= θ0+θ1x1+θ2x2-+θnxn,其中可以认为x0=1.因此,h(x)= θTx,其中θ是一维向量,θ=[θ0, θ1-θn] T,x也是一维向量,x=[x0,x1..xn] T,其中x0=1. 二.特征缩放(Feature Scaling) 特征缩放的目的,是为了让每个特征值在数量上更加接近,使得每个特征值的变化的影响相对比较"

ng机器学习视频笔记(十二) ——PCA实现样本特征降维

ng机器学习视频笔记(十二) --PCA实现样本特征降维 (转载请附上本文链接--linhxx) 一.概述 所谓降维(dimensionality reduction),即降低样本的特征的数量,例如样本有10个特征值,要降维成5个特征值,即通过一些方法,把样本的10个特征值映射换算成5个特征值. 因此,降维是对输入的样本数据进行处理的,并没有对预测.分类的结果进行处理. 降维的最常用的方法叫做主成分分析(PCA,principal component analysis).最常用的业务场景是数据压

ng机器学习视频笔记(九) ——SVM理论基础

ng机器学习视频笔记(九) --SVM理论基础 (转载请附上本文链接--linhxx) 一.概述 支持向量机(support vector machine,SVM),是一种分类算法,也是属于监督学习的一种.其原理和logistics回归很像,也是通过拟合出一个边界函数,来区分各个分类的结果. 二.代价函数与假设函数 由于svm和logistic很相似,故与logistic进行比较.logistic的代价函数如下: 与logistic不同之处在于,SVM是用两个线段表示logistic中的h.在l

ng机器学习视频笔记(十一) ——K-均值算法理论

ng机器学习视频笔记(十一) --K-均值算法理论 (转载请附上本文链接--linhxx) 一.概述 K均值(K-Means)算法,是一种无监督学习(Unsupervised learning)算法,其核心是聚类(Clustering),即把一组输入,通过K均值算法进行分类,输出分类结果. 由于K均值算法是无监督学习算法,故这里输入的样本和之前不同了,输入的样本只有样本本身,没有对应的样本分类结果,即这里的输入的仅仅是{x(1),x(2),-x(m)},每个x没有对应的分类结果y(i),需要我们

ng机器学习视频笔记(四) ——logistic回归

ng机器学习视频笔记(四) --logistic回归 (转载请附上本文链接--linhxx) 一.概述 1.基本概念 logistic回归(logistic regression),是一个分类(classification)算法(注意不是回归算法,虽然有"回归"二字),用于处理分类问题,即结果是离散的.另外,由于有固定的结果,其是监督学习算法. 例如,预测天气.预测是否通过考试等,结果是离散的值,而预测房价这种就属于"回归"算法要解决的问题,而不是分类算法解决的问题