别再只卷向量检索了,得物交易搜索如何用“生成式”实现召回范式跃迁?

0 阅读26分钟

一、引言:召回范式的演进与挑战

在电商搜索的演进历程中,“召回”始终是连接用户意图与海量商品的基石。长期以来,业界普遍采用“判别式检索”范式:无论是基于倒排索引的关键词匹配,还是基于ANN近邻检索的Embedding相似度计算,其核心逻辑都是在给定候选集中“寻找”最相似的结果。

然而,随着用户需求的日益多样化与口语化,传统范式在交易搜索场景中面临严峻挑战。基于关键词的倒排索引受限于“词汇鸿沟”,难以处理【“af1” vs “空军一号”,"yeezy" vs "椰子"】这类语义一致但字面不匹配的Query;而基于向量检索的判别模型,在长尾Query和冷启动商品场景下,往往因行为数据稀疏而表现乏力。此外,传统的“召回-粗排-精排”级联架构存在天然的信息漏斗,一旦高价值商品在召回阶段被遗漏,后续链路将无力回天。 了, 过去一年,得物交易搜索团队核心目标是打破这一僵局。我们不再满足于让模型做“选择题”,而是尝试赋予模型“创造力”。我们将生成式建模(Generative Modeling)引入召回场景,探索从“检索”到“生成”的范式跃迁,并围绕大语言模型、多模态表征及序列建模展开了一系列算法研发。

二、基石构建:语义理解与表征能力升级

生成式模型需要高质量的世界知识与语义理解输入作为燃料。在探索生成式召回之前,我们首先对商品与Query的底层表征能力进行全面升级。

基于LLM的文本索引语义增强

背景

在交易搜索场景中,文本召回的效果高度依赖于商品索引的数据丰富度与语义表征能力。传统索引主要依赖人工标注的标题、品牌、类目等属性,面对海量多样化的用户查询,固定标签体系难以覆盖商品的全貌,尤其是视觉风格、细节材质、用户真实表达等隐式信息,导致索引侧表征不足,引发漏召与少召。为此,我们将大语言模型的世界知识与语义理解能力系统性地引入索引构建流程,从视觉理解、社区语料挖掘、商品关系推理、详情页结构化、线上行为锚点等多个维度对商品文本进行语义扩展,并配备独立的召回通道进行快速验证与权重调控。

技术方案

视觉理解:从商品图像中“看见”文本无法描述的属性

商品图像中包含大量文本标题中缺失或描述不清的信息:颜色、纹理、材质(如“薄纱”、“皮革”)、设计细节(如“荷叶边”、“绳状粗鞋带”)、风格(如“多巴胺”、“复古”)等。我们利用多模态大模型(Qwen2.5-VL-7B-Instruct + LoRA SFT)对这些视觉特征进行结构化提取:

  • 数据构建: 从商品原始文本中通过NER与归一化构建结构化属性池,再调用32B大模型作为清洗器,滤除非视觉相关属性(如“耐磨”、“明星同款”),产出纯净的视觉属性训练集用于指令微调;
  • 推理与过滤: 模型推理产出视觉标签后,经规则初筛排除明显错误项,再对高风险子集调用模型进行二值化图文一致性判断,确保每条标签都有明确的视觉依据,最大程度抑制幻觉。(得物商品白底图为这一方案提供了独特优势,纯净背景让模型能精准聚焦商品本体,显著提升了视觉属性识别的准确率。)

社区语料挖掘:从用户真实表达中捕获场景化语言

社区动态与商品评论是用户主动输出内容,天然包含消费者关注的核心卖点、使用场景、痛点、情感倾向以及趋势词汇。这些“用户语言”往往与商家填写的标题属性存在显著差异,是弥补索引与口语化查询之间鸿沟的关键数据源。我们采用Qwen3-4B模型,从两个层面优化挖掘质量:

  • 语料圈选: 摒弃随机抽取,使用综合动态质量分、点赞/评论等交互指标优先选择高信息密度内容;同时针对性的选取关联多个商品的动态(单商品动态信息密度低,挂载过多商品的动态则易引入噪声);
  • 批量解析与Prompt优化: 将单商品逐条解析改为一次批量解析动态页关联的N个商品,并同步注入语料标题、话题标签、商品原始标题等上下文信息,让模型更准确地识别目标商品并输出高质量标签。

产出的标签经互斥词库、实体类目规则及人工审核三重过滤,确保进入索引的信息准确可靠。

商品关系推理:利用I2I信号解决稀疏商品标签匮乏

对于曝光少、行为稀疏的长尾商品,单靠自身图文信息难以生成丰富的标签。我们引入相关推荐场景中的商品关系图谱(I2I),利用与目标商品历史转化表现好的相似商品的结构化信息(标题、类目、关键属性)作为辅助输入,驱动Qwen3-32B模型基于共性特征为目标商品生成拓展词。

这一策略的核心优势在于:相似商品往往已经积累了更丰富的用户反馈和属性标注,将其“知识迁移”给稀疏商品,相当于为后者做了一次高质量的冷启动。生成结果经过相关性大模型语义评估、NER实体拆分规则、VL模型图文一致性验证及互斥词库联合过滤,确保拓展词的准确性。

