GFlowGR 将生成式推荐(GR)形式化为多步序列生成问题,用 GFlowNet 的 flow-matching 机制提供 Token 级别的监督信号(SFT/DPO/GRPO 只做 Item 级别),通过轨迹采样器(4 种策略)+ 多信号奖励模型(交互信号 + CM 预估 + Token 相似度)+ DB/TB 双 Loss 变体,在淘宝全量广告 1 亿+用户 A/B 测试中实现总营收 +0.43%、非首页搜索 +1.11%,训练成本仅为 SFT 的 2.1×。
📄 原文:https://arxiv.org/abs/2506.16114
🔗 关键词:GFlowNet · 生成式推荐 · Token 级监督 · 轨迹采样 · 多信号奖励 · DB/TB Loss
① 将 GFlowNet 引入 GR 微调,实现 Token 级别监督——SFT/DPO/GRPO 只能做 Item 级,GFlowNet 通过 flow-matching 对每个生成 token 给予奖励信号;
② 提出完整 GFlowNet 微调框架:4 种轨迹采样策略(含 CM-based Curriculum)+ 3 信号奖励模型 + DB/TB 双 Loss;
③ 淘宝全量广告 A/B 验证:1 亿+用户,总营收 +0.43%,非首页搜索 +1.11%,训练成本仅为 SFT 的 2.1×。
生成式推荐(GR)的核心范式
生成式推荐将推荐任务建模为自回归序列生成问题。其框架由三个核心组件构成:
Item Tokenizer
将每个 item $v$ 分解为 token 序列 $\{t_l\}_{l < L}$,作为 item 的语义标识符。例如一件天蓝色衬衫被编码为 $\langle a_1\rangle\langle b_4\rangle\langle c_2\rangle$。常用方案为 RQ-VAE(Residual Quantization + VAE),训练目标包含 codebook loss 和 reconstruction loss。
Generative LLM
接收用户 prompt(包含历史交互序列 + 用户画像),自回归地生成下一个 item 的 token 序列。整个生成的联合概率为:
- $U$:用户 prompt,包含历史交互序列 $[i_1, i_2, \ldots, i_t]$ 和用户画像信息
- $t_l$:第 $l$ 级 Semantic ID token(如 $\langle a_2\rangle$, $\langle b_4\rangle$, $\langle c_{10}\rangle$)
- $L$:item 标识符的长度(论文示例中 $L=3$)
- $\{t_i\}_{i < l}$:当前 token 之前的 prefix tokens
例如,给定用户历史交互 $\{\langle a_3\rangle\langle b_1\rangle\langle c_{15}\rangle, \langle a_1\rangle\langle b_4\rangle\langle c_2\rangle\}$,模型逐步生成 $\langle a_2\rangle \to \langle a_2\rangle\langle b_4\rangle \to \langle a_2\rangle\langle b_4\rangle\langle c_{10}\rangle$,最终解码为一个蓝色 polo 衬衫作为推荐结果。
标准 SFT 训练目标
SFT 的训练目标本质上是 next-token prediction loss——让模型学会在给定用户历史和已生成 prefix 的条件下,正确预测 ground-truth item 的每个 token。这个目标存在两个根本性问题:
- 问题一:只模仿单一 ground truth item。每个训练实例只有一个正样本 item,忽略了用户交互集合中其他有价值的相关 item。实际推荐场景中,一个用户可能同时喜欢多个 item,它们的"价值"也不尽相同(点击 vs 购买 vs 长停留)。
- 问题二:Value-unaware(价值无感知)。SFT 不区分不同 item 的价值差异——一个被购买的商品和一个仅仅浏览的商品,在 SFT 中被同等对待(都是 ground truth),这显然不符合推荐系统的排序目标。
现有微调方法的局限
SFT(监督微调)
- 仅模仿 ground truth token 序列
- 无法感知"生成得好不好"——没有价值信号
- 容易学到次优的 token 生成路径
- 每个训练实例只用一个正样本,忽略全交互集
DPO / GRPO(偏好对齐)
- 仅对整个 item 序列打分(Item 级别)
- 无法区分「第 1 步好 + 第 2 步差」vs「第 1 步差 + 第 2 步好」
- Token 级别的生成质量无法被精细优化
- DPO 用随机负采样,GRPO 用 on-policy 相对优势,但都只输出 Item 级 reward
| 方法 | 监督粒度 | Value-aware | 全交互集利用 | 生成多样性 |
|---|---|---|---|---|
| SFT | Item 级(仅模仿正样本) | ❌ 无感知 | ❌ 仅单一正样本 | ❌ 退化为 argmax |
| DPO | Item 级(偏好对) | ⚠️ 部分(chosen vs rejected) | ⚠️ 仅偏好对 | ❌ 仍退化为 argmax |
| GRPO | Item 级(组内相对优势) | ⚠️ 部分(组内排序) | ⚠️ 仅组内样本 | ❌ 最大化正样本概率 |
| GFlowGR | Token 级(每步 flow) | ✅ 完全感知 | ✅ 全交互集 | ✅ 按奖励比例采样 |
GFlowNet 的本质与为什么适合 GR
GFlowNet 的核心目标:Generative Flow Networks(GFlowNet)让生成概率正比于奖励:$P(\tau) \propto R(s_L)$。它通过在生成轨迹上的 flow-matching 机制,将终端奖励 $R(s_L)$ 反向传播到每一步 token 生成——这正是 Token 级监督的自然载体。
- $F(s_l)$:Flow estimator——状态 $s_l$ 的流值,表示经过该状态的"流量"(由网络预测)
- $P_F(s_{l+1} \mid s_l)$:前向转移概率——从 $s_l$ 生成下一个 token 转到 $s_{l+1}$ 的概率
- $P_B(s_l \mid s_{l+1})$:后向概率——$s_{l+1}$ 来自 $s_l$ 的概率
- Flow-matching 约束保证:进入每个状态的流量 = 离开每个状态的流量(守恒原理)
① 天然的多步生成结构:GR 的自回归生成天然是一个 DAG(有向无环图),每个 token 是图中的一个节点,从 $s_0 = \{\emptyset\}$ 逐步生成到 $s_L = \{\langle a_2\rangle\langle b_4\rangle\langle c_{10}\rangle\}$。GFlowNet 的 flow 守恒约束恰好可以作用于每个 token 生成步骤。
② Item Value Perception + 全交互集利用:通过 $P(\tau) \propto R(s_L)$,GFlowNet 不仅能让高奖励 item 的生成概率更高(排序能力),还能让生成概率按奖励比例分布(多样性)。同时,可以将用户的所有交互(点击、曝光未点击、未曝光)组织为不同奖励的轨迹,在一个训练步骤中全量利用。
假设用户历史交互中有三种 item:
点击的蓝色夹克($R = 1.0$):生成轨迹 $\tau_1 = \langle a_2\rangle\langle b_4\rangle\langle c_{10}\rangle$,GFlowNet 让 $P(\tau_1) \propto 1.0$,概率最高。
曝光但未点击的黄色衬衫($R = 0.24$):生成轨迹 $\tau_2 = \langle a_8\rangle\langle b_3\rangle\langle c_{10}\rangle$,GFlowNet 让 $P(\tau_2) \propto 0.24$,有一定概率但低于点击 item。
未曝光的灰色裤子($R = 0.06$):生成轨迹 $\tau_3 = \langle a_2\rangle\langle b_1\rangle\langle c_3\rangle$,GFlowNet 让 $P(\tau_3) \propto 0.06$,概率最低但仍有探索机会。
这样,GFlowNet 自然实现了"高价值 item 更容易被推荐"的排序能力,同时保留了多样性(低价值 item 仍有一定生成概率,不会被完全压制)。
GR 中 GFlowNet 的简化优势
在 GR 场景中,GFlowNet 的后向概率 $P_B$ 非常简单:
2.1 整体框架
GFlowGR 的核心思想:将 GR 的 token 序列生成视为 GFlowNet 的轨迹 $\tau = s_0 \to s_1 \to \ldots \to s_L$,其中 $s_l$ 是第 $l$ 个 token。通过 GFlowNet 的 flow-matching 约束,让每个 token 的生成概率 $P_F(s_{l+1} \mid s_l)$ 与最终的奖励 $R(s_L)$ 相关联。
2.2 轨迹采样器(Trajectory Sampler)
轨迹采样器的任务是:对于给定用户-交互对 $(U, v)$,将单一的 ground truth item $v$ 扩展为 $N$ 个 item 的交互集 $\{v_n\}_{n \leq N}$(其中 $v_1 = v$),从而提供更丰富的训练信号。GFlowGR 设计了 4 种轨迹采样策略:
| 策略 | 方法 | 特点 | 适用阶段 |
|---|---|---|---|
| Interaction Log | 从用户真实交互日志中截取同 session 的 $N-1$ 个 item | 保真度高,覆盖真实分布;但仅包含正面样本,稀疏场景可能不足 | 工业场景首选 |
| Random | 从 item 集合中随机采样 $N-1$ 个 item | 覆盖广,但质量低,大量无效轨迹(如"给喜欢蓝色衬衫的用户推荐黄色裤子");训练不稳定 | 基础增强 |
| CM-based Curriculum | 用 Click Model(CM)对候选 item 打分 $\hat{y}^{CM}_{v_n} = \text{CM}(v_n, U)$,按分数从低到高逐步引入 | 课程学习策略:先易后难。训练初期选低 CM 分(易区分负样本),后期选高 CM 分(难区分负样本),平衡探索与利用 | 推荐方案 |
| On-policy | 用当前 LLM 以 beam search 生成 top-$N$ 个负样本 | 在线策略,与模型当前能力匹配;但训练不稳定(模型自身生成的负样本质量随训练变化),计算开销大 | 补充策略 |
假设我们有 10 万条历史交互轨迹,每条轨迹对应用户点击了某个商品。
Batch 1(低 CM 分,"简单负样本"):先从 CM 预估分最低的 30% 轨迹中采样——例如给"喜欢蓝色正装的用户"推荐"黄色内衣",模型很容易分辨这不是好推荐,帮助模型快速建立 token 生成与奖励的基本关联。
Batch 2(中等 CM 分,"中等负样本"):再从 CM 预估分中等的 40% 轨迹中采样——例如"蓝色夹克"(与用户偏好相近但非最优),模型学习更复杂的 token-奖励映射。
Batch 3(高 CM 分,"困难负样本"):最后从 CM 预估分最高的 30% 轨迹中采样——例如"蓝色 Polo 衬衫"(几乎和 ground truth 一样好),迫使模型精调每个 token 的选择差异。
这种课程学习策略(Curriculum Learning)让模型从"容易分辨的 token"逐步过渡到"难以分辨的 token",避免了随机采样中大量低质量轨迹带来的噪声,同时解决了随机负样本在训练后期变得"太简单"而不贡献梯度的问题。
2.3 多信号奖励模型(Multi-Signal Reward Model)
GFlowGR 的奖励模型融合三种信号,解决传统 GFlowNet 奖励模型在推荐场景中的两个关键问题:(1)仅依赖交互信号无法评估未观测 item;(2)给增强样本赋零奖励会加剧曝光偏差。
$r_a$:交互信号(Interaction Signal)
标记 item 的交互层次。例如:
- $r_a = 10$:liked(收藏)的 item 轨迹 $\tau$
- $r_a = 1$:clicked(点击)的 item 轨迹 $\tau$
- $r'_a = 0$:augmented(增强)或 unpresented(未曝光)的轨迹 $\tau'$
最可靠的信号,但稀疏——大量 item 没有交互记录。
$r_c$:CM 预估分(Estimated Score)
协作模型对 item 吸引力的预估:
- $r_c = \hat{y}^{CM}_v$:正样本 $v$ 的 CM 分数
- $r'_c = \hat{y}^{CM}_{v'}$:增强样本 $v'$ 的 CM 分数
稠密信号(每个 item 都有预估分),但可能有偏差——CM 的预估精度不如 GR 模型本身。
$r_{\text{sim}}$:Token 相似度 / 格式奖励(Format Reward)
衡量生成 token 序列与 ground truth item 的部分匹配程度:
其中 $\mathbb{I}(\cdot)$ 是指示函数。例如 ground truth 为 $\langle a_2\rangle\langle b_4\rangle\langle c_{10}\rangle$,增强样本为 $\langle a_2\rangle\langle b_1\rangle\langle c_3\rangle$,则 $r'_{\text{sim}} = 1$(只有第一个 token 相同)。这个信号提供了 Token 级的格式约束,确保生成的 token 是有效 SID 且与目标 item 语义相近。
2.4 DB/TB 双 Loss 变体
由于 GR 中后向概率 $P_B(s_l \mid s_{l+1}) = 1$(前文已解释),GFlowNet 的 DB 和 TB Loss 在 GR 场景下有更简洁的形式:
Detailed Balance(DB)Loss — 步骤级
- $F(s_l)$:状态 $s_l$ 的流值(由 flow estimator 网络预测)
- $P_{GR}(t_{l+1} \mid U, s_l)$:LLM 生成 token $t_{l+1}$ 的前向概率(即 $P_F$)
- $F(s_{l+1})$:下一状态的流值;$F(s_L) = R(s_L)$(终态流值 = 奖励值)
- DB 在每个 token 步骤计算 loss,粒度最细——每个 token 都有独立的监督信号
- 适合大规模并行训练(每步 loss 可独立计算)
Trajectory Balance(TB)Loss — 轨迹级
- $Z$:全局标量,近似 $F(s_0)$(可学习参数或固定值)
- $\prod_{l=0}^{L-1} P_{GR}(t_{l+1} \mid U, s_l)$:完整轨迹的前向概率乘积
- $R(s_L)$:终态奖励
- TB 在完整轨迹上计算 loss,一条轨迹一个 loss 值——方差更小但粒度粗
- 适合对整条轨迹有清晰偏好的场景
假设一条 3-token 轨迹 $(s_1, s_2, s_3)$ 最终奖励 $R=0.8$。
TB Loss:只看整条轨迹——"模型认为这条轨迹的总概率 × Z,与 0.8 的偏差是多少?"一条轨迹一个 loss 值。相当于只看终点,不管中间过程。
DB Loss:看每一步——"模型认为 $s_0 \to s_1$ 的 flow 应该是多少?$s_1 \to s_2$ 呢?$s_2 \to s_3$ 呢?"每步都要满足 flow 守恒,一共 3 个 loss 项。每步都有独立监督信号。
DB 粒度更细,每步都有监督信号,适合并行训练。TB 粒度粗但方差更小,适合对整条轨迹有清晰偏好的场景。论文实验中 TB 在大部分场景表现更好,推测原因是 GR 的中间状态不唯一标识 item(同一个 prefix 可对应多个 item),使得 TB 的轨迹级优化更有效。
2.5 完整损失函数
GFlowGR 的完整训练损失将 SFT loss 和 GFlowNet loss 结合:
- $\mathcal{L}_{GR}(U, v)$:标准 SFT next-token prediction loss(Equation 1),确保模型保留基础推荐能力
- $\mathcal{L}_{GFN}(\tau_n)$:GFlowNet loss(DB 或 TB),对每条轨迹提供 Token 级监督
- $\lambda$:平衡系数,控制 GFlowNet loss 的权重。论文实验发现 $\lambda = 1.0$ 最优——过大($\lambda \geq 10$)会压制 SFT 的基础能力
- $N$:轨迹数量(含正样本 + 增强样本)。论文实验发现 $N=3$ 最优
2.6 训练与推理流程(Algorithm 1)
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 训练 Item Tokenizer | 用 $\mathcal{L}_T$(codebook + reconstruction loss)训练 tokenizer,将 item 转为 $L$-token 标识符 |
| 2 | 构建用户 Prompt | 将历史交互序列和用户画像转为 LLM 输入格式 |
| 3 | 获取正样本轨迹 $\tau_1$ | 将 ground truth item $v$ 转为 token 序列 |
| 4 | 轨迹采样:生成 $N-1$ 条增强轨迹 | 用 4 种策略之一(Interaction Log / Random / CM-based / On-policy)采样 |
| 5 | 计算前向概率 $P_{GR}$ | 对所有轨迹 $\tau_n$,LLM 输出每步的 token 生成概率 |
| 6 | 计算流值 $F(s_l)$ | Flow estimator 预测每个中间状态的流值 |
| 7 | 计算奖励 $R(s_L)$ | $R = r_a + r_c + r_{\text{sim}}$,多信号奖励融合 |
| 8 | 计算 $\mathcal{L}_{GFN}$ | 用 Equation 5(DB)或 Equation 6(TB)计算 GFlowNet loss |
| 9 | 计算 $\mathcal{L}_{GR}$ | 标准 SFT next-token prediction loss |
| 10 | 总 Loss $\mathcal{L} = \mathcal{L}_{GR} + \lambda \sum \mathcal{L}_{GFN}$ | 更新 LLM 参数 |
数据集与实验设置
| 数据集 | # Users | # Items | Sparsity | Avg. length |
|---|---|---|---|---|
| Yelp | 30,431 | 20,032 | 99.85% | 9.39 |
| Beauty | 22,362 | 12,101 | 99.92% | 7.87 |
| Instruments | 24,772 | 9,922 | 99.99% | 7.32 |
三个公开数据集的数据划分方式:每个用户的最后一个交互 item 作为测试样本,倒数第二个作为验证集,其余作为训练集。评估指标为 Hit Rate(R@5, R@10)和 NDCG(N@5, N@10),每个测试重复 3 次(随机种子 {42, 43, 44})。
Backbone 模型:TIGER( pioneering GR 框架)和 LETTER(引入协同 item embedding 和多样性约束的 tokenizer)。Baseline 包括 SFT、GRPO、DPO、S-DPO、SPRec、IPA。
公开数据集主实验(Table 2)
以下展示 Beauty 数据集上 TIGER backbone 的完整结果:
| 方法 | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|
| SFT | 0.0354 | 0.0558 | 0.0234 | 0.0299 |
| GRPO | 0.0347 | 0.0543 | 0.0229 | 0.0291 |
| DPO | 0.0308 | 0.0483 | 0.0200 | 0.0256 |
| S-DPO | 0.0314 | 0.0492 | 0.0208 | 0.0265 |
| SPRec | 0.0312 | 0.0487 | 0.0205 | 0.0258 |
| IPA | 0.0306 | 0.0481 | 0.0198 | 0.0245 |
| GFlowGR-DB | 0.0388* | 0.0629* | 0.0254* | 0.0336* |
| GFlowGR-TB | 0.0407* | 0.0651* | 0.0266* | 0.0344* |
关键实验观察
vs SFT
GFlowGR-TB 在所有数据集和 backbone 上都显著超越 SFT,证明 GFlowNet 通过增强样本、flow-matching 目标和协同知识整合,有效提升了模型容量。
GFlowGR-TB 比 GFlowGR-DB 提升更显著,推测原因是 GR 的中间状态不唯一标识 item(同一 prefix 可对应多个 item),使得 TB 的轨迹级优化更有效。
vs On-policy RLFT(GRPO)
GRPO 在部分场景甚至不如 SFT(如 Beauty/TIGER 上 R@5 = 0.0347 < SFT 的 0.0354)。原因:GRPO 强制正样本概率最大化并归一化 item set 概率,但 GFlowGR 让概率正比于奖励但不强制归一化,对增强 item set 的鲁棒性更好。
vs Off-policy RLFT(DPO 系列)
Vanilla DPO 在大规模数据(Yelp)上不如 SFT,因为用固定随机采样负样本太低质。S-DPO 能用多个负样本,是 DPO 系列中最好的,与 GFlowGR-DB 接近。这凸显了从 item set 而非 item pairs 学习的必要性。
DB vs TB
TB 在大部分场景优于 DB,尤其在 Yelp/TIGER 上差距明显。推测:GR 中间状态不唯一标识 item,TB 利用轨迹-item 一一对应关系更有效。DB 在 LETTER 上表现接近 TB,因为 LETTER 的 tokenizer 更有区分性。
消融实验(Table 3)
在 TIGER/Beauty 上进行消融,验证每个组件的贡献:
| 变体 | R@5 | R@10 | N@5 | N@10 | 说明 |
|---|---|---|---|---|---|
| 仅 $r_a$ | 0.0403 | 0.0641 | 0.0261 | 0.0341 | 只用交互信号,去掉 CM 和相似度 |
| 仅 $r_c$ | 0.0399 | 0.0631 | 0.0263 | 0.0338 | 只用 CM 预估分 |
| 仅 $r_{\text{sim}}$ | 0.0404 | 0.0634 | 0.0260 | 0.0343 | 只用格式奖励 |
| $r_a + r_c$ | 0.0399 | 0.0629 | 0.0264 | 0.0337 | 交互 + CM |
| $r_a + r_{\text{sim}}$ | 0.0406 | 0.0648 | 0.0260 | 0.0344 | 交互 + 格式 |
| $r_c + r_{\text{sim}}$ | 0.0381 | 0.0600 | 0.0253 | 0.0323 | CM + 格式(去掉交互信号,下降最大) |
| w/o Ada(去掉 CM-based Curriculum) | 0.0386 | 0.0600 | 0.0257 | 0.0326 | 用 Random 代替 CM-based,性能下降 |
| w/o Traj(去掉增强轨迹,$N=1$) | 0.0397 | 0.0617 | 0.0261 | 0.0332 | 退化为 SFT + 单轨迹 GFN loss |
| GFlowGR(完整) | 0.0407 | 0.0651 | 0.0266 | 0.0344 | 三信号 + CM-based Curriculum + 多轨迹 |
① 丢失任何奖励信号都会导致性能下降,$r_a$(交互信号)影响最大,$r_c$(CM 预估分)贡献略小(因为 CM 预估精度不如 GR 本身);
② 用 Random 替换 CM-based Curriculum 导致性能下降——不稳定训练 + 低质增强样本;
③ 去掉增强轨迹($N=1$)性能明显下降——证明从 item set 而非单一正样本学习的必要性。
参数敏感性分析
增强轨迹数 $N$
$N \in \{0, 1, 3, 5\}$。呈现倒 V 形曲线:
- $N=0$:退化为纯 SFT,多样性不足
- $N=1$:仅 1 条增强轨迹,信号不够丰富
- $N=3$:最优——3 条增强轨迹提供足够的多样性
- $N=5$:过多增强轨迹引入噪声,误导训练
推荐配置:$N=3$(1 正 + 2 增强)。
平衡权重 $\lambda$
$\lambda \in \{0.01, 0.1, 1, 10, 100\}$。同样呈现倒 V 形:
- $\lambda = 0.01$:GFlowNet loss 几乎无贡献
- $\lambda = 1.0$:最优——SFT 和 GFlowNet 目标均衡
- $\lambda \geq 10$:过度强调 GFlowNet,压制 SFT 的基础推荐能力
- $\lambda = 100$:严重退化
推荐配置:$\lambda = 1.0$。
工业部署:淘宝全量广告 A/B 测试
GFlowGR 自 2025 年 5 月起部署到淘宝所有搜索广告平台(淘宝移动端、闲鱼 App、淘宝 Web),服务数亿日活用户,驱动数十亿级年营收。
| 方法 | H@20 | N@20 | 训练成本 |
|---|---|---|---|
| SFT | 0.358 | 0.371 | 1.0× |
| GRPO | 0.427 | 0.408 | 计算不可行 |
| GFlowGR | 0.444 | 0.452 | 2.1× |
在线 A/B 测试核心指标
| 指标 | 提升幅度 | 说明 |
|---|---|---|
| 总营收 | +0.43% | 在十亿级年营收上的绝对增长 |
| 非首页搜索营收 | +1.11% | 提升最大——该场景 item 空间更大、GFlowNet 的 token 级监督优势更明显 |
| CTR | +0.38% | 点击率提升 |
| CVR | +0.52% | 转化率提升 |
| 训练成本 | SFT 的 2.1× | 可通过 doubling GPU 数量使其与 SFT 时间持平 |
核心亮点
- Token 级监督是 GR 的必然方向:SFT 只模仿、DPO 只比大小,都太粗糙。GFlowNet 提供了一套优雅的 Token 级监督框架——这可能是生成式推荐从"能跑"到"跑得好"的关键一步。同时,GFlowNet 的 $P(\tau) \propto R(s_L)$ 还自带多样性保证(不退化为 argmax),这在推荐场景中尤为重要。
- GFlowNet 与 GR 的天然契合:GR 的自回归生成天然是有向无环图(每个 token 是状态节点),正是 GFlowNet 的标准应用场景。更重要的是,$P_B = 1$ 的简化让实现变得极其轻量——核心设计挑战只剩下两个:构造轨迹和设计奖励。这让 GFlowGR 成为工业可落地的方案。
- CM-based Curriculum 是关键工程创新:随机采样产生大量噪声,on-policy 采样不稳定且计算不可行。用 Click Model 做课程学习——先易后难、逐步提升——是一个实用的工程方案,解决了 GFlowNet 训练中"负样本质量"这个核心难题。
- 多信号奖励的设计哲学:真实交互($r_a$)最可靠但稀疏,预估信号($r_c$)密集但有偏,格式信号($r_{\text{sim}}$)保证合理性。三者互补,构成完整的奖励函数。这种"互补信号融合"思路可以推广到其他 RL-based 微调方案。
- 工业可行性是最大亮点:GRPO 在淘宝场景的计算不可行,而 GFlowGR 仅需 SFT 的 2.1× 成本(可通过 doubling GPU 消除),推理端零额外开销。这是 RL-based GR 微调方案中唯一工业可落地的。
与相关工作的对比
| 方法 | 监督方式 | 负样本来源 | 多样性保证 | 工业可行性 |
|---|---|---|---|---|
| SFT | 模仿正样本 | 无负样本 | 无 | ✅ 基础方案 |
| DPO / S-DPO | 偏好对(chosen vs rejected) | 随机 / 策略采样 | 无 | ⚠️ 但效果有限 |
| SPRec | 迭代偏好对 | Self-play(beam search) | 无 | ⚠️ 需迭代训练 |
| IPA (OneRec) | 偏好对 + CM reward | 最高 reward 的 beam search 结果 | 无 | ⚠️ 需迭代训练 |
| GRPO | 组内相对优势 | On-policy(模型自生成) | ⚠️ 最大化正样本概率 | ❌ 计算不可行 |
| GFlowGR | Token 级 flow-matching | CM-based Curriculum | $P(\tau) \propto R$ | ✅ 2.1× SFT 成本 |
潜在不足与开放问题
- 训练成本 2.1× SFT:虽然可通过 doubling GPU 消除时间差距,但对资源受限的系统仍有开销压力。未来可探索更高效的 flow estimator(如用轻量网络替代全 LLM)。
- $\alpha, \beta$ 需按场景调参:论文默认 $R = r_a + r_c + r_{\text{sim}}$(即 $\alpha=\beta=1$),但不同场景的信号质量差异可能导致最优权重不同。论文未详细讨论权重搜索策略。
- CM 的精度瓶颈:$r_c$ 消融实验贡献略小,原因是"CM 预估精度不如 GR 本身"——这暗示 CM 可能不是最佳的外部预估模型。未来可考虑用 GR 自身的 forward probability 作为 $r_c$ 的替代。
- On-policy 采样的不稳定:论文只在公开数据集上比较了 On-policy,工业部署中未使用。On-policy 的不稳定是否可通过更好的采样策略(如 temperature scheduling)解决?
- 推理效率未讨论:GFlowGR 微调后,推理端完全不变——但这意味着模型参数量不变、推理时间不变。论文没有讨论 GFlowNet 微调是否会让模型在推理时产生更"混乱"的 token 分布(因为训练目标从 argmax 变为按奖励比例分布)。
- 与 TIGER/LETTER 的耦合:GFlowGR 目前在两个 GR backbone 上验证,是否对 tokenizer 设计有依赖?如果 tokenizer 的区分性很差(很多 item 共享同一 prefix),DB loss 可能效果下降。
对我的启发
启发一:将 GR 视为 DAG 上的轨迹优化。GFlowGR 提供了一个很好的视角:将生成式推荐的 token 生成过程视为 DAG 上的轨迹采样,用 flow-matching 约束实现 Token 级精细优化。这个视角可以推广到其他序列生成场景(如多轮对话推荐、多步推理推荐),其中每一步生成都需要独立的、精细的监督信号。
启发二:CM-based Curriculum 的课程学习策略。在推荐系统微调中非常实用——与其用全部数据无差别训练,不如按样本难度分层、从易到难地逐步提升模型能力。这种方法在其他 RL-based 微调方案(DPO/GRPO)中也可以借鉴,特别是在"负样本选择策略"这个关键设计点上。
启发三:推理零开销的设计哲学。GFlowGR 只改训练不改推理——这是工业落地的重要保障。类似思路可以推广:任何训练阶段的改进(不管是 RL-based 还是其他),都应该追求"推理端零额外开销"的目标,否则在工业场景中很难被采纳。
启发四:$P_B = 1$ 的简化对工业部署至关重要。很多 GFlowNet 理论工作在复杂的后向概率设计上投入大量精力,但在 GR 场景中 $P_B = 1$ 的简化让实现变得极其轻量。这提醒我们:在特定应用场景中,理论框架的简化版本可能比"完美"版本更实用。
启发五:多信号奖励融合的普适性。"真实交互 + 预估信号 + 格式约束"的三信号融合思路不仅适用于 GFlowGR,也适用于任何需要从稀疏交互数据中学习的推荐微调方案。特别是 $r_{\text{sim}}$ 的"部分正确性"度量——在 DPO/GRPO 中,rejected sample 如果与 chosen 有一部分匹配,是否也应该获得部分 reward 而不是完全被压制?
论文链接:arXiv 2506.16114
关键词:GFlowNet · 生成式推荐 · Token 级监督 · 轨迹采样 · 多信号奖励 · Detailed Balance · Trajectory Balance · Curriculum Learning
对比基线:SFT · DPO · S-DPO · SPRec · IPA · GRPO
Backbone:TIGER · LETTER
部署:淘宝搜索广告 · 闲鱼 App · 淘宝 Web(2025 年 5 月全量上线)