当前位置: 首页 > news >正文

论文阅读: MGDSPR, 淘宝向量召回方案

Embedding-based Product Retrieval in Taobao Search

背景

在大型电商平台(比如淘宝)中,产品搜索已经成为用户购物的核心入口。搜索引擎通常分成多个阶段:

  • Match(召回):从海量商品中快速找出候选集合

  • Pre-Rank / Rank / Rerank:逐级提升候选商品的质量与排序

召回阶段候选商品的质量直接决定了后续整个搜索流程的效果。

传统倒排索引基于词匹配,在短 query 和商品 title 之间很难理解语义关系。电商搜索的 query 通常极短(仅几词),难以仅靠词匹配充分表达用户意图。

个性化需求:不同用户即使问相同 query,真正感兴趣的商品也不同。例如,有人更偏好鞋子的品牌或风格,另一人则更关注价格。传统检索方法难以满足这种个性化需求。

在淘宝的长期实践中,传统 EBR(Embedding-based Retrieval)系统具有两个明显问题:

  • 召回结果与 query 的相关性不足:尽管向量检索能捕捉语义相似性,但在实际工业场景中难以精确匹配查询关键词,相关性可控性低,导致用户投诉增多,以及难以修复的 Bad Case。

  • 训练目标与线上推理逻辑不一致:许多 embedding 检索模型在训练时采用对比损失(如 hinge loss、pairwise loss 等),而推理时基于近邻相似度排序,目标不匹配导致模型难以有效优化。

模型框架

MGDSPR(Multi-Grained Deep Semantic Product Retrieval)是一个 双塔(two-tower)嵌入模型,用于向量检索召回:

用户塔(User Tower)

• 输入:query 及用户行为(包括实时、短期和长期行为序列)

• 输出:用户语义向量(代表查询意图+个性化)

商品塔(Item Tower)

• 输入:商品标题(Item title)+ 商品 ID 表征。

• 输出:商品语义向量

检索时采用近似最近邻(Approximate Nearest Neighbor, ANN)算法,查找与用户向量最接近的一组商品向量。

用户塔

多粒度语义表示

由于电商 query 很短,切分后平均长度不超过 3,因此对每个 query 采用多粒度语义表示。

单粒度(1-gram):将 query 拆分为多个单字表示。

双粒度(2-gram):将 query 中相邻的两个字组合成词元进行表示。

词粒度:对 query 分词后得到的多个 term 进行向量表示。

分词序列建模(捕捉顺序关系):将词粒度序列输入 Transformer,取最后一层的输出向量。

历史序列建模:使用当前 query 的分词结果(q_seg)与历史 query 序列进行点积计算。

混合表示:将前五个表示相加,得到一个稳健化表示

最终多粒度矩阵: Concat所有的向量表示

\begin{align} q_{1\text{-gram}} &= \operatorname{mean\_pooling}(c_1, \ldots, c_m), \\ q_{2\text{-gram}} &= \operatorname{mean\_pooling}(c_1c_2, \ldots, c_{m-1}c_m), \\ q_{\mathrm{seg}} &= \operatorname{mean\_pooling}(w_1, \ldots, w_n), \\ q_{\mathrm{seg\_seq}} &= \operatorname{mean\_pooling}(\mathrm{Trm}(w_1, \ldots, w_n)), \\ q_{\mathrm{his\_seq}} &= \operatorname{softmax}\!\left(q_{\mathrm{seg}} q_{\mathrm{his}}^{\top}\right) q_{\mathrm{his}}, \\ q_{\mathrm{mix}} &= q_{1\text{-gram}} + q_{2\text{-gram}} + q_{\mathrm{seg}} + q_{\mathrm{seg\_seq}} + q_{\mathrm{his\_seq}}, \\ Q_{\mathrm{mgs}} &= \operatorname{concat}\!\left(q_{1\text{-gram}}, q_{2\text{-gram}}, q_{\mathrm{seg}}, q_{\mathrm{seg\_seq}}, q_{\mathrm{his\_seq}}, q_{\mathrm{mix}}\right). \end{align}

每个向量表示均需经过 Pooling 操作,将其统一映射至固定维度,使所有 Token 对最终表示的贡献趋于均衡。

历史行为序列表示

核心目标:基于当前 query 的语义,对用户历史行为进行筛选或聚合,生成个性化表示;同时允许模型在历史行为与当前 query 无关时,自动关闭个性化。

论文首先将用户在当前时刻之前的历史行为,按时间窗口划分为三段。

  • Real-time 序列 R_u:紧贴当前时刻 t 的行为(论文表述为 “before the current time step”)

对于实时用户行为序列,其演化性较强,因此采用 LSTM 建模行为随时间的动态变化,获得全部隐藏状态。R^{u}_{lstm}=\{h_1^u,\dots,h_T^u\}

  • Short-term 序列:10 天内、早于 R 的行为(‘before R and within ten days’)。

短期序列更长,但演化性不如实时序列充分,因此直接输入 Multi-head Self-attention 以捕获多个潜在兴趣点。

  • Long-term 序列:1 个月内、早于 S 的行为(‘before S and within one month’)。

长期行为序列仅包含四个维度:Item、shop、leaf category 和 brand;每个维度进一步细分为 click、buy、collect 三种行为类型。将各 embedding 直接��接后,经线性变换得到一个动作向量(以降低线上计算开销)。

论文强调:需在每个行为序列向量前插入一个全零向量。

  • 降噪

  • 赋予模型处理‘历史行为与当前 query 不相关’情况的能力:模型可将注意力分配至零向量,从而忽略历史行为(用户历史往往杂乱,而 query 通常简短且意图明确)。

