生成式推荐系统:自回归预测与全物品MLE的数学等价性解析
1. 从“猜你喜欢”到“生成推荐”一个范式转变的底层逻辑最近和几个做推荐系统的朋友聊天发现一个挺有意思的现象。大家聊起“生成式推荐”时总绕不开两个听起来很“学术”的词自回归下一词预测和全物品最大似然估计。前者听起来像是大语言模型LLM干的事后者则是传统推荐系统里评估模型好坏的老朋友。很多人直觉上觉得用生成式模型做推荐不就是让模型像写文章一样“生成”出用户可能喜欢的物品序列吗这跟传统推荐里用模型去“估计”用户对所有物品的喜好概率好像不是一回事。但事实真的如此吗我花了些时间仔细推敲了这两者背后的数学原理发现了一个非常深刻且实用的结论在生成式推荐的特定建模框架下优化自回归下一词预测的目标与优化全物品的最大似然估计目标在数学上是等价的。这个“等价性”不是拍脑袋的直觉而是有严格的数学证明作为支撑。理解这个等价性不仅能让我们看清生成式推荐到底在“学”什么更能为模型设计、损失函数选择乃至效果评估提供一个坚实统一的理论视角。今天我就把自己推导和思考的过程结合实际的推荐场景掰开揉碎了和大家聊聊。简单来说传统推荐可以看作“选择题”系统有一个固定的物品库选项A, B, C...模型的任务是判断用户对每个选项的偏好概率然后挑出概率最高的那几个。而生成式推荐尤其是基于序列建模的更像“填空题”或“续写题”给定用户的历史行为序列比如“用户看了A买了B收藏了C”让模型预测下一个最可能出现的物品是什么。这个“预测下一个”的过程就是自回归。那么一个很自然的问题是模型通过“续写”学到的规律如何保证它对整个物品库的“认知”是全局最优的这就引出了最大似然估计。证明它们的等价性就是证明“做好填空题自然就能答对选择题”。2. 概念澄清什么是自回归下一词预测与全物品MLE在深入证明之前我们必须把战场打扫干净明确交战双方到底是谁。很多讨论之所以鸡同鸭讲就是因为对基本概念的定义模糊不清。2.1 自回归下一词预测序列的“惯性”学习自回归下一词预测是序列生成模型如GPT、Transformer Decoder的核心训练范式。在推荐系统的语境下我们可以这样形式化地定义它假设我们有一个用户的行为序列S [i_1, i_2, ..., i_t]其中i_k表示用户交互过的第k个物品物品ID。模型M的参数为θ。自回归训练的目标是让模型能够根据已经出现的序列前缀预测序列中下一个出现的物品。其损失函数通常为负对数似然L_AR(θ) - Σ log P_θ(i_t | i_1, i_2, ..., i_{t-1})这个求和遍历训练数据中所有序列的所有位置t。它的核心思想是“用历史预测未来”。模型在训练过程中会反复看到这样的样本输入“A, B, C”目标输出是“D”。它需要学会从海量序列中捕捉物品之间的转移概率和用户的动态兴趣模式。例如买了咖啡机的用户下一个很可能买咖啡豆看了三部科幻电影的用户下一部很可能还是科幻片。模型学习的是序列的“条件概率分布”。在实际操作中这通常通过Transformer Decoder结构实现。我们将序列中的物品ID通过嵌入层转化为向量加上位置编码输入Transformer块。模型最后一层通过一个线性层映射到整个物品词表大小然后通过Softmax函数输出在给定历史下下一个物品是词表中每一个物品的概率。训练时我们使用交叉熵损失让模型对真实的下一个物品赋予高概率。2.2 全物品最大似然估计全局的“偏好”打分最大似然估计是统计学中参数估计的经典方法。在推荐系统里它通常与“评分预测”或“点击率预估”模型关联。其思想是对于给定的用户-物品对(u, i)我们有一个观察到的交互信号如点击、购买记为y_{ui} 1未交互则可视为y_{ui} 0。模型M需要输出一个概率值P_θ(y_{ui}1 | u, i)表示用户u对物品i的偏好概率。全物品MLE的目标是让模型对所有观察到的正样本(u,i)预测出高概率同时对所有未观察到的或负样本预测出低概率。其损失函数可以写作忽略负采样等技术细节的理想形式L_MLE(θ) - Σ log P_θ(y_{ui}1 | u, i)这个求和遍历所有观测到的正交互对。它的核心思想是“全局匹配”。模型学习的是一个静态的、用户和物品之间的匹配函数。经典的矩阵分解MF、神经协同过滤NCF都是在这个范式下。它不关心交互发生的顺序只关心“谁和谁”发生了交互。模型输出的是对所有物品的一个“偏好分”排序。注意在序列推荐中“全物品MLE”有一个更具体的含义。它不再针对静态的(u,i)对而是针对序列中的每一个位置t。即在时刻t给定历史序列模型需要为整个物品库中的每一个物品i估计一个概率P_θ(i | S_{t})。我们的训练目标是让模型对真实出现的下一个物品i_t估计的概率最大。这其实就是多分类交叉熵损失的本质。因此序列推荐中的全物品MLE损失可以写成L_MLE(θ) - Σ log P_θ(i_t | S_{t})。看这个形式已经和自回归的损失L_AR(θ)一模一样了到这里敏锐的你可能已经发现了在序列建模的框架下当我们把“全物品”定义为词表中的所有物品把“条件”定义为历史序列时两个损失函数在形式上似乎就是同一个东西。但这只是表象我们需要从建模假设和概率图模型的角度去理解为什么它们本质上是同一回事。3. 等价性证明的核心序列数据的概率图建模要证明两个目标等价我们需要一个统一的“世界观”来描述推荐序列数据是如何产生的。概率图模型为我们提供了完美的工具。3.1 序列的联合概率分解让我们从一个最基本的假设开始一个长度为T的用户交互序列S [i_1, i_2, ..., i_T]的生成是一个顺序过程。根据概率的链式法则这个序列的联合概率可以分解为一系列条件概率的乘积P(S) P(i_1) * P(i_2 | i_1) * P(i_3 | i_1, i_2) * ... * P(i_T | i_1, i_2, ..., i_{T-1}) Π_{t1}^{T} P(i_t | i_1, ..., i_{t-1})这里我们约定P(i_1 | ∅) P(i_1)。这个分解是唯一且精确的它没有引入任何额外的假设只是概率论的基本法则。它告诉我们一个序列出现的可能性等于其第一个物品出现的先验概率乘以在第一个物品出现的条件下第二个物品出现的概率以此类推。3.2 自回归模型的学习目标现在我们引入一个参数化模型P_θ(i_t | S_{t})来近似真实的条件概率P(i_t | S_{t})。自回归模型的目标就是通过学习来让这个近似尽可能准确。如何衡量“准确”最直接的方法就是让模型预测的序列联合概率P_θ(S)尽可能接近真实数据中序列出现的概率或相对可能性。我们通过最大化模型下数据的似然来做到这一点。对于单个序列S其似然就是P_θ(S)。对于整个数据集D我们最大化所有序列的联合似然等价于最大化对数似然之和max_θ Σ_{S∈D} log P_θ(S) max_θ Σ_{S∈D} Σ_{t1}^{|S|} log P_θ(i_t | S_{t})这正是我们前面定义的自回归下一词预测的损失函数L_AR(θ)取负号后的目标。也就是说最小化L_AR(θ)等价于最大化序列数据的对数似然。3.3 全物品MLE视角的重新解读那么全物品MLE在哪里呢关键在于对P_θ(i_t | S_{t})的解读。在序列的每一个预测点t模型面对的任务是从包含N个物品的完整词表V中选出唯一的一个物品作为下一个物品i_t。这是一个标准的多分类问题。分类的类别就是所有物品共N类。在多分类问题中最大似然估计的标准做法就是使用交叉熵损失。具体来说对于位置t的真实物品i_t我们可以构造一个N维的 one-hot 向量y只有在i_t对应的位置为1其余为0。模型P_θ的输出是一个N维的概率分布p满足Σ_{j1}^{N} p_j 1。交叉熵损失为CE(y, p) - Σ_{j1}^{N} y_j log(p_j) - log(p_{i_t})因为只有y_{i_t}1。这个-log(p_{i_t})正是-log P_θ(i_t | S_{t})。因此在序列的每一个位置t最小化交叉熵损失以预测下一个物品本质上就是在该位置、给定历史条件下对真实物品i_t进行最大似然估计。现在我们把所有序列的所有位置加起来L Σ_{S∈D} Σ_{t1}^{|S|} CE(y_t, p_t) Σ_{S∈D} Σ_{t1}^{|S|} -log P_θ(i_t | S_{t})这就是在整个数据集上对所有序列位置样本进行的全物品最大似然估计。这里的“全物品”体现在模型输出的概率分布p覆盖了整个物品词表V这里的“最大似然”体现在我们使用交叉熵/MLE作为优化准则。3.4 等价性结论由此我们可以清晰地看到两条逻辑链的汇合自回归链为了建模序列的联合概率P(S)我们使用链式法则将其分解为条件概率的乘积。通过最大化数据似然来学习模型参数我们得到了优化条件概率P_θ(i_t | S_{t})的目标即自回归下一词预测损失。MLE链在序列的每个位置预测下一个物品是一个以整个物品词表为类别的多分类问题。解决这个多分类问题的标准方法是最大似然估计其损失函数为交叉熵即-log P_θ(i_t | S_{t})。对所有样本求和即得到全物品MLE损失。两条链的终点是同一个数学表达式- Σ log P_θ(i_t | S_{t})。因此优化自回归下一词预测与在序列每个位置进行全物品最大似然估计在数学目标和最终实现的损失函数上是完全等价的。这个等价性告诉我们像GPT那样训练的语言模型当被用于序列推荐任务时通过将物品视为“词”它不仅仅是在学习“续写”更是在隐式地、端到端地学习一个能够为整个物品库生成精准概率分布的全局推荐模型。它没有绕过“评估所有物品”这一步而是通过Softmax over entire vocabulary这一步天然地、强制性地进行了全局比较和归一化。4. 实践意义统一视角下的模型设计与调优理解了理论上的等价性能给我们的实际工作带来哪些具体指导呢我认为至少有三点。4.1 损失函数选择的“心安理得”在构建生成式推荐模型时我们有时会纠结到底该用标准的交叉熵损失还是需要设计更复杂的、针对推荐任务的损失函数如BPR、TOP1等这个等价性证明给了我们一个明确的答案对于标准的、以物品ID为词元的自回归生成模型使用交叉熵损失就是进行全物品的MLE这在理论上是完全合理的。这并不意味着其他损失函数不好而是让我们理解交叉熵损失的“默认选择”有着坚实的统计学基础。它旨在直接优化排序列表最顶端的准确性即下一个物品的预测概率。在实际应用中这通常与推荐系统的核心目标如命中率HR、归一化折损累计增益NDCG高度相关。4.2 处理大规模物品库的关键采样与近似理论是美好的但现实是骨感的。全物品MLE要求模型在每一步都为所有N个物品计算概率这在N达到百万甚至千万级别的推荐场景中计算Softmax的代价是无法承受的。这正是在实践中自回归推荐模型面临的最大挑战。等价性视角帮助我们看清了各种优化技术的本质它们都是在保持MLE目标不变的前提下对计算过程进行的近似。负采样如Word2Vec的负采样或推荐中常用的Sampled Softmax。它不再计算所有负样本的梯度而是随机采样一小部分负样本如几千个与正样本一起参与当前步骤的梯度计算。从MLE视角看它是对真实梯度的一个无偏或近似无偏的估计。其有效性在于对于海量负样本随机采样足以提供有代表性的“对比信号”。分层Softmax根据物品的流行度构建一棵哈夫曼树将一次N类分类转化为一系列二分类将计算复杂度从O(N)降到O(logN)。这可以看作是对概率计算路径的一种工程优化其目标仍然是近似原始的MLE。核心技巧无论采用哪种近似评估模型时最终的兴趣指标如RecallK仍然需要在全物品集或一个很大的候选集上进行计算。这提醒我们训练时的近似不能损害模型全局排序的能力。我们需要定期在验证集上进行全量评估以确保近似训练没有引入严重的偏差。4.3 模型容量与过拟合的再思考在传统推荐模型中我们常担心模型能否从有限的(u,i)交互中学到有效的表示。在自回归的MLE视角下这个问题有了新的维度。模型P_θ(i_t | S_{t})的容量必须足够大以捕捉历史序列S_{t}中复杂的、高维的依赖关系并将其映射到N维概率分布上。Transformer架构的强大表征能力正好满足了这一需求。然而这也带来了过拟合的风险。等价性证明强调模型是在最大化序列的似然。如果模型容量过大它可能会去“记忆”训练序列中特定的、偶然的物品组合而不是学习普遍的转移规律。例如它可能记住了“用户U1234在买了A之后总是买B”但这只是因为U1234的个人特殊习惯而非A和B之间有普遍关联。因此正则化变得至关重要。Dropout、权重衰减、序列噪声注入如随机掩盖历史物品、以及限制模型深度和宽度都是防止模型在MLE目标下过拟合到训练数据噪声上的必要手段。我们需要在“拟合序列数据分布”和“保持泛化能力”之间找到平衡。5. 超越等价性生成式推荐独有的优势与挑战证明了等价性并不意味着自回归模型只是传统MLE模型的一个复杂实现。恰恰因为其自回归的序列生成形式它带来了一些独特的优势和新的挑战这些是传统“打分-排序”范式所不具备的。5.1 优势自然融合多模态与推理自回归模型的核心优势在于其“生成”能力。它将推荐问题框架为一个条件生成任务这带来了极大的灵活性。多模态内容生成模型不仅可以生成物品ID还可以直接生成文本推荐理由、图像风格搭配图甚至代码配置模板。例如输入“我想去一个温暖的海边度假预算中等”模型可以自回归地生成“目的地三亚推荐酒店XX湾豪华海景房推荐活动潜水、沙滩烧烤理由...”。这是传统的CTR模型无法直接做到的。序列决策与规划对于需要多步决策的场景如旅游路线规划、课程学习路径、游戏关卡推荐自回归模型可以自然地生成一个连贯的序列[i_1, i_2, i_3, ...]而不仅仅是下一个物品。模型在生成每一步时都会考虑之前已生成的路径从而实现全局协调。复杂条件推理用户输入可能是复杂的自然语言查询。自回归模型能够理解这些查询并在生成过程中持续参考该条件。这比传统模型先将查询转化为特征再计算匹配分数的两步流程更为端到端和统一。5.2 挑战曝光偏差与评估困境自回归范式也引入了新的问题。曝光偏差在训练时模型学习的是基于真实历史数据分布来预测下一个词。但在推理生成推荐时模型是在基于自己之前生成的结果来预测下一个词。如果模型在第一步就生成了一个在训练数据中不常见的物品那么它后续的生成就可能进入一个“陌生领域”导致错误累积生成质量下降。这在需要生成长序列时尤为严重。评估指标的不匹配传统的推荐评估指标HR, NDCG是针对一个静态的推荐列表设计的。而对于生成式推荐特别是生成长序列时如何评估整个生成序列的质量是看序列中是否有任何一个物品命中还是看序列的顺序合理性又或者是看生成内容的多样性、新颖性和连贯性这需要设计新的评估体系。可控性与可解释性自回归模型像一个黑盒我们很难精确控制它生成序列的某些属性例如确保生成的五个物品来自三个不同的类别。虽然可以通过提示工程、条件控制生成等技术进行引导但其可控性仍不如传统模型中对各个物品独立打分后再通过规则过滤来得直接。同样解释“为什么生成这个序列”也比解释“为什么这个物品得分高”更困难。5.3 实操心得在等价性框架下扬长避短基于上述理解在实践中我有几点体会不要神话生成式推荐它和传统方法在优化目标MLE上是同源的。它的优势在于模型架构Transformer带来的强大序列建模能力和生成灵活性而非目标函数本身。因此在物品库相对稳定、需求主要是“下一个”推荐的场景经过高度优化的传统模型如深度兴趣网络DIN可能仍然是简单有效的选择。解决曝光偏差的尝试在训练中可以混入一定比例的“计划采样”或“课程学习”。例如在训练后期以一定概率用模型自己上一轮预测的物品或采样得到的物品作为下一步的输入而不是永远使用真实数据。这可以让模型适应推理时的分布。另一种思路是使用强化学习将序列的整体质量如用户观看时长、完播率作为奖励信号来微调模型。评估时需多管齐下对于生成式推荐系统我建议采用分层的评估策略下一个物品预测沿用传统的HRK, NDCGK评估模型生成的第一顺位物品的质量。这是其MLE本质的核心能力检验。短序列生成如生成3-5个物品可以计算这些物品组成的集合与用户真实后续交互集合的相似度如Jaccard相似度或计算序列级的NDCG。长序列生成与多样性除了命中率必须加入多样性指标如类别熵、基尼系数、新颖性指标推荐非热门物品的比例以及人工评估生成的连贯性和合理性。利用等价性进行热启动当你有一个训练好的传统推荐模型例如一个双塔模型它已经学到了不错的物品和用户表示。你可以将这些表示作为初始化来加速自回归推荐模型的训练。例如将传统模型的物品嵌入矩阵作为自回归模型嵌入层的初始化值。因为两者的底层任务学习物品的分布式表示是相通的这通常能显著减少训练时间和数据需求。证明自回归下一词预测与全物品最大似然估计的等价性不仅仅是一个有趣的数学练习。它为我们搭建了一座桥梁连接了生成式AI的前沿技术与推荐系统经典的统计学习基础。这座桥梁让我们能够以更清晰的视角审视生成式推荐它既不是凭空出现的魔法也不是对传统的彻底颠覆而是一种在新的模型架构Transformer和问题框架序列生成下对推荐本质——即预测用户偏好概率——的重新表达和实践。理解这一点我们在面对是否要采用生成式推荐、如何设计模型、如何解决其固有缺陷等问题时就能做出更理性、更有依据的决策。技术的浪潮总是不断涌现新的名词和范式但剥开外壳其内核的数学原理和优化目标往往有着深刻的延续性。抓住这些不变的本质我们才能在新工具的浪潮中站稳脚跟灵活运用而不是疲于奔命地追逐每一个新概念。在实际项目中我越来越倾向于采用这种“原理驱动”的视角它帮助我在纷繁复杂的技术选项中找到那条最坚实、最有可能通往目标的路径。