写点什么

一矢多穿:多目标排序在爱奇艺短视频推荐中的应用

2021 年 7 月 07 日

一矢多穿:多目标排序在爱奇艺短视频推荐中的应用

短视频具有内容丰富、信息集中、用户粘性大的特点,如何提高短视频分发的效率推荐精准度,有效提升消费时长、留存等关键业务指标,是推荐系统的核心能力和建模目标。


本文主要分享在短视频推荐场景下,爱奇艺基础推荐团队在排序模型多目标优化方面的历史进展。第一部分主要介绍多目标建模的业务背景,第二部分介绍爱奇艺在短视频推荐业务多目标建模方向尝试和实践的多种方案,最后是简单的总结和在多目标建模方向的规划

背景

在爱奇艺短视频推荐业务中,主要流量形态两个部分组成:


(1) 爱奇艺 APP 底 Tab 的随刻视频以及顶导航的热点模块


(2) 爱奇艺随刻 APP 首页短视频流推荐页面




图 1:短视频推荐页面


用户在 feed 流页面的行为分为:


显示反馈:点击播放,点击 up 主头像、关注、点击/发布评论、收藏、点击圈子、分享等正向互动行为,点击不喜欢、举报等负向行为。


隐式反馈:播放时长、完成率、用户快速划过等行为。


起初排序模型是以点击+时长多目标模型,随着业务发展和模型迭代,我们需要兼顾用户评论、点赞等强互动行为的生态收益,减少用户短停等负向内容的推荐。因此,我们在推荐系统多目标建模方向进行了一系列的尝试和实践,并在短视频推荐业务完成了技术落地,实现了人均播放时长提升 7%+、互动提升 20%+等各项指标的正向收益。

多目标在短视频推荐业务中的实践

1.融合时长权重的点击率预估模型

在基于 ctr 预估的视频推荐中,普遍采用 YouTube 的权重策略


将正样本的播放时长作为样本权重,用加权的逻辑回归训练分类任务。


该策略会造成长视频的权重较高模型偏向推出长视频。综合来看,无论将播放时长还是完播率作为样本权重,都会导致模型对长短视频有所偏重。


因此,权重设计方案应确定合理的假设视频推出质量与视频长度无关,且在视频时长的各区间下应近似均匀分布。即在任何区间下,样本权重的均值大概相同。则有:

采用等频分桶的方式,对一定时间窗口内的播放样本按照 duration(视频时长)排序分散到 100 个桶,确保同一桶中视频观看数相同。进一步地对每个 duration 桶按照 playtime(播放时长)排序再次等频分散到 100 个桶,并将权重归一化到[0,99]的区间整数。因此对所有样本,均可按照(duration,playtime)确定固定的分桶坐标权值


图 2:对视频时长和播放时长进行分桶


在确定整体的权重计算框架后,进一步对 playtime 较高的样本权重进行整体提升。预期优化消费时长的指标,同时控制长视频的偏向。具体的 boosting 方案:

其中,Am 是上界值,shift 是下界值,offset 是时长偏移量,slope 是斜率。


为了完善视频生态,保证新老视频的权重具有一定的区分度。我们融合了视频年龄(用户行为时间-视频发布时间)对样本降权(年龄越大,权重越低)。同时,为了能够使权重配置及时拟合整体用户最近的消费习惯,在保证任务产出效率的基础上,分别对不同平台用户生成特定权重配置,实现了周期性更新


线上收益:人均播放时长提升 3%,UCTR 提升 0.2%


这种方案的优缺点:


优点:融合样本分布信息,拟合近期消费习惯。模型调节简单,可快速上线迭代。


缺点:将时长转为样本权重影响训练 loss本质并非对多目标建模,而是将不同目标的信息转移到统一的目标上优化。而且时长信息利用不够充分,收益有限。

2.多模型融合

图 3:多模型融合


多模型融合是指分别对每个目标训练一个模型,各预估得分根据目标重要性、业务指标需求等策略相加/相乘后进行融合排序。


在这里,我们分别训练纯点击的二分类模型以及观看时长预估的回归模型。在离线调节融合参数时,采用 grid search 的方式选择更好的组合值。


这种方案的优缺点:


