S-GRec:Personalized Semantic-Aware Generative Recommendation with Asymmetric Advantage¶
Fidelity: 完整核心链路。本地实际执行 causal LLM LoRA judge、方面打分 SFT+GRPO、用户条件权重 pairwise GRPO、SID 自回归生成器、5% 稀疏 semantic sampling,以及从相同 SFT checkpoint 初始化的 Reward-Sum、Adv-Sum、A2PO。模型规模与数据规模缩小,腾讯私有人工广告标注和 eCPM 模型由公开 Office 行为与 Qwen embedding 构造的监督替代。
论文信息¶
| 项目 | 内容 |
|---|---|
| 论文链接 | arXiv 2602.10606 |
| 公司/机构 | Tencent / WeChat Channels |
| 首次公开日期 | 2026-02-11(arXiv v1) |
| 原文开源代码 | 否:论文未提供官方/作者代码(核查日期:2026-08-09) |
| Adapter | s-grec |
| 本地复现代码 | src/auto_research/reproductions/s_grec/ |
原始论文总结¶
背景与主要改动¶
生成式推荐通常只从行为日志学习 next-item likelihood,难以理解用户为何偏好某个内容;直接把 LLM 放到在线链路又无法满足工业延迟。S-GRec 将 LLM 仅作为离线语义 judge:两阶段 Personalized Semantic Judge(PSJ)先输出可解释的方面证据,再学习每个用户的方面权重;轻量生成器线上只生成 Semantic ID,不依赖 LLM。
论文的第二个问题是语义目标可能与收入目标冲突。A2PO 不直接相加异量纲 reward,而是在 rollout group 内分别标准化 business 与 semantic advantage,以 business 为锚;只有两个 advantage 同向时才加入语义项,并把有效语义贡献限制在 business advantage 的幅度以内。线上只对 5% 样本调用 PSJ。
flowchart LR
H["用户历史与上下文"] --> PA["PSJ Part A:方面 SFT + GRPO"]
C["候选文本"] --> PA
PA --> S["Profile / Future / Novelty / Context"]
H --> PB["PSJ Part B:用户条件权重 pairwise GRPO"]
S --> PB
PB --> RS["semantic reward"]
G["轻量 SID 生成器"] --> Y["group rollouts"]
Y --> RB["business reward"]
Y --> RS
RB --> A["A2PO:同向 gate + magnitude bound"]
RS --> A
A --> G
G --> O["线上生成;无 LLM judge"]
原论文关键图¶
原论文 Figure 2(关键图):展示原论文的训练流程与关键优化环节。图片来自原论文,版权归原作者所有;点击图片可查看来源。
核心公式¶
PSJ 输出方面向量 \(\mathbf{s}(x,a)\),用户条件 aggregator 输出非负且归一化的权重 \(\mathbf{w}(x)\):
对偏好对 \(a_i\succ a_j\),采样一组离散权重向量,并以排序一致性作为 pairwise reward:
A2PO 的融合 advantage 与自适应系数为:
因此 \(|\lambda A_{\mathrm{sem}}|\le |A_{\mathrm{biz}}|\)。最终把 \(A\) 代入 clipped group policy objective。
论文离线与线上效果¶
- Office:MiniOneRec HR@10 0.1634、NDCG@10 0.1242;S-GRec 为 0.1689、0.1308,相对约 +3.4%、+5.3%。
- Industrial:MiniOneRec HR@10 0.1586、NDCG@10 0.1167;S-GRec 为 0.1632、0.1202,相对约 +2.9%、+3.0%。
- PSJ Part A:Qwen3-4B SFT+GRPO 的 PairAUC 0.8116、PointAcc 0.8687。
- Reward-Sum 在 Office HR@10 降至 0.0904;论文用它说明原始 reward 直接相加会失稳。
- 5% semantic sampling 达到 Office 全量调用表现的 99.1%,推理成本约降低 20 倍。
- WeChat Channels 20% 广告流量:GMV +1.19%、GMV-Normal +1.55%、CTR +1.16%、dislike -2.02%。
本地复现¶
本地对照口径:基线是相同公开 Office 数据、相同 SID Transformer 和 600-step 训练预算的 MiniOneRec-style
businessSFT checkpoint;实验组a2po从完全相同 checkpoint 初始化并执行 240 次策略更新,test HR@10 相对 0.00%,NDCG@10 相对 -4.53%。A2PO 按预声明的 validation HR@10 优先规则晋级;这不是相对 DIN,也不是论文线上 A/B。
本地使用完整 3,459 商品目录,并过滤用户历史物品;不是 sampled-candidate 指标。训练数据为 12,000 条 Office 序列,validation/test 各固定抽取 96 个用户。公开数据没有时间和位置,因此按论文 Amazon 设置删除 Context,只训练 Profile、Future、Novelty 三个离散方面。
| Variant | Validation HR@10 | Validation NDCG@10 | Test HR@10 | Test NDCG@10 |
|---|---|---|---|---|
| MiniOneRec-style SFT | 0.09375 | 0.07949 | 0.04167 | 0.03013 |
| Reward-Sum | 0.10417 | 0.07450 | 0.04167 | 0.02877 |
| Adv-Sum | 0.10417 | 0.07450 | 0.04167 | 0.02877 |
| A2PO | 0.10417 | 0.07450 | 0.04167 | 0.02877 |
PSJ SFT loss 从 1.3690 降到 1.1725;point accuracy 从 0.3490 提升到 GRPO 后的 0.3802,pairwise accuracy 为 0.5938。A2PO 在 240 次更新中实际调用 PSJ 9 次(随机实现的 5%),语义/business advantage 同向率 42.36%,平均有效系数 0.1426,幅度约束越界 0 次。三个策略消融使用完全相同的 rollout、负例和 semantic-query mask。
多轮迭代先修正了 embedding 标签塌缩,再把 MiniOneRec 基线固定为 SFT checkpoint,关闭生成器 dropout,最后统一所有消融的 rollout 随机种子。最终 clipping fraction 为 0;A2PO 在 validation HR@10 上晋级,但未改善 held-out 指标,因此不宣称效果复现成功。
稳定指标见 metrics/office-seed42.json。模型、checkpoint、公开数据和原始 runs/ 均不提交 Git。
复现边界¶
- Qwen3-4B PSJ 缩小为 SmolLM2-135M;Qwen2.5-1.5B MiniOneRec 缩小为 0.41M 参数 SID Transformer,但 judge、两阶段训练、生成和策略路径均实际执行。
- DeepSeek-R1 初标、20k 人工 point-wise 与 40k pairwise 私有广告标注不可获得;本地用真实 next-item 对比和 Qwen item embedding 构造三方面离散监督。这是最大的数据保真度差异。
- 公共数据没有货币信号,business reward 使用论文明确允许的 ground-truth next-item ranking proxy;不把它称为 eCPM。
- 本地未复刻 GRPO Sample Server、周期发布和 WeChat 广告库存,但 serving 模型本身不调用 PSJ,保留论文离线 judge / 在线轻模型的边界。
