STREAM-Rec: 推荐系统实现慢思考推理!

推荐算法大模型向量数据库
                                                                                                          © 作者|张君杰‍‍‍‍‍‍‍‍‍‍‍  

机构|中国人民大学

研究方向|推荐系统、大模型

推荐系统一直在追求精确的用户兴趣预估:如何根据用户历史行为预测其下一个感兴趣的内容?目前主流的方法基本都是“快思考”,即模型直接给出推荐。具体来说,它们往往遵循“encode → match”的范式:把用户历史行为编码成向量,作为用户表示,然后和所有物品匹配,选出得分最高的进行推荐。这使得模型的性能很大程度上依赖于编码,匹配能力。但我们认为,有些推荐任务其实需要“慢思考” 。比如,当用户兴趣模糊、行为稀疏时,模型是否可以像人类一样“逐步分析、接近目标”?在我们的新工作《Slow Thinking for Sequential Recommendation 》(STREAM-Rec)中,我们提出将慢思考范式引入序列推荐 ,通过三阶段训练框架,让推荐系统学会“先想一想,再推荐”。

picture.image

论文题目:Slow Thinking for Sequential Recommendation

论文链接: https://arxiv.org/pdf/2504.09627

简介‍‍‍‍‍‍‍‍‍‍‍‍‍‍

当前的序列推荐系统普遍采用“快思考”的范式:模型编码用户历史行为,然后直接匹配下一个物品。这种方式简单高效,却很容易在遇到用户稀疏行为或复杂偏好时表现不佳。为此,一些研究提出利用大语言模型(LLM)强大的推理能力,来分析用户的历史行为,并编码高质量用户表征。然而,这些方法无疑带来了新的挑战,例如大模型通用知识和推荐领域知识不一致、大模型推理效率低等问题。这些挑战启发我们:是否能够激发传统推荐模型的推理能力,来增强其推荐性能?最近,一些工作提出,“测试时扩展 (test-time scaling)”可以有效提升模型的逻辑推理能力。

受这些工作的启发,我们尝试将“慢思考 (slow thinking)”范式引入推荐系统,期望传统推荐模型可以像人类一样,一步步分析用户行为、生成推理过程,最后再给出更精确的推荐结果。然而,尽管现有的大模型慢思考工作证明了这一技术路线的可行性,发展慢思考推荐模型仍然存在不小的挑战:

  • 与数学、代码等问题中明确定义的推理步骤不同,我们并不知道如何形式化定义推荐的思考过程,使得模型可以从用户历史行为逐步推导出目标行为。
  • 传统推荐模型并不是为慢思考范式而设计的。经典的推荐训练任务,如下一个物品预测 (next item prediction) ,并不能鼓励模型生成多步推理过程。

为了解决上述挑战,我们提出了STREAM-Rec,通过一个完整的三阶段训练框架:预训练 (Pretrain) → 监督微调 (SFT) → 强化学习 (RL), 来激发传统推荐模型的慢思考能力。具体来说,在预训练阶段,我们合成了大量的长链行为数据,通过大规模预训练,使得模型捕捉用户的行为模式并实现长程建模。在微调阶段,我们设计了一种迭代推理机制,引导模型通过生成中间步骤,逐步逼近用户目标行为,从而构建显式的“思维轨迹”。在强化学习阶段,我们引入多种奖励函数,让模型主动探索更优推理路径,实现思考能力的自我进化。通过这三阶段训练,STREAM-Rec 不再依赖“一步到位”的匹配,而是具备逐步分析用户意图的能力,从而在复杂推荐场景中做出更准确、更可解释的推荐

picture.image

研究方法

  1. 预训练——捕捉用户行为模式并实现长程建模

我们首先利用用户历史行为数据预训练一个基于T5架构的生成式推荐模型。具体来说,我们通过 Residual Quantized VAE(RQ-VAE)分词器将每个物品的表征转化为离散 token,使推荐变成 token 序列生成任务,方便引入推理路径。进一步,为了训练模型建模长距离依赖,我们不仅要求模型直接生成目标物品的 token,还检索了一组语义相近物品的 token 拼接到目标序列。通过扩长预训练语料,来增加 decoder 的学习跨度。

picture.image

picture.image

  1. 监督微调——引导模型学会一步步推理

2.1 用于数据收集的迭代推理机制

picture.image

上述过程中,我们通过检索相似物品的tokens,简单的合成了一批固定的长链路径。尽管这种方式可以提升 预训练模型的长程建模能力,它显然无法提升模型的复杂推理能力。在这一阶段,我们进一步探索怎么生成高质量的推理数据,以支持模型实现复杂的推理模式。具体来说,我们提出 迭代推理机制: 引导模型从初始状态出发,预测当前状态和目标物品之间的残差距离,作为应当修正的方向。通过不断将残差向量插入输入序列并提示模型计算新的残差距离,使得模型一步步修正自己的状态,逼近目标物品的表征。通过这个迭代过程可以构建出一条符合模型状态变化的“思考轨迹”,并用于后续的监督微调。

具体来说,迭代推理过程包含以下几个步骤:

  • 1)初始状态建模:给定用户的历史交互序列,模型首先编码出初始状态 s0 , 作为对用户偏好的初始预估。而目标物品的表示 t 可以通过其对应token的表示聚合得到。
  • 2)计算残差:模型预估状态和目标物品表示 之间的残差距离可定义为

picture.image

