趋近智
基于内容和协同过滤是推荐系统中使用的两种截然不同的模型。基于内容过滤侧重于物品的内在属性,会问:“这个物品有哪些特征?”相比之下,协同过滤侧重于用户的群体行为,会问:“其他用户是如何与这个物品互动的?”每种方法都从不同的视角来解读推荐问题。混合系统基于一个简单而有效的出发点:将这些不同的视角结合起来,可以创建一个更准确、更具韧性的推荐器。
组合模型的主要动机是弥补每种单一方法的固有缺陷。例如,基于内容的模型可以利用描述性元数据为新物品生成推荐,有效解决了物品冷启动问题。然而,它无法捕捉到用户交互模式中体现出的细微品味。协同过滤在这方面表现优异,但在交互数据稀疏时(如面对新物品或新用户)会失效。通过将两者融合,我们可以构建一个这样的系统:在交互数据匮乏时依靠内容,并在用户历史记录增加时向协同信号倾斜。
构建混合系统并没有一种通用的方法。所选策略通常取决于可用数据、具体的业务需求以及现有的计算资源。不过,大多数混合技术都可以归入几个成熟的类别。这些方法的主要区别在于如何以及何时组合来自各组成模型的信号。
下图展示了混合系统的一般流程,其中输入数据由不同的模型处理,然后将它们的输出组合起来,生成最终统一的推荐列表。
该图显示了两个独立的模型流水线,一个是协同过滤,另一个是基于内容的过滤。它们的输出在混合阶段汇合,从而产生最终的推荐。
让我们来看看图中“混合逻辑”所代表的最常用策略。
这种方法也被称为混合式混合,是最直接且常用的技术之一。它的工作原理是计算两个或多个不同推荐器的预测分数,并使用线性公式将它们组合起来。例如,如果你针对同一个物品有一个基于内容的分数 () 和一个协同过滤分数 (),你可以计算最终的混合分数:
在这里, 是一个介于 0 和 1 之间的权重 (weight)参数 (parameter),用于控制每个模型的影响力。如果 ,则表示将 70% 的权重分配给基于内容的分数,30% 分配给协同分数。 的最佳值通常是通过测试不同的数值并衡量其对线下评估指标的影响,从而根据经验确定的。这种方法实现简单,通常能带来明显的性能提升。
切换混合不是为每个物品混合分数,而是使用一组业务规则来决定在给定情境下使用哪个推荐器。系统根据特定标准在模型之间切换。一个常见的例子是将用户或物品冷启动问题作为切换条件:
这种策略使系统能够体面地处理某个模型可能表现不佳的情况。这种逻辑简单有效,确保了根据数据的可用性应用最合适的算法。
混合式混合方法涉及同时展示不同推荐器的输出。你不需要将分数合并为一个数值,而是通过从每个模型中提取前几个热门物品来构建最终的推荐列表。例如,视频流媒体服务可能会显示一行标记 (token)为“因为你看了‘科幻动作片’”(基于内容)的推荐,同时显示另一行标记为“像你一样的用户都在看”(协同过滤)。
另一种实现方式是合并排序列表。例如,你可以用矩阵分解模型的结果填充推荐列表的前五个位置,然后用基于内容模型的结果填充接下来的五个位置,以促进物品的发现。
这种技术是一种更集成的混合方法。你不是组合最终的输出(分数或物品列表),而是组合模型使用的底层特征集。例如,你可以训练一个像 SVD 这样的矩阵分解模型来生成隐性的用户和物品向量 (vector)。这些代表协同信号的向量随后可以作为基于内容模型(例如梯度提升机或神经网络 (neural network))的额外输入特征。这创建了一个单一的统一模型,它可以同时从内容属性和用户交互模式中学习。虽然实现起来更复杂,但这种方法通常可以产生非常准确且个性化的推荐。
在接下来的章节中,我们将重点实现一个加权混合系统,为你提供组合模型以提高推荐质量的实践基础。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•