TSGR:把"商业价值"贯穿进 Semantic ID 与候选排序的淘宝搜索统一生成式检索¶
Tianyu Zhan, Gui Ling, Tong Xiong, Kunhai Lin, Yang Wang, Kaixuan Zhang, Zhihong Chen, Yuliang Yan, Dan Ou, Shengyu Zhang, Haihong Tang, Bo Zheng(浙江大学 + 淘宝天猫集团,2026-07-21,工业电商搜索场景)
研究动机与背景¶
生成式检索(Generative Retrieval, GR)已经成为工业电商搜索召回阶段的一种有前景的范式:它借助 LLM 的序列生成能力,训练一个自回归模型直接生成目标物品的 Semantic ID(SID)。这个形式化有两个吸引人的工程优势——(1) 端到端优化,大幅降低了维护大规模索引的基础设施开销;(2) SID 编码把巨大的商品空间压缩进一个紧凑的 token 词表,使得全空间优化变得可行,并缓解了传统双塔(dual-encoder)模型里的负采样偏差。凭借这些优点,GR 已在推荐、搜索、广告等工业场景快速规模化落地。
从信息检索的本质看,GR 也在概念上与检索高度契合:生成模型把整个物品集合的知识编码进参数,在推理时按 query 重构相关物品,而 SID 编码则把庞大的商品空间压缩进紧凑 token 词表。
然而,工业电商搜索最终是被业务目标驱动的(如 CTR、CVR、GMV)。下游排序阶段严重依赖这些信号来给候选打分——因为两个对 query 语义相关性相同的商品,在转化概率上可能相差极大。当召回阶段对价值信号无感知(value-unaware)时,它可能召回语义合理但商业价值低的候选,从而限制了下游排序器的业务收益。 作者尖锐地指出,这种"对业务的无感知"根植于现有电商 GR 框架的运作方式:价值信号很少被纳入物品表征或模型输出,由此产生两个关键局限:
局限一:价值不敏感的 SID 构造(Value-insensitive SID construction)。 现有 RQ-based SID 流水线主要为保留多模态语义相似性而设计,普遍缺乏显式反映物品业务价值的机制。结果是:语义相似但价值差异显著的物品倾向于被映射到同一个 SID 邻域,产生一个语义有序但价值高度不分化的 SID 空间。此外,SID 通常是固定全局的,且保持 query-agnostic(对 query 无感知),每个物品无论对什么 query 都携带同一个标识符,忽略了同一物品的相关性和价值会随 query 而变。
局限二:价值无感知的候选排序(Value-unaware candidate ranking)。 标准 GR 按 beam search 的生成概率给候选排序,这反映的是语义相关性而非业务相关性。此外,由于候选是在推理时动态生成的,模型无法在输入侧预取丰富的物品 side-info(如特征和价值信号)。因此 beam search 分数排序出的候选,常常并不是那些最可能被点击或购买的物品。
为解决这两个局限,作者提出 Taobao Search Generative Retrieval (TSGR),一个把价值感知同时注入物品表征与候选排序的统一生成式框架,包含两项核心创新:
- Query-aware Parallel SID (QP-SID):作者观察到"靠前 token 索引"对应的物品会被映射到更多物品、从而获得更多训练信号。据此构造多组并行排序——一组基于整体点击的默认排序,加上若干基于 query 特定统计的 query-条件排序。通过把高价值且 query 相关的物品分配到更靠前的索引,QP-SID 自然地让"生成似然"与"业务价值 + query 相关性"对齐。
- Value-aware Ranking Module (VRM):从生成式骨干的隐状态提取用户表征,并通过 cross-attention 与丰富的物品 side-info 融合,产出与业务目标对齐的分数,用于重排 beam search 的候选。关键在于——这个模块在同一个模型内与生成目标联合优化,从而把 GR 自然地扩展为一个统一的检索 + 预排序框架,无需专门的预排序阶段。
为了进一步把 TSGR 与下游业务目标对齐,作者还设计了一条渐进训练流水线:Pre-SFT 多任务预训练 + SFT 加权多正样本监督。作者也探索了强化学习(RL)的作用,发现 VRM 带来的增益比 RL 更显著。
论文的主要贡献总结如下:
- 提出 TSGR,把检索与预排序整合进单一生成模型,并把整条流水线与业务目标对齐;
- 设计 QP-SID,把价值信号编码进 SID,并从 query-item 点击统计导出 query-aware 排序,解决传统 SID 的价值不敏感与 query 无感知;
- 引入 VRM,通过 cross-attention 把骨干导出的用户表征与物品 side-info 融合,并与生成骨干联合优化,使单一模型既是检索器又是预排序器;
- 在真实淘宝搜索数据 + 大规模线上 A/B 上做了广泛实验:离线 HR@1000 提升 9.16%(相对 FORGE),线上 A/B 带来 +0.43% IPV、+1.12% 成交单量、+1.64% GMV。
相关工作¶
生成式检索与推荐¶
生成式检索/推荐把物品检索重新表述为序列生成:模型以自回归方式直接产出物品的离散 SID。DSI 首次通过把语料记忆进模型参数来展示这个范式;TIGER 用 RQ-VAE 把物品 embedding 压缩成层次化 token 序列,通过共享量化词表统一语义与协同信号;IDGenRec 用文本 ID 生成把 GR 与物品 ID 空间连接。随着模型规模扩到十亿级 LLM,这个范式从概念验证走向工业部署:架构侧 HSTU 与 HLLM 通过高效注意力机制和层次化 LLM 设计提升效率,OneRec 把推荐建成通用序列预测任务并加偏好对齐。电商搜索里,OneSearch 提出统一端到端 GR 框架,OneSearch-V2 用 latent reasoning 与自蒸馏扩展。类似趋势也在广告和通用搜索中涌现。
Semantic ID 构造¶
SID 把物品转成紧凑离散 token 序列作为 GR 的生成目标。TIGER 用 RQ-VAE 做层次化量化,后续工作用 RQ-KMeans、OPQ、联合乘积量化简化流程。为丰富 SID 语义,LETTER 与 LC-Rec 把多模态特征与协同信号对齐,GSID/CAT-ID2/Hi-Gen 注入属性层级与类目树等领域特定结构。CQ-SID 把物品编码成语义簇而非唯一标识符以降低 beam search 成本。工业规模上,FORGE 在淘宝 140 亿交互上 benchmark SID 构造,UniSID 以端到端方式把 SID 构造与推荐目标联合优化。
作者指出:所有现有方法都给每个物品分配一个单一的全局 SID,把它约束到固定表征,无视 query 上下文,也在码本构造中忽略了物品业务价值。TSGR 通过构造 per-item 的并行、价值感知的 query-informed 码本来同时解决这两个局限——让同一物品在不同 query 下关联不同表征,同时在每个簇内优先高价值物品。
价值感知排序¶
工业搜索排序通常采用级联架构(cascaded architecture),检索与排序由分离的模型处理,这倾向于引入目标错位,阻止物品价值信号参与候选生成。为缩小这个 gap,越来越多工作探索直接用生成模型做排序:GenRank 展示了工业规模的生成式排序,QGS 用 HFG-Attention 集成异构特征进生成式排序,UniVA 提出带 eCPM-aware RL 的 Generation-as-Ranking 形式,GoalRank、GReF、DeGRe 通过奖励模型和 dense 监督引入排序信号。
作者指出:这些方法大多把生成概率当作排序分数,反映的是序列似然而非真实物品价值,对价值估计至关重要的丰富物品 side-info 支持有限。TSGR 则把物品 side-info 直接纳入价值感知打分,在单一联合优化目标下统一检索与排序。
核心方法 / 模型架构¶
TSGR 是一个把检索与预排序整合进单一模型的统一生成式框架。如 Figure 1 所示:Query-aware Parallel SID Construction(§3.1)为每个物品构造不同的 SID 路径,并选择最合适的(基于 query 条件);Value-aware Ranking Module(§3.2)建立在生成骨干之上,重排 beam search 候选;§3.3 是渐进训练流水线(Pre-SFT 多任务 + SFT 加权多正样本),此外还探索了 RL 的作用。

