Rethinking Personalized Generation: Test-Time Alignment via Factorized Ranking Models¶
会议: NeurIPS2026
arXiv: 2609.35695
代码: https://github.com/Martin-qyma/Rethinking-Personalized-Generation
领域: 推荐系统 / 个性化文本生成
关键词: 测试时对齐、候选排序、隐状态复用、个性化生成、排序引导解码
一句话总结¶
本文把个性化生成从“微调生成器”改写为“选出已有的合适候选”,用默认 2.8M 参数的 MLP 读取冻结生成器的表示来排序,在九个数据集上优于四种通用奖励模型,但仍落后于针对数据集微调的 8B 奖励模型;单轨迹解码引导只回收部分候选选择收益。
研究背景与动机¶
通用奖励模型通常判断回答是否有帮助、正确、流畅,但个性化写作还要求回答像某位用户会写的文字。两个候选都可能语言合格,却在措辞、内容重点和表达习惯上与目标用户的历史不一致。常见路线是为用户微调生成器,或者依据用户的成对偏好标注学习个性化奖励模型;前者更新大模型,后者又增加一个逐候选编码文本的评分器。本文首先追问:生成器真的不会生成合适答案,还是已经生成了,只是系统没有选出来?
作者对同一提示采样多个候选,再让评价指标自己选最高分答案。随着候选池从 1 扩到 64,ROUGE-L oracle 上界持续提高,而四个通用奖励模型中的最佳者大多停滞。这说明在这些基准的参考文本相似度意义下,存在可以通过选择获得的空间,并不意味着真实用户的主观偏好已经被 oracle 完整测量。更大的候选池也不会自动改善输出:评分方向不对,候选越多,越可能选中一般质量好、但不贴近目标用户的答案。
于是问题变成如何既学会这些细微差异,又不让评分成本随着大模型重复编码膨胀。生成器已有查询、用户画像和回答的语义表示,另开一个 8B 模型理解同一文本并非必要;小网络可以只学习“这些表示对应的回答有多接近参考文本”。核心 idea:冻结语言理解与生成部分,在其隐状态上训练共享的轻量候选排序器,用生成器自己的候选池提供细粒度监督,并把同一排序信号作为测试时选择或局部解码引导。
方法详解¶
整体框架¶
输入是任务查询、用户历史或摘要,以及生成器采样的候选回答;输出是候选池中预测效用最高的回答,或由排序信号引导生成的一个回答。冻结的 Qwen2.5-7B-Instruct 提供三类最终层末 token 表示,小型 MLP 将它们拼接后输出标量,训练时用候选与参考文本的 ROUGE-L 监督这一标量。标题里的 factorized 在这里主要体现为语言理解与评分解耦,不是显式学习每个用户的低秩参数。
流程包含三个相互连接的设计:隐状态复用减少重复理解文本的工作;候选池监督让评分器适应真正会遇到的相似候选;测试时选择与引导分别使用完整候选和当前解码状态。图中虚线表示训练监督,实线表示部署数据流,两个输出分支是替代使用方式,并非先做 Best-of-N 再引导解码。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["查询与用户画像"] --> B["冻结生成器"]
B --> C["隐状态复用"]
T["训练候选与参考文本<br/>ROUGE-L 标签"] -.-> D["候选池监督"]
C -.-> D
D -.->|训练共享 MLP| E["测试时选择与引导"]
C -->|推理表示| E
E -->|完整候选池| F["Best-of-N 选一个"]
E -->|单轨迹高熵步骤| G["调整 logits 后续写"]
关键设计¶
1. 隐状态复用:把文本理解留给生成器,把匹配判断交给小网络
传统奖励模型对每个候选重新读取提示与回答,重复承担昂贵的语言理解。本文取任务查询、序列化用户画像、候选回答的最终层末 token 隐状态,三者维度均为 3584,拼接后输入带 GELU 和 dropout 的 MLP。查询与画像在同一候选池内保持不变,可以每个查询计算一次;候选只提供不同的回答表示。因此 MLP 学的是固定特征空间里的效用映射,而非从头学习词语与上下文的语义。
用户画像也由同一个冻结模型表示,不存在独立用户编码器或每个用户的可学习向量。LaMP 画像是 BM25 检索的三个历史条目,LaMP-QA 是六个历史问题,XRec 则使用已有用户摘要,并在提示里提供物品摘要。一个共享排序器通过画像内容处理不同用户,而不是为新用户重新优化参数;“无需用户偏好标注”也不等于“无需用户历史或训练参考文本”。
必须区分架构设想与实现:附录 C.2 明确说当前代码用 vLLM 的 last-token pooling,在生成之外另跑一次表示提取。若服务框架能直接暴露生成隐状态,这次运行可以消除;论文的最低评分延迟针对已经拿到表示的 MLP,而不是当前实现的完整选择链路。对于怎样在不同文本序列化方式下严格等价地取得三类表示,缓存没有给出足以证明零额外运行的实现细节。
2. 候选池监督:从同一生成分布里学习难以区分的好答案
给排序器随机错误回答,很容易学到“是否通顺”而不是“哪个更像这个用户”。作者改用冻结生成器针对真实提示采样的候选,候选往往都可读,但与参考答案的词序、内容和风格重合度不同。这些同分布候选形成更贴近测试时选择问题的困难负例;负例的低 ROUGE-L 不能据此认定为真实主观偏好低,也不能保证其事实正确性。
每个候选的原始目标是对参考文本的 ROUGE-L,随后在同一提示的候选池内标准化为均值零、方差一。排序器只需学会池内相对好坏,不必预测“这条提示本身是否容易获得高分”。下面将标准化目标记为 \(z_i\),\(\bar s\) 和 \(\sigma_s\) 是该池原始分数的均值与标准差;这是原文标准化与 MSE 描述的合并写法,零方差池的处理未说明。
MSE 保留每个候选的目标数值,按候选逐个处理,比构建全部成对比较更直接。但这不是新损失,且附录的 Bradley–Terry、RankNet 和 listwise 目标成绩相近,不能把全部收益归因于 pointwise 回归。池内标准化也意味着评分不是恢复原始 ROUGE-L 的跨提示绝对标尺;原文关于“绝对效用可比较”的表述应限定到当前训练定义与实际池内选择用途。
3. 测试时选择与引导:完整候选排序和单轨迹局部修正各有边界
Best-of-N 是先完整生成 \(N\) 个回答,再计算预测效用并选最大者。增加 \(N\) 扩大可供选择的空间,却必须支付这些回答的生成成本;小 MLP 只是让新增候选的评分很便宜。原文把选择阶段的复杂度概括为从奖励模型的 \(\mathcal O(NL d_r^2)\) 降到浅层网络的 \(\mathcal O(Nd^2)\),这里 \(L\) 是序列长度,\(d_r\) 是奖励模型宽度,\(d\) 是生成器宽度。这是阶段性近似分析,不是完整 Transformer 计算、实际 MLP 各层宽度或生成总成本的精确公式。
排序引导生成则不建候选池,只沿一个解码轨迹续写。先计算当前 next-token 分布的熵 \(H_t=-\sum_v p_t(v)\log p_t(v)\);低于或等于阈值 \(\tau\) 时保留原始 greedy 选择。只有模型对下一 token 不确定时,才求排序器对当前回答隐状态的梯度,并通过语言模型输出头投影到词表空间,作为原 logits 的增量:
这里 \(W\) 是语言模型输出头,维度为词表大小乘隐状态维度;MLP 权重与生成器权重均不更新。它不是对整个生成器反向传播来微调,也不是给每个可能的后续回答调用另一个奖励模型。预测“当前表示往哪里移动得分会增加”,再用输出头将方向转换为 token 偏置,是这个设计的关键近似;完整回答监督是否适用于所有前缀,原文没有给出保证。
干预强度随超过阈值的熵增长,选择调整后 logits 的最大 token,再进入下一步:
共享默认参数为 \(\tau=1\)、\(H_{\max}=8\)、\(\alpha_0=5\),开头三 token 不干预。\(H_{\max}=8\) 是控制缩放的设定值,不应改写成词表熵必然达到的理论最大值。这条单轨迹方法与温度 1.0 的候选采样不同:它在敏感性分析中使用 greedy decoding、最多 48 个新 token,因此其成绩不能简单解释成“用同样生成分布免费得到 Best-of-64”。
一个完整示例¶
以 XRec 的一次用户—物品交互为例,提示中已有用户摘要和物品摘要,冻结生成器可以输出 64 条自然语言解释。查询与用户摘要表示只需共享,64 个解释分别提供回答表示;训练阶段才使用参考解释给这些候选计算 ROUGE-L,测试阶段不读取参考文本,而由 MLP 预测分数后选一个。这里没有额外要求该用户标注“解释 A 比解释 B 好”。
若改用排序引导生成,就从空回答开始续写:先跳过三个开头 token,以后低熵步骤照常选 token,高熵步骤才依据上述梯度调整词表 logits。它不会先生成 64 条解释,也不能事后从其他轨迹找回遗漏内容。这个例子只是原文流程的说明,不是额外实验或构造的数值结果。
损失函数 / 训练策略¶
默认 MLP 为三层、宽度 256、2.8M 参数,dropout 为 0.1。训练使用 AdamW,学习率 \(5\times10^{-4}\)、weight decay 0.01、batch size 64、15 epochs、梯度裁剪 1.0、单随机种子;只训练排序器,不更新 Qwen2.5-7B-Instruct。规模实验中的实际参数量为 1.0M、2.8M、12.1M、30.4M,图中简写为 1M、3M、10M、30M。
候选数存在原文口径差异:正文 4.1 说每个训练提示贡献 64 个候选,附录 C.2 说每个提示存储 256 个样本,Best-of-N 使用前 \(N\) 个,附录统一 \(N=64\)。两者可能分别指训练使用量和生成存储量,但缓存没有明确完整对应关系,不能自行写成统一的候选协议。
微调 8B 对照采用相同的 pointwise 目标和候选来源,却不是相同训练预算:每提示取最好、最差及六个随机候选,共八个;使用 1,500 个训练提示,LaMP-QA 使用全部 690–966 个可用提示。学习率 \(2\times10^{-5}\),一般一个 epoch,LaMP-QA 两个,序列截断到 2,048 token,单种子,在两张 B200 上进行完整微调。因此“相同数据与目标”的概括不能替代具体计算预算说明。
实验关键数据¶
主实验¶
覆盖 LaMP 的 News、Scholarly、Tweet,LaMP-QA 的 Art、Lifestyle、Society,以及 XRec 的 Amazon、Yelp、Google。LaMP 评估提示分别为 1,889、2,498、1,495;LaMP-QA 为 77、99、108;XRec 每个域 3,000。LaMP-QA 本来提供 rubric 而非答案,本文使用 Personalized RewardBench 的对应参考答案,并将问题按 90/10 划为排序器训练与评估,不能把这组答案笼统称为提问用户亲自写的文本。
以下是附录表 4 的 held-out BLEU:所有排序器保持不变,本文只用 ROUGE-L 训练,再对 Best-of-64 选出的回答评估 BLEU。它表明在这些选择器之间有跨词面指标优势,不代表本文总能找到池内真正 BLEU 最大的候选。
| 数据集 | 本文 BLEU | Skywork | InternLM2 | URM | ArmoRM |
|---|---|---|---|---|---|
| News | 0.0387 | 0.0330 | 0.0297 | 0.0326 | 0.0316 |
| Scholarly | 0.0671 | 0.0528 | 0.0503 | 0.0593 | 0.0544 |
| Tweet | 0.1150 | 0.1050 | 0.0990 | 0.1105 | 0.1083 |
| Art | 0.0259 | 0.0202 | 0.0205 | 0.0214 | 0.0225 |
| Lifestyle | 0.0217 | 0.0166 | 0.0148 | 0.0168 | 0.0170 |
| Society | 0.0277 | 0.0248 | 0.0235 | 0.0251 | 0.0247 |
| Amazon | 0.0822 | 0.0498 | 0.0446 | 0.0500 | 0.0370 |
| Yelp | 0.0417 | 0.0347 | 0.0332 | 0.0347 | 0.0347 |
| 0.0337 | 0.0274 | 0.0243 | 0.0272 | 0.0256 |
主 ROUGE-L 比较中,默认排序器在九个数据集的 Best-of-64 都超过四个通用模型,超过最佳通用模型的绝对差为 0.010–0.048。但微调 Skywork 8B 在九个域全部优于 30M 排序器:News / Scholarly / Tweet 差值为 0.012 / 0.019 / 0.026,Art / Lifestyle / Society 为 0.006 / 0.004 / 0.011,Amazon / Yelp / Google 为 0.004 / 0.006 / 0.008。正文把长文本 QA 差距概括为小于 0.01,与 Society 的 0.011 不一致,此处保留附录具体值。
消融实验¶
附录表 3 固定 2.8M 架构、数据和训练预算,仅改变损失。下表保留 MSE、一个 pairwise 目标和一个 listwise 目标;数值是 Best-of-64 ROUGE-L,不是上述 BLEU。
| 数据集 | MSE(默认) | Bradley–Terry | ListMLE |
|---|---|---|---|
| News | 0.1591 | 0.1545 | 0.1551 |
| Scholarly | 0.3962 | 0.3980 | 0.3967 |
| Tweet | 0.4120 | 0.4122 | 0.4135 |
| Art | 0.1547 | 0.1558 | 0.1557 |
| Lifestyle | 0.1488 | 0.1492 | 0.1492 |
| Society | 0.1495 | 0.1512 | 0.1527 |
| Amazon | 0.2650 | 0.2664 | 0.2670 |
| Yelp | 0.1920 | 0.1928 | 0.1930 |
| 0.1686 | 0.1694 | 0.1691 |
全六种目标的最大差距不超过 0.012,三个 XRec 域均小于 0.003;MSE 不是普遍最优。容量从 1M 增到 30M 时,每域变化最多 0.006,扩大小 MLP 并未稳定带来提高。这些现象支持“特征与监督比评分头容量重要”,但本文没有单独给出足够的候选训练量消融来定量拆出数据 scaling 的贡献。
附录表 8 给出单张 RTX A6000、64 候选的成本;以下各阶段不能互相当作同一个端到端计时。
| 阶段 | 每个候选 | 每个查询(64 候选) | 峰值显存 |
|---|---|---|---|
| 短文本候选生成 | 10.2 ms | 0.65 s | 约 40 GiB |
| 独立表示提取 | 2.08 ms | 0.13 s | 25–39 GiB |
| 已有表示上的 MLP 评分 | 0.0015 ms | 0.098 ms | 0.93 GiB |
| 四种大型奖励模型平均评分 | 37.1 ms | 2.38 s | 20.6 GiB |
只有不计表示提取的 MLP 评分实现四个数量级延迟优势;算上当前实现的独立提取后,选择约为每候选 2.1 ms,作者报告约 18 倍优势。长文本 QA 候选池生成约 11 s/查询,依然是显著成本。生成和表示提取用 vLLM,奖励模型用 HF transformers、batch size 32,因此时间差也含服务实现差异。
关键发现¶
- ROUGE-L 与 BLEU 在池内选择同一最高分候选的比例只有 12%–37%,跨指标改善有信息量;两者仍是词面指标,并不能替代用户评价。
- 单轨迹引导不是普遍优于采样排序:Tweet 为 0.426,对比 Best-of-64 的 0.412;News 为 0.136,反而低于 Best-of-1 的 0.144。多数数据集只达到 Best-of-1 至 Best-of-4 范围。
- 引导超参网格中的每域最大 ROUGE-L 波动不超过 0.0052;默认门控触发于 4%–39% 的解码步骤,这不是随机种子置信区间。
- XRec 的已见用户比较采用重新训练的排序器:Amazon / Yelp / Google 为 0.2641 / 0.1906 / 0.1685,GPO 为 0.2690 / 0.1957 / 0.1743。本文接近 VPL,但不超过所有个性化方法,且该协议不能直接与表 3 混用。
亮点与洞察¶
- 先用 oracle 检查候选池是否有可选空间,再投资轻量选择器,避免一开始就把所有问题归给生成器容量。这是可迁移到其他有用户参考文本的生成任务的诊断方式。
- 表示复用把已有大模型的语言理解变成共享基础设施。真正的工程收益取决于服务栈能否导出合适状态,而非只看 MLP 参数量。
- 附录把用户条件换成别人的条件后,已训练方法的 ROUGE-L 变化最多 0.0008。这提示候选在生成时已经带入大量个性化信息,不能据此证明排序器显式用户分支学到了强而独立的偏好机制。
局限与展望¶
- 评价依赖参考文本的词面相似度,没有用户主观偏好或风格一致性的人类实验;LaMP-QA 参考来源还比正文概括更复杂。可补真实成对选择、语义正确性与风格评价。
- 排序器与微调奖励模型均只跑一个种子;图中范围是三个数据集的最小值到最大值,不是多次训练误差条。小数点后细微差异不应被解释为统计显著。
- 所有主要实验使用一个生成骨干;冻结表示质量、用户历史稀疏、跨生成器迁移以及新用户分布变化仍需验证。历史分桶是观察性比较,不是控制历史长度的因果消融。
- 完整回答训练与前缀引导存在分布差异,且 greedy、48-token 设置限制了引导证据的范围。需要更长输出、更多解码设置及前缀校准实验。
- 保留两项原文冲突:正文训练候选数为 64、附录存储数为 256;正文称长文本 QA 微调优势低于 0.01、附录 Society 为 0.011。当前独立表示提取与理想的直接复用也应分别报告。
相关工作与启发¶
- vs 通用奖励模型:Skywork、URM、ArmoRM、InternLM2 都能看到同样的画像提示,但通用训练未对准参考文本匹配。本文改变监督与评分架构,并非证明大型奖励模型无法个性化。
- vs PAL / VPL / PReF / LoRe:这些方法根据目标用户的成对标签拟合或推断用户参数;本文只接收内容画像。附录在冻结表示与约 2.8M 匹配预算下实例化部分对照,结论限于该设置。
- vs GPO / SynthesizeMe:前者利用用户带标签上下文,后者用 persona 提示裁判进行候选淘汰。GPO 的原始成绩更高,说明额外监督仍可能有用,轻量化不是无损替代。
- vs FUDGE 等解码引导:本文从生成器状态取得可微评分,不另用网络重新编码每个前缀。可进一步研究更适配前缀的训练目标,但这属于研究线索而非已验证贡献。
评分¶
- 新颖性: 4/5,个性化候选匹配诊断与表示复用组合清晰,MSE 本身不是新意。
- 实验充分度: 3/5,九个数据集和多类对照较丰富,但单种子、词面评价与实现口径限制结论。
- 写作质量: 3/5,核心问题明确,候选数、参考文本来源及效率表述需要更严格统一。
- 价值: 4/5,适合已有用户历史和开放隐状态的生成服务,部署收益须计入生成与表示提取成本。