文章目录
基于回归模型的协同过滤推荐
如果我们将评分看作是一个连续的值而不是离散的值,那么就可以借助线性回归思想来预测目标用户对某物品的评分。其中一种实现策略被称为Baseline(基准预测)。
Baseline:基准预测
Baseline设计思想基于以下的假设:
- 有些用户的评分普遍高于其他用户,有些用户的评分普遍低于其他用户。比如有些用户天生愿意给别人好评,心慈手软,比较好说话,而有的人就比较苛刻,总是评分不超过3分(5分满分)
- 一些物品的评分普遍高于其他物品,一些物品的评分普遍低于其他物品。比如一些物品一被生产便决定了它的地位,有的比较受人们欢迎,有的则被人嫌弃。
这个用户或物品普遍高于或低于平均值的差值,我们称为偏置(bias)
Baseline目标:
- 找出每个用户普遍高于或低于他人的偏置值 b u b_u bu
- 找出每件物品普遍高于或低于其他物品的偏置值 b i b_i bi
- 我们的目标也就转化为寻找最优的 b u 和 b i b_u和 b_i bu和bi
使用Baseline的算法思想预测评分的步骤如下:
-
计算所有电影的平均评分 μ \mu μ(即全局平均评分)
-
计算每个用户评分与平均评分 μ 的 偏 置 值 b u \mu的偏置值b_u μ的偏置值bu
-
计算每部电影所接受的评分与平均评分 μ 的 偏 置 值 b i \mu的偏置值b_i μ的偏置值bi
-
预测用户对电影的评分:
r ^ u i = b u i = μ + b u + b i \hat{r}_{ui} = b_{ui} = \mu + b_u + b_i r^ui=bui=μ+bu+bi -
举例:通过Baseline来预测用户A对电影“阿甘正传”的评分
- 首先计算出整个评分数据集的平均评分 μ \mu μ是3.5分
- 用户A比较苛刻,普遍比平均评分低0.5分,即用户A的偏置值 b i b_i bi是-0.5;
- “阿甘正传”比较热门且备受好评,评分普遍比平均评分要高1.2分,“阿甘正传”的偏置是+1.2
- 因此就可以预测出用户A对电影“阿甘正传”的评分为: 3.5 + ( − 0.5 ) + 1.2 3.5+(-0.5)+1.2 3.5+(−0.5)+1.2,也就是4.2分。
对于所有电影的平均评分是直接能计算出的,因此问题在于要测出每个用户的评分偏置和每部电影的得分偏置。对于线性回归问题,我们可以利用平方差构建损失函数如下:
加入L2正则化:
C o s t = ∑ u , i ∈ R ( r u i − μ − b u − b i ) 2 + λ ∗ ( ∑ u b u 2 + ∑ i b i 2 ) Cost=\sum_{u,i\in R}(r_{ui}-\mu-b_u-b_i)^2 + \lambda*(\sum_u {b_u}^2 + \sum_i {b_i}^2) Cost=u,i∈R∑(rui−μ−bu−bi)2+λ∗(u∑bu2+i∑bi2)
公式解析:
- 公式第一部分 ∑ u , i ∈ R ( r u i − μ − b u − b i ) 2 是 用 来 寻 找 与 已 知 评 分 数 据 拟 合 最 好 的 b u 和 b i \sum_{u,i\in R}(r_{ui}-\mu-b_u-b_i)^2是用来寻找与已知评分数据拟合最好的b_u和b_i u,i∈R∑(rui−μ−bu−bi)2是用来寻找与已知评分数据拟合最好的bu和bi
- 公式第二部分 λ ∗ ( ∑ u b u 2 + ∑ i b i 2 ) \lambda*(\sum_u {b_u}^2 + \sum_i {b_i}^2) λ∗