3.1 Query-aware Parallel SID 构造¶
作者提出一个并行 SID 构造方法,基于 query-item 统计为每个物品构造不同的 SID 表征。具体地,利用两类码本:一个 semantic codebook(配置为 $32768 \times 8192$)捕获物品的语义结构,一个 efficiency codebook(overall size 8192,由 $N$ 个并行分支组成)捕获价值/query 信息。这样既能提供多样的检索路径,又能把解码预算集中在高概率分支、避免在低概率路径上浪费搜索容量。
语义码本构造(Semantic Codebook Construction)¶
前两级组成 semantic codebook,建立在诸如 same-item cluster 和 item category 等语义特征之上,构造一个自然的物品层级 $Item \in Cluster \in Category$。首先对每个 group 内所有物品的 embedding 取平均,得到 cluster-level 和 category-level embedding:
$$\mathbf{e}_\text{cat}(g) = \frac{1}{|\mathcal{G}|}\sum_{i \in \mathcal{G}} \mathbf{e}_i, \qquad \mathbf{e}_\text{cluster}(g) = \frac{1}{|\mathcal{C}|}\sum_{i \in \mathcal{C}} \mathbf{e}_i \tag{1}$$
其中 $\mathcal{G}$、$\mathcal{C}$ 分别是同类目、同簇的物品集合,$\mathbf{e}_i \in \mathbb{R}^d$ 是物品 $i$ 的 embedding。Level-1 码本直接用类目 embedding 初始化,因为类目数(8100+)与 8192 的码本大小非常接近。随后对 cluster 与 category embedding 之间的残差应用 RQ-KMeans 学习 Level-2 码本:
$$\mathbf{r}(g) = \mathbf{e}_\text{cluster}(g) - \mathbf{e}_\text{cat}(g) \tag{2}$$
这产生一个三级 $8192 \times 4 \times 8192$ 的中间码本。由于四级码本在生产上会带来过高的部署成本,作者把前两级合并进单一 level,得到最终 semantic codebook,大小为 $32768 \times 8192$。
这个构造注入了两个结构先验:
- 类目先验(Category prior):领域分类法被嵌进最粗的划分,使 SID 空间继承一个有意义的类目结构;
- 簇先验(Cluster prior):通过量化簇质心(而非单个物品 embedding),同一簇内所有物品被保证共享一个相同的语义 SID 前缀。
这两个先验使 SID 空间语义组织良好,并提供一个干净的簇划分,供 efficiency 码本在其上构建。
效率码本构造(Efficiency Codebook Construction)¶
第三级构成 efficiency codebook,在每个簇内独立构造,按物品的基于点击的价值给物品排序。高价值物品占据更靠前的 token 索引,从而在训练中被更频繁访问,把解码预算集中在最有前景的物品上、并让生成似然与物品价值对齐。
一个直接的设计是按过去 30 天的点击数排序,给出默认排序:
$$\pi_0 = \operatorname*{argsort}_{i \in C} s_0(i) \tag{3}$$
其中 $C$ 是簇内物品集合,$s_0(i)$ 是物品 $i$ 的点击数。然而这个排序仍是 query-agnostic,忽略了物品可能对某个 query 高度相关而对另一个 query 不相关。为克服这点,作者提出 QP-SID——基于"每个 query 可切分成关键 term,每个 term 关联一个簇内物品集合,因此可从 query-item 统计推断 term-簇关系"这一观察。具体地,对每个簇识别 top-3 最具代表性的 term,过滤掉那些覆盖率超过 80% 的 term,覆盖率定义为簇内被该 term 点击过的物品比例:
$$\text{cov}(t, C) = \frac{|\{i \in C : s(i, t) > 0\}|}{|C|} \tag{4}$$
一个几乎覆盖整簇的 term 携带很少的判别信号,因为无论 query 意图如何它都关联簇内几乎所有物品。对每个保留下来的代表 term $t$,令 $s(i, t)$ 表示过去 30 天物品 $i$ 在 term $t$ 下的点击数。按 $s(i, t)$ 排序物品得到 term-特定排序:
$$\pi_t = \operatorname*{argsort}_{i \in C} s(i, t) \tag{5}$$
这产生若干 term-条件排序,加上默认排序 $\pi_0$,给出每簇 4 组并行排序。(案例研究见 Appendix A.4。)
3.2 Value-aware Ranking Module¶
在 GR 中,候选按生成概率排序,反映的是序列似然而非业务价值。由于候选物品只有在解码后才知道,它们的 side-info 无法在生成阶段被纳入。一个自然的补救是接一个独立的下游预排序模型,但这会耦合两个目标错位的模型:GR 模型优化的是自身检索分布上的 SID 生成似然,而预排序模型是在全库多源候选池上打分,引入了一个破坏二者结合的分布 gap。
为此,作者引入 VRM。如 Figure 1(b) 所示,该模块以生成模型的用户表征加物品 side-info 为输入,为每个候选输出一个价值分数。下面依次描述其四个组件:item 表征、user 表征、user-item 交互、候选打分。
Item Representation¶
对来自 beam search 的每个候选 $(c_1, c_2, c_3) \in \mathcal{S}$,从三个互补来源构造物品表征:
- 物品 side-info 向量 $\mathbf{x}_k \in \mathbb{R}^{d_f}$:从离线特征表检索,聚合多个类别的特征——(1) 多时间窗的行为统计(如 page view / payment 计数);(2) 从物品类目层级导出的类目特征;(3) 捕获跨场景行为模式的全局卖家统计;(4) query-item 共现特征。
- 物品 embedding $\mathbf{e}_k$:从离线物品 embedding 表检索,提供在 SID 构造中可能丢失的信息。
- SID embedding $\mathbf{z}_k$:把候选 SID $(c_1, c_2, c_3)$ 通过骨干的 embedding 层映射,再用一个 MLP $\phi(\cdot)$ 压缩得到:
$$\mathbf{z}_k = \phi(\text{Emb}(c_1), \text{Emb}(c_2), \text{Emb}(c_3)) \tag{6}$$
三者拼接形成最终物品表征:
$$\mathbf{v}_k = [\mathbf{x}_k; \mathbf{e}_k; \mathbf{z}_k] \tag{7}$$
User Representation¶
user 表征复用生成骨干的隐状态,因此不产生额外编码成本。给定长度 $L$ 的输入 prompt,骨干产出上下文化表征 $\mathbf{H}_u \in \mathbb{R}^{L \times D}$($D$ 为隐维度)。全局 user 表征通过对所有 token 位置做 mean pooling 后接一个 MLP $\psi(\cdot)$ 得到:
$$\mathbf{u} = \psi\!\left(\frac{1}{L}\sum_{i=1}^{L} \mathbf{H}_u[i]\right) \tag{8}$$
User-Item Interaction¶
为捕获超出全局摘要的细粒度相关性,引入一个注意力机制,让物品表征 $\mathbf{v}_k$ attend 到用户上下文表征 $\mathbf{H}_u$:
$$\mathbf{a}_k = \text{CrossAttn}(\mathbf{v}_k, \mathbf{H}_u, \mathbf{H}_u) \tag{9}$$
其中 $\mathbf{v}_k$ 作为 query,$\mathbf{H}_u$ 同时作为 key 和 value。这允许每个候选选择性地 attend 到用户上下文中最相关的部分,产出一个编码 user-item 相关性的交互表征 $\mathbf{a}_k$。
Feature Fusion and Scoring¶
把交互表征、user 表征和物品表征拼接,喂进三个并行 head 产出对应的预测分数:
$$\hat{y}_k^t = \sigma(\text{MLP}_t([\mathbf{a}_k; \mathbf{u}; \mathbf{v}_k])), \quad t \in \{\text{pv}, \text{ctr}, \text{cvr}\} \tag{10}$$
$\sigma(\cdot)$ 是 sigmoid。推理时,候选按复合分 $\hat{y}_k^\text{pv} \times \hat{y}_k^\text{ctr}$ 重排产出最终输出。由于该模块共享骨干 embedding、复用生成中已算好的隐状态,它在几乎零额外成本下把检索与价值感知排序统一进单一模型。
3.3 训练流水线¶
训练 TSGR 需要同时发展三种能力:物品与 SID 空间之间的语义对齐、个性化 query-to-SID 生成、价值感知候选排序。在单一监督阶段一次性获得这三者很难,因此采用一个渐进构建它们的流水线(如 Figure 2 所示,详细 prompt 模板见 Appendix A.5)。

