写点什么

京东电商搜索:大模型生成式检索优化实践

  • 2024-12-12
    北京
  • 本文字数:8148 字

    阅读完需:约 27 分钟

京东电商搜索:大模型生成式检索优化实践

01 背景/现状介绍

1. 业务场景概述与搜索链路挑战



在搜索链路的召回环节,面对庞大的商品库规模,从千万至数十亿的商品中快速提取潜在相关商品,需在时间与资源约束下,确保效率与性能兼备。

基于文本信息的双塔架构(表示+索引)已广泛应用于商品检索中。该方法通过用户点击数据,将查询词和商品文本映射到相同的语义空间,利用内积或余弦相似度实现高效检索。然而,为了适应快速检索需求,双塔架构减少了塔间交互,导致模型在精确语义匹配和长尾数据场景中表现不佳。尽管后期尝试引入交互或伪交互改进,仍受限于基本双塔架构,未从根本上革新交互方式,加之索引维护成本与精度折损的挑战,促使业界寻求破局之策。



在此背景下,生成式检索异军突起,颠覆传统检索逻辑,借力语言模型实现查询到商品信息的直接端到端映射,即时生成高度相关的商品列表,开创了深度、连贯的交互新模式,尤其在复杂语义匹配领域展现出巨大潜力。

生成式检索凭借四方面核心优势提升了搜索体验:

  • 链路损耗规避:摒弃传统多步骤流程中的信息衰减,实现 Query 至结果展示的一体化。

  • 索引管理优化:将原有索引转换为轻量级索引,简化数据库管理,显著降低存储与检索开销。

  • 模型表现升级:持续迭代优化每一步推荐过程,集成 GPT 等先进语言模型,深化特征抽取,增强理解和生成能力,特别在多样化和长尾商品描述中展现卓越效能。

  • 知识融合增强:挖掘大型语言模型蕴含的世界知识,促进推荐智能化与个性化,助力冷启动破解及长尾产品推广。

不过,挑战犹存,商品表示困难、文本长度过长、噪音大、词序无关以及训练难度高仍是亟需攻克的技术壁垒。

针对生成式检索的优化,我们进行了两方面的探索,一个是 Lexical based,另一个是 SemanticID based。Lexical 聚焦于运用自然语言的词汇单元作为文本表征;而 Semantic ID,则转向数值基底,借助数字序列来描绘文本特征,具体实践上,先通过外部编码器转换文本,继之以层次聚类技术生成 ID 标识。

这两种策略各具特色:

  • Lexical 直接受益于大语言模型的强大功能,无需附加信息导入即可充分发挥模型效能,展现出较高的透明度与灵活性;

  • Semantic ID 则擅长抽象化处理,通过数字编码精炼文本内涵,适用于深度挖掘文本背后的语义关联。

接下来将分别展开介绍这两种策略。


02Lexical based

首先要介绍的是 Lexical based 方法。




先来明确一下任务定义。Lexical based,即大语言模型根据用户 query 生成检索到的相关商品的标题。任务看起来简单,但其实在电商场景下会面临一些挑战。

商品标题构造原则兼具全局无关与局部敏感双重特性:前者体现为关键词次序灵活变换,对意义解读影响有限;后者强调品牌、型号等核心信息的固定性,构成商品辨识的基石。例如,“小米红米 Note13 5G 一亿像素”中,“小米”、“红米”、“Note13”等关键词的顺序调整,对消费者的理解影响差异甚微。同时,同款商品标题中品牌名称的重复使用,虽可提高搜索覆盖面,却徒增不必要的运算负载。这一矛盾要求模型具备区分主次信息的能力,既要理解标题结构中的灵活性与刚性规则,又要有效滤除冗余,实现精准而高效的商品匹配。

基于短 query 生成商品标题的任务,存在信息冗余、泛化障碍、数据分布偏差及召回精准度差等难题。核心问题源自 query 的极度精简,平均仅 7 个 token,与平均 50+ token、信息饱满的标题目标形成鲜明对比。直接生成较长的标题可能导致显著的幻觉问题。尽管一些研究尝试利用预训练的语义 ID 作为文档标识符来简化任务,将其转换为查询到语义 ID 的映射,从而降低复杂性,但这种方法严重依赖外部文档表示,偏离了语言本身,并且需要额外的校准,降低了结果的可解释性。

再者,一对多映射的天然难题,叠加电商生态特有的数据分布失衡,构成了额外的障碍。热门 query 背后商品众多,占据主导地位;反之,长尾 query 对应商品寥寥,模型需在多样性与稀疏性之间寻找平衡,既要广泛覆盖高频查询,又要细致关照长尾需求。

