为了估算用户对未观看物品的评分,特别是在使用基于邻域的协同过滤推荐系统中,一种方法是参考相似用户或物品(通常称为“邻居”)的行为。目标是预测用户对某个之前未接触过的物品给出的分数。这种预测是通过计算这些邻居评分的加权平均值得出的。核心思想很简单:越相似的邻居,其意见对预测的影响就越大。
让我们来看看基于用户和基于物品的两种方法是如何运作的。
基于用户的预测
在基于用户的方法中,我们根据相似用户对同一物品的评分来预测目标用户对该物品的评分。然而,简单的平均值往往会产生误导,因为不同用户的评分标准各不相同。一个用户可能只在 3 到 5 星之间评分,而另一个用户则使用完整的 1 到 5 星范围。
为了平衡这种差异,我们使用每个用户相对于其平均评分的偏差。用户 u 对物品 i 的评分预测公式为:
Pu,i=rˉu+∑v∈N∣sim(u,v)∣∑v∈Nsim(u,v)⋅(rv,i−rˉv)
让我们详细分析一下这个公式:
- Pu,i 是目标用户 u 对物品 i 的预测评分。
- rˉu 是目标用户 u 的平均评分。我们在最后将其加回,以便将预测结果还原到该用户的原始评分标准中。
- N 是与 u 最相似且已经对物品 i 进行过评分的用户邻域。
- sim(u,v) 是用户 u 与邻居用户 v 之间的相似度分数。
- rv,i−rˉv 是邻居 v 对物品 i 的评分,减去其平均评分 rˉv 后的调整值。这个值表示邻居认为该物品比其平均水平好多少或差多少。
- 分母 ∑v∈N∣sim(u,v)∣ 是归一化项,即相似度权重绝对值的总和。
计算示例
假设我们要预测你对电影《银翼杀手 2049》的评分。你对所有电影的平均评分是 3.5。我们找到了三个也评价过这部电影的相似用户(即你的邻居)。
| 用户 |
与你的相似度 |
对《银翼杀手 2049》的评分 |
用户的平均评分 |
| Alex |
0.9 |
5.0 |
4.0 |
| Ben |
0.8 |
4.0 |
3.2 |
| Chris |
0.5 |
3.0 |
3.8 |
首先,我们计算邻居调整后评分的加权和:
- Alex: 0.9⋅(5.0−4.0)=0.9⋅1.0=0.9
- Ben: 0.8⋅(4.0−3.2)=0.8⋅0.8=0.64
- Chris: 0.5⋅(3.0−3.8)=0.5⋅(−0.8)=−0.4
分子是这些值的总和:0.9+0.64+(−0.4)=1.14。
分母是相似度分数绝对值的总和:∣0.9∣+∣0.8∣+∣0.5∣=2.2。
现在,我们将这些代入公式:
P你,银翼杀手=3.5+2.21.14≈3.5+0.52=4.02
我们的模型预测你会给《银翼杀手 2049》打大约 4.02 分。这个预测受 Alex 的影响较大,因为他是你最相似的邻居,且他非常喜欢这部电影。
基于用户的推荐系统的预测过程。越相似的邻居(如 Alex)的意见对最终预测评分的贡献越大。
基于物品的预测
对于基于物品的方法,逻辑相似但更简单。为了预测用户 u 对物品 i 的评分,我们会查看用户 u 已经评过分的分的其他物品。然后我们计算这些评分的加权平均值,权重是物品 i 与其他物品之间的相似度。
公式为:
Pu,i=∑j∈N∣sim(i,j)∣∑j∈Nsim(i,j)⋅ru,j
以下是详细说明:
- Pu,i 是用户 u 对目标物品 i 的预测评分。
- N 是与物品 i 最相似且用户 u 已评过分的物品邻域。
- sim(i,j) 是目标物品 i 与邻居物品 j 之间的相似度。
- ru,j 是用户 u 对邻居物品 j 的实际评分。
请注意,这里不需要根据用户平均分进行调整。整个计算基于单个用户 (u) 的评分,因此评分标准本身就是一致的。
计算示例
我们仍然以预测你对《银翼杀手 2049》的评分为例。这次我们使用基于物品的方法。我们找到了三部与《银翼杀手 2049》相似且你已经评价过的电影。
| 相似电影 (物品 j) |
与《银翼杀手 2049》的相似度 |
你对该电影的评分 |
| 《沙丘》 |
0.95 |
5.0 |
| 《降临》 |
0.88 |
4.0 |
| 《黑客帝国》 |
0.70 |
4.0 |
你评分的加权和(分子)为:
- (0.95⋅5.0)+(0.88⋅4.0)+(0.70⋅4.0)
- =4.75+3.52+2.8=11.07
相似度权重之和(分母)为:
- ∣0.95∣+∣0.88∣+∣0.70∣=2.53
预测评分为:
P你,银翼杀手=2.5311.07≈4.37
基于物品的模型预测你会给这部电影打 4.37 分,这是基于你对相似科幻电影的正面评价得出的。
通过应用这些加权平均公式,我们可以将相似度分数转化为具体的、个性化的评分预测。这些预测构成了推荐列表的基础,使我们能够对未见过的物品进行排序,并推荐用户最可能喜欢的物品。