Pre-SFT¶
预训练 LLM 并不具备把物品或 query 映射到离散 SID token 的能力。与其强迫模型一次性同时获得所有能力,Pre-SFT 把目标分解为若干更简单的子任务,每个聚焦一个能力维度。在跨这些子任务的大规模样本上训练,可提前激活必要能力,同时降低后续 SFT 阶段的学习难度和数据需求。
作者相应设计了五类 Pre-SFT 任务(Table 1)。大多数任务共享统一的 SID 输出格式,仅在输入上下文不同。训练时所有任务被打散、以标准交叉熵联合优化。
Table 1: Pre-SFT 任务设计。每个任务通过变化输入上下文激活一个特定的能力维度;多数任务共享统一 SID 输出格式,title generation 任务用自然语言输出以在文本层激活意图理解。
| Task Category | Input | Output | Capability |
|---|---|---|---|
| Encoding | Item title | SID | 学习物品语义到 SID 空间的映射 |
| Personalization | User profile + query + behavior seq. | Title | 在文本层激活用户意图理解 |
| Retrieval | Search query | SID | 建立 query-item 关联用于库内检索 |
| Collaboration | Trigger item (title + SID) | SID | 把共购协同信号注入 SID 空间 |
| Recommendation | User profile + behavior seq. | SID | 使能个性化与跨域泛化 |
SFT¶
SFT 阶段把 Pre-SFT 初始化的模型适配到个性化检索任务。
Prompt Generation Framework. 为支持灵活的特征迭代,SFT 流水线建在 Prompt Generation (PG) 之上,PG 提供带可配置特征槽的统一 prompt 模板,实现快速特征实验并保证训练-服务一致性。
Data Construction. 为构造带 QP-SID 的数据,第三级 token 由 query $q$ 和物品 $i$ 的簇联合决定。给定 query $q$,抽取其关键 term 并与物品 $i$ 所在簇的代表 term 集合 $\mathcal{T}_\text{cluster}$ 匹配;当有匹配时,选择最具代表性的匹配 term:
$$t^* = \arg\max_{t \in \mathcal{T}_\text{cluster} \cap \text{terms}(q)} \text{rel}(t, C) \tag{11}$$
其中 $\text{rel}(t, C)$ 是 term $t$ 与簇 $C$ 之间的共现点击数。第三级 token 于是被赋为:
$$c_3(i, q) = \begin{cases} \pi_{t^*}(i) & \text{if } \mathcal{T}_\text{cluster} \cap \text{terms}(q) \neq \emptyset \\ \pi_0(i) & \text{otherwise} \end{cases} \tag{12}$$
使第三级 token 成为物品和 query 的动态函数——当 query 与其主导使用上下文高度对齐时,物品在簇内会得到更靠前的索引,产出反映细粒度物品-query 相关性的 query-aware 训练标签。
Session-wise Weighted Multi-Positive Training. 对每个搜索 session,把四个交互层级(pay, click, pv, unpv)的物品打包进单个训练样本,交互物品(pay, click, pv)作为多个标签。在标签之间应用 attention mask 以防止交叉标签干扰。每个标签被赋予满足 $w_\text{pay} > w_\text{clk} > w_\text{pv}$ 的优先级权重。生成损失是所有合法标签上的加权交叉熵:
$$\mathcal{L}_\text{gen} = \sum_{k \in \mathcal{Y}} w_k \cdot \text{CE}(\mathbf{o}_k, t_k) \tag{13}$$
其中 $\mathcal{Y}$ 是 session 中交互物品集合,$\mathbf{o}_k$ 是物品 $k$ 的 SID token 解码位置的 logits,$t_k$ 是 ground-truth SID token,$w_k$ 是对应权重。
VRM 在此阶段一起训练。它的排序损失由 PV、CTR、CVR 三个二元交叉熵项组成,定义在同一集合 $\mathcal{Y}$ 上:
$$\mathcal{L}_\text{rank} = \sum_{k \in \mathcal{Y}} \sum_{s \in \{\text{pv}, \text{ctr}, \text{cvr}\}} \text{BCE}(\hat{y}_k^s, y_k^s) \tag{14}$$
其中 $\hat{y}_k^s$ 是预测分,$y_k^t$ 是任务 $t$ 的标签。总目标合并两项:
$$\mathcal{L} = \mathcal{L}_\text{gen} + \lambda \cdot \mathcal{L}_\text{rank} \tag{15}$$
RL 的探索¶
Vanilla SFT 把模型对齐到观测行为,但不足以直接优化下游用户满意度信号。为进一步 push 性能,作者基于 GRPO 建了一条完整 RL 流水线,用线上排序模型作为奖励源提供直接的业务目标反馈。然而,相比引入 side-info 的排序模块(§3.2),基于 RL 的方法带来的额外增益有限。因此作者采用排序模块作为主方案,完整 RL 实验细节放在 Appendix A.6。
实验设置¶
数据集与 Baseline¶
作者从淘宝电商搜索平台收集超过 2 亿条真实用户交互(两周)作为训练数据,测试集从次日采样。为评估 VRM 的泛化性,还在 TencentGR-10M 数据集上做了额外消融(Appendix A.7)。对比两个 baseline:
- FORGE:随机初始化最后一级 token 作为 SID baseline,每个物品对应最多 5 项;
- Pre-Ranking Model:一个常规预排序模型,在检索后应用。
评估指标¶
采用 HitRate@K (HR@K)。按工业生成式检索的标准做法,在同一 beam size 下报告 HR@K,并以 HR@1000 为主指标,因为检索的目标是确保相关物品被表面化在候选池内。
实现细节¶
采用 Qwen2.5-0.5B 作为生成骨干,三级 SID 码本($32768 \times 8192 \times 8192$),beam size 为 $[400, 400, 10000]$,每个物品来自 QP-SID 的 4 组并行第三级排序。SFT 用 AdamW($\beta_1 = 0.9$,$\beta_2 = 0.999$)训练,cosine 学习率 $1 \times 10^{-4}$,batch size 256,$\lambda = 1$,价值分权重 $(w_\text{pv}, w_\text{clk}, w_\text{pay}) = (1, 2, 3)$。更多细节见 Appendix A.3:SFT 与 GRPO 的 batch size 分别是 256 和 16(2 per device × 8 梯度累积),SFT 10 warmup steps,GRPO 线性学习率 $4 \times 10^{-7}$、20 warmup steps、100K queries 上训练 2 epochs,推理用动态 beam search sizes $[400, 400, 10000]$;GRPO 每 query 采样 32 候选(温度 1.0,约束解码),CTR×CVR 分排 top-10 得 reward +1、bottom-10 得 −1,每个 prompt 追加 16 条离线偏好对,KL 系数 0.5、当 KL 与策略梯度冲突时缩放到 0.6×,Level 1-2 施加 entropy 正则(0.005)、overlap 超 20% 时禁用。
主要实验结果¶
4.2 总体对比¶
Table 2 报告了所有对比方法的 HR@K,围绕三个维度组织:SID 构造、pre-processing、post-processing。
Table 2: 淘宝搜索数据集上所提方法的性能对比。每个类别内方法互斥,$\dagger$ 标记 TSGR 采用的配置,最佳加粗。
| Category | Method | HR@20 | HR@100 | HR@500 | HR@1000 | HR@5000 |
|---|---|---|---|---|---|---|
| SID | FORGE | 0.4328 | 0.5863 | 0.7207 | 0.7735 | 0.8604 |
| SID | QP-SID$^\dagger$ | 0.4635 | 0.6235 | 0.7669 | 0.8177 | 0.8961 |
| Pre-processing | Pre-SFT$^\dagger$ | 0.4694 | 0.6340 | 0.7740 | 0.8222 | 0.8987 |
| Post-processing | Pre-Ranking Model | 0.4248 | 0.6264 | 0.8112 | 0.8552 | 0.8771 |
| Post-processing | RL | 0.4659 | 0.6420 | 0.7857 | 0.8277 | 0.9027 |
| Post-processing | VRM (TSGR)$^\dagger$ | 0.4586 | 0.6677 | 0.8250 | 0.8651 | 0.8953 |
分析(why 而非 what):
- QP-SID vs FORGE:QP-SID 在所有指标上超越 FORGE,HR@1000 提升 +4.42%(0.7735→0.8177)。原因是它把物品价值信号和 query-条件排序纳入 efficiency 码本:簇内高价值物品被分到更靠前的 token 索引,从而映射更多物品、接收更多训练信号;而 query-条件排序进一步在靠前索引提升 query 相关物品的表面化能力。两个机制共同确保模型同时优先"全局高价值"与"query 特定相关"的物品。
- Pre-SFT:多任务预训练进一步提升性能(在 QP-SID 基础上 HR@1000 再升,且 HR@20 达到全表最高 0.4694),说明该阶段贡献了实质增益。
- Post-processing 阶段:作为 baseline,常规预排序模型在 HR@500 和 HR@1000 上带来显著提升(+3.30%)但在其他指标上有损失。RL 训练则在几乎所有指标上一致改进(HR@1000 +0.55%),但幅度仍属边际,因此 RL 未在实际部署中采用。VRM 通过在联合优化下融合骨干导出的用户表征与物品 side-info,取得更强性能:在 HR@1000 上取得可与预排序模型媲美的提升(+3.73% vs +3.30%),同时在几乎所有其他指标上超越它。综合来看,这些结果确认 TSGR 统一检索与预排序的做法既比常规级联更有效、也更省部署成本。
4.3 消融研究¶
4.3.1 SID 设计¶
作者从 FORGE 到 QP-SID 渐进改进 SID 设计。用一个 efficiency 分数重排 FORGE 候选带来 noticeable 增益,但把价值直接编码进 SID(通过专门码本)证明实质上更有效。作者进一步用类目/簇先验约束的 RQ-KMeans 重构语义码本(§3.1),提升可解释性和可扩展性;把四级码本合并到三级提升了对误差累积的鲁棒性(更浅的 SID 更不易级联预测误差);最后 QP-SID 引入 query-aware 并行排序替代单一全局 efficiency 排序,serving 时按 query 选择最匹配的排序。

