.. _gr_intro: 推荐范式的演进 ============== 在过去的十余年里,推荐系统领域经历了从传统机器学习到深度学习的演进,模型的表达能力不断增强,业务指标也持续提升。然而,当我们回顾这一发展历程时会发现,无论模型如何演变,其底层的建模范式始终没有改变——我们一直在做\ **判别**\ 。给定一个候选物品集合,模型需要判断用户是否会对某个物品感兴趣,本质上是在解决一个分类或排序问题。 这种判别式范式在工业界已经发展得相当成熟。从简单的协同过滤,到矩阵分解,再到如今复杂的深度神经网络,模型的核心目标始终是学习一个打分函数 :math:`f_\theta(u, i, c)`\ ,用于估计用户 :math:`u` 在上下文 :math:`c` 下对物品 :math:`i` 的兴趣程度。为了应对海量物品库和严苛的延迟约束,工业推荐系统进一步演化出了多阶段级联架构:从粗粒度的召回,到精细化的粗排和精排,再到最终的重排序,每个阶段都承担着特定的任务,共同完成从百万量级物品到最终推荐列表的筛选过程。 这套体系在实践中行之有效,却也逐渐暴露出一些深层次的局限:多阶段级联带来的目标不一致和误差累积问题难以根治,判别式模型对每个物品独立打分的方式难以捕捉序列依赖性,而海量参数的Embedding层又难以充分利用现代硬件的计算能力。 正是在这样的背景下,\ **生成式推荐**\ 作为一种全新的建模范式开始崭露头角。与判别式模型不同,生成式推荐不再将推荐视为一个对候选集打分的过程,而是将其重新定义为一个\ **序列生成任务**\ 。模型不再被动地判断“这个物品是否应该被推荐”,而是主动地学习“用户接下来会与哪些物品交互”的生成过程。这一范式转变看似微妙,却带来了根本性的改变:从局部的打分决策转向全局的概率建模,从多阶段级联转向端到端优化,从固定的候选集转向开放的生成空间。 在接下来的内容中,我们将首先回顾判别式推荐的经典建模方式,剖析其核心思想与固有局限;随后引入生成式推荐的基本概念,阐明其如何通过序列生成视角重新定义推荐任务;最后,我们将深入对比两种范式在目标函数、信息流动方式和架构设计上的本质差异,帮助读者建立起对生成式推荐的完整认知框架。 判别式推荐的建模方式 -------------------- 判别式推荐的核心是学习一个条件概率分布 :math:`p(y=1|u, i, c)`\ ,用于预测用户 :math:`u` 在上下文 :math:`c` 下对物品 :math:`i` 产生正向交互(如点击、购买)的概率。这一建模方式直观且高效,在工业界得到了广泛应用。 现代深度学习推荐模型几乎都遵循“Embedding & MLP”范式。首先,将用户ID、物品ID以及各类特征通过嵌入层(Embedding Layer)映射为稠密向量;随后,这些向量经过多层感知机(MLP)或更复杂的特征交互模块进行处理,最终输出一个标量分数,表示用户对该物品的兴趣强度。这一范式的优势在于其灵活性——通过设计不同的特征交互模块(如FM、DeepFM、DCN等),模型可以捕捉各种高阶特征交互模式;通过引入序列建模模块(如DIN、SIM等),模型可以刻画用户的短期兴趣和长期偏好。 然而,这种建模方式也带来了一些固有的问题: **参数效率问题**\ :Embedding层通常占据了模型90%以上的参数量,但这些参数是稀疏的、低效的,难以充分利用现代硬件的计算能力。 **语义建模缺失**\ :判别式模型将每个物品视为独立的原子单元,物品ID之间没有任何语义关联,缺乏对物品语义关系的建模,导致冷启动问题难以解决。 **多阶段级联困境**\ :为了应对海量物品库和毫秒级延迟约束,工业推荐系统不得不采用多阶段级联架构。召回、粗排、精排、重排序等各个阶段通常由不同的模型负责,每个模型的优化目标各不相同(召回关注相关性,排序关注点击率或转化率),导致全局目标难以对齐。更严重的是,每一次级联都会丢失信息——召回阶段可能因为简单的相似度计算而过滤掉潜在的优质物品,这些物品在后续阶段根本没有机会被模型看到。这种逐级筛选的方式虽然保证了效率,却也让系统陷入了“局部最优”的困境,难以实现真正的端到端优化。 生成式推荐的核心思想 -------------------- 生成式推荐从根本上重新定义了推荐任务。它不再将推荐视为一个对候选集打分的判别问题,而是将其建模为一个\ **序列生成过程**\ 。给定用户 :math:`u`\ 、上下文 :math:`c` 以及用户的历史交互序列 :math:`i_{1:T}`\ ,生成式推荐的目标是学习这个序列的生成概率: .. math:: p_\theta(i_{1:T} | u, c) = \prod_{t=1}^{T} p_\theta(i_t | i_{