重排序在快手短视频推荐系统中的演进

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
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

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 23:36
浙ICP备14020137号-1 $Carte des visiteurs$