协同过滤基础——基线预测器(Baseline Predictors)
文章目录
- 引言
- 公式含义表
- 一、系统性偏差的双重来源
- 二、基线预测器的核心公式
- 三、参数估计:从数据中学习偏差
- 1. 正则化最小二乘法(主流方案)
- 2. 分步估计法(简化替代方案)
- 四、基线预测器的核心价值
- 参考
引言
在构建协同过滤推荐系统时,研究者常聚焦于捕捉用户与物品之间的微妙互动偏好。然而,有一个容易被忽略的关键之处:观察到的评分差异,更多源于用户或物品本身的系统偏差,而非它们之间的独特互动。
为了削弱这种偏差影响,我们需要为推荐系统提供了一个基础的、基准性的预测基准,来使推荐模型可以在这个基准之上捕捉用户与物品之间的具体交互偏好,从而得到更精准的推荐结果。我们把这种预测基准叫做基线预测器(Baseline Predictor,也称为偏差模型)。
公式含义表
公式 | 含义 |
---|---|
uuu | 用户 |
iii | 物品 |
bub_ubu | 用户偏差 |
bib_ibi | 物品偏差 |
ruir_{ui}rui | 用户 uuu 对物品 iii 的真是评分 |
K\mathcal{K}K | ={(u,i)∣真实评分rui已经知道}=\{(u,i)|真实评分 r_{ui} 已经知道\}={(u,i)∣真实评分rui已经知道} |
λ\lambdaλ | 用来控制正则化的强度,具体值通过交叉验证确定,随着这些常数的增大,正则化效果会逐渐增强。 |
R(u)R(u)R(u) | 被用户 uuu 评分的所有物品集合 |
R(i)R(i)R(i) | 对物品 iii 评分的所有用户集合 |
一、系统性偏差的双重来源
在评分数据中,有两类固有偏差普遍存在,它们构成了基线预测的核心考量:
- 用户偏差(bub_ubu):反映用户的评分习惯倾向。例如,部分用户天生"宽容",对大多数物品的评分高于平均水平;而另一些用户则更为"严苛",评分普遍偏低。
- 物品偏差(bib_ibi):体现物品的固有受欢迎程度。例如,经典电影往往获得普遍好评,评分显著高于平均值;而质量平庸的物品则常被打低分。
这些偏差让我们看到的用户评分并不是真正的交互信息,他们会掩盖用户与物品间的真实交互信号,最终导致推荐模型出现偏差。因此我们需要基线预测器来对这些“噪声”进行建模,方便之后提取用户对物品真实的偏好程度。
二、基线预测器的核心公式
基线预测器 buib_{ui}bui 通过简洁的数学形式,将全局平均、用户偏差和物品偏差整合为一个基准评分:
bui=μ+bu+bib_{ui} = μ + b_u + b_i bui=μ+bu+bi
- μμμ(全局平均):所有用户对所有物品的评分平均值,作为评分的基准锚点。
- bub_ubu(用户偏差):用户 uuu 的评分相对于 μμμ 的偏移量,正值表示该用户评分偏高,负值则表示偏低。
- bib_ibi(物品偏差):物品 iii 的评分相对于 μμμ 的偏移量,正值表示该物品口碑较好,负值则表示口碑较差。
实例说明:
在电影评分中,假设全局平均评分为 μ=3.7μ=3.7μ=3.7 分,电影《泰坦尼克号》因质量上乘,物品偏差为 bi=+0.5b_i=+0.5bi=+0.5 分;用户小王因评分严格,用户偏差为 bu=−0.3b_u=-0.3bu=−0.3 分。那么小王对《泰坦尼克号》的基线预测为:
bui=3.7+(−0.3)+0.5=3.9b_{ui} = 3.7 + (-0.3) + 0.5 = 3.9bui=3.7+(−0.3)+0.5=3.9 分。
需要注意的是:这个结果仅反映了物品质量和用户评分习惯,尚未涉及小王对这类爱情片的真实偏好(也就是用户和物品之间的交互信号)。
看到这里你是否会和我一样有一种柳暗花明的感受,心中不由对这个机制竖起了大拇指👍。就像我们这个社会,每个人都有属于自己的“平均分”或者“基准线”,在这个竞争激烈的时代,找准我们自己的“基准线”,再来考虑得失,会让我们免于无畏的焦虑与彷徨,真正摸清楚自己的道路。
好啦,回归正题⬇️
三、参数估计:从数据中学习偏差
基线预测器中包含了 μμμ、bub_ubu 和 bib_ibi 三个部分。其中,全局平均 μμμ 很容易得到,那 bub_ubu 和 bib_ibi 应该怎么获取呢?这就需要通过已有的评分数据来进行估计(好比用已有的身高 xxx、体重 yyy 数据来估计 y=ax+by =ax + by=ax+b 中的参数 aaa 和 bbb)。这里介绍两种估计的方法,一种是主流方案更精确些,另一种是邪修更简单一些。
1. 正则化最小二乘法(主流方案)
minb∗∑(u,i)∈K(rui−μ−bu−bi)2+λ1(∑ubu2+∑ibi2)\min_{b_*} \sum_{(u,i) \in K} (r_{ui} - \mu - b_u - b_i)^2 + \lambda_1 (\sum_u b_u^2 + \sum_i b_i^2)b∗min(u,i)∈K∑(rui−μ−bu−bi)2+λ1(u∑bu2+i∑bi2)
- 拟合项 ∑(u,i)∈K(rui−μ−bu−bi)2\sum_{(u,i) \in K} (r_{ui} - \mu - b_u - b_i)^2∑(u,i)∈K(rui−μ−bu−bi)2:通过最小化预测值 μ+bu+biμ+b_u+b_iμ+bu+bi 与真实评分 ruir_{ui}rui 之间的平方误差,确保模型对数据的基本拟合。
- 正则化项 λ1(∑ubu2+∑ibi2)\lambda_1 (\sum_u b_u^2 + \sum_i b_i^2)λ1(∑ubu2+∑ibi2):通过 L2 惩罚(λ1\lambda _1λ1为正则化强度)限制 bub_ubu 和 bib_ibi 的幅值,避免过拟合,提升模型泛化能力。
- 求解效率:该问题可通过随机梯度下降法高效求解。
2. 分步估计法(简化替代方案)
为降低实现复杂度,可分两步估计参数:
-
物品偏差 bib_ibi:
bi=Σu∈R(i)(rui−μ)λ2+∣R(i)∣b_i = \frac{Σ_{u∈R(i)} (r_{ui} - \mu)}{\lambda _2 + |R(i)|} bi=λ2+∣R(i)∣Σu∈R(i)(rui−μ) 其中,R(i)R(i)R(i) 为评价过物品 iii 的用户集合,∣R(i)∣|R(i)|∣R(i)∣ 为评分数量,λ2\lambda _2λ2 为正则化参数(Netflix数据集上的典型值为 25)。 -
用户偏差 bub_ubu:
bu=Σi∈R(u)(rui−μ−bi)λ3+∣R(u)∣b_u = \frac{Σ_{i∈R(u)} (r_{ui} - \mu - b_i)}{\lambda_3 + |R(u)|} bu=λ3+∣R(u)∣Σi∈R(u)(rui−μ−bi) 其中,λ3\lambda _3λ3 为正则化参数(Netflix数据集上的典型值为 10)。
四、基线预测器的核心价值
基线预测器是协同过滤的基础组件,其核心作用体现在:
- 信号分离:精准剥离系统性偏差,为后续捕捉用户-物品交互信号扫清障碍。
- 解释性强:μμμ、bub_ubu 和 bib_ibi 具有直观业务含义(平均分、用户宽容度、物品质量),提升模型透明度。
- 效果显著:仅通过偏差建模即可解释评分变异的绝大部分,是高级模型的必要基础。
- 计算高效:优化过程复杂度低,远低于复杂交互模型。
理解并有效建模基线预测器,是构建精准、可解释推荐系统的第一步。它奠定了从"噪音"中提取"信号"的基础,让后续复杂模型得以在坚实基座上发挥作用。
参考
【1】Yehuda Koren, Steffen Rendle, and Robert M. Bell. Advances in collaborative filtering. In Recom-
mender Systems Handbook, pp. 79–81. Springer US, 2022.