Title: 流形约束推理新思路!傅聪团队联合厦大提出 ManCAR,自适应测试时计算带来 46%排序增益 | BestBlogs.dev
URL Source: https://www.bestblogs.dev/article/1ca97990?amp%3Butm_medium=feed&%3Butm_campaign=resources&%3Bentry=rss_article_item
Published Time: 2026-07-04 13:16:00
Markdown Content: 作者 | 傅聪团队
审校 | 蔡芳芳
1 研究背景:推理式推荐真的在推理用户兴趣吗?
过去几年,生成式推荐逐渐成为主流方向。从最初的自回归序列建模,到引入多步 Reasoning 机制,模型开始显式模拟“推理过程”,而不再只是一次性打分排序。对推理能力的投入,并不仅是模仿 LLM,而是在生成式推荐语境下探索一个更本质的问题:在固定训练成本下,是否可以通过增加 Test-Time Compute,实现 Test-Time Scaling Law,从而换取更高的预测质量与更强的个性化能力。
在推荐场景中,引入推理主要有两条路径。一类沿着文本空间展开,例如从 OneRec 到 OneRec-Think,通过显式生成中间文本,模拟类似 CoT 的推理流程。另一类则在隐式概念空间中进行多步迭代更新,例如从 ReaRec 到 OnePiece 所代表的 Latent Reasoning for Generative Recommender(LRGR)。相比长链条文本推理,LRGR 不生成冗长中间输出,而是在潜在表示空间中进行少量、可控的 refinement,因此更具工业落地的可行性。
然而,一个关键问题逐渐浮现:LRGR 到底在“推理”什么?它真的在逐步推导用户兴趣,还是仅仅在做更深层的表示变换?
回看主流 LRGR 方法,如 ReaRec(ERL、PRL)、LaRES、PLR,虽然结构形式不同,但本质一致:通过循环或分层结构反复 refine latent reasoning state。在参数共享或近似共享的前提下,多次更新隐状态,希望通过“多走几步”获得更好的 next item 预测。然而,其监督信号几乎完全来自最终的 next item 目标,中间 reasoning state 本身并没有额外的结构约束或语义目标。
这与 LLM 领域中的 Loop Transformer 或 Hierarchical Reasoning Model 类似:通过增加推理深度提升效果,但并未对中间状态的几何结构或演化方向进行明确建模。推理收益主要来自更深的计算路径,而非更清晰的状态转移机制。
因此,这类方法与“直接增加模型深度”在本质上差异并不大。它们确实增强了 latent state 的预测能力,却没有回答一个更核心的问题:在推荐语境下,什么才是有效的推理?中间状态应当如何转移,才能称为结构化 reasoning,而不是简单的深层特征变换?
如果无法定义 latent state 的转移规则,那么所谓的“多步推理”仍然只是更深的计算图,而非真正的 reasoning。这正是当前 LRGR 范式的关键局限所在。
为了解决这一问题,傅聪团队联合厦门大学提出了 ManCAR(Manifold-Constrained Adaptive Reasoning,流形约束自适应推理) 框架。该框架的核心在于,不再让隐状态在无约束空间中自由迭代,而是将多步推理重构为在用户协同行为流形上的结构化导航——每一步更新都受到几何约束与语义方向的引导,从根本上避免了现有方法中常见的“隐式漂移”(latent drift)问题。这使得“多步推理”第一次真正具备了推导意义,而非仅仅是更深层的特征变换。实验数据显示,这种自适应测试时计算的引入,能够带来 NDCG@10 最高 46.88% 的显著提升,已经被 KDD2026 接收。
从这个意义上说,ManCAR 不仅是首个有理论支撑、真正实现了有意义的“推理过程引导”的生成式推荐框架,也为测试时扩展定律在推荐系统中的落地提供了一个可验证的实践范本。论文上线后迅速引发广泛的关注,不仅在 Hugging Face Daily Paper 上取得当日第二名的好成绩,更在 X 和 YouTube 等平台被多位技术大 V 自发转发与讨论。
2 ManCAR:迈向可控、可解释的自适应推理
参考 LLM 领域中较为标准的 Latent Reasoning 工作,例如 CoCoNut,可以看到一个重要事实:有效的 reasoning 是需要“过程监督”的。CoCoNut 的核心做法,是将原本冗长的多步 CoT 中间过程,压缩到有限数量的 latent reasoning state(token)之中。也就是说,每一个 latent reasoning token 都承载着明确且彼此区分的语义信息,从而实现推理空间中 latent concept state 的“渐进式”转移,而不是简单地重复计算同一类表示。
如果要借鉴这种方式,我们就需要为推荐过程中的中间状态赋予差异化的、与用户意图转移相关的语义信号,用以监督这些过程状态的演化。否则,多步推理仍然只是更深层的状态更新,而不是有效的状态转移。
然而,当我们沿着 CoCoNut 这条路径走到 LLM 推理技术的前沿时,会发现已经“没有现成作业可抄了”。此时,与其继续在语言模型的推理框架中寻找答案,不如回到推荐系统自身的成功经验。借助协同过滤工程中长期积累的结构先验,引导推荐场景中的“隐式推理”,或许才能走出一条真正属于推荐系统的推理技术路线。
回看推荐系统中被广泛验证的各类有效技术,Item-to-Item Graph 无疑承载了最充分的“协同过滤结构”。从协同过滤的视角出发,当 Item A 和 Item B 被某类用户群体大量共同进行(positive)交互时,如果某个用户已经交互过 Item A 却尚未交互 Item B,那么当他再次打开推荐 App,我们就有较高的置信度将 Item B 推荐给他,并预期他可能会产生兴趣。这正是推荐场景中典型的群体行为规律。也正因如此,在工业实践中,几乎家家都会构建一套 Swing I2I 链路作为基础兜底机制,用以稳定地刻画和利用这种协同结构。
因此,直觉上,我们似乎可以让模型沿着 Graph 上的“路径”完成推理状态的转移。在推荐行业“黑话”中,我们通常将用户最近的几次行为称为(Interest)Trigger,那么这些 Trigger 的 Graph Neighbor 自然可以作为用户当前兴趣的 Candidates。推理过程就可以理解为在这些 Candidates 构成的“兴趣网”上进行游走。
然而,如果真的按照这种方式“显式枚举”路径,效率会非常低。用户兴趣本身具有周期性与跳跃性,与当前兴趣或潜在意图相关的 Trigger 可能多达数百个,对应的一跳、二跳路径数量更是呈指数级增长。让模型在这样一个高度离散的路径空间中逐条搜索和游走,不仅计算代价高,而且泛化能力有限——用户兴趣的演化并不一定严格沿着 Graph 中预定义的离散路径前进。
因此,ManCAR 的核心思想并不是在 Graph 上做显式路径搜索,而是利用 Trigger 到 Neighbor Candidate 的结构约束,学习一个 Local Manifold(局部流形)。通过对过程损失函数的设计,在“历史序列的最新状态”与“用户目标兴趣区域”之间塑造一个“势能盆地”,使原本离散的路径空间被连续化。这样,推理过程不再是 Graph-Walking,而是被引导在一个连续的 Manifold 上平滑演化,从而自动找到通向目标兴趣区域的“连续路径”,实现 Manifold-Constrained Adaptive Reasoning。
3 ManCAR 理论解读
ManCAR 希望实现两个高度相关且极具野心的目标:一是为推理过程提供有效的语义监督,二是在 Test-Time 实现真正的自适应推理。要做到这一点,首先必须把“过程状态”显式定义出来,而不是让它隐含在黑盒的 hidden state 之中。
生成式推荐的基本建模目标是 Next Item Prediction,对应标准的交叉熵损失。我们引入一个用户兴趣意图变量 c,对原始的交叉熵进行分解。直观来看:
其中:
* G 是 SwingI2I Graph
* In 是 Trigger 集合 i 是目标 Next Item
* H 是历史序列
那么,q(c | In, G)可以理解为,在给定 Graph 结构和 Trigger 的条件下,用户兴趣意图的分布;
而 p(c | H) 则是则是由模型参数化()得到的、基于历史序列 H 所预测的用户兴趣分布。
当我们把 c 具体化到 Item 粒度,那么 c 可以被理解为由 Trigger 在 Graph 上 n 跳扩展得到的 Neighbor 集合。此时,目标 Item i* 要么就是 c 中的一员,要么位于 c 所定义的 local manifold 的邻近区域。
在这样的设定下,ManCAR 的过程监督逻辑就变得清晰:通过损失函数的第一项,明确“方向”:在给定 c 和 H 的条件下,将预测分布推向 i* ;同时通过第二项对齐 q(c | In, G) 与 p(c | H) 分布,约束 latent state 的迁移,使推理状态始终被限制在由 c 所定义的 manifold 上。
也就是说,第一项确保模型朝着正确目标收敛,第二项则塑造推理轨迹的几何结构。方向与结构同时被监督,推理过程不再只是深度计算,而成为在受约束流形上的有序迁移。
这里可能会有一个自然的疑问:KL Divergence 本质上是对齐两个概率分布,它如何“塑造流形”?这个所谓的流形空间,究竟是定义在哪个空间中的?
我们可以把问题拆开来看。设 h 为推理时的隐状态,那么 p(c | H) 的计算过程是:先将 h 与整个 item embedding table 做内积,得到 logits;再对 logits 施加 softmax,得到在 item 词表上的概率分布 p。也就是说,h 并不是直接被约束在某个几何空间中,而是通过 embedding table 被映射到了 item 空间对应的概率单纯形(simplex)上。
在这个意义下,我们可以将 p 理解为学生分布,将 q(c | In, G) 理解为教师分布。通过最小化 KL(p || q),梯度会作用于 h,使其在 embedding table 所张成的空间中调整方向,从而改变 p 在 simplex 上的位置,更正式地,我们可以证明:
这意味着,在 KL 优化过程中,梯度会推动 h 逐步调整,使得 p 更接近 q,而 q 又定义了一个在 item embedding space 上的加权中心(可以理解为 barycenter)。
因此,这里的“流形”并不是直接存在于 h 的原始空间中,而是通过 embedding 映射,在 item embedding space 上被诱导出来的一个局部光滑区域。当 q 集中在某个由 Graph 和 Trigger 定义的邻域内时,KL 对齐会促使 h 的投影分布 p 也集中到该邻域,从而在 item embedding space 上形成一个由教师分布定义的局部连续结构。
换句话说,KL 本身并不直接定义几何流形,但通过 embedding 映射与分布对齐,它间接地约束了 latent state 在 item embedding space 中的演化方向,使其逐步靠近由 q 所定义的局部 barycenter。正是在这种投影与对齐的作用下,我们得到一个在 item embedding space 上光滑的 local manifold,而推理过程则被限制在该结构附近演化。
接下来,更重要的在于引出模型的“自适应推理能力”,我们证明了如下 Proposition:
看起来很复杂,解释起来很简单。在两个条件成立的情况下:
那么,在多步推理过程中,学生分布与最终教师分布之间的误差是指数有界的。换句话说,只要教师分布的变化是平滑的,学生分布就可以逐步逼近并收敛在教师分布附近。这为“自适应推理”提供了理论上的稳定性保证。
问题在于:为什么教师分布要“动态变化”,而不是固定不动?
回顾前面提到的、类似 ELBO 的损失分解,如果两项监督都是静态的。例如,第一项始终逼迫模型预测目标 item i*,第二项始终要求学生分布贴近一个在 graph neighbor 上的固定均匀分布,那么每一步推理所接收到的监督信号都是相同的。这会产生内在冲突:第一项希望模型尽快向目标集中,第二项却希望推理状态停留在 graph 邻域的中心。
而我们的真实意图并非让模型“原地拉扯”,而是希望它能够从当前用户兴趣状态出发,沿着 graph 所支撑的 manifold,渐进式地迁移到目标 item 附近。也就是说,监督信号本身应该体现这种迁移过程。
因此,教师分布不应是静态的。它应当从“贴近”最近 neighbor 的分布开始,随着推理步数增加,逐步向以 i* 为中心的更“尖锐”的分布过渡。对应到损失函数上,我们需要对这个类似 ELBO 的目标实施一种调度策略,使教师分布随推理步数动态调整,从而为学生分布提供渐进式的引导,而不是一次性、静态的约束。
另外,理论中证明的度量是 TV,不是 KL 散度,这里我们掏出数学工具 Pinsker 不等式:
说明优化 KL 其实是优化 TV 的上界。
4 ManCAR 实现方法
具体来说,ManCAR 的模型可以如此实现:
针对第一项,我们增加一个随步数变化的温度系数:
其中:
同时把最近的 Trigger 的 neighbor 以类似“LLM Context Engineering”的方式插入到序列中,来实现这个监督函数:
而针对第二项,ManCAR 设计了一种特殊的教师分布:
这里对 Trigger 的 neighbors 定义了一个顺序(rank),Swing 权重大的靠前排,此外,目标 Item i也需要被包括进来成为 c 的一部分,为了和主推理方向一致, i的方向永远是 0,这就保证了它永远排第一。因此用负 rank 构造的这个 softmax 分布就保证了以 i为中心。而逐渐减小的温度系数保证了这个教师分布会越来越在 i的位置上变“尖锐”。
通过高效的 Transformer 结构设计以及多步推理相关超参数的合理调优,我们可以在实践中尽量满足 Proposition 2.2 所依赖的两个条件:一是学生分布能够稳定跟随教师分布的变化节奏,二是教师分布在相邻步骤之间的变化幅度保持可控。这样一来,学生分布在多步推理过程中就能够逐步逼近目标分布,从而学习到一种“分布渐进收敛”的自适应推理机制。
在此基础上,推理阶段的策略也就自然明确:我们可以实时监控相邻两步推理之间的 KL Divergence。当这一数值低于预设阈值时,可以认为当前 latent reasoning state 已经基本收敛,即“沉入盆底”。此时继续增加推理步数带来的收益有限,模型即可自适应地停止推理,实现真正意义上的 Test-Time 自适应计算。
5 ManCAR 实验结果
ManCAR 在 7 个 Amazon Reviews 数据集上进行了实验:
可以看到 ManCAR 显著超越了以往方法,最多实现了 40%+的提升。
从各类方法的最优推理步数来看,以往的方法最优配置就是 Train-Test 对齐,而 ManCAR 可以根据数据集难度和推理难度不同,实现截然不同的 Train-Test 算力分布。
跟随 ReaRec 和 PLR 的惯例,ManCAR 也做了效果天花板(Ceiling Performance)分析。具体做法是:假设我们拥有“上帝之眼”,在测试阶段直接利用 test set 的 label,为每个 sample 选择其最优的推理步数,从而得到该方法在“最优停止策略”下所能达到的上限表现。
这个实验带来的结论很直观:ManCAR 的自适应推理不仅显著优于不推理的方案(ContextBert4Rec:对 Bert4Rec 做与 ManCAR 类似的 context engineering,将 Trigger 的 neighbors 作为额外序列信息拼接进输入),也优于“过度”推理的方案(强制 ManCAR 推理到训练阶段使用的最大步数)。更重要的是,ManCAR 的自适应停止策略能够将性能推到非常接近天花板的水平。
对比之下,我们可以观察到 ReaRec 和 PLR 与各自的天花板表现仍存在明显差距,说明它们的推理步数更多是在“固定深度计算”意义下起作用,而未能有效逼近样本级别的“个性化”最优推理深度。
消融实验同样给出了很一致的信息:只要去掉 KL 监督,或者不把 Graph 先验(Trigger 的邻域信息)作为额外序列上下文引入,性能都会出现显著下滑;同时,推理状态的调度策略一旦设计不当,也会带来明显损失。
具体来说,主要有两类“错误调度”会出问题:
第一类是不调度,也就是教师分布(或过程监督分布)在各推理步之间保持不变。这样每一步接收到的监督信号完全相同,推理过程缺乏“阶段性目标”,容易变成重复的深度计算,难以形成真正的渐进式状态迁移。
第二类是过于激进的调度。典型做法是让温度系数从一个较大的数值单调下降(类似 ReaRec 的调度思路),而不是像 ManCAR 采用单调上升的策略。单调下降的策略会使模型在第一步就被强烈鼓励“锐化分布并朝向目标 item i 收缩”,从而让第一步学习变得很困难,它相当于要求模型一开始就要给出非常明确的 i 方向,才能获得更小的损失。
这与我们的理论分析是相悖的。按照我们的设定,推理初期更合理的状态应当是停留在用户当前/近期兴趣区域附近,并以可控的节奏逐步迁移,而不是一上来就大跨步逼近 i* 。如果教师分布在第一步就变化得过快、过尖锐,学生分布就很难“跟上老师的节奏”,从而破坏 Proposition 2.2 所依赖的平滑跟随条件,也就更难学到稳定的分布收敛过程。
6 总结与未来工作
ManCAR 是首个有理论保证、提供有效推理过程语义监督的自适应推理推荐方法,在公开数据集上取得了显著的效果。ManCAR 的未来工作将会集中在将 ManCAR 的方案在大规模工业场景落地,并探寻冷启动这种 SwingI2I 不擅长的场景中的推荐推理技术。
Arxiv:https://arxiv.org/abs/2602.20093
HuggingFace:https://huggingface.co/papers/2602.20093
GitHub:https://github.com/FuCongResearchSquad/ManCAR
数据集:https://huggingface.co/datasets/PIIR/ManCAR
今日好文推荐