大数据——协同过滤推荐算法:线性回归算法

推荐系统中的协同过滤算法一般分为两大类:

  • 基于行为的协同过滤算法(Memory-Based CF),利用用户行为数据计算相似度,包括用户之间的相似度和物品之间的相似度。
  • 基于模型的协同过滤算法(Model-Based CF),利用机器学习算法预测用户的喜好程度,一般用户数据较为稀疏的时候更适合这种方法。

本文主要介绍Model-Based协同过滤算法

1、Model-Based CF基于模型协同过滤算法

利用用户-物品评分矩阵训练机器学习模型,从而预测用户对物品的评分,主要可以分为以下几类:

  • 基于分裂、回归或者聚类算法
  • 基于矩阵分解的推荐算法
  • 基于神经网络算法
  • 基于图模型算法

2、基于回归模型算法的协同过滤

回归模型的前提是连续的值,我们将评分看做连续的值,采用以下Baseline(基准预测)实现策略。其思想是运用每个人的偏好不同:

有些用户比较好心,他的评分高于其他用户,有些用户比较苛刻,他的评分低于其他用户;而部分物品比较受欢迎,它的评分高于一般物品,部分物品可能会被嫌弃,它的评分会低于一般物品。

而Baseline则是通过找出每个用户与其他用户的评分偏置值bub_ubu,每个物品与其他物品的偏置值bib_ibi,最终的目标也就变成了寻找最优的bub_ububib_ibi。所以Baseline算法的步骤如下:

  1. 计算所有电影的平均评分uuu;
  2. 计算每个用户的评分与平均评分的偏置值bub_ubu;
  3. 计算每部电影的评分与平均评分的偏置值bib_ibi
  4. 预测用户对电影的评分:
    r^ui=bui=u+bu+bi\hat{r}_{ui} = b_{ui} = u+b_u+b_ir^ui=bui=u+bu+bi

以用户A对《封神第一部》的评分为例:

  1. 首先计算所有电影的平均评分u=3.5u=3.5u=3.5
  2. 用户A比较好心,普遍比平均分高1分,偏置值bu=1b_u=1bu=1
  3. 《封神第一部》一开始差评比较多,评分比平均分低0.5分,偏置值bi=−0.5b_i=-0.5bi=0.5
  4. 则用户A对《封神第一部》的评分为:3.5+1-0.5=4.1分。

在线性回归问题中,我们用平方差构建损失函数:
Cost=∑u,i∈R(rui−r^ui)2=∑u,i∈R(rui−u−bu−bi)2Cost = \sum_{u,i∈R}(r_{ui}-\hat{r}_{ui})^2 = \sum_{u,i∈R}(r_{ui}-u-b_u-b_i)^2 Cost=u,iR(ruir^ui)2=u,iR(ruiububi)2
为了防止过拟合,需要加入L2范式,最后的公示如下:
Cost=∑u,i∈R(rui−u−bu−bi)2+λ(∑ubu2+∑ibi2)Cost = \sum_{u,i∈R}(r_{ui}-u-b_u-b_i)^2 + \lambda(\sum_u{b_u}^2+\sum_i{b_i}^2)Cost=u,iR(ruiububi)2+λ(ubu2+ibi2)
我们希望得到损失函数的最小值,一般会采用随机梯度下降法或者最小二乘法来优化实现。

2.1 Baseline随机梯度下降法算法

step1:梯度下降法推导:
J(θ)=f(bu,bi)J(θ) = f(b_u,b_i)J(θ)=f(b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIGC人工智残

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值