ReRank
推荐系统中的一环,考虑上下文信息对推荐结果的影响。
解决三大问题
-
用户体验
-
打散
-
多样性
-
-
算法效率
-
多任务融合
-
上下文感知
-
实时性提升
-
-
流量调控
-
保量:流量扶持、生态建设
-
调权:业务需求、实时干预
-
用户体验
-
打散
-
对同类目、同作者、相似封面图的 item 进行打散,有效防止用户疲劳和系统过度个性化
-
打散常用的方法
-
分桶打散法
-
不同属性 item 放入不同的桶中,一次从各桶取出 item 即可。
- 按高中低价格分桶,排序结果价格呈现多样性
-
简单,效果好。末尾容易扎堆,对原始序列改变大,可能带来指标的下降。
-
-
权重分配法
-
对每一个 item 定义一个分数,计算 Count
-
w 为每个属性的权重,代表打散需求的优先级
-
Count 为同属性 item 已经出现的次数
-
-
fx 为打散加权分数,从低到高对 item 进行排序,完成打散。
-
实现简单,充分考虑多种属性的叠加,扩展性强,末尾容易扎堆
-
-
滑动窗口
-
在一个长度可控的滑动窗口内,同属性 item 超过一定次数后,交换出 session。
-
考虑局部,计算量小,对原序的破坏比较低,最大限度保留相关性,也有末尾扎堆。
-
-
-
-
多样性
-
评估方法
-
数据指标分析
-
user 和 item 角度,用户曝光一二级类目数,曝光item同属一个类目的概率
-
类目、作者、标签多个维度分析
-
-
人工评估
-
-
发展里程
-
规则约束
-
硬规则约束
-
规则引擎
-
个性化约束
- 不同类目、不同时段、不同活跃度用户配置不同
-
-
启发式方法:结合多样性和相关性
-
[[MMR]] 最大边缘相关模型
- [[@The use of MMR, diversity-based reranking for reordering documents and producing summaries]]
-
[[DPP]] 点行列式矩阵
- [[@Fast Greedy MAP Inference for Determinantal Point Process to Improve Recommendation Diversity]]
-
[[Deep-DPP]] 结合深度神经网络
- [[@Practical Diversified Recommendations on YouTube with Determinantal Point Processes]]
-
-
深度模型,加入上下文感知
-
-
算法效率
-
多任务融合
-
精排输出多个任务的分数,在重排阶段融合。
-
常用方法
-
人工调权
-
Grid Search
-
模型法
-
轻量模型融合多个打分以及其他比较重要的特征
-
point-wise
-
业务场景的最终指标必须单一,重排模型的监督目标必须是一个单一任务。
-
-
强化学习
- 根据用户在不同状态下的行为,利用强化学习建模状态转移过程,提升业务核心目标。
-
-
-
上下文感知
-
context-aware Learning-To-Rank
-
优化目标
-
-
S 是曝光的物料序列,Y 是用户对 S 的反馈序列
-
Yi 是对 Si 的反馈
-
Fr 重排模型,预测 Si 被用户交互的概率。
-
Loss 可以是普通的交叉熵损失函数。
-
-
如何表达序列中的物料 Si
-
用户针对 Si 的个性化信息,精排模型打分
-
Si 在整个候选集中的排名、位置信息,刻画Si和邻居之间的相对关系,价格排名,精排序列排名
-
-
Fr 是能对序列建模的模型
-
-
如何生成序列
-
-
permute 代表排列组合能够生成的所有序列
-
Utility 收益函数,Si 被购买的概率等
-
-
Greedy Search
- 每次挑选剩下无聊中带来最大收益的那个。
-
-
pair-wise 类
-
构建 pair 对比两个 item 之间的相对关系,仍然忽略全局信息。
-
正样本好于负样本的概率,利用交叉熵来拟合目标
-
对比学习loss,hinge loss, [[Triplet Loss]]
-
-
RankSVM、GBRank、RankNet、
-
LambdaRank
- RankNet 基础上引入 NDCG 目标
-
-
[[List Wise]]
-
直接对序列进行优化,建模 item 序列的整体信息和对比信息
-
即是使用List-Wise方法得到的候选序列,可以从list维度考虑排序,但在最终得到序列时也是逐个使用贪心方法选择候选item,还是不能做到充分上下文感知以及从整体(“长期”)收益的序列生成。
-
通过序列生成方法和强化重排解决。
-
-
树模型:lambdaMart
-
RNN
-
分别利用 rnn+attention 和 pointer-network 来构建 seq2seq 模型
-
阿里巴巴 [[miRNN]]
-
[[DLCM]]
-
[[seq2slate]]
-
-
两段式:PRS
- PMatch 和 PRank 两个链路,通过两段式结构得到最终输出
-
self-attention:[[PRM]]、setRank
- self-attention 解决长序列建模问题
-
Exact K
-
强化学习:京东LIRO、阿里GRN
-
-
-
-
实时性提升
-
实时性分类
-
系统响应实时性
- 用户实时行为捕捉,端上重排
-
特征实时性
- 链路数据回收延迟,用户本身行为延迟反馈
-
模型实时性
- 在线学习,实时更新模型
-
-
在线学习 ODL
-
延迟反馈
-
原因:链路数据回收延迟,用户本身行为延迟反馈
-
解决方法
-
负例校正法:先标记样本为负样本,真正转化后重新插入正样本。保证模型新鲜度,但假负例对模型有一定副作用。
- Addressing delayed feedback for continuous training with neural networks in CTR prediction
-
等待法:一定时间内等待真实的成交转化,没等到就不校正。label 置信度提升,模型新鲜度有折损。
-
纠偏法:ES-DFM,对观测转化分布和真实转化分布之间的关系建模,降低假负例的权重和增加真正例的权重,来纠正样本不置信问题。
-
-
-
数据稳定性
- 电商 CVR 用户白天浏览点击,晚上下单。cvr 晚上比白天高,需要做修正。
-
-
-
端上重排
-
优点
-
推荐响应实时性:不用请求下一页,实现即时更新
-
行为特征实时性:端上即时计算,不用回传云端
-
行为特征丰富度:负反馈、滚动速度、曝光时长等多种用户行为都可以在模型中使用,基于云端的方式受限于数据传输和存储,一般只会选择点击等关键的用户行为。
-
-
引擎
-
TF-lite
-
MNN
-
TNN
-
-
基于双塔内积模型的实现方式
-
服务端一次下发几十个item,包括item的embedding
-
端上基于本地存储的user静态特征、统计特征,和实时行为特征,实时计算user embedding
-
user和item embedding进行内积计算,对list中未展现的剩余item做重排
-
下次请求时,将更新后的user特征回传云端,方便云端模型实时更新。
-
-
发展进程
-
端上推理 EdgeRec
-
端上训练 DCCL
-
-
流量调控
-
保量:流量扶持、生态建设
-
规则引擎
- 冷启动、买卖家结构调整、曝光保量
-
探索和利用:通过e-greedy、Thompson sampling、UCB等EE类的方法,可以有效探索冷启item,同时利用已有item,保障效率折损最低。
-
-
调权:业务需求、实时干预
-
规则引擎
- 时效性要求高的场景,大促 item 加权
-
样本加权
-
命中调权规则的样本,增加其在 loss 中的权重。
-
实现个性化,对效率折损较低。
-
适合长期调权场景,大店和大 V
-
-
Ref
-
[[@推荐算法架构4:重排]]
-
[[@互联网大厂推荐算法实战]] 6.2 重排