← 全部深度解读
📖 深度解读 · PERSONALIZATION

Balancing Trial and Reorder: A Hybrid Sequential Transformer-GBDT Ranker for On-Demand Delivery

Marcel Kurovski, Attila Nagy, Steffen Klempau, Aleksandr Fedintsev · Wolt · arXiv 2609.16407 · 发表 2026-09-15
8 分钟阅读时长 3143字 4.20综合分 第 1 名09-17 Personalization 日报
目录 · 6 节1问题与动机2方法详解3核心技术贡献4实验结果分析5局限与未来方向6工业实践意义
相关 4新颖 3实用 5证据 5时效 5
可先将行为序列模型的单个 logit 接入现有社区搜索排序,用较小改造验证用户兴趣信号,并分别监测新内容探索与重复消费。论文的试新收益伴随部分国家复购 MRR 回落,不能只看总指标;UGC 点击更密集,还需重新验证序列更新频率、曝光偏差和 nDCG、CTR 护栏。

1. 问题与动机

Wolt 的问题是同一用户既会回购熟悉店铺,也需要发现新店。历史订单很容易让排序模型偏向复购,而配送业务的候选又受位置、营业状态和配送能力约束,不能直接照搬全库商品推荐。论文将用户分成无历史订单、首次购买某店、重复购买某店三种情况,分别报告 MRR,避免占多数的复购行为掩盖探索质量。其目标是可调节的试新与复购权衡,而非单纯提高一个整体离线指标。

旧系统有餐饮首排、餐饮精排、冷启动和零售四个独立模型,维护成本高,也阻断跨业务行为共享。UVR 用一个序列分类器与下游树模型体系统一这些路径,但仍保留餐饮和零售两种域专用 GBDT,因此“统一系统”不意味着只有一个预测器。对社区 UGC 搜索,类似矛盾是熟悉作者或话题的短期点击,与新作者、新内容的发现之间如何取舍;这是迁移启示,并非论文直接验证的任务。

2. 方法详解

序列分类器采用仅编码器的双向 Transformer,将历史订单按时间排列,只遮蔽最后一个目标订单的店铺和产品线。请求时间、位置和当前业务域在推断时本来已知,故保留;若把目标商品所属的精细产品线提供给模型,就会泄漏答案。每步输入由店铺、产品线、周、星期、小时、H3 网格六类 embedding 和相对目标时间的对数变换拼接,再线性投影。H3 使用分辨率 8,平均面积约 0.74 平方公里,作为共享位置表征。

域条件在两个位置注入:产品线使用餐饮或零售专属 mask,投影后再给目标位置加一个域向量。作者发现单独使用前者会在多层传播中弱化;额外的加法条件比尝试过的 FiLM 调制更简单,后者没有带来收益。V1/V2 为 4 层、4 头、128 维,前馈隐层 160;V3 仍为 4 层,扩到 6 头、192 维和 384 维前馈。注意力屏蔽 padding,却没有因果 mask,目标位置能看到完整历史。

输出层一次预测国家内所有店铺的 logit;请求只抽取实际可配送候选的分数,再作为一个数值特征送入 CatBoost。其他树模型特征包括店铺内容、配送上下文和用户店铺交互。分类器用域内 softmax 交叉熵,标签平滑系数 0.2;试新样本权重大于冷启动,大于复购。这里不是逐候选执行 Transformer,一次请求一次前向即可产生全部候选信号。

训练使用 AdamW,学习率 0.001、权重衰减 0.15,训练批量 256、验证批量 1024;V1/V2 训练 15 轮,在第 4、6、7 轮按 0.1 倍衰减,单张 A10G 上使用 bfloat16,V3 改为 12 轮。每个国家每日训练;绝对订单量没有公开,不能推断样本规模。分类器按用户 90:10 划分,验证集出现训练词表外实体时将相关序列移回训练,因此其验证并不代表真正未见店铺泛化。

树模型使用最近 30 天日志,28 天训练、1 天验证、1 天测试,分类器训练时间提前截断两天,防止其分数包含树模型验证或测试标签。训练仅保留曝光候选作为较难负例,验证测试用完整候选。V2/V3 用 NDCG 模式的 YetiRankPairwise,购买标签高于点击,首次点击高于复购点击,试新会话另外加权。树数上限 500、深度 8、学习率 0.05、叶正则 3.0,50 轮无提升停止。

3. 核心技术贡献

第一项价值是把序列兴趣压成一个可接入现有树模型的特征。分类器捕获时序和跨域行为,树模型处理距离、库存和交互统计等复杂约束。V1 在六国、试新与复购共 12 个格子里,最终树排序器全部胜过单独分类器,支持二者互补。不过论文没有控制其他变量做“去掉序列 logit”的消融,不能把整套系统收益都归给 Transformer。

