吴恩达机器学习笔记之推荐系统

问题规划:

推荐系统是机器学习中的一个重要的应用,在之前的算法学习中,我们知道,特征对于机器学习算法来说很重要,选取不同的特征对模型造成的影响也是非常不同的,因此我们想能否开发出一个能够自动学习选取特征的算法,推荐系统就属于这一类算法。

下面我们从一个例子开始学习怎么设计一个推荐系统。

基于内容的推荐算法:

基于内容的推荐算法,因为我们已经对内容有了特征表示,比如电影的浪漫程度,打斗程度。我们用这些特征对内容的内容进行了表述。

现在我们基于这些特征,采用线性回归算法,对每一个用户都训练一个线性回归模型,从而对那些用户没有打分的电影进行分数的预测。模型的表示如下所示,在这里要注意,我们将平方误差项与正则项中的1/m去掉了,这里和线性回归还是有一些不同的。

上面是一个用户的代价函数,为了学习所有用户的,我们需要表示出所有用户的代价函数之和。

和线性回归中一样,我们不会对\theta _{0}进行正则化。

可以看出来,我们的基于内容的推荐算法,是事先建立在已经知道内容的特征表示的基础上的,但在实际情况中,我们很难或者说没办法知道内容的特征表示,这时候我们应该怎么办呢?

协同过滤(collaborative filtering):

当我们不知内容的特征表示时,即不知道x^{i}时,我们可以稍微改一下假设,假设我们知道用户的偏爱系数,即\theta ^{j},从而来预测我们的x^{i},具体的流程如下:

我们的目标函数变成如下所示:

实际中我们的做法是,首先随机初始化参数\theta,然后求得一组x,根据这组x在来求我们的\theta,之后再求x,如此循环。

协同过滤算法:

我们将我们上面提到的算法结合在一起,构成新的协同滤波算法,对\theta和x共同进行优化,值得注意的是,当我们将两者结合在一起之后,我们便不再需要x_{0}\theta _{0}项了,因为如果需要的话,算法会自动学习得到的。

算法的使用步骤如下:

为什么要随机初始化,因为要打破对称性。

低秩矩阵分解(Low rank matrix factorization):

将算法用向量化的方法进行实现。

均值归一化:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值