Figure 3 揭示了三个关键发现: 1. 输入与输出 SID 排序的一致性至关重要:用 QP-SID 排序作训练标签、却保留默认排序作输入,会削弱模型复制输入 SID 序列的能力,导致 HR@100 显著下降。 2. 引入辅助 query-matched 标签会使第三级 SID 更难学,放大其梯度并间接损害前两级的准确性——这被 Table 3 的层次预测准确率进一步佐证。 3. 99.8% 的模型输出坍缩到 Default 通道,说明模型未能利用 QP-SID 排序的多样性。
从最高配置(Input: QP-SID / Label: QP-SID,4-path Default+Rank 1/2/3)看,HR@1000 达 0.7966、HR@100 达 0.5824,为全图最优。
Table 3: 不同标签策略下 top-100 输出物品的层次 SID 预测准确率。
| Label Strategy | Cluster Hit Rate | Level-3 Hit Rate | Overall Hit Rate |
|---|---|---|---|
| QP-SID (Row 1) | 78.71 | 72.83 | 57.32 |
| Multi-path (Row 3) | 77.20 | 71.90 | 55.50 |
Table 4: QP-SID 类别在训练/评估集及模型输出上的分布。
| Category | Train Seq | Eval Seq | Model Output |
|---|---|---|---|
| No Hit (Default) | 55.37% | 61.42% | 32.05% |
| Term Rank = 1 | 25.46% | 22.99% | 44.91% |
| Term Rank = 2 | 11.63% | 9.71% | 14.53% |
| Term Rank = 3 | 7.54% | 5.88% | 8.51% |
Table 4 从分布视角进一步验证:行为序列里大多数物品落入 Default 类别(说明多数历史点击物品与当前 query 不密切相关),而多达 76.8% 的训练标签是 query 相关(Term Rank = 1/2/3)——这符合预期,因为用户带着当前 query 意图去点击。模型输出分布确认它成功学会从多个 ranking channel 检索,而非仅依赖 Default 通道(模型输出 Term Rank=1 占 44.91%,远高于其在 eval seq 的 22.99%)。
4.3.2 Value-aware Ranking Module¶
所有实验在 5000 物品候选池上进行。对排序分(Figure 4),作者消融推理时用于重排的不同分数组合,所有组合在 HR@1000 上都一致超越 baseline,PV × CTR 取得最佳总体性能。因为 PV × CTR 直接对应下游目标(HitRate),这个结果符合预期。

