GEM-Rec: One Model, Two Markets — 竞价感知的生成式推荐¶
1. 研究背景与动机¶
基于 Semantic ID 的生成式推荐系统(如 TIGER)已成为序列推荐的主流范式。这类模型将物品映射为层次化的离散编码,通过自回归序列生成完成推荐。然而,现有架构仅针对语义相关性优化,完全忽略了工业推荐系统中不可回避的变现需求——即如何在推荐序列中同时服务有机(organic)内容和赞助(sponsored)广告。
现实系统中,有机内容和广告物品服务于截然不同的目标:
- 有机物品:基于用户偏好估计,无价格信号
- 赞助物品:需同时满足语义相关性和商业价值,受广告主出价(bid)影响
传统做法是将推荐模型和广告排序模型分开训练,在展示时通过 merging/blending 层合并。这种解耦架构无法让生成式解码器直接处理经济约束和实时出价信息。
2. GEM-Rec 框架¶
2.1 Semantic ID 基础¶
沿用 TIGER 范式,物品通过 Residual Quantized VAE (RQ-VAE) 映射为层次化离散编码:
$$s_i = (c_1, c_2, \ldots, c_D)$$
其中 $c_1$ 捕获粗粒度语义类别,后续编码逐步细化。共享前缀的物品具有相似的内容语义。
2.2 统一序列构造¶
核心创新在于引入两个控制 token $\mathcal{F} = \{\texttt{\lt ORG\gt }, \texttt{\lt AD\gt }\}$ 扩展词表。对于时间步 $t$ 的物品,生成序列段为:
$$\mathbf{x}_t = [f_t] \oplus [c_{t,1}, c_{t,2}, \ldots, c_{t,D}] \tag{1}$$
其中 $f_t = \texttt{\lt AD\gt }$ 若 $m_t = \text{Sponsored}$,否则 $f_t = \texttt{\lt ORG\gt }$。完整自回归序列为所有段的拼接:$\mathbf{x} = \mathbf{x}_1 \oplus \mathbf{x}_2 \oplus \cdots \oplus \mathbf{x}_T$。
控制 token 的作用机制:
1. \
这一设计将推荐任务结构化分解:模型先决定槽位类型(Organic vs. Sponsored),再生成具体物品 ID。
2.3 分解式生成目标¶
训练 Transformer 最小化序列 $\mathbf{x}$ 的负对数似然。生成下一个交互的概率分解为:
$$P_\theta(\mathbf{x}_t | H_{\lt t}) = \underbrace{P_\theta(f_t | H_{\lt t})}_{\text{Ad Satisfaction Modeling}} \cdot \underbrace{\prod_{k=1}^{D} P_\theta(c_{t,k} | H_{\lt t}, f_t, c_{t,\lt k})}_{\text{Mode-Conditional Retrieval}} \tag{2}$$
两项分别承担不同职责:
- Ad Satisfaction Modeling $P(f)$:学习广告展示的上下文边界(如疲劳度、叙事中断),将 \
flag 的概率与历史成功广告交互的密度对齐 - Mode-Conditional Retrieval $P(c|f)$:在给定槽位类型下检索最佳物品。$f_t = \texttt{\lt ORG\gt }$ 时优化纯有机偏好;$f_t = \texttt{\lt AD\gt }$ 时检索历史上成功点击的赞助物品
3. 推理时竞价调制(GEM-Decoding)¶
训练阶段学到的是"安全基线"——历史日志中的广告展示模式。但这无法感知实时市场动态。GEM-Decoding 在推理时注入实时出价信息,通过参数 $\lambda \geq 0$ 控制调制强度。
3.1 两级 Logit 调制¶
1. 槽位级调制(动态广告负载)
提升 \
$$\tilde{z}_{\texttt{\lt AD\gt }} = z_{\texttt{\lt AD\gt }} + \lambda \cdot \log(1 + b_{max}) \tag{3}$$
当高价值广告库存可用时($b_{max}$ 高),鼓励更频繁地选择 \
2. 物品级调制(最大化收入)
在采样到 \
$$\tilde{z}_c = z_c + \lambda \cdot \log(1 + \mathcal{B}(c)) \tag{4}$$
其中 $\mathcal{B}(c_k | c_{\lt k})$ 是该前缀对应语义聚类中所有有效赞助物品的最大出价。这将 beam search 偏向高出价物品所在的语义分支。
3.2 定价机制¶
采用 First-Price 拍卖规则:中标广告主支付其出价。收入 = 所有生成广告槽位中标出价之和。
3.3 理论性质¶
Definition 4.1 (GEM-Allocation Rule):广告物品 $i$ 被生成的总概率为:
$$x_i(b) = \underbrace{P_\lambda(f = \texttt{\lt AD\gt } \mid H, b)}_{\text{Stochastic Slot}} \cdot \underbrace{\mathbb{1}[\mathcal{D}_K(H, b) = i]}_{\text{Deterministic Item}} \tag{5}$$
Proposition 1 (Allocative Monotonicity):GEM-Allocation 规则是单调的——对任意上下文 $H$ 和固定的竞争出价 $b_{-i}$,赞助物品 $i$ 的曝光概率 $x_i(b_i, b_{-i})$ 关于 $b_i$ 非递减。
Proposition 2 (Structural Consistency): 1. Safe Fallback:$\lambda = 0$ 时,所有调制后 logit 等于基础模型 logit,退化为纯历史学习基线 2. Organic Integrity:logit 调制严格限定在 $f = \texttt{\lt AD\gt }$ 分支。任意两个有机物品的相对排序关于 $\lambda$ 不变 3. Generalization:训练集仅含有机交互时,$P(f = \texttt{\lt AD\gt }) \to 0$,退化为标准 TIGER
3.4 分层解码策略¶
- Flag Sampling:计算 $\{\texttt{\lt ORG\gt }, \texttt{\lt AD\gt }\}$ 的调制 logit 并立即采样,硬性确定槽位类型
- Content Beam Search:在采样到的 flag 条件下,用 beam search(width $K$)在调制后的 logit $\tilde{z}$ 上生成 Semantic ID token
4. 实验设置¶
4.1 合成市场构建¶
标准学术数据集缺乏出价日志,论文构造了合成市场环境来验证 GEM-Rec 的架构能力。
数据集:Steam, Amazon Beauty, Amazon Sports and Outdoors, Amazon Toys and Games(Kang and McAuley 2018; He and McAuley 2016),均做标准 5-core 过滤。
赞助物品设定:每个数据集随机 20% 物品标记为赞助候选 $\mathcal{I}_{ad}$,分配 log-normal 出价:$b_i \sim \text{LogNormal}(\mu=0.0, \sigma=0.2)$,裁剪至 99.9 百分位并归一化到 $[0.1, 1.0]$。
数据生成策略(Two-Stage Policy $\pi_{data}$): 1. 语义相关性过滤:赞助物品必须与用户有机目标共享 Semantic ID 前缀(深度 $d \geq 2$,无候选时放宽至 $d = 1$) 2. 概率化拍卖:候选中通过 softmax-weighted sampling(温度 $\tau = 0.1$)按出价选择 3. 频率封顶:广告接受概率 $P(\text{Display}) = p \cdot \min(1.0, \Delta t \times r)$,基础率 $p = 0.4$,恢复率 $r = 0.05$(20 步后恢复)
基线广告密度约 3-6%。
4.2 评估协议¶
三个维度评估: 1. Strict Policy Fit (Total NDCG):模型必须同时预测正确的槽位类型和物品 ID 才计为命中 2. Organic Integrity (Conditional Organic NDCG):仅在模型选择有机槽位时评估有机物品排序质量 3. Economic Value & Steerability:Ad Rate(广告比例)、Revenue(中标出价之和)、Ad Relevance(广告与用户意图的 NDCG)
4.3 Baseline¶
TIGER(Rajput et al., 2023):Semantic ID 生成式检索的经典框架,无赞助槽位机制,作为纯语义相关性参考。
4.4 实现细节¶
- 模型架构:T5 encoder-decoder,Encoder/Decoder 各 6 层,$d_{model} = 128$,$d_{ff} = 1024$,6 头注意力($d_{kv} = 64$),Dropout 0.2
- RQ-VAE:codebook size 256,depth 3,基于 Sentence-T5 embedding 训练 8000 epochs
- 训练:100,000 steps,batch size 256,AdamW(weight decay 0.035),lr $3 \times 10^{-4}$(linear warmup 10,000 steps + cosine decay)
- 硬件:单张 NVIDIA A100 GPU
- 推理:$\lambda \in [0.0, 10.0]$ 扫描
5. 实验结果¶
5.1 主实验结果(Table 1)¶
| Dataset | Operating Mode | Ad Rate | Revenue | NDCG@10 | Recall@10 | O.NDCG@10 | O.Recall@10 |
|---|---|---|---|---|---|---|---|
| Steam (Train Ad%: 3.49) | TIGER (Baseline) | 0.0% | - | 0.1442† | 0.1818 | 0.1487 | 0.1875 |
| GEM-Rec ($\lambda=0.0$) | 2.5% | 535 | 0.1411 | 0.1782 | 0.1468 | 0.1857 | |
| GEM-Rec ($\lambda=1.0$) | 4.7% | 1,173 | 0.1381 | 0.1742 | 0.1467 | 0.1853 | |
| Sports (Train Ad%: 6.85) | TIGER (Baseline) | 0.0% | - | 0.0176† | 0.0308 | 0.0187 | 0.0327 |
| GEM-Rec ($\lambda=0.0$) | 4.7% | 804 | 0.0173 | 0.0335 | 0.0187 | 0.0364 | |
| GEM-Rec ($\lambda=1.0$) | 9.0% | 1,804 | 0.0168 | 0.0323 | 0.0185 | 0.0359 | |
| Toys (Train Ad%: 4.52) | TIGER (Baseline) | 0.0% | - | 0.0278† | 0.0536 | 0.0291 | 0.0561 |
| GEM-Rec ($\lambda=0.0$) | 3.5% | 319 | 0.0277 | 0.0536 | 0.0295 | 0.0570 | |
| GEM-Rec ($\lambda=1.0$) | 7.1% | 717 | 0.0272 | 0.0522 | 0.0298 | 0.0575 | |
| Beauty (Train Ad%: 4.23) | TIGER (Baseline) | 0.0% | - | 0.0282† | 0.0529 | 0.0293 | 0.0550 |
| GEM-Rec ($\lambda=0.0$) | 3.1% | 345 | 0.0301 | 0.0569 | 0.0318 | 0.0602 | |
| GEM-Rec ($\lambda=1.0$) | 6.0% | 726 | 0.0295 | 0.0559 | 0.0320 | 0.0606 |
†TIGER baseline 严格预测 Organic,在所有 Ad 槽位上得分为 0。
实验结论:
- GEM-Rec 在 $\lambda = 0$ 时已能从历史日志中学到约 2.5-4.7% 的广告率基线,接近训练数据中的真实广告密度
- 随 $\lambda$ 增加,Revenue 单调上升,Total NDCG 渐进下降——系统以可预测的方式权衡策略拟合与收入
- Steam 数据集上呈现近似线性的 Pareto 前沿
- 在 Beauty 和 Toys 数据集上,GEM-Rec ($\lambda=0$) 的 NDCG 甚至超过 TIGER baseline,说明统一建模有机/广告交互可以提升整体推荐质量
5.2 Organic Integrity 验证¶
随 $\lambda$ 增大,Total NDCG(红线)下降——因为更多有机槽位被替换为广告。但 Conditional Organic NDCG(绿线)保持基本平坦。例如 Steam 数据集上:Organic Recall@10 在 $\lambda = 1.0$ 时为 0.1853,$\lambda = 0$ 时为 0.1857,几乎无变化。
这验证了 Proposition 2 的 Organic Integrity 性质:竞价调制 $\lambda \mathcal{V}(b)$ 仅注入到赞助分支,有机分支的 logit 保持不变。
5.3 广告质量与信号恢复¶
使用 Prefix Match Depth(生成广告与用户有机目标共享的 Semantic ID 编码层数)度量广告相关性。总体趋势:$\lambda$ 增大时广告相关性下降(Figure 3b),因为系统被迫选择语义上更远但出价更高的物品。
但在稀疏数据集上存在局部例外:轻微 $\lambda$ 提升反而改善广告相关性,原因是出价信息可作为语义歧义的 tie-breaker,引导模型选择正确语义聚类中的高出价物品。
5.4 市场动态适应(Bid Shock 实验,Table 2)¶
模拟 5% 库存出价突然 10x 提升的"价格冲击":
| Setting | Ad Rate | High-Value Share (% of Ads) | Revenue |
|---|---|---|---|
| Baseline ($\lambda = 0$) | 2.4% | 21.8% | 1.0x |
| GEM-Rec ($\lambda = 0.5$) | 7.1% | 81.5% | 9.0x |
| GEM-Rec ($\lambda = 1.0$) | 18.0% | 97.4% | 28.2x |
| GEM-Rec ($\lambda = 2.0$) | 62.4% | 99.9% | 104.6x |
实验结论:GEM-Rec 不仅增加广告量,更关键的是主动用高价值广告替换低价值广告。在 $\lambda = 0.5$ 时,总广告率仅从 2.4% 升至 7.1%,但高价值广告占比从 21.8% 跃升至 81.5%,收入提升 9 倍。这证明系统具备实时市场适应能力。
5.5 生成有效性(Table 4)¶
| Dataset | Valid Rate |
|---|---|
| Beauty | 100.0% |
| Sports | 100.0% |
| Toys | 100.0% |
| Steam | 100.0% |
所有数据集和 $\lambda$ 设置下,生成的广告序列均解码为有效的物品 ID,无"幻觉"。
5.6 完整结果(Table 3,部分摘录)¶
以 Steam 数据集为例的完整 $\lambda$ 扫描:
| Method | Ad Rate | Revenue | NDCG@10 | Recall@10 | O.NDCG@10 | O.Recall@10 |
|---|---|---|---|---|---|---|
| TIGER (Baseline) | 0.0% | 0.0 | 0.1442† | 0.1818 | 0.1487 | 0.1875 |
| GEM-Rec ($\lambda=0.0$) | 2.5% | 535.3 | 0.1411 | 0.1782 | 0.1468 | 0.1857 |
| GEM-Rec ($\lambda=0.5$) | 3.6% | 815.4 | 0.1401 | 0.1770 | 0.1472 | 0.1862 |
| GEM-Rec ($\lambda=1.0$) | 4.7% | 1,173.6 | 0.1381 | 0.1742 | 0.1467 | 0.1853 |
| GEM-Rec ($\lambda=2.0$) | 8.9% | 2,390.2 | 0.1322 | 0.1672 | 0.1464 | 0.1854 |
| GEM-Rec ($\lambda=5.0$) | 40.6% | 12,224.1 | 0.0920 | 0.1173 | 0.1512 | 0.1917 |
| GEM-Rec ($\lambda=7.5$) | 76.3% | 24,086.6 | 0.0419 | 0.0542 | 0.1582 | 0.1978 |
| GEM-Rec ($\lambda=10.0$) | 93.7% | 30,598.5 | 0.0150 | 0.0212 | 0.1660 | 0.2070 |
实验结论:即使在极端 $\lambda = 10.0$(93.7% 广告率)下,剩余有机槽位的 O.NDCG@10 (0.1660) 和 O.Recall@10 (0.2070) 不仅未下降,反而略有上升。这有力验证了 Organic Integrity 理论保证。
5.7 高广告率消融实验(Table 9,High Ad Rate 设置)¶
训练数据广告密度提升至 10-20%:
| Dataset | Train Ad% | Method | Ad Rate | Revenue | NDCG@10 | O.NDCG@10 |
|---|---|---|---|---|---|---|
| Steam | 10.13% | GEM-Rec ($\lambda=0.0$) | 8.3% | 1,782.7 | 0.1320 | 0.1453 |
| GEM-Rec ($\lambda=1.0$) | 14.7% | 3,638.6 | 0.1268 | 0.1472 | ||
| Beauty | 11.99% | GEM-Rec ($\lambda=0.0$) | 10.5% | 1,137.1 | 0.0314 | 0.0322 |
| GEM-Rec ($\lambda=1.0$) | 18.7% | 2,285.2 | 0.0301 | 0.0315 |
实验结论:模型成功学到更高的基线广告率,且在此基础上仍可通过 $\lambda$ 进行精确的增量调节。高广告率场景下 Pareto 前沿呈现更凸的形状,说明更多自然可行的广告位被优先利用。
6. 讨论与局限¶
- DSIC 激励兼容性:当前采用 First-Price 拍卖,理论上不保证广告主如实出价。实现 DSIC(critical-bid/VCG 风格支付)需要计算反事实解码结果的阈值,在自回归生成中计算代价高昂,留作未来工作
- 独立调制参数:当前使用统一 $\lambda$ 控制槽位分配和物品选择,未来可引入独立的 $\lambda_{slot}$ 和 $\lambda_{item}$ 实现更精细控制
- 合成数据限制:实验基于合成市场环境,真实工业场景可能涉及更复杂的约束
7. 核心贡献总结¶
- 统一生成架构:通过控制 token 将有机/赞助内容统一到一个 Semantic ID 生成序列中,单模型服务两个市场
- 端到端市场策略学习:模型从交互日志中隐式学习广告展示的上下文约束(可行性策略)
- 竞价感知约束解码:推理时注入实时出价到解码搜索空间,提供分配单调性和有机完整性的理论保证,无需重新训练