@Embedding-based Product Retrieval in Taobao Search

淘宝搜索的向量召回特征包括语义特征与个性化特征。

  • 语义特征基于query和item title,#card

    • 不同的是query侧使用多粒度的文本encoder,同时增加当前query的补充term(历史query,这里可能是历史统计得到的相似query),

    • 而item侧语义特征则仍然使用title terms。

  • 个性化特征#card

    • user/query侧使用实时、短期、长期的用户行为(点击过的商品、店铺等),

    • item侧则直接通过itemId获得商品embedding与语义特征拼接融合。

image.png

  • 模型同样是双塔结构,

    • User tower的向量表示 #card

      • user/query侧一方面使用query多粒度term进行embedding映射,包括 1-gram,2-gram,query terms(q_seg)以及补充的query terms(q_his)。

      • 此外,q_his的输入先经过和qseg的attention得到 qhis_seq q_{\text {his_seq }} ,q_seg同样也会通过Transformer得到深度的语义特征 qseq_seqq_{s e q \_s e q}

      • 最后各粒度特征通过加和,concat得到不同粒度的query表示向量矩阵 QmgsQ_{m g s} ,而后 QmgsQ_{m g s} 分别和实时,短期,长期的用户行为的特征表示做multi-head attention,最后得到。

    • 商品的表示比较简单,#card

      • 使用itemId embedding和title terms embedding拼接得到。
    • 不同于使用hinge loss或者tripe loss,本文使用sampled softmax cross-entropy loss来进行模型训练,#card

      • 期望得到全局的正负样本距离度量,以尽可能的实现训练和预测分布的一致性(pair wise loss则更关注局部的正负样本距离度量)。

\hat{y}{\left(i^{+} \mid q_u\right)}=\frac{\exp \left(\mathcal{F}\left(q_u, i{+}\right)\right)}{\sum_{i{\prime} \in I} \exp \left(\mathcal{F}\left(q_u, i^{\prime}\right)\right)}, \
L(\nabla)=-\sum
{i \in I} y_i \log \left(\hat{y}_i\right),
\end{gathered}

样本构造 + 训练数据使用点击日志,点击数据为正样本,由于使用了sampled softmax,负样本相当于从商品池中随机采样。#card + 难样本挖掘:人为对负样本加权#card + 对随机负样本query-item pair对进行模型预测(中间模型),取Top-N的内积score的item向量表示集合 I + 正样本 i+,线性相加得到难负样本表示 Imix + alpha 平衡样本的难度 由于引入了个性化特征、记忆性的Id特征,模型不可避免地引入相关性badcase(其实不加个性化特征也免不了)。因此策略上线时还做了一些额外的相关性控制策略#card + 通过核心term(如品牌、颜色、型号等属性)匹配限制,避免模糊匹配带来的语义漂移等问题 ![image.png](/assets/image_1745139601570_0.png)

作者

Ryen Xiang

发布于

2025-04-20

更新于

2025-04-20

许可协议


网络回响

评论