优点:模型单独训练,只需要让单个模型达到“最好”,不需要考虑其它目标。


缺点:多个目标重要性难以估算,组合困难;考虑到数据集分布和模型训练的稳定性变化,需要评估模型更新和组合参数的更新时机;在线服务计算量大,请求时长取决于较复杂的模型且资源消耗巨大;如果增加的新目标数据比较稀疏,难以进行有效的模型训练和迭代。

3.多任务学习-网络优化

随着爱奇艺随刻 App 朝着社区化的方向建设,要求 feed 流推荐效果在保证用户观看时长、观看视频数、点击率等基础指标稳定的情况下,引导用户评论、点赞等互动。基于业务现状和之前的迭代基础,我们在多任务学习上进行了一系列探索和实践。


在深度学习领域,多任务学习通常共享底层表示,将多个任务放在一起学习,通过浅层的共享促进相互学习。同时,由于反向传播优化联合 Loss,会兼顾多任务间的约束关系,因此能够有效防止过拟合。


目前工业界主要有两种方法对多任务进行建模:


(1)任务序列依赖关系建模;


(2)优化底层共享表示。

3.1 任务序列依赖关系建模

图 4:基于 ESMM 的方案


推荐场景中,用户的行为通常具有序列依赖关系,在阿里 ESMM 的文章[1]中,用户的转化行为是发生在用户点击之后,因此基于序列依赖进行建模。如图 4 所示,对比 feed 流场景,点击是时长或者互动的前提,可以把点击 &时长,或者点击 &互动作为 ESMM 迭代的方向。实现上,互动作为主任务,点击作为辅助任务,时长作为二者的正例权重,离线训练时两者 loss 直接相加。我们曾经尝试过对两个目标预估值进行变化以及时长更多的 Label 制定方式,但线上效果均持平微正。


小结:点击和互动没有绝对的联系点击 &时长 &互动,不适合 ESMM 应用场景;互动行为非常稀疏,训练效果较差;多个目标的 loss 直接相加,难以平衡对每个目标任务的影响,对模型训练造成扰动;不同目标可能差异较大,难以共享底层表示。

3.2 MMOE+帕累托优化

我们分别对观看时长和评论数 Top 100 的视频进行对比分析,发现重合度较低、排序差异很大,强制底层共享存在冲突。因此,我们采用了谷歌 MMOE[2][3]的方案,但是考虑到联合 Loss 需要进行大量超参调节,可能出现目标一涨一跌的现象,因此使用帕累托优化保证原有目标效果不降低的情况下,提升互动效果。


图 5  MMOE 模型结构


MMOE 模型底层通过采用 Soft parameter sharing 方式,能够有效解决两个任务相关性较差情况下的多任务学习。

图 6 基于 MMOE+帕累托优化的方案


帕累托优化主要参考阿里 2019 年发表于 RecSys 上的一篇文章[4],对比手动调节联合 Loss,该论文使用 kkt 条件来负责各目标权重的生成。大体步骤(如图中 Training 虚线框内所示):


(1) 均匀设置目标权重值(可更新的),同时设置权重边界值超参,运行 PE-LTR 算法在训练过程中不断更新权重值;


(2) 通过设置不同的权重边界值超参,多次运行训练任务,根据目标的重要性挑选效果最好的模型。


线上收益:互动率提升 20%,人均播放时长提升 1.4%。


小结:实际使用中权重边界值对模型效果影响较大,需要多次调优确定;多目标权重在前期已基本收敛,中后期浮动较小;此帕累托优化方案应用于离线训练,在线服务部分仍需要其它策略。

4.多任务学习-融合优化

除了对网络结构进行优化,我们对模型推理阶段的多目标输出组合进行了优化,同时,加入了完播率时长目标,模型 Serving 时,通过融合各预估分实现多目标的协调和折中处理,保证模型对各个子目标的排序均有较好的效果。因此在进行多目标建模时,首先优化联合 Loss,保证各目标的离线效果均较优;然后对各子目标进行融合排序,实现多目标的权衡和整体提升。

4.1 乘法融合升级

