One Hierarchy, Two Systems: Semantic Product IDs for Discovery-Surface Ranking and Search-Page Query Reformulation
Steven Xu, Sanjyot Thete, Saathvik Dirisala, Raghav Saboo, Nimesh Sinha, Leo Shao, Elyse Winer, Sudeep Das, Martin Wang, Kyle MacDonald
cs.IR, cs.AI
2026-08-21
商品内容学出的三层 SID 同时服务发现页排序和店内搜索改写。离线 MRR@5 相对现网 +6.98%,在线首位加购 +8%,改写让购买 MRR +0.558%。
多商家电商目录里,同一件货在不同店有不同 listing ID,行为信号被切碎;人工类目又太粗,细偏好喂不进排序。搜索改写这边,原始 query 字符串把错拼、缩写、同义说法拆成不同节点,跨业务线还可能把不同意图揉在一起。DoorDash 问的是:从商品内容 embedding 学一次层次化 Semantic ID,能不能同时给发现页排序和店内搜索改写当共享概念层,而不把两套系统训成一个模型。
答案是可以。排序和改写用同一棵 SID 树,特征和决策逻辑各走各的。
商品名、品牌、规格拼成文本,用 gemini-embedding-001 得到 3072 维向量,再做 3 级残差 K-means,每级 512 个中心,得到 L1 / L2 / L3 前缀。越长的共享前缀,簇越紧、held-out 余弦越高(L1 的 DBI 3.934、余弦 0.957;L3 的 DBI 0.976、余弦 0.981)。
排序侧把三级前缀同时做成两类特征。一类是密集聚合:用户历史里各前缀的下单频次、近因、小计,以及分市场的曝光点击加购购买率。一类是序列:把 (位置, 码) 映成 1536 个符号,用 BPE SentencePiece 切子词,候选商品和用户 180 天订单共享一张 20 万 × 64 的 embedding 表。排序模型仍是 CTR / ATCR / CVR 多任务网络,原有 listing ID 和类目特征保留。
改写侧按业务线把 query 用加购证据落到主导 L2(至少 5 次、占比 ≥30%),不够就退到 L1。会话里相邻 query 变成概念转移,用 NPMI 筛边;L2 自环丢掉的细化意图,另开一条下钻到 L3 的路。SID 是内部 ID,最后用语言模型把概念渲染成用户能看的短 query,上线时按该商家在售库存过滤。
离线排序把完整候选 FC 和去掉全部 SID 特征的 FC-A 对照,非 SID 配置保持不变。相对现网,FC-A 的 MRR@5 / NDCG@5 为 +2.10% / +2.92%,FC 为 +6.98% / +6.76%。SID 特征贡献了完整候选离线增益的大头。K=3 和 K=10 同向。
21 天在线实验里,特征包(SID 加同期非 SID 更新)相对旧排序:
| 指标 | 相对变化 |
| 小计 | +0.31% |
| 轮播平均加购率 | +5.5% |
| 第 1 / 2 / 3 位加购率 | +8% / +16% / +6% |
首位商品的历史热度下降 18.1%,爆款占首位曝光的份额下降 2.1 个百分点。作者写明在线包混有非 SID 更新,但离线消融和实验后分析都指向 SID 是主要贡献。
改写离线:类目把 18.8% 的意图变化转移压成自环,SID 是 10.9%。LLM 裁判在两边都服务到的 query 上,首位建议质量从字符串转移图的 0.522 升到 SID 系统的 0.734(200 对人工标,裁判精确一致率 78%)。在线相对无建议对照:购买 MRR +0.558%,加购位置 −1.571%,搜索滚动深度 −1.866%。
TIGER 以来 SID 多半当生成式检索的自回归目标。这篇把它当成可复用的商品概念层:排序拿前缀做跨店证据池,搜索拿同一棵树做横向跳转和向下细化。两套系统不共享参数、目标和 serving。对多商家目录,这比再维护一套细类目便宜,也比把搜和推训成一个生成模型现实。渐进,但两头都有在线数字。
排序在线实验没有单独拆出 SID,隔离证据主要靠离线消融。改写质量用 LLM 裁判,和人工的精确一致率 78%,「好」的标定有噪声。过宽的前缀会变成图枢纽,把不相关建议传开;用加购回标 query 可能标到最终买的货,而不是当时的检索意图。量化边界上的替代品可能被分到不同码。生成只用于把概念渲染成文案,候选结构仍由行为和目录决定,渲染质量没有单独报。