重排序在快手短视频推荐系统中的演进
如果无法正常显示,请先停止浏览器的去广告插件。
1. 重排序在快手短视频推荐系统中的演进
渠江涛
社区科学部 2021/12/18
2. 目录
一、快手短视频推荐场景介绍
二、序列重排
三、多源内容混排
四、端上重排
五、QA
3. 快手短视频推荐场景介绍
4. 快手短视频
• 国内领先的短视频和直播社区,日活3亿+
• 巨大的流量入口
• 复杂的业务形态:十余种业务形态
• 海量的交互数据
• 复杂的技术场景
5. 主要技术环节
重排技术
召回
粗排
精排
云端
LTR
多目
标
序列
重排
多源
内容
混排
多样
性
端上
重排
模型
手机端
端上
重排
策略
6. 重排目标
重排阶段处理的问题包括:
• 整个序列的价值并非是单item 效果的累计。如何序列价值最大
• 沉浸式场景中,什么是好的多样性体验,业务意志如何提现
• 同一个场景下越来越多的业务参与其中,如何恰当的分配流量和注意力达成业务目标和整体最优
• 如何更加及时,更加细微的感知用户状态,及时调整我们的推荐策略和内容
7. 序列重排
8. 序和上下文影响
1、不同上下文对当前 item 照成的影响不同。
好的序列表现:
•
每一条的播放完成度
很高
•
整个序列的正向交互
程度很高
2、相同的内容不同的序 效果不同。
• 高粘性,有持续动作
• 能够在内容上续贯属
性
9. 序列重排的目标
传统方案缺陷:
1、精排单点打分缺少当次其他内容的信息。单点的预估存在不准确的问题
2、贪心的打散方案只能解决内容散度的问题,缺少局部最优到整体最优路径
3、mmr,dpp等是在优化目标上加入散度项并非是序列表现最佳。
目标:
1、需要有transform或者 LSTM 把上游内容信息融入到当前内容信息中。 序列信息提取模块
2、优化的目标为 序列表现情况,而不是单item的表现。
3、需要有持续发现好排列模式的能力。
序列评价识别出好序列
具有探索能力的序列生成
10. 序列重排架构
•
序列重排 整体结构采用了 generator-
evaluator 范式
•
generator 从top50中生成模式丰富的
序列类型。
•
evaluator 评价召回的序列整体价值
11. 序列生成 —beam search
考虑位置的beam search
•
策略 / 模型建模position bias,输出候选集基
于位置的概率矩阵。
• 顺序的生成每个位置的视频。
• 每个pos根据前序的item选择最优的topk
12. 序列生成 — 多队列权重
多队列权重组合参数搜索+剪枝
•
多队列权重组合搜索,看作是局部最优边界
的采样。
•
实验组透出的扰动能够让Evaluator学习到用
户对不同队列权重组合的偏好。
•
<0.5ms产出~100条候选序列
13. 序列生成 — 其他
• 多样性召回 – MMR
• Seq2slate 召回
• 其他
MMR = Arg max [? ??? ! ? " , ?
− 1 − ? max ??? # (? " , ? $ )]
14. Evaluator 模型设计
目标:
• label 1 序列播放时长> 序列播放时长的 x 分位点
• Label 2 是否有下一刷
• Label 3 互动是否大于平均水平
list 维度的信息提取:
• 采用tranformer 结果有效提取list 信息。
• 单向tranformer 结构 更加符合 快手信息流的使
用场景,item 只受上游视频影响
15. 多内容源混排
16. 混排目标
混排之前,业务是通过固定位置的形式来固定获取流量。平台提供给各个业务的流量既和当前
流量对业务的价值无关,也和业务当前能为用户提供的价值无关。
问题:
1、用户角度,偏好的业务和非偏好业务等频率出现。
2、业务方角度,流量中既有偏好的用户也有非偏好的用户降低了业务服务效率。
3、平台角度,资源错配导致了浪费。
混排问题: 将各个业务返回结果恰当的组合,得到社会综合价值最大返回序列。
17. 混排定义及 base 方案
贪心方案(参考LinkedIn):
Algorithm 1: base mix
?
maxmize : ?? ∗ ?? − ∥ ? ∥ #
2
"
?? : ? " ∗ ? " % + 1 − ? " ∗ ? " & ≥ ?
"
0 ≤ ? " ≤ 1
1, ?? ? " % + ?? " % − ?? " & > 0
? " = I
0, ????
1: Input: organic content ? ! ???ℎ ???? ? ! ,
2:
ads ? " ???ℎ ???? ? "
3: input: min gap M, shadow bid ?
4: output: Merged list L of organic content and ads
5: while i < ? ! and j < ? " do
6:
if gap > M and ? " ? + ?? " > ?? ! ? then
7:
L.append(? " [? + +])
8:
else
9:
L.append(? ! [? + +])
10: endif
11: end while
12: while ? < ? ! do
13:
L.append(? ! [? + +])
14: end while
15: return L
18. 混排演进过程
base方案的问题:
• 目标:最大化营收,而不是综合价值最大。 listwise方案中,序列评价分既有体验指标也有营收指标
• 单一item 价值,不随上下文的改变而改变。 listwise方案中,对单item的指标重预估
• 认为广告对用户后续体验,留存等无影响。 RL方案中,在不同的刷次选用不同策略达到session维度
最佳
贪心算法
定坑
单item
价值最
大
List wise 方
案
Whole
page
价值最
大
组合优化RL
方案
Session
序列价
值最大
19. 混排 listwise 方案
序列生成
•
score_0 score_1 score_5
MLP MLP MLP
emb_0 emb_1 emb_5
evtr_0
启发式规则 + 剪枝
• 监督学习模型,评价广告在
Feed Froward Network
不同位置上下文的情况下,
ctr,cvr 等指标,以及对自
Multi-Head Self Attention
Transformer
pos_emb
• Context 信息提取模块
• 跨域转换模块
• 多任务重预估模块
pos_emb
emb_0
然结果的影响
模型结构:
+
pid
xtr
pos_0
+
emb_1
…
tag
pos_1
+
pos_emb
…
emp_cnt
…
当前刷次短视频
重预估模型
…
action_list
pos_5
evtr_1
MLP
Key
ltr_1
ctr_1
MLP
top_emb_0
top_emb_1
Multi-Head Target Attention
Value
Query
emb_5
uid
ltr_0
ctr_0
emb_0
iid
cid
pid
…
emb_1
emp_cnt
ad_0
uid
…
action_list
ad_1
当前刷次广告
+
向量拼接
向量加法
20. 混排 RL 方案
RL 优势:根据当前状态,选择最佳的策略,
达到长期体验和近期收入平衡。
State space S: 状态s ! 表示在t时刻用户状态,包括曝光list,
广告交互list,内容交互list,当前上下文信息,本刷的内容。
Action space A: a " =
??1, ?????1, ??2, ?????2, ???1, ?????3, ???2, ?????4 .广告业务要
求ad1 和 ad2 要求保序,fan3 和 fan4 要求保序,ad2ad loc 有
a " = ??1,4, ??2,0, ???1,7, ???2,0
gap 要求,fans之间有gap 要求,ad 和 fans 有gap要求 loc 为0 代
表不放置
? #$ = ??? + ????? + ??? Reward R: ? =
? & = ????ℎ???? + interactor Trans pro P: 状态转移概率
? ()*"
1 ????
=N
0 ?????
? #$ + ? % ∗ ? & + ? ' ∗ ? ()*"
Discount factor : ?
21. 混排 RL 方案
Duel Dqn
优化目标:
Q1 … Qn
? ? = ? +",#",-",+".% ?? − ? ? ? ???
A network (parameter share)
V
mlp
mlp
scores
Tranfom layer
scores
重预估模型
User
Ad action
list
reco
action list
Browser
list
a1
…
Where ?? = ? +".% ?? + ???? #".% ? ?? + 1, ?? + 1; ? ??, ??]
mlp
…
…
'
an
Algorithm 1 Off-policy Training
1: Get Offline data D = {(st,a,r, st+1)}. (generated by online policy)
2: Init value function Q with random weights
3: for session = 1, M do
4: for t = 1, T do
5:
sample batch data ( s, a , r , s’) form D
6:
updata by min L
7:
end for
8: end for
22. 端上重排
23. 端上重排目标
端上要解决的问题:
• 实时感知,用户反馈信号感知延迟
• 实时反馈,分页请求场景下,下次请求前无法即时调整当前推荐内容
• 千人千模,更加极致的个性化推荐
• 算力分配,灵活的pagesize ,可以在算力紧张的时候,动态决定服务端请求频次,提升算力经济性。
24. 端上重排整体框架
服务端
客户端
端上整体架构:
•
端上策略库
重排
端上模型推理服务
分页请求
端上模型推理
精排
• 端上策略库 • 特征管理服务 粗排
• 离线日志及训练 召回
视频特征
推荐视频
及特征
用户特征
候选视频
Buffer
用户行为DB
Online
Offline
上传CDN
日志上报
样本拼接
模型训练
导出端模型
反馈行为
25. 端云混合模型
端上特有实时反馈的有效表达
score
Edge Net
• 服务端引入大规模特征,下发
user embedding
photo embedding
MLP
dense feature
视频侧顶层embedding,提升
edge behavior
Attention
端上attention、特征交叉等模
…
块表达能力
端上模型兼顾轻量级和表达能力
score
Server Net
×
sigmoid
• 服务端部署大规模PS,端上
无需embedding lookup,保证
向量拼接
×
user top emb
photo top emb
user tower photo tower
user embedding photo embedding
模型轻量级
• 服务端下发user embedding,
uid
提升端上模型个性化能力
优化端上模型效率
• 分布式实时训练,小时级模型
推送
did
age
gender
用户侧特征输入
…
action_list
向量点乘
pid
aid
fr_xtr
mc_xtr
视频侧特征输入
…
exp_cnt
26. edge 模型部分
LTR Score
端上实时反馈特征的有效表达
•
•
丰富的端上实时反馈行为,涵 服务端xtr特征
盖时长、互动多个目标 交叉特征
ID类特征
音量、横屏等端上特有隐式反
候选视频作为query,对实时反
馈序列做target attention
Embedding Layer
Target Attention Layer
…
反馈序列视频和候选视频特征
交叉
•
端上反馈特征
MLP
馈
•
用户特征
Pxtr Trans Ensemble
…
Embedding Layer
向量拼接
+
Dense Pxtr
用户特征
端上实时反馈序列
端上实时反馈建模
• 显式反馈:
历史视频
候选视频
pltr
pltr
pltr
…
pltr
交叉
Ø 点赞、评论、关注、分享、下载等
like
like
like
…
pltr
Ø 时长、长短播、个人页/评论区时长
Ø 暂停、音量、横屏等
pltr
pltr
…
like
key
pltr
+
交叉
候选视频
query
Multi-Head Attention
Ø 不感兴趣
• 隐式反馈:
向量加法
value
…
…
pltr
pos_emb
pos_emb
+
27. 端上模型效果
离线xtr对比
ctr +2.53pp
ltr +4.81pp
wtr +1.36pp
在线后验xtr对比(备注:前10个位置客户端机制不进行重排,因此xtr无差异)
ctr
ltr
wtr
28. THANKS