搜广推算法

[[搜广推算法的意义]]

[[Feature Engineering]]

  • 可以划分成一下几个维度 #card
    • 用户侧特征(profile、bias)

    • item侧特征(属性、bias)

    • context侧特征

    • 笛卡尔积特征(id类、可泛化类特征)

    • 序列特征

[[Query Processor]]

  • [[Query 类目预测]] :-> 对用户query进行分类,判断用户的商品类目意图
  • [[Query 改写]] :-> 通过对用户的query进行归一、纠错、拓展、丢词等处理,做到更好的商品召回和匹配。
    • Query 归一 :-> 通过简单的字符串处理进行query改写,如去空格、大小写转换、特殊字符处理等,为最简单的query改写方式。
    • Query 纠错 :-> 对有拼写错误的query进行主动纠错,减少误召回,提升召回数量和准确性。
    • Query 丢词 :-> 对于空结果、少结果query进行非关键词的丢弃,一般用于二次召回,提高召回数量。
    • [[Query 拓展]] :-> 根据query语义或意图进行拓展,找到与源query意图一致的一组query,并与源query一同进行检索,进而丰富搜索召回的结果。
  • [[Query 实体识别]] :-> 对query进行序列标注,识别query中的品牌、品类等属性信息,以帮助更精细的匹配用户意图。
  • [[Query term weighting]] :-> 通过识别query中term的重要度,理解用户核心意图,进一步提升query和商品的相关性。

[[召回]] 覆盖率和多样性

[[相关性]]

[[粗排]] 海选

  • 粗排阶段的目标是从约上万级别的候选中筛选出合规、相关且成交效率高的topN商品,这里N通常是上千量级。

  • baseline 模

    • 静态分排序

    • LR

    • [[双塔粗排模型]]

  • 优化方法

    • COLD 实现深度特征交叉 [[三塔粗排模型]]

    • 通过模型蒸馏技术逼近粗排和精排的排序效果、

    • 通过多任务联合综合考虑多目标的优化等

  • 用 bias 去换 variance

    • [[@推荐系统中,粗排和精排的区别是什么,粗排又应该怎样评估模型好坏?]]

      • [[粗排目标是判断item是否在精排 topk]]
  • [[粗排样本选择]]

  • [[粗排模型评估方法]] auc 或 hitrate

  • [[粗排分数融合]] 线性融合or离散化分档

  • [[粗排工程优化]]

[[精排]]

  • [[协同过滤]]:协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。

  • [[矩阵分解]]:使用更稠密的隐向量表示用户和物品,挖掘用户和物品的隐含兴趣和隐含特征。

    • [[Neural CF]] 利用 MLP 替代原来 MF 中的点击
  • [[Logistic Regression]] 在使用 user 和 item 是否交互以及交互程度信息的基础上,使用 context 信息、user 和 item 相关信息,并将推荐看成分类问题

    • 稀疏性

      • [[Lasso Regression]] L1

      • [[Ridge Regression]] L2

  • [[FM]] 自动建模特征间的二阶交叉

  • [[Tree Model]]

  • #card [[GBDT+LR]] 利用 GBDT 产生高维非线性特征

    • 树模型很难学习高度稀疏数据的特征组合

    • 树的深度决定是几阶交叉

    • GBDT 的特征转化方式实际上失去了大量特征的数值信息,不一定就会比 FFM 效果好。

  • [[MLR]] 通过多个局部 model 解决长尾问题

    • 端到端的非线性学习能力,模型稀疏性强。
  • DNN & Embedding

    • 典型的深度CTR模型可以分成以下四个部分:输入、特征嵌入(Embedding)、特征交互(有时候也称为特征提取)和输出。

      • input->embedding

      • embedding:concatenate, product, weight sum, bi-interaction

      • embeding->output

        • 这一步中如果使用 mean pooling 会丢失部分信息
    • 通过 embedding 来对输入数据进行降维

    • [[POLY2]] 暴力组合交叉特征

    • [[FNN]] 解决 DNN 中输入的特征过多,利用 FM 预训练的隐向量做 embedding,然后接 MLP。没有端到端训练,降低深度学习模型复杂度和训练不稳定性。

    • [[Wide&Deep]] 模型两种能力,人工特征工程,联合训练

    • [[PNN]] 将特征交叉的结果输入到 DNN 中,在不同特征域之间进行特征交叉。左边 emb 层的线性部分,右边 emb 层的交叉部分 向量内积和外积。交叉方式多样化,但是对所有的特征进行无差别交叉。

    • [[NFM]] Deep 部分进行修改,引入特征交叉池化层。二阶交叉不去sum pooling,而是后接一个 MLP

    • [[Deep Crossing]] embedding + MLP 结构,摆脱人工特征工程,特征深度交叉。

    • [[ONN]]

    • [[Deep&Cross]] 二阶交叉到高阶交叉之间的特征交叉,bit-wise 特征交叉。

      • Cross网络 利用 Cross 网络替代原来的 Wide 部分。
    • [[DeepFM]] FM+Embedding+MLP

    • [[xDeepFM]] vector-wise 交叉

    • [[Attention]] 机制作用于深度神经网络,将原来的 pooling 改成加权求和或加权平均

      • [[AFM]] 二阶交叉部分引入 [[Attention]] ,后来没有接 MLP

        • 注意力网络:简单全连接层 + softmax 输出层
      • [[DIN]]

        • DICE 激活函数

        • GAUC

        • Adaptive 正则化方法

      • [[DIEN]] 关注序列信息,通过 AUGRU 机制模拟用户兴趣进化的过程。

    • [[DeepMCP]]

    • [[AutoInt]] 特征工程自动化

  • [[@MMOE或PLE 在推荐系统点击&成交联合训练的场景下为什么跟 ShareBottom 效果差不多?]]

  • [[行为序列建模]]

    • [[为什么在推荐系统中引入注意力机制能够有效果上的提升?]]

    • [[搜推算法的序列建模需要做self-attention吗?]]

  • [[多任务和多目标]]

  • [[Life Long Learning]]

  • [[交叉维度看精排模型]]

[[重排]]

机制 auction 和策略

  • LTR

    • 模型或者规则的泛化能力要强,需要适应精排模型结果的强烈变化
  • [[为什么需要做校准]]

[[混排]]

横向技术

[[推荐系统]]

[[搜索系统]]

  • [[排序模型优化]] 从数据(label)、特征和模型(网络结构)三个方面入手

  • 查询建议 SUG

  • [[单列和双列]]

  • [[垂搜 vs 通搜]]

[[广告系统]]

不同算法之间的区别

  • [[@CTR和推荐算法有什么本质区别?]]

  • 推荐需要对负样本进行采样,搜索排序使用真实样本(有相关性限制在)

系统相关

作者

Ryen Xiang

发布于

2024-10-05

更新于

2025-04-20

许可协议


网络回响

评论