在线推理时,使用可适配多种融合方案的超参配置。在多目标融合初期,我们采用了加权和的方式。由于最终的排序得分对各子目标的得分值域很敏感,因此我们增加α和β两个超参,来联合调节各子目标得分的灵敏度与提升比例。

其中,αi:超参,灵敏度;scorei: 模型 i 的输出;βi:超参,提升比例,非线性处理;factor:超参,组合权重;n:模型数量


在业务的目标较少时,通过加法方式融合新增目标可以短期内快速获得收益。但随着目标逐渐增多时,加法的融合排序能力会逐渐受限。主要包括:


(1)对于新增目标乘法融合具有一定的目标独立性,无需考虑旧目标集的值域分布;


(2)随着目标逐渐增多,加法融合会逐步弱化各子目标的重要性影响。


因此我们对多目标的融合方式升级为乘法:

线上收益:CTR 提升 1.5%,人均播放时长提升 1%。

4.2 任务序列依赖关系建模

为了提升短视频的播放渗透,促使用户深度消费,我们新构造了三个目标:


(1)通过限定完播率阈值构造完播二分类目标,以近似满足逻辑回归的假设条件;


(2)拟合平滑后的播放时长作为回归目标;


(3)限定播放时长阈值,构建有效播放的二分类目标。


对于回归目标,采用正逆序对比(PNR,positive-negative-ration)来评估多目标预估值融合后的排序效果。最终在随刻首页 feed 流和爱奇艺沉浸式场景中均取得播放量和人均时长的显著提升。


线上收益:UCTR 提升 1%,CTR 提升 3%,人均播放时长提升 0.6%。

4.3 PSO[5]进化优化算法

无论对预估分使用加法还是乘法方式融合,模型 Serving 时的超参均是通过 Grid Search 得到离线较优的几组解。需要离线搜参以及线上 AB 才能最终确定,效率较低。随着模型的迭代和样本分布的改变,最优解也在变。因此我们借鉴了多目标进化优化算法的思路,基于启发式的粒子群算法(PSO,Particle Swarm Optimization)搜索融合参数,逼近多目标的 Pareto 前沿


PSO 算法通过初始化一群随机粒子,启发式地多次迭代求出最优解。每一次迭代,粒子通过个体极值(该粒子所经过的最优解)和群体极值(种群找到的最优解)来更新各自位置。最终所有粒子会兼顾个体的历史最优和群体共享的全局最优直至收敛。


基于 PSO 算法进行多目标搜参首先初始化参数;通过乘法融合得到每个视频最终的排序分并计算各子目标的 AUC;根据指标的重要性对完播率分类的 AUC、播放时长的 PNR 等确定权重,定义总的优化目标:

最后通过持续迭代,使得总评估目标 Obj 最大,即得到各子目标的超参数α、β。图 7 为总目标得分 Obj 随迭代步数的收敛曲线。


图 7:总目标得分的收敛曲线


搜参任务需要保证总目标的定义足够完美,保证粒子的优化方向不至于被某个子目标带偏,此外验证集的无偏性和一致性也是效果一致的重要保证。进一步地我们将 PSO 搜参过程部署到集群实现模型和融合参数的同步更新,大幅降低人工调参的成本。


小结:无论融合方式的升级还是搜参方式的优化,均是离线搜参后部署到线上生效。场景、运营流量等影响,离线指标和业务指标存在 gap。离线寻参容易获得短期收益,但无法动态调整及时适应样本分布的变化。后续结合用户的实时日志、特征等,对在线自动搜参展开持续探索;以及模型化拟合参数,尝试提升个性化和实时性。

总结与展望

本文总结了爱奇艺短视频推荐技术排序阶段多目标的优化,对样本权重优化模型结构、多目标融合等多角度进行了一系列的探索和实践,在线上取得了一系列的收益。后续,我们将会从 3 个方向继续探索:


(1)跨场景的多目标学习:结合多场景的数据学习用户兴趣,优化主/辅助任务,并应用到更多场景中;


(2)优化模型:包括梯度优化、底层共享的设计、Loss 设计、不同任务对梯度的影响等;


(3)在线搜参:开发自动调参框架,利用一部分流量进行探索,实时动态调整等。


参考文献