在召回阶段,模型生成候选空间巨大(整个商品库),在模型生成大量候选标题时,定位确切商品的准确率会降低,并很有可能生成不在商品库的标题,即产生非商品关联内容,影响召回指标。

因此,需要新的解决方案,提升模型适应性和输出质量,同时确保对所有 Query 的公正对待。



为了解决上述问题,我们构建了新的检索框架,名为“偏好优化型生成式检索”,旨在精准匹配用户需求与商品信息。框架由四步核心流程组成:

  • 任务重定义:首要是对原始任务进行改造,通过词语切割、排序与重组技术重构商品标题,将“Query2Title”任务转变为更易于管理的“Query2MultiSpan”,以简化生成路径,提升处理效率。

  • 监督微调:运用垂直领域数据对模型进行精细调整,针对性强化,以降低生成过程中的误差概率,保证产出标题的质量和相关性。

  • 偏好优化(DPO):通过组织偏好样本来校准模型偏好,使生成结果符合样本的被点击偏好。

  • 约束搜索(Constraint Beam Search):在最终推理阶段,实施约束机制,避免模型产生无效或不符合规范的片段,保障所有生成内容的有效性与准确性。

整个框架设计通过逐步迭代和优化,实现了从任务抽象化到具体执行层面的全面把控,可确保商品标题生成的高质量和用户偏好的精准满足。



为了应对标题构成的灵活性和一对多的复杂映射关系,任务重定义要优化模型的学习效能,确保生成的标题既能够精确反映商品特性,又可以满足用户的多样性需求。

在电商场景中,商品标题通常是命题式的,包含冗余信息和噪音,且关键词顺序不敏感,导致直接应用“Query2Title”方法易引发模型幻觉。此外,Query 短而标题长,使得任务复杂且模型难以收敛;同时,一对多的查询与标题关系增加了学习多样性的难度。

因此我们提出了“Query2MultiSpan”策略,可有效化解传统“Query2Title”模式的局限。通过 Span(关键术语)拆解与排序,将标题按品牌、功能等属性模块化,再经聚合处理,将复杂任务分解为生成多个短序列的子任务。此法显著降低了模型负担,增强了泛化能力,尤其在处理标题内部结构灵活变换时优势明显,大幅提升生成标题的准确性和效率。

以 Query“舒肤佳抑菌洗手液 100 毫升老包装”为例,经 Span 划分与聚合,模型能更专注地处理特定属性,如“老包装舒肤佳”、“洗手液抑菌 100 毫升”,实现高质量生成。这一策略克服了位置敏感性与一对多映射的学习难点,推动了商品标题生成任务的重大进步。

构建 Query2MultiSpan 任务的样本对,是我们解决商品标题生成难题的关键一步。该过程涉及两大核心阶段:样本转换与有监督微调。

我们使用 query 和商品,提炼出 Query2Title 样本,然后根据 Query2MultiSpan 任务特性,同一  Query 与其对应标题中的各个 Span 建立连接,衍生出一系列 Query2Span 的新样本。“Query → Span_1”,“Query → Span_2”……这种一对一映射方式,为模型提供了更多样的学习视角。



样本重构后,开始有监督微调。Query2MultiSpan 将原始 title 切分成了几段,破坏了原始 title 的全局关系,因此,在有监督微调阶段,将同一个 title 的多个片段 Query → Span_1”,“Query → Span_2”…… 的预测损失进行叠加。此时,模型直面新构建的数据集,遵循经典机器学习路线图,逐渐习得从查询推断出相关 Span 的本领,进而洞悉商品特性的多维表达。

在偏好优化阶段,我们旨在深化模型理解,来优化输出内容。此阶段分为两个层级:Span 层级和 Title 层级。

以 Span 层级为例,DPO(直接偏好优化)框架起到了关键作用。它通过构建正负样本对来增强模型的判别能力。

在推理阶段,输入 query,生成 spans,而后根据这些 spans 从高效索引库里检索出有效的商品。这里的 spans 可以作为未来商品召回的证据,以解释其为何被召回。借助高性能的 FM Index,系统能快速锁定商品标题中的 Span,加速检索。

为了效率最大化,模型采用了 constrained beam-search,每生成新 Token 随即验证其在商品索引中的存在性,及时剪枝无效分支,可有效缩减生成域,从而显著提速推理过程。