进一步(Figure 5),作者检验从训练中移除 CVR loss 是否影响性能,发现在本设置下影响可忽略。对模块架构:完全移除物品 embedding 会在 HR@20 和 HR@1000 上都造成严重退化,确认物品表征不可或缺——因为 SID 构造过程不可避免地丢弃大量物品信息,物品 embedding 是恢复丢失语义细节的关键补充。排除物品 side-info 会导致 HR@20 大幅下降,但对 HR@1000 只有中等影响。值得注意的是,用 mean pooling 替换 cross-attention、以及用 EOS token 表征喂进 MLP,会在 HR@20 上明显下降、却只在 HR@1000 上边际下降——这说明这两种设计可作为延迟敏感场景下的轻量替代方案。

从 Figure 5 可读出各变体 HR@20/HR@1000:w/o Emb(26.0 / 74.9)、w/o Side-Info(40.2 / 85.8)、Mean Pooling(39.2 / 84.9)、EOS Token(38.6 / 85.4)、完整 Attention(45.9 / 86.5)。
作者也补充了 SFT 训练目标的消融(Table 5):加权 session-wise 多正样本目标一致优于 pointwise baseline,确认显式建模多个正样本之间的相对优先级能带来更好的序列生成质量。
Table 5: SFT 训练目标的消融研究。
| Method | HR@20 | HR@100 | HR@500 | HR@1k | HR@5k |
|---|---|---|---|---|---|
| Pointwise | 0.3851 | 0.5653 | 0.7188 | 0.7714 | 0.8577 |
| Listwise | 0.4042 | 0.5890 | 0.7405 | 0.7922 | 0.8718 |
4.3.3 训练策略(Pre-SFT 任务)¶
Figure 6 检验每个 Pre-SFT 任务的贡献。每个任务都带来正增益,Retrieval 任务贡献最大(+3.82%),因为它与下游目标对齐最紧密。Personalization 任务贡献最少(+0.04%),因为它的 title-generation 格式与 SID 目标之间存在输出空间 gap。联合训练所有任务(Multi-task Fusion)取得 +5.76%,超过任何单一任务,确认这些任务激活了互补的能力维度。