详情页OCR:将图像中的“隐藏文本”结构化

商品详情页图片中往往包含规格参数、功能描述、成分表等关键文本信息(如“纯棉”、“100W快充”、“无泪配方”、“敏感肌可用”),但这些内容以图像形式存在,传统索引完全无法利用。我们通过两阶段处理将其转化为可索引标签:

  • OCR文本识别: 使用DeepSeek-OCR模型提取详情页图片中的原始文本;
  • 信息抽取与规范化: 将OCR原始文本输入Qwen3,筛选冗余内容、梳理逻辑、提取核心属性并按统一格式标准输出(如“多功能”、“深层清洁”、“氨基酸配方”)。

这一步将详情页中大量“看得见但搜不到”的信息正式纳入索引体系。

线上行为锚点:用后链路验证的Query反哺索引

上述几种方法均是从商品侧出发“主动生成”标签。我们还引入了从线上曝光日志中“被动沉淀”的高置信信号;筛选高频曝光且相关性2档的Query-Item组合(Q-I Pair),将这些经过后链路(相关性、精排)验证的Query作为商品的“已验证锚点”直接补充进索引。

这类标签的独特性在于,它们本身就是用户的真实搜索词,且已被系统验证与该商品高度相关,相当于为商品设置了一批“高命中率”的召回入口。提取过程中同样经过图文一致性、互斥词库、实体类型等多阶段过滤,确保标签置信度。

工程落地:独立召回通道与质量保障体系

所有生成的标签最终汇入一个独立的tag_recall召回域,这一设计带来三个关键收益:

  • 快速验证: 新标签的价值可以在不影响原本文本召回链路的前提下独立评估;
  • 灵活调控: 支持按标签来源、权重进行精细化混合召回策略配置;
  • 可控回滚: 若某类标签出现相关性问题,可单独降级而不影响整体链路。

质量保障方面,我们构建了“模型过滤 + 规则过滤 + 人工审核”的三层防线:模型层包括图文一致性判别、相关性大模型评估;规则层包括互斥词库、NER实体类型约束;人工层则通过不定期抽检与Badcase分析持续驱动Prompt和模型的迭代优化。

基于MLMM的多模态向量表征的深度融合

背景

前文所述的LLM文本索引增强,显著提升了商品在文本语义层面的覆盖广度与表达丰富性,也为视觉与行为信号的深度利用提供了更高质量的文本侧输入。然而在交易搜索场景中,用户查询与商品之间天然存在跨模态的检索需求:商品图像不仅占据着搜索结果的核心展示位,更承载了形状、风格、纹理、质感及整体视觉氛围等文本难以精确刻画的信息;仅依赖文本与行为统计信号,模型对长尾Query(如“复古棕调跑鞋”“奶油风沙发”)的细粒度意图理解始终存在表征盲区,直接导致相关商品的漏召或语义偏移。为此,我们构建了多模态向量召回模型,将商品视觉信息与前文增强后的文本信息、用户行为信号进行统一协同建模,让召回系统真正“看见”商品。

考虑到多模态表征对齐与向量召回目标在优化方向、收敛速度上存在差异,若端到端联合训练易导致图像侧欠拟合,我们采用“预训练 + 相关性/行为感知向量召回”的两阶段训练框架。

技术方案

预训练阶段:构建统一的商品图文语义对齐基底

基于全量商品图片-标题对齐数据,并以开源多模态大模型表征能力作为初始化参考,我们使用Chinese-CLIP双塔结构进行商品侧多模态表征的预训练。图像侧以 ViT-B/16(取中层特征)提取深层视觉特征,文本侧以RoBERTa-wwm(取中层特征)编码标题及前文增强后的文本标签,通过对比学习将视觉与文本模态映射到统一语义空间,使模型习得得物场景下的图文联合分布,为下游召回任务提供对齐良好的商品视觉-文本基底。

召回建模阶段:四塔结构与模态深度融合

在召回侧,我们设计四塔向量结构:Query侧以文本编码器产出Query Embedding;商品侧则包含文本塔、图像塔以及融合两者信息的多模态塔。文本与图像编码器加载预训练权重,分别捕获商品文本(标题、LLM扩展标签等)与图像语义,再通过Cross Attention(文本/图像特征作为KV,以互补模态或查询意图作为 Q)进行商品侧图文深度融合,得到MM Embedding。训练时采用多任务学习,联合优化Query与商品文本、图像、多模态向量之间的对齐目标;由于Query-图像跨模态对齐难度更高,我们对该支路赋予更大损失权重(最终比例 20:1:1),迫使模型从图像中捕获文本无法覆盖的增量信号。推理时,直接以Query向量对全量商品的多模态向量进行ANN检索,兼顾召回精度与线上效率。

训练样本从线上曝光日志中筛选高相关性(相关性 2 档)且曝光位置靠前的Query-Item对作为基础正样本,并逐步引入用户真实点击、成交行为数据,显式增强模型对后链路转化偏好的感知。负样本采用Batch内负采样+全局随机负采样(每条正样本携带多个全局负例)并结合Batch内正样本间负例共享,缓解样本选择偏差(SSB)并扩大商品覆盖。