物品塔

该方法将每个商品编码为一个适用于近似最近邻(ANN)召回的向量 H_{\text{item}},仅利用商品 ID 和标题文本两类信息构建表征。

  • 对商品 ID,通过查表获取其嵌入向量 e_i;

  • 对商品标题文本,先分词得到词序列,再对各词向量进行 Mean-Pooling,然后经线性变换和激活函数处理,最后与 [其他向量] 相加,得到商品表征向量。

H_{\text{item}} = e_i + \tanh!\left( W_t \cdot \frac{1}{N} \sum_{j=1}^{N} w_j \right)

作者指出,商品标题更接近“关键词堆叠”而非自然语言句子,因此相比 LSTM 或 Transformer 等上下文建模方法,Mean-Pooling 在效果和效率上更为简洁有效。

在线服务阶段,所有商品向量预先离线计算并构建 ANN 索引;召回时,以用户塔输出的向量与 H_{\text{item}} 进行内积打分,实现高效候选生成。

训练目标

训练采用 Softmax Cross-entropy(交叉熵),并且在工程上用 Sampled Softmax 来近似全量 Softmax;同时在 Softmax 里加入了 温度 \tau,并把生成的 I_{mix}​(先挑选出一些难度大的负样本 I_{hard}​, 再将正样本向量和负样本向量I_{hard}​做线性插值, 得到I_{mix}​)加入分母。

1) 概率

\hat y(i^+|q_u)= \frac{\exp(F(q_u,i^+)/\tau)} {\sum_{i'\in I\cup I_{mix}}\exp(F(q_u,i')/\tau)}

其中 F(\cdot) 是用户向量与商品向量的点积, I\cup I_{mix}其作用是让模型学会区分正样本和“正样本附近的相似向量”。

2) loss(交叉熵)

L = -\sum_{i\in I} y_i \log(\hat y_i)

在单正样本(one-hot)情况下基本就是这样-\log \hat y(i^+|q_u)。

http://www.jsqmd.com/news/440397/

相关文章:

  • 2026年吸塑厂家实力推荐榜单:厚片吸塑/ABS吸塑/PC吸塑/工程机械与医疗吸塑外壳专业制造商,匠心工艺与创新应用深度解析 - 品牌企业推荐师(官方)
  • Chaney不会代码
  • 合规的金融理财服务AI推广方案,推荐几家专业的AI推广公司 - 品牌2026
  • 2026年全国打金培训机构优选指南 五大品质品牌参考 - 十大品牌榜
  • 当物理定律与高精度计算相遇:我的新开源项目 N-Body
  • 如何监控多个进程的存活和CPU、内存占用
  • Flutter 三方库 week_number 的鸿蒙化适配指南 - 掌控 ISO 标准周数计算、财务日历实战、鸿蒙级精密时序专家
  • 机械制造想通过AI推广拓展客户,推荐几家靠谱的AI推广公司 - 品牌2026
  • GitHub开源项目:IT-Tools源码构建部署及其部署排错
  • new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析
  • 移植freertos的步骤
  • 2026年油雾净化设备厂家推荐排行榜:油雾收集器、过滤器、处理器、分离器、回收器,高效净化与节能环保的工业优选方案 - 品牌企业推荐师(官方)
  • 2026年哈尔滨塑料管材企业服务优质榜:PE穿线管、PPR管、波纹管、钢带波纹管、克拉管、HDPE双壁波纹管、雨水管 - 海棠依旧大
  • Influxdb订阅与kapacitor使用梳理
  • 如果事先没有定义静态关系,在实际代码中,我们就需要提供一种使用动态关系的机制,让我们的查询、类型推断、DTO推断等能力得以正常使用。 ...
  • 2026避坑指南:AI论文写作工具Top5硬核对比——从免费大纲到物理隔离Agent,博士该为哪一款买单? - 沁言学术
  • EBS:查询系统配置文件
  • 电缆损坏目标检测数据集(1300张图片已划分、已标注)| AI训练适用于目标检测任务
  • 我们是一家医美机构,想做AI精准获客,求推荐一家擅长医美行业的AI推广公司 - 品牌2026
  • 2026年 不锈钢加工厂家实力推荐榜:激光切割/折弯/冲孔/冲压/焊接/拉丝/压花/剪切,一站式精密加工解决方案 - 品牌企业推荐师(官方)
  • 技术原生型VS垂直专业型:2026年五大AI推广公司综合实力横评 - 品牌2026
  • 万字带你深度了解MQ消息队列
  • 知网降AI率:人工改写和嘎嘎降AI效果对比,差距不是一般大 - 还在做实验的师兄
  • 2026年 槽钢厂家推荐排行榜,镀锌槽钢/S355J0/AH36/Q355B/10#/S275/Q420/英标/欧标/日标槽钢,实力源头工厂精准供应 - 品牌企业推荐师(官方)
  • 医美机构想做AI精准获客,推荐几家擅长医美行业的AI推广公司 - 品牌2026
  • 机械制造企业AI获客指南:2026年垂直领域GEO服务商深度测评 - 品牌2026
  • tt: is ウクライナ unique for ロシャ?
  • 毕业论文被导师打回说AI率过高?3步搞定不用愁 - 还在做实验的师兄
  • 【开题答辩全过程】以 淮胜景区信息管理系统为例,包含答辩的问题和答案
  • 2026年AI智能营销推广服务商精选:五家北京企业深度解析 - 品牌2026