大厂技术实现 | 爱奇艺短视频推荐业务中的多目标优化实践 @推荐与计算广告系列

showmeai-head-img.gif

  • 作者:韩信子@ShowMeAI,August@爱奇艺
  • 地址:www.showmeai.tech/article-det…
  • 声明:版权所有,转载请联系平台与作者并注明出处

JUEJIN 系列介绍.png

短视频是当前互联网最热门的业务之一,聚集了巨大的互联网用户流量,也是各大公司争相发展的业务领域。作为主要营收业务方向,短视频方向的推荐算法也日新月异并驱动业务增长,本期我们看到的是爱奇艺的短视频频道下,推荐多任务算法应用实践路径与落地方案。

一图读懂全文

爱奇艺短视频推荐业务中的多目标优化实践

实现代码

获取『多目标模型方法实现代码』,请前往GitHub项目 github.com/ShowMeAI-Hu…

论文下载 & 数据集下载

文章涉及到的部分论文以及『微信数据集』,请在公众号(AI算法研究所)后台回复关键字『爱奇艺多任务』获取。

对『多目标学习』应用感兴趣的小伙伴,也欢迎关注我们公众号(AI算法研究所),查看更多大厂落地方案哦!

我们来看看,头部互联网公司的短视频业务在进行多任务优化时,是如何落地的,这里看到的是来自爱奇艺的短视频推荐业务。

一、短视频推荐业务

1.1 业务介绍

在爱奇艺短视频推荐业务中,主要流量形态由两个部分组成:爱奇艺App 底Tab的随刻视频以及顶导航的热点模块,爱奇艺随刻App 首页短视频流推荐页面。

img2.png

1.2 用户反馈信息

img3.png

爱奇艺App中,用户在Feed流页面的行为有2类:

  • 显示反馈:点击播放,点击up主头像、关注、点击/发布评论、收藏、点击圈子、分享等正向互动行为,点击不喜欢、举报等负向行为。
  • 隐式反馈:播放时长、完成率、用户快速划过等行为。

1.3 业务优化目标

img4.png

起初以点击+时长为排序目标,后业务发展需要兼顾用户评论、点赞等强互动行为的生态收益,减少用户短停等负向内容的推荐。

1.4 多目标优化结果

爱奇艺在推荐系统多目标建模方向进行的尝试和实践迭代, 达到了人均播放时长提升7%+、互动提升20%+的短视频推荐业务正向收益。

二、[实现方式1] CTR预估模型融入权重

2.1 YouTube的权重策略

2.1.1 方案介绍

img5.png

处理方式:YouTube的权重策略是视频推荐CTR预估中很常见的一种处理方式,具体做法是将正样本的播放时长作为样本权重,在训练分类器时进行加权处理。

2.1.2 方式缺点

这种处理方法会使得模型给予长视频高权重优先推荐长视频。但结合业务,不管应用该方法时用哪个业务指标(播放时长、完播率)作为样本权重,都会导致模型对视频长度的倾向性,而这并不是我们想要的。

2.2 融合时长权重

爱奇艺提出融合时长权重的建模方式,线上收益情况为人均播放时长提升3%,UCTR提升0.2%,具体做法如下:

2.2.1 权重计算

首先,在业务场景下提出了一个假设:『推出视频质量与视频长度无关,且在视频时长的各区间下应近似均匀分布』。即在任何区间下,样本权重的均值大概相同。即有:

1 count ( D i ) d D i w (  playtime,  duration  ) = C \frac{1}{\operatorname{count}\left(D_{i}\right)} * \sum_{d \in D_{i}} w(\text { playtime, } \text { duration })=C

对视频时长(duration)和播放时长(playtime)进行等频分桶,如下图所示:

img6.png

具体做法为:

  • 对一段时间窗内的播放样本按照duration(视频时长)排序分散到100个桶,确保同一桶中视频观看数相同。
  • 对每个duration桶按照playtime(播放时长)排序再次等频分散到100个桶,并将权重归一化到[0,99] 的区间整数。

做完该处理之后,对任何给定的样本,可以依照(duration, playtime)确定分桶坐标进而确定权值。

2.2.2 播放时长加权

接下来会对playtime较高的样本权重进行整体提升,希望优化播放时长的指标,同时控制模型对长视频的倾向。这里具体的boosting方法如下公式所示:

img7.png

b o o s t _ s i g m o i d ( p l a y t i m e ) = A m 1 + e p l a y t i m e + o f f s e t s l o p e + s h i f t boost\_sigmoid\left ( playtime \right ) =\frac{Am}{1+e^-\frac{playtime+offset}{slope} }+shift
  • A m Am 是『上界值』
  • s h i f t shift 是『下界值』
  • o f f s e t offset 是『时长偏移量』
  • s l o p e slope 是『斜率』