模型评估指标 Recall@K(K 设为 500 与 1000)衡量不同尺度下的召回水平,Baseline 选择这块,分别对 Dense retrieval 与 Generative retrieval 这两种范式进行了实验比较。Dense retrieval 其代表性工作包括 DSSM 和基于 Bert 预训练模型的变体。为了保持一般性,选择了 RSR 作为 Bert 骨干网络的代表,该模型已部署在在线系统中,服务于数亿用户。Generative retrieval 则选择了 SEAL 与 TIGER。

结果显示,SFT 后,相比于 KNN(GenR-PO + SFT vs RSR),模型在中长尾上确实提升了很多,但是头部 query 的指标较差,影响整体可用性。为了解决该问题,我们使用了 DPO 进行偏序学习,并对数据集进行了相应的调整(hard-to-easy negatives ratio: 1:3)。结果显示,使用 DPO 后,不仅能补足头部商品的短板,还能巩固中长尾优势,提升模型整体性能,展现了模型的灵活性和适应性。相比于 KNN (GenR-PO + SFT + DPO (w/ cons) vs RSR), 中长尾 recall 有大幅度提升,头部的指标与 KNN 相比差异变小(尤其是在 recall@1000 上,指标几乎相当)。相比于 sft (GenR-PO + SFT + DPO (w/ cons) vs GenR-PO + SFT) ,虽然中长尾侧指标略有下降,但头部查询的表现有所提升。综上所述,DPO 在整体上带来了收益。



为了研究不同任务对性能的影响,进行了多个任务的实验,包括 query2title、title2query 和 query2multi-span。结果如表所示。发现,query2title 和 title2query 任务的性能非常差,而 query2multi-span 任务则有显著提升。这表明,简单的任务设计(如 query2title 和 title2query)在处理复杂的电商数据时是不足的。相反,设计更复杂的任务(如 query2multi-span)能够更好地应对数据中的噪声,并提高模型的性能。这也进一步强调了在实际应用中,重新定义任务以适应数据特点的重要性。

此外,m 为 span 个数,l 为 span 长度,这属于超参调整,经过实验,我们发现适当的增加 span 数量,且控制 span 长度(length 过长会引入噪音或导致信息冗余、增加生成难度)会有较好效果。在当前数据集中,l=8,m=7 效果最好。

Beam Size 的调整也是关键,它直接影响生成 Span 的多样性和质量。加大 Beam Size 虽能增加 Span 选择,但风险是可能混入无关或低质的 Span。因此,在追求更宽泛选择的同时,要小心避免引入太多干扰因素,以免损害整体搜索效果。具体业务需求将指导 Beam Size 的设置,平衡生成的广度和精度。

简单总结一下,这部分主要介绍了一种专为电商搜索优化的创新生成式任务。将原始商品标题重构为多段 span,把 query2title 的任务简化为 query2span,从而简化生成过程。在推理过程中,约束搜索帮助定位关键段落,提升了检索结果的意义和可解释性。在真实数据集上的测试显示,这个框架在处理长尾查询时,显著优于现有的生成式和密集检索方法。这项研究展现了生成式检索、尤其是基于语义模型自身的能力的生成式检索在实际应用中的巨大潜力。


03 SemanticID based

Lexical based 方法有效利用了语言模型的丰富语义信息,但面临着生成较长 Token 序列时推理速度放缓的问题。加之,构建如 FM Index 这类高效索引所需的巨大存储空间,成为制约因素之一。

为优化推理速率并减轻存储压力,我们转向 Semantic ID 视角,探索生成式检索的另一新途径。




SemanticID 是一种数字基底编码,简洁高效、易于操作。诸如 DSI、NCI、TIGER、GDR 和 GenRet 等方法皆以此为核心。然而,此类基于 Semantic ID 的解决方案亦存隐忧:一是新 token 和新任务学习难度较高,对模型提出更高要求;二是性能上限受限于商品表征生成的质量与 SID 的覆盖度——高质量的商品表征决定了 SID 的优劣,而不同的生成方法,无论聚类、残差或其他,各有长短,都会影响最终 SID 覆盖度与质量,继而限制了基于 SID 检索体系的整体效能。



任务定义为通过提供查询词,让模型生成最相关的商品。

在生成 SID 方面,谷歌的 TIGER 方法得到了广泛应用。该方法通过残差量化(RQ)技术生成 SID,能够有效捕捉语义信息和层次结构。这种方法在以商品为主的电商场景中尤为优势明显,因为它能够准确反映电商数据中的复杂层次关系和语义特征,从而显著提升系统的性能。



