← Back to list
OneSug

OneSug: The Unified End-to-End Generative Framework for E-commerce Query Suggestion

生成式推荐 Kuaishou
Abstract 7 Reading 7 Rating —
2025-06-07
Xian Guo, Ben Chen, Siyuan Wang, Ying Yang, Chenyi Lei, Yuqing Ding, Han Li
Kuaishou Technology
提出首个面向电商搜索查询建议的端到端生成式框架OneSug,通过prefix2query表示增强、统一编码器-解码器架构和奖励加权排序策略,替代传统多阶段级联架构,在快手电商搜索引擎全量部署并取得显著业务提升
search-ranking semantic-id rl transformer industrial

1. 研究背景与动机

搜索查询建议(Query Suggestion)是电商搜索系统的核心模块,根据用户输入的前缀(prefix)推荐相关的完整查询词,帮助用户精准定位需求。传统方法通常采用多阶段级联架构(Multi-stage Cascading Architecture, MCA)

  • 召回阶段(Recall):从约 $10^6$ 候选中筛选
  • 粗排阶段(Pre-ranking):约 $10^4$ 候选
  • 精排阶段(Ranking):约 $10^2$ 候选

这种架构存在三大问题: 1. 前一阶段的性能决定了下一阶段的上限 2. 各阶段优化目标不一致,导致整体次优 3. 对未见前缀(unseen prefix)的长尾场景表现不佳

与视频推荐等闭集任务不同,查询建议的输入(prefix)和输出(query)都是开放词汇(open-vocabulary),这使得 OneRec [13] 等视频推荐领域的端到端方案无法直接迁移。OneSug 的目标是构建首个面向电商查询建议的端到端生成式框架

2. OneSug 框架

OneSug 包含三个核心组件:

2.1 Prefix2Query 表示增强(PRE)

用户输入的前缀通常很短(通常只有一个词),语义模糊(如"apple"可能指水果或公司)。PRE 模块通过三个步骤增强前缀表示:

(1)Prefix-Query 对齐

基于 BGE(bge-base-zh-v1.5)作为初始表示模型,通过对齐训练融入电商检索知识:

$$E_{\text{trigger}} = \text{BGE}(T_{\text{trigger}}),$$ $$E_{\text{target}} = \text{BGE}(T_{\text{target}}),$$ $$\mathcal{L}_{\text{align}} = \text{Batch-Contrastive}(E_{\text{trigger}}, E_{\text{target}}).$$

使用 ItemCF [41] 和 Swing [50] 等检索模型生成高质量的 prefix2query 和 query2query 对,选择语义相关的配对数据训练对齐后的 BGE。

(2)前缀表示增强

对给定前缀 $p$,利用对齐后的 BGE 模型从共现查询中获取增强表示:

$$e_q^c = \frac{1}{k}\sum_{i=1}^{k} e_{q_i}^c,$$ $$e_p^* = (1-w) \cdot e_p + w \cdot e_q^c \quad \text{where } w \in (0,1),$$

其中 $e_p$ 是原始前缀嵌入,$e_q^c$ 是共现查询嵌入的均值,$w$ 在训练时设为 0.5。

(3)层级量化语义 ID 生成器(RQ-VAE)

采用 RQ-VAE [51] 将增强后的前缀嵌入转换为层级量化语义码,训练目标为:

$$\mathcal{L}(x) := \mathcal{L}_{\text{recon}} + \mathcal{L}_{\text{rqvae}},$$ $$\mathcal{L}_{\text{recon}} := \|x - \bar{x}\|^2,$$ $$\mathcal{L}_{\text{rqvae}} := \sum_{i=0}^{m-1} \|\text{sg}[r_i] - e_{c_i}\|^2 + \beta \|r_i - \text{sg}[e_{c_i}]\|^2,$$