三、核心突破:生成式召回架构的探索与落地

前两章的工作分别从文本语义扩展(LLM 索引增强)和多模态向量建模(视觉-文本协同召回)两个维度,系统性地提升了商品侧表征的丰富度与召回链路的匹配精度。这些判别式方法在实践中均取得了显著的业务收益,但它们共享一个底层假设:召回的本质是在给定上下文中"从已有候选集里寻找最相似的结果"。这一范式存在两个难以通过单纯增加特征或微调模型来突破的瓶颈:

其一,表征瓶颈。 无论是倒排索引中的Token匹配,还是向量召回中的ANN检索,其效果上限始终受限于候选商品的已有表征质量。对于极度稀疏的长尾商品、全新品类,以及用户Query中隐含的深层组合意图(如"通勤背不累的棕色小包"),现有方法难以在语义空间中建立精准的桥梁。

其二,架构瓶颈。 传统级联架构中,召回、粗排、精排各自独立建模、局部优化,阶段间的信息损耗与目标偏移不可避免;且随着候选规模与模型复杂度的持续增长,多阶段重复打分带来的计算开销进一步挤压了模型扩容的空间。

生成式建模(Generative Modeling)的兴起为突破上述瓶颈提供了全新的思路。与判别式方法"给定输入、预测标签"的范式不同,生成式方法通过建模 Context 与 Item 之间的联合概率分布P(Context,Item),从数据内在结构中习得用户意图与商品语义的深层关联;在推理阶段,则以用户上下文为条件,通过自回归解码 P(Item∣Context)主动生成候选商品——召回模块不再只是"搜寻者",而是具备推理与创造能力的"生产者"。更重要的是,生成式模型在NLP、CV等领域已展现出显著的Scaling Law特性:随着数据规模、模型参数量和算力的增长,模型能力呈现可预测的持续提升,这为召回场景的进一步迭代打开了新的天花板。

过去一年中,我们围绕生成式召回这一前沿方向,从语义表征重构、序列生成架构、离散化索引生成、端到端统一建模四个层次逐步推进,完成了从"判别式检索"到"生成式召回"的完整技术跨越。以下将逐一展开HLLM深度语义表征、HSTU生成式序列建模、基于语义ID的统一生成式召回,以及召粗一体化架构的核心设计与落地实践。

基于分层大语言模型(HLLM)的深度语义表征

背景

前文通过LLM文本索引增强与多模态向量召回,已分别在文本语义覆盖和视觉细粒度理解上夯实了商品侧表征,并借助行为信号拉近了用户与商品的向量距离。然而,传统召回范式本质上仍依赖行为共现与浅层特征匹配,在长尾商品数据稀疏、新品类冷启动以及跨场景知识迁移等条件下,对Query背后真实意图与商品隐含语义的刻画容易失真;用户侧也缺乏将“实时搜索上下文”与“长期行为偏好”统一建模的能力。为此,我们参考分层大语言模型(HLLM)思想,以预训练LLM的通识知识与深层推理能力为底座,将“人、货、场”解耦为三个协同优化的语义模块,在统一向量空间内实现用户意图、搜索上下文与商品语义的精细对齐。

技术方案

模型结构:User / Item / Query LLM 的功能解耦

我们以Qwen3-0.6B为共享基座,针对交易搜索召回场景构建三个功能解耦的模块:

  • Item LLM(商品语义编码器): 作为“货”的载体,输入涵盖商品标题、品牌、类目及前文LLM扩展的结构化/非结构化文本信息,序列尾部拼接特殊标识符[ITEM],取其对应隐状态作为商品整体语义嵌入。(该设计让长尾与冷启商品也能借助 LLM 的世界知识获得稠密且区分性强的表征,而非仅依赖稀疏 ID 或行为共现。)
  • Query LLM(意图编码器): 作为“场”的载体,通过特定Prompt(如“请根据用户检索词将文本压缩成嵌入,以进行后续商品推荐”)将用户实时搜索词编码为向量,序列尾部以[QUERY]标识取对应输出。(它弥补了原生序列建模对瞬时检索意图的忽略,为后续匹配提供显式的搜索约束。)
  • User LLM(用户兴趣序列模型): 作为“人”的载体,以Next-Item Prediction为核心目标,输入由Query表征与用户历史交互商品序列(历史商品向量均由Item LLM离线/在线产出)拼接而成,输出动态用户综合表征(取序列末端隐状态),实现“实时意图+长期偏好”的联合建模。

训练时,Item LLM与Query LLM共享大部分参数以压缩参数量并提升稳定性,User LLM保持独立参数以获得对行为序列的充足建模容量。三个模块以用户真实点击的下一商品为正样本、随机采样商品为负样本,通过InfoNCE对比损失进行端到端串行联合训练,在统一语义空间内拉近用户兴趣表征与目标商品表征的距离,推远负样本。

在线服务与冷启兜底