在深入探索中,我们注意到一种独特的“沙漏”分布形态,如上图所示。具体来说,中间层的 codebook 过于集中,导致了一对多和多对一的映射结构。这种集中导致路径稀疏性和长尾分布。路径稀疏是纵向的,指的是匹配项的路径只占总路径空间的一小部分,长尾分布指的是大多数 SID 集中在少数头部 token 上,中间层标记的分布呈现长尾特征。并且这种沙漏效应在具有长尾特征的数据集中尤为严重,大大限制了生成式检索(GR)方法的表示能力。这个问题的根源在于逐步量化高维向量残差的本质特性。

以我们的日志数据分析为例,通过搭建双塔模型处理商品信息,我们生成了数亿商品的嵌入向量,再经残差量化步骤,绘制出分层分布。在分布图中,第一层展现均匀态势,而第二层有大量路由节点,表明聚集度的显著差异,至第三层再次扩散,呈现稀疏的路径轨迹。



聚焦第二层,“沙漏效应”中某特定 Token 或 SID 占比极高,近乎垄断样本总量,构成了典型“长尾”分布,为了验证这一现象的普遍性,展开一系列实验论证,涉及不同层数配置(二层、三层甚至四层)及多种代码表容量调整(4096、2048 等规格),无论面向电商环境下的 Embedding 还是随机生成数据,均再现了相似的“沙漏状”分布特点,尤以电商场景更为突出。

综上,我们确信“沙漏效应”非偶发,而是在非均匀分布和均匀分布数据中普遍存在的现象。



探究其背后机理,核心归结于残差机制的作用。具体而言:

第一层,候选点被分成 M 个不同的聚类桶,每个 token 的入度相等。

第二层,采用第一层残差作输入源,诱发非均匀分布,大多数点的残差值较小,集中在每个聚类中心附近,而少数点的残差值较大,被视为异常值。因此,这一层的聚类更关注异常值,残差值小的点使用较少的聚类中心,而异常值则可能占据一个或多个聚类中心,形成长尾现象

至第三层,再度施加残差运算,使先前远离群体的大残差点获得矫正,类似于第一层,呈现均匀分布的特征,

而且,纵使第二层残差趋近于零,第三层级依旧观测到轻度聚类,但因残差微小,对总分布影响甚微。

层级递进中,这种非均匀和均匀分布交替出现,然而,随着层数增加,残差值变得越来越小,聚类效应减弱,可以忽略不计。具体讲,各层残差跨度自最初 ±50 锐减至终末 ±0.2。

最终,这形成了一个沙漏状的结构:输入数据首先被压缩成较少的聚类,然后再扩展回较多的聚类,最终收敛到均匀分布。完成语义 ID 构建后,残差量化(RQ)方法及中间层头部 token 的主导地位导致路径的稀疏性,尤其是对于长尾分布,残差分布的不均匀性更加明显。



探讨“沙漏”现象对模型的影响,我们进行了详尽实验。首先,将三层构架里的第二层 Token 划分为头尾两类,评估不同模型如 Llama、Qwen、Baichuan 的性能表现。结果表明,头部 token 测试集的性能显著提升,而尾部 token 测试集的性能则明显较差。这种性能差异可以归因于之前分析的路径稀疏性和 tokens 的长尾分布,导致了结果的偏差。

为研究“沙漏”分布对模型性能的作用,我们执行了两组关键试验。一是交换首层与次层 Token 排布,改变 token 分布。实验结果,将次层长尾分布移至首层,导致模型难以拟合,且由于 tokenbytoken 错误的累计,性能比不交换更差。另一则是排除“长尾”分布负面影响的效果,即交换 1-2 层,并且给定第一个 token,规避“长尾”困扰,结果性能显著跃升,印证了克服了“长尾”难题,有助于逼近模型性能天花板。

综上所述,“沙漏”现象源于残差机制,对模型性能有着实质性的负面影响。实验确证,“沙漏” 现象直接影响模型性能,且存在巨大改进空间,妥善处置“沙漏”难题,有望提升模型性能至新高度。



为了解决上述问题,我们提出了两个解决方案:

  • 启发式:直接去除大路由节点层。这可能导致空间容量不足。需要注意的是,这里首先要生成一个 L 层的语义 ID(SID),然后再移除第二层,这与直接生成一个两层的 SID 不同,因为后者可能仍然存在大的路由节点。

  • 变长式:自适应移除大路由节点层头部 topK token。使语义 ID 成为一个可变长度的结构。这里使用了 top@K 策略,并设定一个阈值 p。这种方法确保了分布保持不变,同时有选择地减少了“沙漏”效应的影响

为了进一步验证该方法的有效性,在 LLaMA 模型上进行了实验。结果表明,通过应用自适应 token 移除策略,模型性能得到了提升,同时计算成本与基础模型相近,并且在一些客观优化(如 Focal Loss 和 Mile Loss)方面也表现出色。