可以看到随着 playtime 的增加,最后的 boost_sigmoid 也会增加,而 offset、slope 和 shift 可以调整加权程度。

2.2.3 视频年龄与用户习惯权重调整

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

2.2.4 方案优缺点

img8.png

优点:

  • 利用了样本分布统计信息,拟合用户近期消费习惯。模型调节简单,可快速上线迭代。

缺点:

  • 通过样本调权的方式影响训练loss,进而在优化过程中对不同的目标有不同倾向性,并非显式多目标建模,信息利用不够充分,收益有限。

三、[实现方式2] 多模型融合

3.1 方案介绍

img9.png

比较直接的多模型融合方式是:对每个目标训练一个模型,实际线上使用时,根据不同模型预估得分,结合业务指标和目标优先级,对得分相加/相乘后进行融合排序。 在爱奇艺的场景中,分别训练点击的二分类模型以及观看时长预估的回归模型。对于融合参数,离线采用grid search的方式调参获得组合值。

3.2 方案优缺点

img10.png

优点:

  • 单目标训练单模型,优化简单,容易调到『较优』的单模型。

缺点:

  • 难以定量估算不同目标重要度,组合困难;
  • 线下训练多个模型的时间和计算资源消耗大,线上预估需请求多个模型,复杂度与时延可能增加;
  • 数据分布随时间有变化,需要做模型更新和组合参数更新,也需要确定更新时机;
  • 某个目标数据比较稀疏时,该目标训练时无法结合其他信息进行有效的训练和迭代。

四、[实现方式3] 多任务学习:网络设计与调优

爱奇艺的社区化建设和业务趋势下,feed流推荐效果需要:

  • 保证用户观看时长、观看视频数、点击率等基础指标提升或稳定
  • 引导用户评论、点赞等互动

