趋近智
用户-物品交互矩阵是协同过滤的基石,但在实际应用中,它几乎总是稀疏的。稀疏性意味着矩阵中的大多数单元格都是空的,因为一个典型的用户通常只对海量物品中的极小部分进行过评分、购买或查看。对于一个拥有数百万用户和产品的的大型电子商务网站,矩阵中已填充单元格的比例往往远低于 1%。
这不仅仅是一个小麻烦,它对我们之前讨论过的基于邻域的方法提出了巨大的挑战。
在典型的矩阵中,大多数用户-物品交互是未知的,从而导致高度的稀疏性。
当矩阵稀疏时,会出现两个主要问题:
难以找到邻居: 我们使用的相似度度量(如余弦相似度或皮尔逊相关系数)主要衡量两个用户评分过的共同物品(针对基于用户的过滤)或评分过两个物品的共同用户(针对基于物品的过滤)。如果没有重叠,相似度通常无法定义或默认为零。在极端稀疏的情况下,很难找到任何具有实际意义相似度分值的邻居。
相似度分值不可靠: 即使我们找到了重叠,这种重叠也可能非常小。仅根据一两个共同评分的物品计算出的相似度分值并不可靠。例如,如果用户 A 和用户 C 都给“物品 1”打了 4 分,根据这一个数据点,他们具有完全相关性。但这不足以证明他们的口味相似。基于这种薄弱证据做出的预测会充满噪声且不可信。
我们不能简单地“填补”缺失的数据,因为这会引入虚假信息。相反,我们使用一些技术,使计算在存在缺失值时更加准确。
缓解稀疏性最有效的方法之一是考虑用户的评分偏好。有些用户评分一直很慷慨,而有些用户则总是很挑剔。对于严厉的批评者来说,3 分的原始评分可能比随和的评分者的 4 分更具有正面意义。
均值中心化通过围绕用户的平均评分对评分进行规范化来调整这一点。我们不使用原始评分 ,而是使用调整后的评分 ,其中 是用户 给出的平均评分。
这正是我们在上一节中介绍的皮尔逊相关系数所做的。让我们再次看看它的公式:
这里, 是用户 和用户 都评分过的物品集合。通过减去用户的平均评分,我们是在比较用户如何偏离他们自己的平均行为。这使得相似度分值更有意义,即使共同评分的物品数量很少,因为它关注的是偏好的一致性,而不是绝对评分值。对于基于物品的过滤,同样的逻辑也适用于围绕物品的平均评分进行中心化。
第二个问题(来自少量重叠的不可靠分值)可以通过 显著性加权 来解决。其直觉很简单:如果相似度分值基于更多的证据,它就更值得信赖。我们可以通过将基于少量共同评分物品计算出的相似度分值向零收缩来对其进行惩罚。
一种常见的实现方法是将相似度分值乘以一个阻尼因子。设 为用户 和 共同评分的物品数量。我们可以定义一个新的、调整后的相似度分值 为:
这里, (lambda) 是一个阻尼参数 (parameter)。如果共同评分的物品数量 非常小,分式 将接近于零,从而有效地降低了相似度分值。随着 变大,该分式趋近于 1,调整后的相似度会更接近原始计算的相似度。根据数据集的不同, 的典型值可能是 50 或 100。这确保了只有基于足够重叠数据的相似度才会对最终预测产生强烈影响。
虽然均值中心化和显著性加权能有效改进基于邻域的模型,但稀疏性仍然是一个根本性的限制。这些方法仍然依赖于用户或物品之间的直接重叠。
我们将在下一章中介绍一种更高级的方法,即完全跳过直接比较。矩阵分解技术学习用户和物品的低维表示,通常被称为隐因子。这些模型捕捉潜在的品味和属性,而不需要直接重叠,使其在处理稀疏数据时本质上更有效。目前,了解如何管理邻域模型中的稀疏性为理解为什么这些基于模型的方法如此有效提供了坚实的基础。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•