其中 $x$ 和 $\bar{x}$ 分别是 DNN 编码器的输入和解码器的输出,$\text{sg}[\cdot]$ 是 stop-gradient 操作,$r_i$ 是第 $i$ 层残差嵌入,$e_{c_i}$ 是最近质心嵌入的索引。RQ-VAE 的编码器/解码器 block 数 $L=3$,codebook 层数 $C=4$,codebook 大小 $W=512$。

通过语义 ID 进行由粗到细的聚类检索:先匹配相同语义 ID 的高质量查询,再接受共享相同 codeword 的查询,最后基于多样性和相关性筛选 top-$k$ 查询。取 10 条相关查询用于前缀表示增强。

2.2 统一编码器-解码器架构

OneSug 采用统一的 Transformer encoder-decoder 架构,直接通过 beam search 生成目标查询:

$$Q := M(p, \mathcal{H}_p, \mathcal{H}_u, \mathcal{U}),$$

其中 $p$ 是用户输入前缀,$\mathcal{H}_p = \{q_1^a, q_2^a, \ldots, q_m^a\}$ 是 prefix2query 增强序列(来自 RQ-VAE),$\mathcal{H}_u = \{q_1^h, q_2^h, \ldots, q_n^h\}$ 是用户历史搜索查询,$\mathcal{U}$ 是用户画像信息。

编码器输入格式为:

$$x_u = \{t_{[\text{CLS}]}, p, t_{[\text{SEP}]}, \mathcal{H}_p, t_{[\text{SEP}]}, \mathcal{H}_u, t_{[\text{SEP}]}, \mathcal{U}\}.$$

编码器使用堆叠的多头自注意力层处理输入,生成历史交互特征 $\mathcal{H} = \text{Encoder}(p, \mathcal{H}_u, \mathcal{H}_p, \mathcal{U})$。解码器以目标查询的 token 为输入,自回归生成候选查询。训练使用 next-token prediction 的交叉熵损失,得到种子模型 $M_t$。

可选用 encoder-decoder 模型(BART [29]、mT5 [48])或 decoder-only 模型(Qwen2.5 [37])作为基座。

2.3 用户偏好对齐:奖励加权排序(RWR)

2.3.1 奖励加权排序

受 RLHF [31, 38] 启发,将用户在搜索系统中的交互行为划分为六个层级:

行为 说明
Order 用户通过特定查询购买商品
Item Click 用户通过特定查询点击商品
Click 用户点击特定查询
Show 特定查询在面板中展示
Not Show 查询存在于召回结果但未展示
Rand 排序候选中的随机查询

为每个层级分配奖励权重 $r(x_u, q) = \lambda \cdot e^{pi}$,其中 $\lambda$ 为基础权重(各层级分别为 [2.0, 1.5, 1.0, 0.5, 0.2, 0.0]),$pi$ 是同层级内交互查询的比率。

构造九种 $\langle$positive, negative$\rangle$ 对,来自 {Order, Item Click, Click} 的正样本和 {Show, Not Show, Rand} 的负样本。每对的偏好差异为:

$$rw_\Delta = \frac{1.0}{r(x_u, q_w) - r(x_u, q_l)},$$

其中 $q_w$ 是胜出样本,$q_l$ 是失败样本。较小的 $rw_\Delta$ 表示更大的偏好差异。

2.3.2 混合排序框架

Pair-wise DPO 损失

$$\mathcal{L}_{\text{pair-wise}} = -\mathbb{E}\left[\log\sigma\left(rw_\Delta(max(0, \hat{r}_\theta(x_u, q_w) - \hat{r}_\theta(x_u, q_l) - \delta))\right) + \alpha \log\pi_\theta(q_w|x_u)\right],$$

其中:

$$\hat{r}_\theta(x_u, q_{w/l}) = \beta \log \frac{\pi_\theta(q_{w/l}|x_u)}{\pi_{\text{ref}}(q_{w/l}|x_u)},$$

$\delta \gt 0$ 是目标奖励边距,$\alpha$ 控制 SFT 损失的权重。

List-wise 损失(受 S-DPO [10] 和 Plackett-Luce [12, 33] 模型启发):

