搜广推算法
[[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和商品的相关性。
[[召回]] 覆盖率和多样性
[[文本召回]] 和 [[结构化召回]] 基于文本的内容理解完成 query 和商品的匹配
[[倒排索引]] 解决暴力匹配的效率问题
[[个性化召回]] 基于用户行为
[[u2x2i]] 可解释性,基于某种规则,建立用户和X的关系,然后再推荐和X相关的item
[[ItemCF]] 物料之间的相似是由用户的正反馈来衡量的,越多用户对两个物料有共同的正反馈,它们之间就越相似。
[[Swing]]
非个性化的召回,解决新用户冷启
[[近似搜索]] 方法
-
[[DSSM]] 2013, 使用神经网络分别将表示query和doc表示成向量,向量的距离则可以用来度量二者的匹配程度。
-
- [[SimCSE]] 训练 DSSM 时采用图像领域流行的[[对比学习]]框架
[[面向成交效率(个性化)的向量召回优化]] 特征、数据、模型三个角度考虑
[[@Embedding-based Product Retrieval in Taobao Search]] 通过在语义特征基础上增加个性化特征实现语义和成交效率的兼顾
[[@Mobius: Towards the next generation of query-ad matching in Baidu’s sponsored search]] 召回阶段考虑相关又考虑点击率目标
[[重定向召回]]
[[GCN 召回]]
同构图
异构图
- [[MultiBiSage]]
-
- DNN 双塔召回 Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations
使用树模型检索 [[TDM]]
- [[@TDM到二向箔:阿里妈妈展示广告Match底层技术架构演进]]
[[Deep Retrieval]]
细节问题
[[召回时为什么不使用“曝光未点击”样本当负样本?]]
TODO [[召回为什么不能用 AUC 评估]]
[[为什么要用深度召回?]]
[[向量召回截断阈值]]
[[不同召回方法的区别?]]
[[相关性]]
[[粗排]] 海选
粗排阶段的目标是从约上万级别的候选中筛选出合规、相关且成交效率高的topN商品,这里N通常是上千量级。
baseline 模
静态分排序
LR
[[双塔粗排模型]]
优化方法
[[COLD]] 实现深度特征交叉 [[三塔粗排模型]]
-
- [[Knowledge Distillation]]
通过多任务联合综合考虑多目标的优化等
用 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 解决长尾问题
- 端到端的非线性学习能力,模型稀疏性强。
-
典型的深度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 输出层
-
DICE 激活函数
GAUC
Adaptive 正则化方法
[[DIEN]] 关注序列信息,通过 AUGRU 机制模拟用户兴趣进化的过程。
[[DeepMCP]]
[[AutoInt]] 特征工程自动化
[[@MMOE或PLE 在推荐系统点击&成交联合训练的场景下为什么跟 ShareBottom 效果差不多?]]
-
[[为什么在推荐系统中引入注意力机制能够有效果上的提升?]]
[[搜推算法的序列建模需要做self-attention吗?]]
[[序列建模可以建模联合概率吗]]
[[多任务和多目标]]
-
并发模式
最传统、最基础的共享底层结构拆分成多个专家,从而衍生出[[MoE]];再将MoE中为所有任务共享的Gate拆分成每个任务独享一个门控,从而衍生出[[MMoE]];最后将MMoE中为所有任务共享的专家拆分成任务独占与任务共享,衍生出[[PLE]]
问题:负迁移、[[跷跷板现象]]
串行模式
串行建模的典型应用场景是用于电商场景下预测CVR,其主要难点在于如何解决训练与预测两阶段之间可能存在的样本选择偏差。
在具体做法上,[[ESMM]]和[[ESM2]]的思路是,将CVR表达成隐形目标,通过优化CTR与CTCVR间接优化之。[[ESCM2]]则采用完全不同的思路,通过修正样本权重,使得虽然我们是在点击样本上训练CVR目标,但是等价于在曝光样本上的训练效果。
[[多目标优化]]
-
[[多场景]]
[[@工业多场景方案汇总]]
动态权重([[Dynamic Weight]],DW)是近年来兴起的新的多场景建模模式,实现方法有:[[LHUC]]、[[PPNet]]
[[使用 LHUC 实现动态权重]]
2022 M2M([[Multi-scenario Multi-task]]) 解决“多场景+多目标”的推荐问题,即不仅一个模型要应对多个场景,而且在每个场景下还要同时预测多个目标。
-
特征选择和ID退场机制,剔除不必要的特征集合
[[交叉维度看精排模型]]
[[重排]]
-
[[LTR]] 解决item排序问题
[[生成式重排]]
[[强化学习重排]]
[[重排动机:特殊需求重排]]
多样性
[[MMR]]
[[DPP]]
[[流量调控]]
[[重排建模方式]]
机制 auction 和策略
-
- [[@推荐系统融合排序的多目标寻优技术]]
LTR
- 模型或者规则的泛化能力要强,需要适应精排模型结果的强烈变化
[[@Pantheon: Personalized Multi-objective Ensemble Sort via Iterative Pareto Policy Optimization]]
[[为什么需要做校准]]
[[混排]]
针对异质内容排序,如在商品列表中插入广告、视频/图文内容、主题聚合等
横向技术
评估指标
[[Group AUC]]
topX 点击率
[[全链路优化]]
[[@全链路联动-面向最终目标的全链路一致性建模]]
[[CTR Bias]]
[[position bias]]
-
[[Bandit 算法]] 思路 :-> 通过一系列实验,将新用户的兴趣或者优质的新物料试探出来。
[[Probability Matching]] 选中某根手柄的概率与 该手柄当前的收益指标 成正比。
[[Bayesian Bandit]] 每根手柄的平均收益不是一个确定的数值,而是 :-> 遵循某个概率分布的随机数。
上下文(Contextual)Bandit,认为每根手柄的收益分布并非固定不变,而是随着上下文的变化而变化。
- [[LinUCB]] Yahoo 成功运用于新闻推荐
-
- [[MAML]] 解决小样本训练问题,针对推荐场景需要对原始方法进行一些改进 [[通过 MAML 解决冷启动]],参考案例是 [[Meta-Embedding]]
[[对比学习在推荐系统中的作用与使用方式]],目标是纠偏
[[纠偏长尾物料的实践]] Google于2021年提出使用对比学习对双塔模型进行纠偏,使模型对长尾物料学习得更加充分,提升对长尾物料的推荐效果。
[[纠偏小众用户的实践]]
[[借鉴多场景推荐]]
[[新内容你是如何处理的?]]
[[用户冷启动]]
[[物品冷启动:流量调控]]
多阶段系统
[[你是如何理解当前流行的召回->粗排->精排的推荐架构?]]
[[搜广推大模型]]
+
[[推荐系统]]
[[搜索系统]]
[[排序模型优化]] 从数据(label)、特征和模型(网络结构)三个方面入手
查询建议 SUG
[[单列和双列]]
[[广告系统]]
[[广告系统的产品视角]] 广告主视角
[[效果广告]]
[[深度转化广告]]
不同算法之间的区别
[[@CTR和推荐算法有什么本质区别?]]
推荐需要对负样本进行采样,搜索排序使用真实样本(有相关性限制在)