各变体 HR@1000(%):Encoding (Base) 67.77,+Personalization +0.04,+Collaboration +1.62,+Recommendation +1.66,+Retrieval +3.82,Multi-task Fusion +5.76。
4.4 线上 A/B 测试¶
TSGR 作为现有检索源之外的附加通道部署,其输出直接前送到排序阶段,绕过常规预排序阶段。系统服务在 NVIDIA H20 GPU 上,延迟预算 80ms。给定 user query 和 context 特征,模型做约束 beam search:前两级 SID 在预建 prefix tree 强制的 valid-prefix 约束下解码(剪掉非法 token 序列),第三级做标准 beam search,产出一组完整 SID 序列;每生成一个候选,VRM 就计算价值分。候选据此重排后返回最终输出。
作者在淘宝搜索平台部署 A/B 测试,服务 1% 线上流量、连续 38 天。治理组用 TSGR 替代常规检索与预排序阶段(单一模型),直接把 top-1500 排名候选前送到排序阶段。相比生产 baseline,TSGR 取得 +0.43% IPV、+1.12% 成交单量、+1.64% GMV。这些提升在统计上显著,在淘宝搜索的规模上转化为可观的业务价值。

附录实验¶
A.4 QP-SID 案例研究(Figure 8-9)。 以两个代表簇为例(手机壳 Cluster (140, 3504) 与餐桌 Cluster (10278, 7631)),对比 default 价值排序与 query-条件排序。默认排序反映簇内物品的整体商业价值(全局流行 + 高价值物品靠前);query-条件排序据 query 意图重新优先物品——在 term "磁吸" 或 "实木" 下,标题里显式包含该 term 的物品(红色高亮)被提升到 top 位置,即使它们在默认排序里靠后。这展示了 QP-SID 维护多组 query-aware 价值排序、使模型能选择最匹配某 query 主导意图的排序、把 intent-aligned 高价值物品放到更有利的 token 位置。Figure 9 展示 serving 时的 term 选择:单匹配时 query 恰好匹配一个 term 决定 Level-3 SID;多匹配时 QP-SID 选 top-ranked term(实线箭头)、丢弃其余(虚线箭头)。


A.6 RL 细节。 Reward 设计为业务模型的 CTR × CVR 乘积:
$$r(s) = \text{CTR}(q, i_s) \times \text{CVR}(q, i_s) \tag{16}$$
RL 采用几项技术:Offline DPO Augmentation(标准 GRPO 的 on-policy rollout 集中在头部候选,reward 归一化会系统性压制低奖励样本,于是用从排序 CTR×CVR 构造的离线偏好对增广每个 prompt——chosen 来自 top-B、rejected 来自 rank 1000 附近,混合后只保留 reward top-k 和 bottom-k 并 mask 掉其余样本奖励);Dynamic Hierarchical Entropy Regularization(用动态 layer-wise 策略鼓励多样 SID 路径探索,按 rollout SID 与 ground-truth SID 在 Level 1-2 的匹配率 $m$ 用二元系数门控):
$$\beta(m) = \begin{cases} \beta_0 & \text{if } m < \eta_\text{low} \\ 0 & \text{if } m > \eta_\text{high} \end{cases} \tag{17}$$
RL 的 GRPO 目标加上熵项(只施于 Level 1-2,因为 Level 3 熵会扰动 SFT 校准好的细粒度物品分布):
$$\mathcal{L}_\text{RL} = \mathcal{L}_\text{GRPO} - \beta(m)\sum_{l \in \{1,2\}} \mathcal{H}(\pi_\theta^{(l)}) \tag{18}$$
其中 $\mathcal{H}(\pi_\theta^{(l)})$ 是 Level $l$ 策略分布的熵。
Table 8: RL 策略的消融(逐行累积叠加组件)。
| Method | HR@20 | HR@100 | HR@500 | HR@1k | HR@5k |
|---|---|---|---|---|---|
| Baseline | 0.4965 | 0.6580 | 0.7746 | 0.8111 | 0.8747 |
| + Basic RL | 0.4985 | 0.6584 | 0.7761 | 0.8113 | 0.8737 |
| + DPO Augmentation | 0.4975 | 0.6658 | 0.7803 | 0.8152 | 0.8772 |
| + Dynamic Entropy Reg | 0.4989 | 0.6674 | 0.7808 | 0.8163 | 0.8788 |
各 RL 组件增量贡献:Basic RL 仅 +0.02%(边际),DPO Augmentation +0.39%(较显著,偏好监督帮助区分正负候选),Dynamic Entropy Reg 再 +0.11%。累积 +0.52% —— 这个不高的总增益解释了为什么 RL 未在实际部署中采用。
A.7 TencentGR 泛化(Table 9)。 为验证 VRM 的泛化性,在 TencentGR-10M(无 query 字段、无预建 SID、全匿名特征、无带 ground-truth 标签的公开测试集)上重构 SID 并做实验:从 1024 维多模态 embedding 做层次聚类得两级 SID 前缀,第三级按簇内 transaction/click/impression 计数排序。
Table 9: TencentGR-10M 数据集上的消融实验。
| Dataset | Method | HR@500 |
|---|---|---|
| TencentGR-10M | Base | 0.0786 |
| TencentGR-10M | Value-aware Ranking Module | 0.0794 |
A.8 VRM 全面消融(Table 10)。 在 5000 物品候选池上评估不同排序策略(PV/CTR/CVR 及组合)× 多种模型变体(Attention / Mean Pooling / EOS Token / No Embedding / No Side-Info),确认 Attention-based + PV×CTR 取得最佳总体性能(HR@1000 0.8651)。