$$\mathcal{L}_{\text{list-wise}} = -\mathbb{E}\left[\log\sigma\left(-\log\sum_{q_l \in Q_l} \exp\left(rw_\Delta \cdot \max\left(0, \hat{r}_\theta(x_u, q_l) - \hat{r}_\theta(x_u, q_w) - \delta\right)\right)\right) + \alpha \log\pi_\theta(q_w|x_u)\right],$$

其中 $Q_l$ 是负样本集合。list-wise 建模将 pair-wise 对比扩展为完整的偏序排列,配合 margin loss [5] 使模型对训练数据中的噪声更鲁棒。

3. 实验设置

数据集

从快手电商搜索引擎 2025年2月至2025年3月的在线日志中提取用户交互数据,约1亿 PV。数据跨度32天,前30天用于训练,最后2天作为测试集。

评估指标

  • HitRate@K:召回性能指标
  • MRR(Mean Reciprocal Ranking):排序性能指标

Baseline 方法

  1. MCA(Multi-stage Cascading Architecture):BGE 召回 + DCN [43] 粗排 + DIN [55] 精排
  2. onlineMCA:线上系统的多阶段级联输出(包含数百种特征的多路召回和复杂排序)
  3. GRA_SFT / GRA_DPO:生成式检索架构,采用 $\langle$prefix, historical sequence, user profile$\rangle$ 作为输入

实现细节

  • BGE 版本:bge-base-zh-v1.5
  • beam search size:32(线上系统展示16条,beam=32 平衡质量与延迟)
  • SFT batch size:512;DPO batch size:128
  • prefix2query 取 10 条相关查询,历史查询取 10 条
  • 基座模型:BART-B [29](线上部署版本)、BART-L、mT5-S、mT5-B、Qwen2.5-0.5B/1.5B/3B

4. 实验结果

4.1 离线性能(Table 2)

Method Click HR@16 Click MRR Order HR@16 Order MRR
MCA 73.89% 39.95% 80.71% 44.03%
onlineMCA 78.61% 45.97% 84.55% 51.85%
GRA_SFT 73.16% 40.06% 79.25% 44.28%
GRA_DPO 75.50% 41.19% 81.68% 45.30%
OneSug_{Bart-B} 82.14% 50.55% 87.40% 56.34%
OneSug_{Bart-L} 82.84% 51.27% 88.12% 56.80%
OneSug_{mT5-S} 82.01% 50.40% 87.26% 55.87%
OneSug_{mT5-B} 83.63% 53.01% 88.19% 57.63%
OneSug_{Qwen2.5-0.5B} 85.58% 55.34% 90.13% 60.00%
OneSug_{Qwen2.5-1.5B} 89.60% 60.49% 94.95% 63.48%
OneSug_{Qwen2.5-3B} 93.37% 66.31% 95.13% 67.40%

关键发现

  • MCA 因多阶段信息损失,HitRate 和 MRR 远低于 onlineMCA(后者使用数百种特征的多路召回)
  • GRA_DPO 优于 GRA_SFT,但仍不及 onlineMCA,因无法深入挖掘前缀语义丰富性和不同行为层级的偏好差异
  • OneSug_{Bart-B} 相比 onlineMCA 在 HR@16 和 MRR 上分别平均提升 3.19% 和 4.54%
  • OneSug_{Qwen2.5-3B} 相比 onlineMCA 提升幅度高达 12.67% 和 17.95%
  • Encoder-decoder 模型(BART 与 mT5)同规模性能相近;decoder-only 模型(Qwen2.5)随规模增大性能显著提升

4.2 消融实验(Table 3)

Method Click HR@16 Click MRR Order HR@16 Order MRR
OneSug_{list-wise} 82.14% 50.55% 87.40% 56.34%
- w/o margin 81.63% 49.70% 86.91% 55.63%
OneSug_{pair-wise} 79.39% 47.42% 85.12% 53.01%
- w/o margin 78.81% 46.89% 84.62% 52.57%
- w/o $rw_\Delta$ 77.90% 44.41% 84.17% 49.18%
- w/o RWR 77.28% 42.28% 82.48% 46.66%
- w/o PRE&RWR 73.16% 40.06% 79.25% 44.28%

