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

问题规划:

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

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

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

基于内容的推荐算法:

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

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

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

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

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

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

和线性回归中一样,我们不会对吴恩达机器学习笔记之推荐系统进行正则化。

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

协同过滤(collaborative filtering):

当我们不知内容的特征表示时,即不知道吴恩达机器学习笔记之推荐系统时,我们可以稍微改一下假设,假设我们知道用户的偏爱系数,即吴恩达机器学习笔记之推荐系统,从而来预测我们的吴恩达机器学习笔记之推荐系统,具体的流程如下:

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

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

实际中我们的做法是,首先随机初始化参数吴恩达机器学习笔记之推荐系统,然后求得一组x,根据这组x在来求我们的吴恩达机器学习笔记之推荐系统,之后再求x,如此循环。

协同过滤算法:

我们将我们上面提到的算法结合在一起,构成新的协同滤波算法,对吴恩达机器学习笔记之推荐系统和x共同进行优化,值得注意的是,当我们将两者结合在一起之后,我们便不再需要吴恩达机器学习笔记之推荐系统吴恩达机器学习笔记之推荐系统项了,因为如果需要的话,算法会自动学习得到的。

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

算法的使用步骤如下:

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

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

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

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

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

均值归一化:

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