它表示当前模型状态应当修正的方向。我们的目标是不断的减小这个残差距离, 使得模型状态可以逐渐逼近 t .

  • 3)残差量化,伪标签生成:基于当前残差距离r,找到词表中与之最接近的token,表示“模型下一步应该往哪个方向修正”

picture.image

  • 4)状态更新:将上一步生成的伪token拼接到模型输入序列后,并预测新的表征。此时,模型的状态可以更新为

picture.image

通过重复步骤2-4,直到达到迭代上限,模型可以生成一个序列的伪标签,最终逼近用户的目标行为。此时,这一伪标签序列即可作为模拟的中间推理轨迹,和目标物品token序列拼接在一起,得到监督微调的标签数据:


picture.image

2.2 监督微调训练策略

构造出思考轨迹后,我们还设计了多种 loss, 确保模型不仅能生成推理路径,还能“用得好”这些中间的推理过程

1)状态-目标对比损失

对于模型每一步预估出的状态 s,我们都希望它逐渐靠近目标 t. 我们基于in-batch对比学习的方式来训练:

picture.image

其中 w 是权重系数,鼓励路径中越靠后的token越接近目标。

2)残差量化损失

为了保证上述过程生成的伪token和残差距离 r 保持一致,我们额外引入了量化损失:

picture.image

3)监督微调损失

我们基于上述过程合成的标签数据来监督微调我们的生成模型,即L_SFT.

除此以外,为了进一步增强模型对中间推理过程的利用效率,我们引入了一个基于“快思考”的推荐模型作为参考模型。我们希望模型基于中间思考路径生成的推荐结果可以优于参考模型直接生成的推荐结果。为此,我们对比了二者的输出,并通过DPO进行优化,即:

picture.image

其中正样本是用户的目标行为,而负样本则通过采样与正样本具有相似表征的物品得到。 3. 强化学习——让模型自由探索更有效的推理过程

监督微调后,模型已经掌握了“怎么想”。然而,大量的微调可能导致模型记忆固定的模式,导致次优的结果。为此,我们引入强化学习,允许模型从经验中学习,自主探索新的推理路径,并实现更灵活的推理模式。为此,我们引入了Group Relative Policy Optimization (GRPO)算法,并设计了几种奖励信号,从多个角度鼓励模型更好地“思考”和“推荐”:

  • 格式正确奖励:惩罚无法解析出推荐结果的推理路径

  • 精确匹配奖励:奖励预测的token与目标物品token重合度高的答案

  • 语义相似奖励:奖励生成的隐向量表征和目标表征相似的答案,以解决硬匹配奖励信号稀疏的问题

  • 思维有效性奖励:奖励模型基于推理路径生成推荐结果优于参考模型直接生成推荐结果

  • 排序排名奖励:奖励模型基于推理路径预测目标物品的概率大于预测负样本的概率

实验结果

我们在两个真实的数据集进行了评测,结果如上表所示。我们提出的STREAM-Rec显著优于传统方法和现有生成式推荐方法,具体来说:

(1)传统推荐模型表现不佳。因为它们采用“快思考”范式,需在一步内准确建模用户兴趣、物品特征及其匹配关系,而传统轻量模型能力有限。已有的生成式推荐方法虽整体表现较好,验证了生成式方法的有效性,但仍需“直接”从历史交互中预估用户行为。

(2)经过预训练后,模型性能明显下降。这主要优于预训练阶段长链数据合成方式较粗糙。但这一阶段模型有效训练了模型的长程建模的能力,为后续微调和强化学习奠定基础。

(3)我们引入迭代推理机制,生成一大批高质量推理过程并监督微调,显著提升模型性能。这说明基于微调,模型的慢思考能力已被激活。它可以通过逐步生成合适的推理过程,最终预测出更精确的用户偏好。进一步引入强化学习后,模型还能自主探索更有效的推理模式,并展现更出色的推荐性能。

未来方向

在 STREAM-Rec 中,我们初步验证了“慢思考”范式在推荐系统中的可行性。但这只是一个开始,我们认为需要在以下几个方向继续深入探索:

  • 测试时扩展:目前STREAM-Rec的推理过程是固定长度的,即进行固定轮次的迭代推理。在大模型领域,一些工作指出更长的思考过程可能提升模型性能,然而一些工作却认为过长的中间过程可能导致模型过度思考。在推荐系统领域,我们仍不清楚,是否更长的推理过程能带来更好的推荐性能?

  • 训练时扩展:由于计算资源限制,我们仅在相对轻量的模型上进行了试验。在未来工作中,我们计划探索是否扩大模型规模可以提升模型推理能力。

  • 最优的“慢思考推理路径”:STREAM-Rec 目前依赖“残差-量化”构建推理路径,这是一种启发式的方式。本质上,它仍然带有一定的人工先验 。尽管我们通过引入强化学习策略来激发模型自由探索更有效的推理过程。我们也发现直接对冷启模型应用强化学习无法得到令人满意的效果。因此,我们可能需要更严格的理论分析,来探索更合适的推理模式。

  • 推理效率优化:不可否认的是,多步推理带来了额外的计算开销。为了让 STREAM-Rec 真正落地工业场景,我们未来会进一步提升推理效率,例如引入模型量化/蒸馏,精简推理路径等机制。

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
在火山引擎云搜索服务上构建混合搜索的设计与实现
本次演讲将重点介绍字节跳动在混合搜索领域的探索,并探讨如何在多模态数据场景下进行海量数据搜索。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论