关键发现

  • PRE + list-wise RWR 组合使 GR 模型在 HR@16 上平均提升 8.57%,MRR 提升 11.28%
  • list-wise 替换为 pair-wise 导致 HR@16 下降 2.52%、MRR 下降 3.23%,说明多负样本有助于学习不同行为层级的偏好差异
  • margin loss 和 $rw_\Delta$ 的增量贡献:去除 $rw_\Delta$ 使 HR@16 下降 2.38%,MRR 下降 5.75%
  • 去除 RWR 模块使 MRR 大幅下降(42.28% vs 50.55%),说明奖励加权排序是核心
  • 去除 PRE 模块导致 HitRate 下降 3.68%、MRR 下降 2.30%

4.3 在线 A/B 测试(Table 4)

Method IPL TCP CTR Order Revenue
OneSug_{pair-wise} -1.99% -9.02% +1.78% +1.97% +1.49%
OneSug_{list-wise} -1.82% -9.33% +2.01% +2.04% +1.69%

关键发现

  • OneSug_{list-wise} 使用户平均输入前缀长度(IPL)降低 1.82%,首位点击位置(TCP)降低 9.33%
  • CTR 提升 2.01%,订单量提升 2.04%,总收入提升 1.69%
  • 系统响应时间平均减少 43.21%(替代了多阶段召回、粗排流程)
  • OneSug_{list-wise} 已在快手电商搜索引擎全量部署超过1个月,服务数百万用户和数十亿 PV

4.4 人工评估(Table 5)

Method full recall rate page good rate query good rate
OneSug_{pair-wise} +6.72% +9.44% +20.49%
OneSug_{list-wise} +8.48% +11.02% +22.51%
OneSug_{Qwen2.5-0.5B} +11.25% +18.55% +32.50%

随机选取 2000 个前缀、提取 32000 个 prefix-query 对进行人工评估。full recall rate 要求 16 个查询全部满足语义标准。

4.5 进一步分析

行业维度:30 个行业中 27 个 CTR 提升,平均提升 2.12%,其中 P-value < 0.05 的有统计显著性。

前缀流行度维度(Table 6)

Method Top Middle Long-tail
OneSug_{pair-wise} +0.97% +1.03% +3.26%
OneSug_{list-wise} +1.15% +1.32% +3.59%

长尾前缀的 CTR 提升远大于头部和中部,说明 PRE 模块中的语义和交互查询增强对长尾场景尤为有效。

模型更新频率:不进行每日更新时,OneSug 性能衰减(-0.6%/天)小于 onlineMCA(-1.1%/天)。仅用最近3天数据更新 DPO 对齐阶段(OneSug_daily),即可以极低计算成本维持模型效果。

特征类型分析:四类特征(ID-based、List-wise、Bucketing、Target-aware)对生成模型影响不同。ID-based 特征会显著降低效果(无意义 ID 干扰输入语义),而 target-aware 特征(query、item、prefix 序列的交叉注意力特征)干扰较小但需精心设计 prompt。

5. 核心贡献总结

  1. Prefix2Query 表示增强:利用共现查询和语义对齐增强短前缀的语义表示,结合 RQ-VAE 生成层级语义 ID 实现高效聚类检索
  2. 统一 Encoder-Decoder 架构:将召回、粗排、精排统一为单一生成模型,避免多阶段目标不一致
  3. 奖励加权排序(RWR):将用户行为分为六级,通过 reward-weighted DPO 和 list-wise 偏好学习实现精细化个性化排序
  4. 首个工业级端到端查询建议系统:在快手电商搜索引擎全量部署,CTR +2.01%、Order +2.04%、Revenue +1.69%、响应时间 -43.21%