【推荐系统全面整理】
推荐系统整体各方向
排序模型: FM -> DeepWide -> DCN -> LHUC -> DIN -> SIM
损失函数: pointwise -> pairwise -> listwise
召回: 离散空间 & 语义空间
多目标: MMOE -> ESMM -> PLE
去偏: 偏差分类 -> 去偏方法
多样化:MMR 多样性算法 -> MMR 多样性算法
评估指标:AUC -> GAUC
冷启动:
E&E:
推荐系统模型演进
Factorized Machine(FM)
Factorized Machine(FFM)
在FM中的特征 与其他特征的交叉时,特征 使用的都是同一个隐向量 。而FFM将特征按照事先的规则分为多个场(Field),特征属于某个特定的场F。
空间复杂度:如果隐向量的长度为 k,那么FFM的二次参数有 nfk 个,远多于FM模型的 nk 个。
时间复杂度:FM复杂度是 O(kn),FFM 复杂度是 O(kn2)
各种网络结构
Deep&Wide
-
Wide部分:主要用于记忆。它通过线性模型的方式,直接学习历史数据中的高频模式和特征组合,具有较强的记忆能力。Wide部分通常使用FTRL优化器,适用于大规模稀疏特征12。
-
Deep部分:主要用于泛化。它通过深度神经网络学习低维稠密向量,能够发现新的特征组合和模式,具有较强的泛化能力。Deep部分通常使用AdaGrad优化器12。
优化器选择
-
Wide部分使用FTRL优化器:FTRL优化器适用于大规模稀疏特征,并且带有L1正则化,有助于模型的稀疏性和特征选择12。
-
Deep部分使用AdaGrad优化器:AdaGrad优化器适用于处理连续特征和稠密特征,能够有效地进行参数更新。
DeepFM
对比Deep&wide,wide侧使用 FM。
DCN
在DCN中针对Wide&Deep模型的Wide侧提出了Cross网络,通过Cross网络学习到更多的交叉特征,提升整个模型的特征表达能力。
LHUC网络结构(PPNet)
工业界有效,但只用于精排
LHUC来自于语音识别
快手将LHUC用于推荐精排,称为PPNet
SENet & Bilinear 交叉
用户行为序列
用户行为序列:用户最近交互过的n个物品,LastN召回的双塔,粗排的三塔,精排模型都可以用lastN对指标有比较大的收益
DIN模型(注意力机制)
DIN流程:
- 对于某候选物品。计算它和LastN物品相似度
- 相似度为权重,求LastN物品向量加权和,得到一个向量
- 向量作为一种用户特征,输入排序模型
- 本质是注意力机制
SIM模型(长序列模型)
DIN模型缺点:
注意力层计算量正比与n(用户行为序列长度)
只能记录最近几百个物品
关注短期兴趣,遗忘长期兴趣
改进DIN: 快速排除掉与候选物品无关得到LastN物品
SIM模型优点:
保留用户长期行为记录,n大小为几千
对于每个候选物品,在用户LastN记录中快速查找,得到k个物品
LastN变为TopK,计算量减小
推荐系统召回方法
离散空间
热门、热单、LBS
语义空间
DSSM双塔模型
缺点:上文提到的DSSM采用词袋模型(BOW),因此丧失了语序信息和上下文信息。另一方面,DSSM采用弱监督、端到端的模型,预测结果不可控。
Item-to-Item
推荐系统多目标
用户行为路径,业务多目标。
MMOE
MMOE(Multi-gate Mixture-of-Experts)是在MOE的基础上,使用了多个门控网络,
个任就对应 k个门控网络。
ESMM
ESMM针对 CVR训练的下单数据较少,而点击数据较为丰富的原因。同时学习 pctcvr 和 pctr。
PLE
- MMOE中所有的Expert是被所有任务所共享的,这可能无法捕捉到任务之间更复杂的关系,从而给部分任务带来一定的噪声
- 不同的Expert之间没有交互,联合优化的效果有所折扣
PLE针对上面第一个问题,每个任务有独立的Expert,同时保留了共享的Expert
推荐系统去偏
偏差分类
1. Selection Bias
2. Conformity Bias
3. Exposure Bias
4. Position Bias
5. Popularity Bias
6. Unfairness
7. Feedback Loop Amplifies Biases
8. Inductive Bias
去偏方法
推荐系统多样化方法
MMR 多样性方法
多样性需求
- 精排给n个候选物品打分,融合之后的分数reward
- i,j物品之间相似度为sim(i, j)
- 从n个物品中选出k个,既有高精排分数,也有多样性
DPP 多样性方法
业界公认的最好多样性算法
推荐系统评估指标
ROC曲线
AUC
1. AUC衡量的是模型对整体样本的排序能力强弱。特别是在“类别不平衡”和“样本重要性差异”等场景下存在一些局限性。
2. AUC的计算没有考虑到正负样本重要性的差异,正样本可能具有更高的成本和风险
3.
GAUC
AUC衡量的是模型对整体样本的排序能力强弱。特别是在“类别不平衡”和“样本重要性差异”等场景下存在一些局限性。
推荐系统冷启动
物品冷启动指的是如何对新发布的物品做分发 UGC物品冷启动(用户上传的物品)
新笔记冷启动
新笔记缺少和用户交互,导致推荐难度大、效果差
扶持新发布、低曝光的物品,能增强作者发布意愿
优化冷启的目标:精准推荐:克服冷启苦难,把新物品推荐给用户,不引起反感
激励发布:流量向低曝光物品倾斜,激励作者发布
挖掘高潜:通过初期小流量试探,找到高质量笔记,流量倾斜
冷启动优化点:优化全链路(包括召回和排序)
流量调控(流量怎么在新老物品中分配)
简单的召回通道
冷启物品的特性
自带图片文字地点等
算法或人工标注的标签
没有用户点击、点赞等信息
没有笔记ID emb
冷启动难点
缺少用户交互,没学好笔记ID emb,导致双塔模型效果不好(召回、排序)
缺少用户交互,导致itemCF不适用
聚类召回
内容相似度模型
双塔模型(改造后)
ID emb的改进
改进方案1:新笔记使用 default emb物品塔做ID emb,让所有新笔记共享一个ID Default emb:共享ID对于的emb 向量到下次模型训练的时候,新笔记才有自己的ID emb向量
改进方案2:利用相似笔记的emb向量查找topk内容最相似的高曝笔记把k个笔记emb向量平均得到新笔记的emb
- 多个召回池,让新笔记用更多曝光机会
- 1小时新笔记、6小时新笔记、24小时新笔记、30天笔记
- 共享同一个双塔模型,多个召回池不增加训练代价
类目、关键词召回
- 感兴趣的类目:美食、科技数码、电影。。。
- 感兴趣的关键词:纽约、职场、搞笑。。。
特殊人群
- 构造特殊内容池,用于特殊用户的召回
流量调控
推荐结果中强插新笔记,比较老的做法了最新笔记排序分数做提权(boost)在粗排、重排缓解,给新笔记提权
优点:容易实现。投入产出好
缺点:
曝光量对提权系数敏感很难精确控制曝光量,容易过渡曝光和不充分曝光通过提权,对新笔记做保量保量:不论笔记质量,保证24小时一定曝光
提权
降权
动态提权保留
参考文档:
1. 小红书推荐系统_lhuc-CSDN博客
2. 推荐系统(8)—— 多目标优化应用总结_1 - 深度机器学习 - 博客园