[1] Ma X, Zhao L, Huang G, et al. Entire space multi-task model: An effective approach for estimating post-click conversion rate[C]//The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval. 2018: 1137-1140.


[2] Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 1930-1939.


[3] Zhao Z, Hong L, Wei L, et al. Recommending what video to watch next: a multitask ranking system[C]//Proceedings of the 13th ACM Conference on Recommender Systems. 2019: 43-51.


[4] Lin X, Chen H, Pei C, et al. A pareto-efficient algorithm for multiple objective optimization in e-commerce recommendation[C]//Proceedings of the 13th ACM Conference on Recommender Systems. 2019: 20-28.


[5] Kennedy J, Eberhart R. Particle swarm optimization[C]//Proceedings of ICNN'95-international conference on neural networks. IEEE, 1995, 4: 1942-1948.


本文转载自:爱奇艺技术产品团队(ID:iQIYI-TP)

原文链接:一矢多穿:多目标排序在爱奇艺短视频推荐中的应用

2021 年 7 月 07 日 13:001245

评论

发布
暂无评论
发现更多内容

充值卡业务接口的幂等设计(附伪代码)

林一

ON DUPLICATE KEY UPDATE 幂等性 Kafk

树莓派上的 K8S 集群挂了,怎么办?

百度开发者中心

百度 技术 经验分享

着力区块链技术等方向,上海这所高校成立研究院

CECBC区块链专委会

解密华为云FusionInsight MRS新特性:一架构三湖

华为云开发者社区

数据湖 云原生 华为云 FusionInsight MRS TechWave

云智慧发布《智能业务运维》2021年刊 邀您共览数字化运维全景象

云智慧技术社区

AIOPS 智能运维

【数据标注的类型有哪些】看懂这篇文章就够了!

澳鹏Appen

人工智能 机器学习 人工智能大数据 数据标注

做开发,这几种锁机制你不得不了解一下

华为云开发者社区

读写锁 自旋锁 互斥锁 优先锁

前端开发:node.js的node包管理器npm安装以及使用

三掌柜

5月日更

【Flutter 专题】121 图解简易 Slider 滑动条

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

Github Action 自动构建 Flutter Android Apk

Leetao

flutter Github Actions

《觉醒年代》观后感

xiezhr

觉醒年代 五四运动 南陈北李

多元线性回归模型 - DAY14

Qien Z.

5月日更 多元线性回归

谈一谈Java的前生今世

孙叫兽

Java jdk 发展史

防火墙

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

一文带你认识MindSpore新一代分子模拟库SPONGE

华为云开发者社区

神经网络 mindspore 新一代分子模拟库 SPONGE 分子结构

Flink 实时计算在微博的应用

Apache Flink

flink

超详细的JQuery的 DOM操作,一篇就足够!

华为云开发者社区

html 前端 DOM 函数 JQuery框架

阿里巴巴P8自爆:Java八大核心思维导图知识梳理

Java架构师迁哥

小走神

Nydia

学习

k8s 上运行我们的 springboot 服务之——技术方案实现图

柠檬

k8s SpringBoot 2

深度分享|中小银行如何实现数字化转型,建设智能营销新体系?

索信达控股

数字化转型 金融 银行 营销数字化 银行大数据

☕【JVM 技术之旅】深入挖掘Java对象的内存结构

李浩宇/Alex

JVM java对象分析 java对象 5月日更 内存对象结构

为什么很多程序员,成为不了技术大牛?

实力程序员

Rust从0到1-泛型-定义

rust 泛型 generic

微服务架构设计之解耦合

Damon

微服务 5月日更

一种基于实时分位数计算的系统及方法

百度Geek说

云计算 前端 云服务

☕【JVM 技术之旅】带你重塑对类加载机制的认识

李浩宇/Alex

JVM Java虚拟机 类加载器 原理分析 5月日更

中国与世界共享数字经济机遇

CECBC区块链专委会

数字经济

架构实战营模块4作业

阿体

教你用 3 行代码发邮件

小匚

Python 学习 自动化

Docker挂了,数据如何找回

运维研习社

Docker 运维 数据恢复 5月日更

一矢多穿:多目标排序在爱奇艺短视频推荐中的应用-InfoQ