在线推理阶段,Query LLM实时产出查询向量,用户近期行为序列经Item LLM映射为商品嵌入序列,二者共同输入User LLM,取其末尾Token向量作为用户实时兴趣表征,进而在Item LLM预构建的全量商品向量库中通过ANN检索完成召回。为兼顾延迟与冷启动:对高频Query的推理结果进行缓存复用,降低重复计算;对新用户或行为稀疏用户,降级启用按Query维度离线挖掘的“高转化商品候选序列”作为行为兜底,保障召回不退化。

通过HLLM,我们将召回侧的表征从“标签/向量匹配”推进到“语言级语义推理”,不仅显著改善了长尾与冷启动场景的召回质量,其产出的商品/用户语义嵌入也为后续语义ID(SID的构建、以及HSTU等生成式序列架构提供了高信息密度的输入与语义锚点。

基于 HSTU 的生成式行为序列建模

背景

传统搜索召回的建模方式本质上是判别式学习,将用户行为序列与查询上下文转化为高维特征表示构建概率预估模型,核心目标是在给定输入特征的条件下预估用户对候选商品的点击/成交概率:

f(yX)=f(y=1<x0,x1,...,xd1;Item>)f(y|X)=f(y=1|<x_0, x_1, ..., x_{d-1};Item>)

其中y{0,1}y \in \{0,1\}表示是否点击/成交,xRd\mathbf{x} \in \mathbb{R}^{d}为涵盖用户画像、上下文环境及查询意图的多源特征向量。在这一范式下,业界通过持续增加模型复杂度、特征丰富度和样本规模来提升判别能力,但随着参数与数据量的线性增长,性能增益已呈现明显的边际递减效应。 与此同时,生成式建模在NLP、CV领域展现出显著的Scalling Law特性。这启发我们:能否将用户行为序列视为一种区别于文本、图像的新型数据模态,并在此“新模态”下探索搜推场景的生成式建模可行性。借鉴Meta提出的层次化序列时序单元(Hierarchical Sequential Temporal Unit, HSTU)架构。我们将用户行为重构为多类别Token系列,以自回归生成式范式直接建模用户的下一交互商品,尝试将召回的驱动范式从“特征+模型”逐步转向“数据+算力”。

技术方案

行为序列的 Token 化与多类别建模

我们将用户在得物APP内的全场景行为轨迹(搜索、推荐、社区等)统一编码为结构化Token流:

Sequence={t01,t12,...,tkj,tk+11,tk+22,...,tk+pm,tk+p+11,...,tn1l1,tnl}Sequence = \{t_0^1, t_1^2, ...,t_k^j,t_{k+1}^1, t_{k+2}^2, ...,t_{k+p}^m, t_{k+p+1}^1, ..., t_{n-1}^{l-1},t_n^{l}\}

其中每个位置tiRnt_i\in \mathbb{R}^n是一个多维向量,tjt^j表示第j种Token类型。序列中显式包含六类信息:

这种多类别Token化的本质,是将“谁、在什么场景、什么时候、对什么商品做了什么行为、当时的行为意图是什么”等完整上下文序列化,为自回归建模提供丰富的条件信号。

训练时,模型采用Teacher Forcing机制,以前缀序列为条件学习下一个token的概率分布:

P(tit0,t1,...,ti1;θ)P(t_i|t_0,t_1,...,t_{i-1}; \theta)

为与召回目标对齐,我们对非商品Token(时间戳、行为类型、场景等辅助信息)施加损失掩码,使其不参与梯度回传,仅对item_id的预测计算损失。这一策略将模型容量集中用于学习"下一个交互商品"的生成,同时减少无关Token带来的噪声梯度,提升训练稳定性与收敛速度。

模型架构与Scaling Law验证

在结构选型上,我们对比了传统SASRec(Self-Attention + FFN)与HSTU改进架构。HSTU针对长序列和大规模候选集做了针对性优化(如注意力计算的高效实现、时序感知的位置编码等),离线实验表明其在HitRate上显著优于SASRec。通过系统性的消融实验,覆盖不同的参数量、不同的Embedding Dim、不同的序列长度。我们观察到离线指标随模型规模与序列长度的提升而持续上升,初步验证了搜索召回场景下生成式建模同样存在Scaling Law效应。

训练目标与高效负采样

自回归训练的本质是最大化序列的联合条件似然。给定用户交互序列的前t1t-1个Token{T1,T2,...,Tk1}\{T_1, T_2, ...,T_{k-1}\},模型需要预测第tt个Token,整体优化目标形式化为:

maxθi=1Nt=1LlogP(Tt(i)T1(i),T2(i),,Tt1(i);θ)\max_{\theta} \sum_{i=1}^{N} \sum_{t=1}^{L} \log P\left(T_{t}^{(i)} \mid T_{1}^{(i)}, T_{2}^{(i)}, \ldots, T_{t-1}^{(i)}; \theta\right)

其中θ\theta为模型参数,N为训练样本数,L为序列长度。

面对千万级商品词汇表,传统Softmax的计算复杂度不可接受。我们采用Sampled Softmax技术,通过自适应负采样近似全量分布。给定上下文向量hth_t(由前t-1个Token编码得到)和目标TokenTtT_t,损失函数定义为:

LSS=logexp(s(Tt,ht))exp(s(Tt,ht))+j=1kexp(s(Nj,ht))\mathcal{L}_{\mathrm{SS}}=-\log \frac{\exp \left(s\left(T_{t}, h_{t}\right)\right)}{\exp \left(s\left(T_{t}, h_{t}\right)\right)+\sum_{j=1}^{k} \exp \left(s\left(N_{j}, h_{t}\right)\right)}

其中s(.)s(.)为内积相似度,{N1,N2,...,Nk}\{N_1, N_2, ...,N_k\}为从词汇表中采样的个负样本。负样本策略综合了三个维度:

  • 流行度偏置校正: 按物品流行度pop(i)pop(i)进行自适应采样,避免模型过度拟合热门商品;
  • Batch内负采样: 同批次内共享负样本,以近零额外成本扩大负样本池;
  • 难负样本挖掘: 动态选择与目标正样本语义相似的困难负样本,增强模型区分能力。

负样本概率分布显式融合了流行度与语义相似度:

Psample(i)pop(i)αexp(sim(i,Tt)/τ)P_{\text{sample}}(i) \propto \operatorname{pop}(i)^{\alpha} \cdot \exp\left(\operatorname{sim}(i, T_{t}) / \tau\right)

其中pop(i)pop(i)表示物品i的流行度,α\alpha为温度系数,sim(.)sim(.)为相似度函数,τ\tau为调节采样分布的锐度参数。这一设计让负样本既覆盖"随机背景噪声",也包含"与当前意图高度相关但非目标"的困难样本,迫使模型学习更细粒度的判别边界。

从原始ID到语义ID:v2进阶

v1版本直接以原始商品ID作为序列原子单元,存在三个核心痛点。无语义: 商品ID是人为或机制生成的无意义字符串,模型只能从纯统计行为中学习潜在信息,难以捕捉商品间的语义相关性;显存瓶颈: 千万级ID的Embedding查找表消耗大量显存,限制了模型进一步Scale-up;缺少意图约束: 仅依赖行为序列自回归,缺少即时搜索Query的显式引导,生成商品质量偶有偏差。

v2的核心改进是引入语义ID Hash(SID Hash)替代原始item_id作为序列Token。具体而言,以多模态预训练商品向量为输入,通过残差量化模型(RQ-VAE)将其编码为具有层级语义的离散整数序列。再经Hash映射为Hash ID作为输入。(关于语义ID的量化建模细节,将在后续章节展开叙述)。这一替换带来了三重收益。语义注入: SID Hash蕴含深度编码的商品语义,模型不再仅依赖统计共现,而是“语义+行为”联合驱动生成;显存释放: 词表从千万级商品ID压缩至百万级Hash ID,Embedding层显存大幅下降,为模型Scale-up腾出空间;规模放大: 借助显存红利,将模型的blocks数量从16扩至32,进一步放大Scaling Law效应。

此外,v2还引入了两项关键优化——Prompt工程: 借鉴LLM Agent的设计思路,将Query及其side info(品牌、类目等)作为序列前缀(Prompt)拼入输入,为自回归编码提供全局意图约束,显著提升生成商品的相关性;Item Embedding扩覆盖: 对于未出现在训练集中的商品,取同SPU下其他item_id embedding的均值作为兜底向量,扩大了生成向量的覆盖边界。

基于语义 ID 的统一生成式召回

前文中,我们分别通过HLLM获得了具备深层语义的商品/用户向量,以及通过HSTU验证了行为序列为“新模态”的生成式Scaling潜力。但这两个方向在落地形态上仍属于“向量检索”范式(离线构建向量索引做ANN,在线实时推理后近邻查找,但建模方式是学习联合分布,而不是传统判别式的学习条件概率)。在生成式召回这一前沿范式下,我们分别探索了两条核心路径:一是将语义ID作为倒排索引的最小召回单元,实现语义级稀疏检索;二是将语义ID直接融入生成式模型词表,通过自回归解码端到端生成候选商品。这两条路径共同构成了从“检索”到“生成”的完整技术拼图。

语义索引召回:用Semantic ID跨越“词汇鸿沟”

背景

传统电商搜索的文本召回建立在倒排索引之上:Query和商品分别被切分为Token序列{q1,...,qn}\{q_1, ...,q_n\}{i1,...,ik}(kn)\{i_1, ..., i_k\}(k \gg n),系统通过Token交集匹配来筛选候选。这种方式的本质是浅层文本匹配,无法跨越词汇鸿沟(当用户搜“af1”,而商品标题写“空军一号”时,字面不匹配直接导致漏召)。即便通过同义词扩展、丢词等NLP手段缓解,底层仍是Token匹配,语义关联始终未被充分挖掘。

为此,我们参考UniDex提出基于生成式建模的语义索引召回:不再用原始Term作为索引单元,而是将Query和商品的语义信息编码为连续向量后,进一步量化为若干离散的寓意标识(Semantic ID, SID),以SID替代Term构建倒排索引。由于SID来源于语义向量,天然具备语义泛化能力("af1"和“空军一号”在向量空间中距离较近),量化后会落入同一SID桶,从而在一定程度上解决词汇鸿沟问题。

技术方案

语义编码与FSQ量化

为捕获多粒度语义信息,在Query和Item的Encoder输入序列中分别追加m和n个可学习Token,编码后得到多粒度语义向量:

Q={Q1,Q2,...,Qm},QiRdQ = \{Q_1, Q_2, ...,Q_m\},Q_i \in \mathbb{R}^{d},I={I1,I2,...,In},IiRdI = \{I_1, I_2, ..., I_n\}, I_i \in \mathbb{R}^{d}

量化过程对每个语义向量独立执行三步操作(以Query侧QiQ_i为例):

  • 降维投影: 将高维语义向量映射到低维空间,降低后续量化开销:
Qi=DownProj(Qi)Rdq,dqd.Q'_i = \text{DownProj}(Q_i) \in\mathbb{R}^{d_q}, \quad d_q \ll d.
  • FSQ量化: 通过Sigmoid函数将连续值压缩到[0,1],乘以K−1后四舍五入,生成离散SID:
Si=FSQ(Qi)Round[(K1)σ(Qi)]Si{0,1,...,K1}dqS_i =\text{FSQ}(Q'_i) \triangleq\text{Round}\left[(K-1)\sigma(Q'_i)\right],S_i \in \{0, 1, ..., K-1\}^{d_q}
  • 升维还原: 将离散SID映射回原语义空间,用于后续相似度计算:
Q^i=UpProj(Si)Rd.\hat{Q}_i = \text{UpProj}(S_i) \in\mathbb{R}^d.

实践中取K=2(二进制量化)dq=19d_q=19,即每个语义向量被编码为19位二进制序列,转换为十进制整数后作为倒排索引的检索键。参数设置:Query侧M=3,Item侧N=8

Token-Matching与训练目标

为保持离线训练与在线倒排检索的一致性,我们采用Max-Max Token Matching策略:

sim(q,d)=maxi[M]maxj[N]s(Q^i,D^j)=maxi[M]maxj[N]Q^iD^jQ^iD^j\operatorname{sim}(q, d) = \max_{i \in [M]} \max_{j \in [N]} s(\hat{Q}_i, \hat{D}_j)= \max_{i \in [M]} \max_{j \in [N]} \frac{\hat{Q}_i \cdot \hat{D}_j}{\|\hat{Q}_i\| \cdot \|\hat{D}_j\|}

即:只要Query的某一个语义向量与商品的某一个语义向量高度对齐,就认为该商品应被召回。

训练损失由三部分组成:

  • InfoNCE损失: 优化基础语义表征的对比学习;
  • Matching损失: 仅在正样本对上计算,强制拉近Query与商品间的Token-Matching相似度:
Lmatch=(1sim(q,d+))\mathcal{L}_{\text{match}} = \sum_{} \left(1 - \text{sim}(q, d_+)\right)
  • 量化正则损失: 防止二进制量化时语义嵌入集中在阈值边界附近导致塌陷:
Lreg=1Mi[M]σ(Qi)0.50.52\mathcal{L}_{\text{reg}} = \frac{1}{M} \sum_{i \in [M]} \left\| \left| \sigma(Q'_i) - 0.5 \right| - 0.5 \right\|_2

Matching损失与正则损失分别乘以权重系数0.3和0.1,避免干扰主任务。

统一生成式召回:自回归生成商品候选

背景

语义索引召回虽然用SID替代了Term,但检索方式仍然是“查倒排”,本质上还是一次高效的稀疏检索。而统一生成式召回则更进一步:将商品SID体系直接融入生成模型的词表空间,通过Encoder-Decoder架构的自回归编码能力,让模型逐Token生成目标商品的SID序列,从而直接构建召回候选集。召回模块从此不再是“搜寻者”,而是具备推理能力的“创造者”。

技术方案

Action Tokenization: 从商品ID到语义ID

生成式模型的核心基础是词元(Token)体系。最直接的想法是将每个商品ID(IID)映射为独立词元,但得物平台商品规模达千万甚至亿级,如此庞大的词表会使Softmax计算完全不可行。通用解决方案是通过语义ID(SID)量化机制,将无语义的随机IID转化为层次化、紧凑的离散标识符。整体流程历经两阶段映射:

RawInfofDenseRepresentationgSemanticIDRaw Info \xrightarrow{\text{f}} Dense Representation\xrightarrow{\text{g}} Semantic ID

  • 稠密表征学习: 以商品向量(融合视觉、文本、行为信号)为输入,编码为连续语义向量yRdy \in \mathbb{R}^d
  • 语义ID量化: 通过RQ-VAE(残差量化变分自编码器)将yy量化为层次化整数序列。具体而言,编码器将向量映射到Latent Space,随后逐层在独立codebook中做最近邻量化,将量化误差作为残差传递至下一层,从粗到细生成多层code index,即Semantic ID。为缓解码本坍塌,各层codebook通常以首批数据的K-Means聚类中心初始化;训练时通过重构损失与量化损失(commitment loss + stop-grandient)联合更新Encoder/Decoder/codebook。最终将亿级商品量压缩至1284128^4量级的SID空间,兼顾语义聚类与检索可控性。

Action Generation: Encoder-Decoder序列生成

获得SID后,召回任务被重新定义为一个条件序列生成问题。输入序列SinS_{in}融合了多维上下文:

Sin=(Sq,Su,SID11,SID12,SID13,SID14,...,SIDij1,SIDij2,...,SIDijk)S_{in}=(S_q, S_u, SID_{11}, SID_{12}, SID_{13}, SID_{14}, ..., SID_{ij_1}, SID_{ij_2}, ..., SID_{ij_k})

其中SqS_q为Query分词Token系列(最大长度10),SuS_u为用户画像静态特征,后续SIDijSID_{ij}为用户历史行为中每个商品对应的SID片段及其Side Info(类目、品牌、时间戳等,经MLP融合后作为Encoder输入,避免SID维度倍数膨胀导致序列过长)。

模型采用Encoder-Decoder(6层Encoder+6层Decoder,Hidden Dim 256)架构:

  • Encoder: 双向Transformer,将SinS_{in}压缩为上下文向量;
  • Decoder: 单向Transformer,以自回归方式逐Token预测目标商品的SID序列Sout={st1,st2,...,stn}S_{out}=\{s_{t_1}, s_{t_2}, ...,s_{t_n}\}
p(SoutSin)=t=1Tp(sidtsid<t,Sin;θ)p(S_{out}|S_{in})=\prod_{t=1}^{T}{p(sid_t|sid_{<t},S_{in};\theta)}

训练目标为标准Next-Token Prediction交叉熵损失:

LNTP=j=1Lt1logP(smj+1[[BOS],sm1,sm2,,smj])\mathcal{L}_{\text{NTP}} = -\sum_{j=1}^{L_t-1} \log P\left( s_m^{j+1} \mid \left[ \text{[BOS]}, s_m^1, s_m^2, \dots, s_m^j \right] \right) \\

推理优化与扩召回技术

在线推理时,Decoder采用Beam Search(宽度100) 解码,在RT Quota约束下平衡生成质量与多样性。为进一步提升效率与召回覆盖,我们引入了两项关键优化:

经过上述策略,生成式召回的候选商品数量提升了一个数量级,显著放大了这路召回在线上全链路中的影响力。

四、架构升级:召粗一体与全链路优化

从级联到一体:为什么需要召粗一体化

前文中,我们逐步构建了生成式召回的完整技术栈:HLLM提供了深层语义的商品/用户表征,多模态向量融合奠定了SID的量化基础,HSTU验证了行为序列作为新模态的Scaling潜力,语义索引召回与统一生成式召回则分别实现了“语义级系数检索”和“自回归端到端生成”。

然而,将这些能力真正融入线上搜索系统时,我们仍然面临级联架构的固有瓶颈:当前搜索系统采用“召回-粗排-精排”多阶段级联,通过逐级筛选在效果与性能之间取得平衡,但每一级都在做局部优化:召回阶段受限于相对简单的相似建模,潜在高价值商品一旦被漏召,后续排序截断便无法补救;不同阶段的目标不一致,也容易造成全链路业务指标的损耗。与此同时,多阶段重复打分带来的计算开销,进一步限制了模型扩容空间。

召粗一体化的核心思想是:以生成式模型为统一载体,将用户兴趣理解、候选商品生成以及粗排阶段的排序倾向融入同一建模框架。模型不再局限于“从已有候选中打分”,而是直接面向后链路目标生成更具价值的商品候选。

五、总结与展望

总结

本文系统梳理了得物交易搜索召回团队在过去一年中,围绕生成式建模方向所做的技术探索与工程实践。整体演进脉络可以概括为三个阶段的能力跃迁:

第一阶段:基石构建。 我们从商品侧和表征侧双向发力,一方面通过LLM增强商品文本索引(视觉理解、社区语料、I2I推理、详情页OCR、线上行为锚点),将商品信息从“浅层文本”推向“深层语义”;另一方面通过多模态向量表征(四塔结构、样本/特征优化),构建了融合视觉、文本与行为信号的统一商品向量空间。这两项为后续的生成式工作提供了高质量的语义底座。

第二阶段:核心突破。 我们以生成式范式为主线,完成了三条并行路径的验证:

  • HLLM深度语义表征: 基于大语言模型,将商品、Query、用户统一编码为语言级语义向量,突破了传统判别式模型的语义天花板;
  • HSTU生成式行为序列建模: 将用户行为轨迹重构为多类别Token序列,以自回归方式直接生成下一交互商品,初步验证了搜索场景下生成式建模的Scaling Law效应;
  • 语义ID与统一生成式召回: 通过FSQ量化构建语义索引召回,以及通过RQ-VAE量化+Encoder-Decoder自回归解码实现端到端候选生成,完成了从“检索”到“生成”的范式跨越。

第三阶段:架构升级。 在独立技术验证的基础上,我们将生成式能力从“召回通道”升级为“召粗一体化引擎”,通过唯一化SID映射、长期兴趣建模、模型Scale-up和独立队列链路重构,让生成式模型直接面向后链路目标产出高价值候选,突破了传统级联架构的阶段瓶颈。从“特征+模型”到“数据+算力”,从“检索”到“生成”,从“多阶段级联”到“召粗一体”,这条技术路径不仅是算法范式的迭代,更是搜索系统底层驱动逻辑的重塑。

模型效果与业务收益浅析

关键洞察:

  • 不同模型在不同用户/场景上各有优势: HLLM补新客与长尾语义,HSTU吃高活与精准意图,UniDeX/SID负责类目/泛词与主动生成,LLM商品索引与多模态则在场景与视觉属性上撬动增量。
  • Scaling Law在搜索场景同样存在: 从hstu的参数量扩展(sasrec -> hstu 4.2B),到UniDex的hidden size扩展(256->1024),再到SID维度升级(3D->4D, 0.04B -> 0.5B),每一步扩容都带来了可预期的离线指标提升,且线上收益与离线趋势一致。这为后续持续投入算力驱动型迭代提供了信心。
  • 工程架构与算法创新同等重要: 语义索引复用倒排基础设施、召粗一体的独立队列设计,这些工程方案直接决定了生成式模型能否在严格RT和QPS约束下落地。算法与工程的协同优化是生成式召回优化的一条隐性主线。

未来展望

站在当前的技术基础上,我们认为生成式建模在搜索召粗乃至全链路排序中仍有广阔的探索空间:

更大规模的统一生成式模型

当前Encoder-Decoder架构模型参数量约在0.5B级别,与NLP领域的大模型仍有数量级差距。随着SID唯一化映射和推理优化(FP16、动态 Beam、前缀剪枝)的成熟,我们有条件进一步Scale Up——探索将用户lifelong行为序列、多模态商品信息、甚至全站搜索Session图结构统一编码进一个更大规模的生成式backbone中,观察搜推场景下是否会出现类似LLM的"涌现能力"。

从SID到连续空间与离散空间的自适应融合

当前SID量化不可避免地存在信息损失(量化误差),而纯连续向量检索又面临 ANN 的效率与精度权衡。未来可探索混合索引架构:对高频、高确定性商品保留 SID 离散索引以保证效率和可解释性;对长尾、多义性商品采用连续向量近邻检索以保留细粒度语义。两者通过门控机制或级联策略自适应切换。

生成式召粗排全链路一体化

召粗一体化只是第一步。更长远的方向是将精排的信号(如转化率预估、用户体验指标)也纳入生成式模型的训练目标中,通过Reward Model或RLHF式的对齐机制,让生成式模型直接优化全链路业务目标(GMV、用户留存等),真正实现"一个模型、端到端、面向最终目标"的搜索系统架构。

算力优化

当前生成式召粗模型的MFU约在17%左右,在同类大模型中表现并不优,说明算力资源尚未被充分转化为有效计算,存在显著的优化空间。具体来看,17%的MFU意味着超过80%的算力消耗在等待、显存搬运等非计算环节,这与生成式架构本身的计算特征密切相关。后续优化应围绕“压缩等待、提升计算密度”展开。如通过CUDA Graph固化执行图减少调度开销、FlashDecoding优化注意力计算,Continuous Batching与Padding消除提升吞吐,结合计算通信重叠降低线性层与码本查表的通信占比等。

跨场景与跨域生成式迁移

当前模型主要在交易搜索场景内训练,但得物生态中还有社区搜索、推荐流、商业化搜索等丰富的用户行为场域。如何将这些跨场景行为统一编码进生成式框架,构建全域统一的用户兴趣生成模型,是下一步值得探索的方向。

生成式索引的实时性与增量学习

当前SID码本和分配结果以天/小时级更新为主。对于电商场景中频繁上新的商品(如每日数千新品的潮玩、服饰类目),如何做到SID的秒级增量量化与索引更新,同时避免码本漂移对在线服务的影响,仍是一个开放的技术挑战。

最后,从判别式到生成式,从特征工程到数据驱动,从级联架构到端到端生成——过去一年的探索让我们确信:搜索召回的下一代表达形式,将是以语义ID为桥梁、以生成式模型为核心、以全链路目标为导向的统一架构。这条路还很长,但方向已经清晰。

往期回顾

1.指标平台:从语义底座到智能消费的实践路径|得物技术

2.企业级 MultiAgent 落地:Plan 模式与主子 Agent 协作|得物技术

3.得物小摊 AI Native 演进实录:用 Harness 构建可控 AI 交付

4.企业级 MultiAgent 的记忆系统:短期上下文与四层记忆架构实现|得物技术

5.EP-Harness:从个人 AI Coding 到团队级 Agent 工作流|得物技术

文 /众里 翠西 承泽 亦非

关注得物技术,每周四更新技术干货

要是觉得文章对你有帮助的话,欢迎评论转发点赞~

未经得物技术许可严禁转载,否则依法追究法律责任。