Table 10 关键数据(HR@1000):
| Model Design | Base | PV | CTR | CVR | PV×CTR | PV×CTR×CVR |
|---|---|---|---|---|---|---|
| Attention | 0.8252 | 0.8482 | 0.7824 | 0.5802 | 0.8651 | 0.8650 |
| Mean Pooling | 0.8269 | 0.8303 | 0.7865 | 0.6008 | 0.8488 | 0.8503 |
| EOS Token | 0.8272 | 0.8483 | 0.7977 | 0.6514 | 0.8539 | 0.8512 |
| No Embedding | 0.8233 | 0.7390 | 0.6053 | 0.4613 | 0.7487 | 0.7502 |
| No Side-Info | 0.8269 | 0.8429 | 0.7913 | 0.5432 | 0.8580 | 0.8570 |
可以看到 No Embedding 变体在几乎所有列上大幅退化(尤其 CVR 只有 0.4613,PV×CTR 0.7487),再次印证物品 embedding 的不可或缺;单独用 CVR 分数排序普遍很差(因为 CVR 与检索 top-K 的表面化目标不直接对应),而 PV×CTR 组合稳居最佳。
核心贡献总结¶
- 把商业价值贯穿进 GR 的两端:QP-SID 在 SID 构造侧、VRM 在候选排序侧,共同把 value awareness 注入端到端 GR,而非事后补丁式排序。这是应对"价值不敏感 SID + 价值无感知排序"这一结构性瓶颈的完整方案。
- QP-SID 的两个巧思:(a) 用价值排序(基于点击的簇内序数排名)占据靠前 token 索引,让"映射更多物品/接收更多训练信号"这一机制与业务价值对齐;(b) query-conditioned 并行排序,用 query-term-簇统计打破传统 SID 的 query-agnostic 局限,使同一物品对不同 query 呈现不同 SID 路径。
- VRM 把检索与预排序统一进单模型:复用生成骨干隐状态(零额外编码成本)+ cross-attention 融合物品 side-info,产出与业务对齐的三头(PV/CTR/CVR)分数,推理按 PV×CTR 重排。这消除了级联架构的目标错位和分布 gap,且部署上省去独立预排序阶段。
- 渐进训练流水线:Pre-SFT 五任务多任务预训练 + SFT 加权多正样本,逐层建立语义对齐/query-to-SID 生成/价值排序三种能力。
- 扎实的工业验证:离线 HR@1000 +9.16%,线上 A/B +1.64% GMV / +1.12% 成交单量 / +0.43% IPV,连续 38 天 1% 流量。
与已归档相关工作的对比¶
CRID CRID:把业务价值排序编码进 DocID(Taobao & Tmall Group of Alibaba, 2026-07-13)¶
关系:显式引用(本文 ref [11],且为同团队仅 8 天前的前作)· 已加载对方精读
- 共同关注的问题:两者指向同一 root cause——纯语义 SID 的编码目标(语义重构)与系统优化目标(业务转化)错位。CRID 举的例子(同一语义簇内两物品转化率相差几个数量级,却拿到相邻/相同 DocID)与 TSGR 的"局限一:价值不敏感 SID"是同一个诊断。
- 相近的技术骨架:两者都把业务价值以簇内序数排名(ordinal rank)编码进最后一级码本 token,前几级保持语义层级。CRID 的 $c_3(i) = \text{rank}$ 就是 TSGR 默认排序 $\pi_0 = \operatorname{argsort}_{i \in C} s_0(i)$ 的对应物;两者都主打"天然无碰撞 + 无需重训码本即可增量更新"。
- 本文的差异与推进:CRID 的价值排名是 query-agnostic 的单一全局排序;TSGR 的 QP-SID 在此之上引入 query-条件的并行排序($\pi_t = \operatorname{argsort}_{i\in C} s(i,t)$,每簇 4 组),解决了 CRID 未处理的"同一物品对不同 query 相关性/价值不同"问题。更重要的是,TSGR 还额外做了 VRM(价值排序侧),CRID 只做 SID 侧——TSGR 是"SID + 排序"双端方案,CRID 是"仅 SID"方案。
- 可比的方法/实验差异:两者都在淘宝数亿物品语料 + 全/部分流量部署。CRID 全流量带来 +1.06% GMV;TSGR 1% 流量带来 +1.64% GMV(口径不同,不能直接比,但均落到 GMV 且量级相当)。CRID 额外提供一个"个性化偏好 vs 统计先验"的分析框架解释增益来源,TSGR 未做此理论分解。
UniVA UniVA:面向工业广告的统一价值对齐 GR(Wuhan University / 腾讯微信视频号广告, 2026-05-07)¶
关系:显式引用(本文 ref [31],related work 引为 "Generation-as-Ranking with eCPM-aware RL")· 已加载对方精读
- 共同关注的问题:UniVA 的"价值不一致(Value Inconsistency)"三层拆解——(1) value-insensitive SID tokenization、(2) semantic-dominated SID decoding、(3) value-unaware online serving——与 TSGR 的两大局限高度同构(尤其 (1) 对应 TSGR 局限一,(2)(3) 对应 TSGR 局限二)。两者的核心洞察一字不差:商业价值不应是生成后补丁式注入的辅助信号,而应贯穿 SID 构造与模型输出。
- 相近的技术骨架:两者都 (a) 在最后一级 SID 切换为价值感知 token(UniVA 的 Commercial SID $s_i^L = \Phi_\text{com}(x_i^c)$ vs TSGR 的 efficiency codebook),(b) 引入一个在同一模型内联合优化的价值打分头(UniVA 的 dual-head generation-as-ranking value head vs TSGR 的 VRM 三头),(c) 都探索了 GRPO/RL 做业务目标对齐。
- 本文的差异与推进:三点关键差异——(1) 场景:UniVA 面向广告(eCPM/bid/ROI 等广告主侧商业属性),TSGR 面向电商搜索(PV/CTR/CVR 用户侧转化);(2) 价值注入 SID 的方式:UniVA 用商业属性的 classify-then-bin 离散化(无序桶+key),TSGR 用点击价值的序数排名(保留数值序,这点 CRID 也强调优于无序桶);(3) 价值排序落点:UniVA 把 value head 融进解码 logits(generation-as-ranking,token 级在线竞争 + value-guided beam search),TSGR 则是解码后由独立 VRM 重排(复用隐状态 + 物品 side-info 的 cross-attention)——UniVA 更"内生于解码",TSGR 更"解码后融合丰富 side-info"。此外 TSGR 明确报告 RL 增益边际、最终弃用 RL 而用 VRM,而 UniVA 把 eCPM-aware RL 作为核心组件。
- 可比的方法/实验差异:UniVA offline HR@100 +37.04%、online +1.50% GMV(腾讯微信视频号);TSGR offline HR@1000 +9.16%、online +1.64% GMV(淘宝搜索)。两者都用 RQ-KMeans 类语义分词器 + 最后一级换价值 token 的范式,是"殊途同归"的强证据(不同公司、不同场景,独立得到几乎相同的架构原则)。
Gryphon Gryphon:为 SID 生成与 item 级打分设计的统一架构(Yandex, 2026-06,工业音乐推荐)¶
关系:独立并发(本文未引用 Gryphon,两者殊途同归)· 已加载对方精读
- 共同关注的问题:两者都精确诊断了 GR 的排序侧结构性错位——"beam search 给 SID 序列(token 序列)打分,而推荐质量在具体 item 上评估"。Gryphon 把它拆成"序列似然失准 + SID 碰撞"两个失败模式;TSGR 的"局限二:beam search 反映语义相关性而非业务相关性、且无法在输入侧预取 item side-info"是同一个 gap 的另一面表述。
- 相近的技术骨架:两者的解法骨架几乎镜像——都在 encoder-decoder/decoder GR 之上加一个联合训练的 item 级打分模块,该模块复用共享的用户 encoder/骨干隐状态(Gryphon 的 $E_u$ vs TSGR 的 $\mathbf{H}_u$),用一个轻量 item-to-user cross-attention + MLP head 给"从生成 SID 解析出的具体 item"重新打分,并在最终排序里丢弃 beam likelihood、改用 item 级分数。Gryphon 的 $r_\phi(u,i) = f_\phi(E_u, e_i)$(cross-attn + MLP)与 TSGR 的 $\mathbf{a}_k = \text{CrossAttn}(\mathbf{v}_k, \mathbf{H}_u, \mathbf{H}_u)$ 后接三头 MLP 是同一设计模式。两者都强调该模块零额外编码成本(复用一次 encoder 前向)。
- 本文的差异与推进:(1) 打分目标:Gryphon 的 ILSM 用 next-item prediction(sampled softmax)单目标实例化,强调解决 SID 碰撞组内区分;TSGR 的 VRM 用 PV/CTR/CVR 三头 + 业务 side-info,直接对齐业务转化,且推理按 PV×CTR 重排。(2) 是否动价值 SID:Gryphon 不动 SID 构造(用 vanilla RQ-VAE SID,专攻排序侧),TSGR 则双端都动(QP-SID + VRM)——这是两者最大的范围差异。(3) 物品表征丰富度:TSGR 的 item 表征显式拼接 side-info 向量 + item embedding + SID embedding(式 7),比 Gryphon 的 item tower 更重 side-info。作为独立并发工作,两者从推荐(音乐)和搜索(电商)两个不同场景,独立收敛到"用共享隐状态的 item 级 joint scoring 模块取代 beam likelihood 排序"这一相同原则,是本步骤最有价值的孪生印证。
讨论与局限性¶
核心贡献与借鉴价值。 TSGR 最值得借鉴的是它把一个抽象诊断(GR 对业务价值双重无感知)落成了两个可操作、可部署、低成本的工程改动:(1) QP-SID 用"靠前 token 索引 = 更多训练信号"这个 GR 内在机制去承载业务价值排序,几乎零推理成本;(2) VRM 复用骨干隐状态、只在解码后加一个轻量 cross-attention 打分头,就把独立预排序模型内化进单一模型,省掉级联架构的一整个阶段。这两点都体现了"顺着 GR 自身结构去注入业务目标"而非"外挂补丁"的设计哲学。渐进训练流水线(Pre-SFT 五任务)也是工业 GR 训练的实用配方。
与相关工作的差异。 如上三节所述,TSGR 处在一个非常"拥挤"的方向上:SID 侧与同团队 CRID、广告场景 UniVA 高度同构;排序侧与 Yandex Gryphon 殊途同归。TSGR 的独特位置是同时做双端(SID + 排序)且在电商搜索场景端到端替代检索+预排序两个级联阶段,这个"单模型吃两阶段"的野心比多数只做单端的工作更大。
局限与争议:
- QP-SID 的 query-条件排序利用率偏低:Table 4 显示模型输出仍有 32.05% 坍缩到 Default 通道,Figure 3 的分析也指出"引入 query-matched 辅助标签会让第三级 SID 更难学、间接损害前两级准确率"。即 QP-SID 的多样性收益与训练难度之间存在张力,尚未完全释放。
- RL 收益边际、最终弃用:作者诚实报告 GRPO + DPO 增广 + 动态熵正则累积只带来 +0.52% HR@1000,远不及 VRM 的 +3.73%,因此线上未用 RL。这与 UniVA 把 eCPM-aware RL 当核心组件形成对比——说明"RL 对齐业务目标"在电商搜索 GR 上的性价比仍有争议,可能高度依赖场景和 reward 设计。
- CVR 信号价值有限:多处消融(Figure 4、Table 10)显示单独用 CVR 排序很差、训练去掉 CVR loss 影响可忽略,最终只用 PV×CTR。这暗示在检索/预排序阶段(关注 top-K 表面化),转化率信号不如曝光×点击信号直接有用。
- 评估口径:主结果依赖内部淘宝数据 + HR@K,公开可复现性有限;TencentGR-10M 上的泛化验证只给了 Base 0.0786 → VRM 0.0794(+0.8%)的单点提升,说服力偏弱。
工业落地价值。 TSGR 已作为附加检索通道在淘宝搜索 1% 流量部署 38 天,Qwen2.5-0.5B 骨干、H20 GPU、80ms 延迟预算内完成约束 beam search + VRM 打分,输出 top-1500 候选绕过预排序直送排序阶段,带来 +1.64% GMV / +1.12% 成交单量 / +0.43% IPV 的统计显著增益。在淘宝搜索的体量下,这是实打实的业务收益,且"单模型替代检索+预排序两级联"还带来了部署成本的节省。