第二项贡献是显式控制试新偏好。分类器、树模型分别使用样本或会话权重,树模型还调整负例数量,从而得到探索与复购的可选工作点。附录固定分类器,扫描 3 个权重比和每组 50 个负采样设置,共 150 次树模型重训。权重比 1.5 偏复购,2.0 更均衡,3.0 偏试新;增加负样本对数又将结果推向复购。这说明改进来自可测量的目标重分配,而非无条件同时提升所有指标。

第三项是跨域统一及工程控制。餐饮与零售共享按时间交错的订单序列,域条件提供目标业务信息,后端保留不同特征集合的树排序。真正需要复用的是用户理解和训练服务流程,而非强行让每个域用完全相同特征。作者明确承认尚未隔离共享行为的因果贡献,这使跨域效果的解读更可信。

4. 实验结果分析

下表来自正文表 5,三行控制组不同,不能把提升当作同一基线下的横向比较或直接相加。

版本与控制新店尝试率变化全局 CVR 变化
V1 对旧餐饮系统+5.5%+0.16%,p=0.017
V2 对 V1+0.45%-0.05%,p=0.398
V3 对 V2 加零售旧模型零售 +1.31%+0.04%,p=0.457

试验均按用户 50:50 分组,V1/V2 在十大国家运行两周,V3 在全部运营国家运行三周。新店尝试率达到作者所报 0.05 显著性标准,V2/V3 的全局转化差异不显著,不能写成转化提升。V3 还出现广告收入下降 0.43%;作者认为自然排序超过旧广告栈,但这是作者解释,不是已完成的因果分解。

正文表 4 的离线结果进一步揭示代价。以色列试新 MRR 相对旧生产排序从 V1 的 +19.7% 升到 V2 的 +30.3%,复购却从 +5.0% 变成 -12.5%;德国对应试新 +19.8% 到 +29.0%,复购 -11.4% 到 -27.3%。芬兰 V2 试新 +12.5%、复购 +6.7%,说明不同国家没有统一折衷。作者希望把复购回退限制在 15% 内,但德国没有找到满足条件的设置,不能省略这一失败案例。

这些数字以高流量周日为主,其他日期方向一致;单国多随机种子实验的收益标准差约为平均收益的 10%–30%,因此不宜对单个格子的微小差异做强结论。附录显示复购 MRR 在历史长度约 30 次购买之前上升明显,之后趋平;试新与冷启动对长度不敏感。该结果支持先做合理截断,而不是默认扩展长序列就有收益,但正文未给出每个长度点的数表。

5. 局限与未来方向

作者列出三项直接限制:历史订单最多滞后一天,没有实时行为;店铺预测头只能处理训练见过的店铺,新店依赖树模型内容特征;只使用购买序列,尚未充分纳入点击、浏览和停留时长。每日重训主要应对新店词表增长,而不是已证明每天都会发生模型质量衰减。

作者另指出旧控制包含广告位置与去重后处理,因此严格模型对模型比较可能缩小差距;V3 的零售增益可能来自增加序列模型本身,而不一定是餐饮迁移。缺少按域隔离的同架构对照,以及去掉分类器分数的受控消融,均列为待补实验。本文额外判断是:仅购买会话训练会改变曝光分布,对低频 UGC 读者不应直接套用;需要单独检查无转化流量。

6. 工业实践意义

在已有 GBDT 或多阶段排序的社区平台,优先试验“小型序列编码器加单一分数特征”是可执行路线。训练、验证、测试必须按事件时间隔离,生成序列分数时重建当时历史,不能让后发生点击进入特征。将首次接触内容与重复接触分开看 nDCG、CTR,再用整体点击和留存作护栏;本文线上目标是下单,并不保证社区搜索会出现同样幅度。

工程上每日 Flyte/Kubernetes 任务生成序列并写入在线特征库,CPU 计算分类器,接着执行树排序,整体 p99 约 60 毫秒,包含取特征和序列化。这是 Wolt 特定候选规模下的整体结果,不是可直接复用的单模型延迟预算。UGC 内容词表通常更大且更新更快,照搬全词表线性输出层可能增加成本,需先测候选量和新内容覆盖。

试点应同时比较旧排序、仅树模型、新序列特征三组,并检查新作者曝光是否挤压用户明确偏好的内容。把广告收入下降、复购回退和国家差异作为真实业务权衡纳入评审,才比只引用“试新率提升 5.5%”更有价值。上述试点设计是针对社区搜索的建议,论文自身没有开展该场景实验。

来源:https://arxiv.org/html/2609.16407 ,正文第 3–6 节、表 4–5、附录 A–B。

← 全部深度解读 出现于报告:2026-09-17 · Personalization #1 (4.20) 原文 ↗