具体来说,实验结果显示,使用 top@400 token 移除策略的模型在大多数评估指标上都优于基线模型。这表明该方法有效地减少了长尾效应的影响。随着移除的 tokens 数量增加,模型性能的提升会遇到瓶颈。特别是当所有 tokens 都被移除时,这种限制尤为明显,这可能是由于缺少长尾 tokens,导致召回率下降。同时,直接移除第二层会导致一个 SID 对应多个项目。这种细粒度的分析为所提出方法的有效性提供了有力证据。该方法在选择性移除不太重要的 tokens 的同时,保留了最有信息量的 tokens,即使在移除大量数据的情况下,也能提升模型性能。

简单总结:这部分系统地探讨了 RQ-SID 在 GR 中的局限性,特别是发现了中间层 tokens 过度集中导致数据稀疏和长尾分布的“沙漏”现象。通过广泛的实验和消融研究,证明了这一现象,并分析了其根本原因在于残差特性。为了解决这个问题,提出了两种方法:移除第二层的启发式方法和自适应调整 token 分布的可变长度 token 策略。实验结果显示,两种方法都有效缓解了瓶颈效应,其中自适应 token 分布调整策略效果最佳。这是首次系统性地探讨 RQ-SID 在 GR 中缺陷的研究,为未来的模型优化提供了坚实的基础,并显著提升了模型性能。

04 未来展望

未来工作将着重于深化 SemanticID (SID) 的表征优化,致力于提高其基础 embedding 质量。不论是采纳双塔架构抑或依托 LLM 方案,其核心宗旨均为提高 SID 上限。与此同时,融和优质特征元素不可或缺,如集成高维特征(多模态等),辅以 side info 等多元维度,共同构筑 SID 表达力的全方位提升。

此外,静态特征同时效特征的整合亟待突破。SID 固有的静态属性及其相对滞后的更新频率,相较于电商领域中对商品时效性业务需求,需要探寻如何高效融合时效特征与相对静态的 SID。

大模型在召回环节展现出卓越的效能,契合其语言模型特质。然而,在排序阶段,因为高度依赖时效性、统计特征及多任务业务目标,大模型应用还比较少。若能将大模型作为统一基座,融合生成式召回与排序,不仅有效缩减链路损耗,还能简化训练框架,增强模型通用性,实现一体化升级。


05 问答环节

Q1:如何看待生成式方法相对传统召回与 ranking 模型更高的计算成本?

A1:高计算成本的确是个挑战,但可以通过模型精简(如蒸馏、量化、压缩)来降低线上推理时间,尽量减小性能损失,使之符合线上需求。尽管当前耗时问题突出,但是从架构优化、模型轻量化以及召排链路、任务重新定义来看,未来有望找到解决之道。

Q2:在 Rank 模型上是否有做过相关工作?

A2:目前尝试从两个角度 embedding 与生成式任务,embedding 则是作为商品特征补充,生成式任务则是重构排序输入输出,同生成式召回相一致,目前在 Rank 链路性能上与基准模型存在一定差距。深入分析显示,在我们场景下,SID 对生成式任务指标影响显著,同时时效特征与业务目标也需要对现有生成式任务进行重构。谢谢您的提问与参与分享。

06 团队介绍

京东搜索算法团队,负责京东零售主搜的商品搜索算法,包括意图识别、召回、相关性、排序、机制等技术方向。团队成员来自国内外顶尖高校,我们致力于打造电商搜索一流团队,用前沿的技术驱动业务发展,提升数亿用户的搜索体验,也乐于把实践经验分享给业界,先后在 KDD、SIGIR、WWW、EMNLP、ICLR 等核心期刊发表论文 30 余篇。

欢迎有技术情怀、有创新活力的你加入我们,期待与您在京东相遇!简历投递邮箱:org.search.jobs1@jd.com

作者介绍:

王彗木:中科院自动化所博士,研究方向为大模型、强化学习,亦城优秀人才,CCF 中国计算机学会专业会员,目前在京东从事主搜排序及生成式召排工作。

李明明:中科院信工所博士,研究方向为大模型、语义检索,亦城优秀人才,CCF 中国计算机学会专业会员,目前在京东从事主搜召回及生成式召排工作。

发布于: 刚刚阅读数: 8
用户头像

还未添加个人签名 2024-01-12 加入

京东零售那些事,有品、有调又有料的研发资讯,带你深入了解程序猿的生活和工作。

评论

发布
暂无评论
京东电商搜索:大模型生成式检索优化实践_大模型_京东零售技术_InfoQ写作社区