不要时时刻刻想我,不要指望我回来,我离开后,你就是我,
Vive le peuple!
大家应该都知道推荐算法是什么
引文
根据用户已经评分的电影数据预测其他用户对电影的评分
基于内容的推荐算法
计算方法
对于内容进行分析,我们知道AB喜欢爱情片,CD则喜欢动作片
现在我们获得了每个电影的成分比例(爱情内容/动作内容的比例)
我们可以将特征转换为特征向量
同时,我们还需要预测用户的偏好向量
是用户喜欢电影的程度(现在我们可以得到这个向量)
如果我们要求A对第三个电影的评分,我们就可以这样做
将第三个电影的特征向量和A的喜好向量相乘
优化功能
我们的目标是最小化以下等式的结果,类似于之前的成本函数
对于theta的代价函数如下图
对应的梯度下降公式
协同过滤
简单案例
假设我们知道用户的评分和偏好,但不知道电影的具体构成
我们可以通过以下的表达式求出x(i)
将此问题推广到一般情况
一般来说
上面的情况比较简单,其实有可能我们知道的唯一数据就是用户对这部电影的评分不全
按一般的方法,先预测出x再求出theta,然后按顺序反复循环
第一个求和运算是将所有用户j的总和和所有被该用户评分过的电影总和
加起来(也就是将所有的(i,j)对加起来)
第二个表示对于每一个电影i,将所有对它评分过的用户j进行求和
但是根据下面的公式,你可以同时找到两者,也
上面两个粉框的公式是下面公式的第一项,后面是正则化
算法步骤
首先将x和theta设为小随机数
然后使用梯度下降找到相关参数
如果一部电影要找到相关的电影,可以计算如下公式,如果相关性越小,相关性越大
如果想求预测评分,可以将x,theta进行以下处理并让其相乘
这种方法称为低秩矩阵分解
均值归一化
如果出现用户刚刚注册而没有任何数据的情况怎么办?
我们将所有评分合并到一个矩阵中(包括未评分部分)
事后平均(不计分的除外)
之后,让Y矩阵每个格子减去平均值
之后,对该矩阵进行协同过滤。对于每个小网格,公式如下
对于新用户,它的预测分数如下(其实是一个平均数……)
文章出处登录后可见!