[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)–推荐算法

不要时时刻刻想我,不要指望我回来,我离开后,你就是我,
Vive le peuple!

大家应该都知道推荐算法是什么

引文

根据用户已经评分的电影数据预测其他用户对电影的评分
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

基于内容的推荐算法

计算方法

对于内容进行分析,我们知道AB喜欢爱情片,CD则喜欢动作片
现在我们获得了每个电影的成分比例(爱情内容/动作内容的比例)
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
我们可以将特征转换为特征向量

[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
同时,我们还需要预测用户的偏好向量
是用户喜欢电影的程度(现在我们可以得到这个向量)
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

如果我们要求A对第三个电影的评分,我们就可以这样做
将第三个电影的特征向量和A的喜好向量相乘
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

优化功能

我们的目标是最小化以下等式的结果,类似于之前的成本函数
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

对于theta的代价函数如下图
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
对应的梯度下降公式
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

协同过滤

简单案例

假设我们知道用户的评分和偏好,但不知道电影的具体构成
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
我们可以通过以下的表达式求出x(i)
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
将此问题推广到一般情况
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

一般来说

上面的情况比较简单,其实有可能我们知道的唯一数据就是用户对这部电影的评分不全

按一般的方法,先预测出x再求出theta,然后按顺序反复循环
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
第一个求和运算是将所有用户j的总和和所有被该用户评分过的电影总和
加起来(也就是将所有的(i,j)对加起来)
第二个表示对于每一个电影i,将所有对它评分过的用户j进行求和

但是根据下面的公式,你可以同时找到两者,也
上面两个粉框的公式是下面公式的第一项,后面是正则化
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

算法步骤

首先将x和theta设为小随机数
然后使用梯度下降找到相关参数
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
如果一部电影要找到相关的电影,可以计算如下公式,如果相关性越小,相关性越大
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

如果想求预测评分,可以将x,theta进行以下处理并让其相乘
这种方法称为低秩矩阵分解
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

均值归一化

如果出现用户刚刚注册而没有任何数据的情况怎么办?
我们将所有评分合并到一个矩阵中(包括未评分部分)
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
事后平均(不计分的除外)
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
之后,让Y矩阵每个格子减去平均值
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

之后,对该矩阵进行协同过滤。对于每个小网格,公式如下
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法
对于新用户,它的预测分数如下(其实是一个平均数……)
[Machine Learning Course of Andrew-Ng 吴恩达的机器学习课程]机器学习学习笔记(13)--推荐算法

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年3月15日 下午4:07
下一篇 2022年3月15日 下午4:27

相关推荐