这是典型的多任务多目标学习场景,在深度学习领域有不同的处理方式(详情见多『目标优化及应用(含代码实现)』 )(www.showmeai.tech/article-det… (1)ESSM建模 (2)MMoE建模 后者方法结合帕累托优化迭代后达到了『互动率20%提升,人均播放时长1.4%提升』的业务提升效果。

4.1 ESSM建模

4.1.1 方案介绍

img11.png

阿里提出了ESMM[1]的方法对ctr和cvr建模,推荐场景中的用户行为有一定的序列依赖关系,电商场景下的转化行为发生在用户点击之后,可以基于序列依赖进行建模。

img12.png

如上图所示,在爱奇艺的feed流场景中,用户的观看时长或者互动行为都是发生在点击之后的,可以把『点击&时长』,或者『点击&互动』作为ESMM迭代的方向。 实际爱奇艺场景中,互动作为主任务,点击作为辅助任务,时长作为二者的正例权重,离线训练时两者loss直接相加。爱奇艺实际线上实验持平微正,再尝试对两个目标预估值进行变化以及时长更多的Label制定方式,但线上未有显著提升。

4.1.2 方案总结

信息流场景下,点击和互动的关联,并不如电商场景的点击和转换那么强,点击&时长&互动,不适合ESMM应用场景;

  • 互动行为非常稀疏,训练效果较差;
  • 多个目标的loss直接相加,难以平衡对每个目标任务的影响,对模型训练造成扰动;
  • 不同目标可能差异较大,难以直接共享底层表示。

4.2 MMoE+帕累托优化

爱奇艺的开发同学,对『观看时长Top 100』和『评论数Top 100』的视频进行对比分析,发现重合度较低、排序差异很大。

因此,从业务角度分析看,『时长』和『评论』两者并不是强相关业务,进而考虑采用谷歌MMoE[2][3]的方案,考虑到联合Loss需要进行大量超参调节,可能出现目标一涨一跌的现象,因此使用『帕累托优化』保证原有目标效果不降低的情况下,提升互动效果。

4.2.1 方案介绍

img13.png

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

img14.png

关于MMoE的方法和思路讲解和示例代码,可以参考我们往期文章《多目标优化及应用(含代码实现)www.showmeai.tech/article-det…

阿里2019年在RecSys发表的paper[4]上提出了在多目标优化中使用帕累托优化,对比手动调节联合Loss,论文中使用kkt条件来负责各目标权重的生成。

上图Training虚线框内是帕累托优化的过程:

  • 均匀设置『可更新目标权重值』和『权重边界值超参』,使用PE-LTR算法训练更新权重值;
  • 调整不同的『权重边界值超参』,进行多次任务训练,根据目标的重要性挑选效果最好的模型。

4.2.2 方案总结

爱奇艺工程应用中的经验表明,『权重边界值』对模型效果影响较大,需要进行多次调优确定;多目标权重在前期已基本收敛,中后期浮动较小;帕累托优化方案主要应用于离线训练阶段,在线服务部分仍需要其它策略。

五、[实现方式4] 多任务学习:融合方案

除了上述讲到的网络结构设计和优化,爱奇艺也优化了模型推理阶段的多目标输出组合,并加入了『完播率』和『时长目标』。

实际线上Serving时,通过对不同预估分融合实现多目标的协调和折中,保证模型的排序对各个子目标均有较好的效果。因此在进行多目标建模时,首先优化联合Loss,保证各目标的离线效果均较优;然后对各子目标进行融合排序,实现多目标的权衡和整体提升。

5.1 多目标得分乘法融合

在线推理时,爱奇艺使用超参组合公式来进行融合。最终的乘法融合方式带来了『CTR1.5%提升,人均播放时长1%提升』的业务效果提升。

img15.png

爱奇艺最初采用了『加权和』的方式,因为各子目标的得分scale可能会有差异,增加α和β两个超参来调整适配灵活度,具体公式如下:

 score  = i = 1 n  factor  ( α i + s c o r e i ) β i \text { score }=\sum_{i=1}^{n} \text { factor }\left(\alpha_{i}+score_{i}\right)^{\beta_{i}}

公式中:

  • a l p h a i alpha_{i} :超参,灵敏度
  • s c o r e i score_{i} : 模型i的输出
  • b e t a i beta_{i} :超参,提升比例,非线性处理;
  • f a c t o r factor :超参,组合权重;
  • n n :模型数量。

img16.png

加法方式适合业务目标少的场景下进行融合,短期内可快速获得收益。但目标增多后,加法的融合排序能力会逐渐受限,具体体现如下:

  1. 对于新增目标,加法融合受限于新目标的scale,需要进行调整;相比之下乘法融合具有一定的目标独立性。
  2. 目标增多后,加法融合中,各子目标的重要性影响会减弱。但乘法融合并不会受其影响。

在此基础上,爱奇艺把多目标融合方式调整为乘法,具体公式如下(公式的参数含义和上面公式一致):

 score  = i = 1 n  factor  ( α i + s c o r e i ) β i \text { score }=\prod_{i=1}^{n} \text { factor }\left(\alpha_{i}+score_{i}\right)^{\beta_{i}}

5.2 更多关联业务目标建模

为了提升短视频的播放渗透,促使用户深度消费,爱奇艺开发同学新构造了三个目标并进行优化,取得了『UCTR1%提升,CTR3%提升,人均播放时长0.6%提升』的业务优化效果,具体目标设定如下:

img17.png

  1. 通过限定『完播率』阈值构造完播『二分类目标』,以近似满足逻辑回归的假设条件;
  2. 拟合平滑后的『播放时长』作为『回归目标』;
  3. 限定『播放时长』阈值,构建有效播放的『二分类目标』。

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

5.3 PSO进化优化算法

前面提到的多目标得分融合方式,总体的步骤是:

  • 离线通过Grid Search得到离线较优的超参数组
  • 线上AB测试验证实际效果

这种处理流程,实验的迭代效率非常低,而且随着模型的迭代和样本分布的改变,最优参数组其实也在变化,稳定性较弱。

因此爱奇艺研发同学借鉴了多目标进化优化算法的思路,基于启发式的粒子群算法(PSO,Particle Swarm Optimization)搜索融合参数,逼近多目标的Pareto前沿。

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

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

O b j = w 1 A U C ( ctr ) + w 2 A U C ( comment ) + w 3 P N R ( playtime ) + O b j=w_{1} * AUC(\text {ctr})+w_{2} * AUC(\text {comment})+w_{3} * PNR(\text {playtime})+\cdots

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

img18.png

PSO搜参过程能够使得模型和融合参数同步更新,大幅降低人工调参的成本。更多PSO算法相关内容请参考文章《粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解showmeai.tech/article-det…

六、参考代码实现

文中涉及到的部分多目标优化方法及其在示例数据(微信多目标优化数据集)上的实现,请前往 GitHub github.com/ShowMeAI-Hu… 进行查看。

相关数据集的下载请在公众号(AI算法研究所)回复『爱奇艺多任务』获取。

七、参考文献

  • [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.

八、资源下载

实现代码

获取『多目标模型方法实现代码』,请前往GitHub项目 github.com/ShowMeAI-Hu…

论文下载 & 数据集下载

文章涉及到的部分论文以及『微信数据集』,请在公众号(AI算法研究所)后台回复关键字『爱奇艺多任务』获取。

对『多目标学习』应用感兴趣的小伙伴,也欢迎关注我们公众号(AI算法研究所),查看更多大厂落地方案哦!

猜你喜欢

转载自juejin.im/post/7033787427080962085