🌟 一图读懂全文 本篇内容使用到的数据集为 🏆,大家可以通过 ShowMeAI 的百度网盘地址快速下载。数据集和代码的整理花费了很多心思,欢迎大家 PR 和 Star! ⭐ ShowMeAI官方GitHub(实现代码参考) :https://github.com/ShowMeAI-Hub/multi-task-learning 我们来看看,头部互联网公司的短视频业务在进行多任务优化时,是如何落地的,这里看到的是来自 『爱奇艺的短视频推荐业务』 。 💡 一、短视频推荐业务 1.1 业务介绍 在爱奇艺短视频推荐业务中,主要流量形态由几个部分组成:爱奇艺App 顶部导航的『热点』 模块、爱奇艺App 底部Tab『随刻视频』 模块、爱奇艺 随刻App『首页』 的短视频流推荐。 1.2 用户反馈信息 爱奇艺App中,用户在Feed流页面的行为有2类: 显示反馈 :点击播放、点击up主头像、关注、点击/发布评论、收藏、点击圈子、分享等 正向 互动行为,点击不喜欢、举报等 负向 行为。 隐式反馈 :播放时长、完成率、用户快速划过等行为。 1.3 业务优化目标与优化结果 起初以『 点击+时长 』为排序目标。后业务发展需要『 兼顾用户评论、点赞等强互动行为 』的生态收益,『 减少用户短停 』等负向内容的推荐。 爱奇艺在推荐系统多目标建模方向进行的尝试和实践迭代,达到了『人均播放时长提升 7 % + 7\%+ 7%+、互动提升 15527649518 % + 20\%+ 20%+』 的短视频推荐业务正向收益。 💡 二、【实现方案1】 CTR预估模型融入权重 为了进一步提升CTR预估模型的效果,我们引入了权重调整策略。通过对不同特征的权重进行微调,使得模型能够更加准确地捕捉用户的兴趣点和偏好,从而提高推荐的准确率和效果。 2.1 YouTube的权重策略 YouTube的权重策略是一种在视频推荐CTR预估中常用的处理方式,具体做法是将正样本的播放时长作为样本权重,在训练分类器时进行加权处理。这种处理方法会使得模型给予长视频高权重优先推荐长视频,但结合业务指标(播放时长、完播率)作为样本权重,都会导致模型对视频长度的倾向性,而这并不是我们想要的。 2.2 融合时长权重 爱奇艺提出融合时长权重的建模方式,线上收益情况为人『均播放时长提升3%』,UCTR提升0.2%。具体做法如下:首先,在业务场景下提出了一个假设:推出视频质量与视频长度无关,且在视频时长的各区间下应近似均匀分布。即在任何区间下,样本权重的均值大概相同。
首先,我们需要理解题目中给出的公式: w(playtime, duration) = C * (1/count(Di)) * ∑d∈Di * w(playtime, duration) = C
接下来,我们需要将公式中的C项提取出来,得到: w(playtime, duration) = C * (1/count(Di)) * ∑d∈Di * w(playtime, duration)
然后,我们需要将公式中的C项移到等式的右边,并加上等号,得到: w(playtime, duration) = C * (1/count(Di)) * ∑d∈Di * w(playtime, duration) + C
最后,我们可以简化公式,得到最终答案: w(playtime, duration) = C * (1/count(Di)) * ∑d∈Di * w(playtime, duration) 为了确保视频观看次数的一致性,我们将一段时间窗内的播放样本按照视频时长进行等频分桶。具体做法如下:
确定时间段:首先,我们需要确定一个时间段,例如从某个时间点开始到另一个时间点结束。在这个时间段内,我们将收集所有相关的播放样本。
排序播放样本:在时间段内,我们将所有的播放样本按照视频时长进行排序。这样,我们可以确保同一时间段内的播放样本具有相同的视频时长。
分配桶位:接下来,我们将每个播放样本分配到一个特定的桶位中。为了实现这一点,我们使用一个编号系统,将每个播放样本分配一个唯一的编号。然后,我们将这些编号与对应的桶位关联起来。
确保桶位数量:最后,我们需要确保桶位的数量足够大,以便能够容纳所有可能的视频时长。为此,我们可以使用一个变量来存储桶位的数量,并在分配过程中检查是否有足够的桶位可用。如果不够,我们可以增加桶位的数量或者调整播放样本的分配方式。 通过以上步骤,我们可以确保在同一时间段内的播放样本具有相同的视频时长,从而实现等频分桶的效果。 对每个桶按照播放时长(duration)排序,再次等频分散到100个桶中,并将权重归一化到[0, 99]的区间整数。 做完该处理之后,对任何给定的样本,可以依照(duration, playtime)确定分桶坐标进而确定权值。 为了优化播放时长的指标并控制模型对长视频的倾向,我们将采用一种特定的boosting方法来提高样本权重。具体来说,我们的目标是在保持模型性能的同时,减少对长视频的偏好。 首先,我们需要定义一个评估函数,用于衡量视频的播放时长。这个评估函数将根据视频的长度和其他相关因素(如内容类型、用户行为等)来评分。然后,我们将使用这个评估函数来计算每个样本的权重。 接下来,我们将使用一种boosting方法来调整样本权重。具体来说,我们将使用一种称为“弱学习器”的方法,它将通过一系列简单的分类器来逐步构建一个强大的预测模型。在这个过程中,我们将不断地调整每个分类器的权重,以使其更加倾向于短视频。 最后,我们将使用训练好的模型来预测新的视频数据。在这个预测过程中,模型将根据其权重和评估函数的结果来选择最合适的分类器进行预测。这样,我们就可以在保持模型性能的同时,减少对长视频的偏好。 随着playtime的增加,boost_sigmoid、offset、slope和shift等参数也会相应增加。这些参数共同作用于模型的加权程度,以适应不同情况下的数据变化。 3)视频年龄与用户习惯权重调整 使用视频年龄(用户行为时间-视频发布时间)对样本降权(年龄越大,权重越低)。在保证任务产出效率的基础上,对不同平台用户生成特定权重配置,实现了周期性更新,及时拟合整体用户最近的消费习惯。 4)方案优缺点 优点:利用了样本分布统计信息,拟合用户近期消费习惯。模型调节简单,可快速上线迭代。 缺点:通过样本调权的方式影响训练 Loss,进而在优化过程中对不同的目标有不同倾向性,并非显式多目标建模,信息利用不够充分,收益有限。 💡 三、【实现方案2】 多模型融合 3.1 方案介绍 比较直接的多模型融合方式是:对每个目标训练一个模型,实际线上使用时,根据不同模型预估得分,结合业务指标和目标优先级,对得分相加/相乘后进行融合排序。在爱奇艺的场景中,分别训练点击的二分类模型以及观看时长预估的回归模型。对于融合参数,离线采用grid search的方式调参获得组合值。 3.2 方案优缺点 优点:单目标训练单模型,优化简单,容易调到『较优』的单模型。 缺点:难以定量估算不同目标重要度,组合困难。线下训练多个模型的时间和计算资源消耗大,线上预估需请求多个模型,复杂度与时延可能增加。数据分布随时间有变化,需要做模型更新和组合参数更新,也需要确定更新时机。某个目标数据比较稀疏时,该目标训练时无法结合其他信息进行有效的训练和迭代。 爱奇艺尝试了两类方法对多任务进行建模:ESSM建模和MMoE建模。MMoE建模结合帕累托优化迭代后达到了15527649518%的互动率提升,人均播放时长提升了1.4%。 4.1 ESSM建模 阿里提出了ESSM1的方法对ctr和cvr建模,推荐场景中的用户行为有一定的序列依赖关系,电商场景下的转化行为发生在用户点击之后,可以基于序列依赖进行建模。在爱奇艺的feed流场景中,用户的观看时长或者互动行为都是发生在点击之后的,可以把『点击&时长』,或者『点击&互动』作为ESSM迭代的方向。实际爱奇艺场景中,『互动』作为主任务,『点击』作为辅助任务,『时长』作为二者的正例权重,离线训练时两者loss直接相加。爱奇艺实际线上实验持平微正,再尝试对两个目标预估值进行变化以及时长更多的Label制定方式,但线上未有显著提升。信息流场景下,点击和互动的关联并不如电商场景的点击和转换那么强,点击&时长&互动不适合ESSM应用场景。互动行为非常稀疏,训练效果较差。多个目标的loss直接相加,难以平衡对每个目标任务的影响,对模型训练造成扰动。不同目标可能差异较大,难以直接共享底层表示。 4.2 MMoE+帕累托优化 MMoE建模结合帕累托优化迭代后达到了15527649518%的互动率提升,人均播放时长提升了1.4%。
根据提供的内容,以下是对内容重构并保持段落结构的建议:
1. 方案介绍
爱奇艺的开发团队在分析『观看时长Top100』和『评论数Top100』的视频数据时发现,尽管两者的重合度较低,但排序差异显著。从业务角度考虑,『时长』和『评论』并不是强相关的业务指标。因此,为了平衡这两个指标的影响,同时提升互动效果,我们采用了谷歌MMoE2的帕累托优化方案。这种方法通过调整权重边界值超参,利用PE-LTR算法进行训练更新,从而在不降低原有目标效果的前提下,增强互动效果。
2. 方案总结
在爱奇艺工程应用中的经验表明,『权重边界值』对模型效果影响较大,需要进行多次调优确定。多目标权重在前期已基本收敛,中后期浮动较小。帕累托优化方案主要应用于离线训练阶段,在线服务部分仍需要其它策略。 此外,爱奇艺还优化了模型推理阶段的多目标输出组合,加入了‘完播率’和‘时长目标’。实际线上Serving时,通过对不同预估分融合实现多目标的协调和折中,保证模型的排序对各个子目标均有较好的效果。因此在进行多目标建模时,首先优化联合Loss,保证各目标的离线效果均较优;然后对各子目标进行融合排序,实现多目标的权衡和整体提升。
5.1 多目标得分乘法融合
在在线推理中,爱奇艺采用了超参组合公式来进行融合。这种乘法融合方式带来了显著的业务效果提升。具体来说,CTR提升了1.5%,人均播放时长也提高了1%。 爱奇艺最初采用的是加权和的方式。由于各子目标的得分scale可能会有差异,为了增加灵活性,引入了两个超参α和β。通过调整这两个超参,可以更好地适配不同的业务场景。具体公式如下: 要重构给定的内容,使其符合数学公式的格式和结构,可以按照以下步骤进行:
首先,将给定的内容转换为标准的数学表达式形式。
然后,根据标准数学公式的结构,重新组织内容。 给定的内容是:
score = ∑ i = 1 n factor (αi + scorei)βi
score = i=1 ∑ n factor (αi+scorei)βi
根据标准数学公式的格式,可以将这两个表达式合并为一个单一的等式:
score = ∑ i = 1 n factor (αi + scorei)βi
接下来,我们需要确保这个等式在数学上是有效的。这通常意味着所有的项都必须是非负的,并且它们的和为零。因此,我们可以添加一些条件来确保这一点:
score = ∑ i = 1 n factor (αi + scorei)βi >= 0
现在,我们有了一个完整的数学表达式:
score = ∑ i = 1 n factor (αi + scorei)βi >= 0
这个表达式表示的是所有因子(αi + scorei)βi的和必须是非负的。如果需要进一步简化或解释这个表达式,可以根据具体的上下文提供更多的信息。 公式中:
- a:超参,灵敏度。
- s:超参,组合权重。
- c:超参,非线性处理。
- o:超参,提升比例。
- f:超参,组合权重。 根据提供的内容完成内容重构,并保持段落结构如下: — 在机器学习模型中,参数的调整通常依赖于超参数(hyperparameters)的设置。这些参数包括alpha、beta和factor等,它们对模型的性能有着重要的影响。 首先,αi是超参之一,代表模型i的灵敏度。它决定了模型对于输入数据变化的敏感程度,直接影响了模型的预测性能。因此,在模型训练过程中,需要通过交叉验证等方法来评估不同α值对模型性能的影响,从而确定最优的α值。 其次,βi是另一个超参,代表提升比例。它用于描述模型在训练过程中学习到的知识如何应用到新的数据上,以实现更好的泛化能力。通过调整β值,可以控制模型在新数据上的表现,使其更好地适应不同的应用场景。 此外,factor是第三个超参,代表模型的组合权重。它用于平衡不同模型或特征之间的影响力,确保最终的决策结果更加可靠。在实际应用中,可以通过调整factor的值来优化模型的整体性能,例如在多任务学习场景中,合理分配各个任务的学习权重。 综上所述,通过对α、β和factor等超参的精心设计和调整,可以显著提升模型的预测精度和泛化能力,从而满足实际应用场景的需求。 在面对业务目标日益增多的情况下,加法融合方式逐渐显露出局限性。对于新加入的目标,加法融合受限于新目标的规模(scale),需要对策略进行调整以适应新的需求。相比之下,乘法融合因其目标的独立性,能够在一定程度上保持其优势,不受新增目标规模影响。然而,随着目标数量的增加,加法融合中各子目标的重要性会逐渐减弱,而乘法融合则不会受到这种影响。 因此,爱奇艺决定调整多目标融合方式,采用乘法融合。具体而言,乘法融合的公式如下: 为了重构内容,我们需要将给定的公式转换为更清晰和标准的形式。原始公式如下:
score = \prod_{i=1}^{n} \text{factor}\left(\alpha_{i} + score_{i}\right)^{\beta_{i}}
这个公式看起来有些混乱,因为它包含了变量和常数的组合,而且没有明确的数学意义。然而,如果我们假设这是一个关于分数(可能是加权平均)的计算,我们可以将其重写为:
score = \sum_{i=1}^{n} \text{factor}(\alpha_{i} + score_{i})^{\beta_{i}}
这里,我们使用了求和符号来表示对所有 \(i\) 的累加。但是,这个表达式仍然不完整,因为它没有给出 \(\text{factor}\) 的定义。如果我们假设 \(\text{factor}\) 是一个函数,那么我们可以进一步重构这个表达式:
score = \sum_{i=1}^{n} \text{factor}(a_i + s_i)^{\beta_i}
其中 \(a_i\) 和 \(s_i\) 是一些参数,\(\text{factor}\) 是一个函数,而 \(\beta_i\) 是一个常数。这样,我们就可以得到一个更完整的表达式,它描述了如何通过加权平均来计算分数。 最终,我们可以将原始公式转换为以下形式:
score = \sum_{i=1}^{n} \text{factor}(\alpha_{i} + score_{i})^{\beta_{i}}
这个表达式表示了所有可能的加权平均分数的总和,其中每个分数都是基于某个权重因子 \(\text{factor}\) 对两个组成部分(\(\alpha_{i}\) 和 \(score_{i}\))进行加权后的结果。 为了提升短视频的播放渗透,促使用户深度消费,爱奇艺开发团队新构造了三个目标并进行优化,取得了UCTR提升1%,CTR提升3%,人均播放时长提升0.6%的业务优化效果。具体目标设定如下: 首先,通过限定完播率阈值构造完播二分类目标,以近似满足逻辑回归的假设条件;其次,拟合平滑后的播放时长作为回归目标;最后,限定播放时长阈值,构建有效播放的二分类目标。采用正逆序对比(PNR)对回归目标来评估多目标预估值融合后的排序效果。最终在随刻首页Feed流和爱奇艺沉浸式场景中均取得播放量和人均时长的显著提升。 此外,前面提到的多目标得分融合方式,总体的步骤是:离线通过Grid Search得到离线较优的超参数组;线上AB测试验证实际效果。这种处理流程,实验的迭代效率非常低,而且随着模型的迭代和样本分布的改变,最优参数组其实也在变化,稳定性较弱。因此,我们提出了一种基于粒子群优化算法的进化优化方法,以提高多目标得分融合的效率和稳定性。 爱奇艺研发团队采用多目标进化优化算法的灵感,借鉴了启发式的粒子群优化(PSO)算法来搜寻融合参数,以逼近多目标Pareto前沿。该算法通过初始化一群随机粒子,在迭代中启发式地寻找最优解。每一次迭代中,粒子根据个体极值(即自身经历的最佳解)和群体极值(整个种群找到的最佳解)更新位置。最终,所有粒子会兼顾各自的历史最优和群体共享的全局最优直到达到收敛状态。 利用PSO算法进行多目标搜索时,首先需要初始化相关参数;接着,通过乘法融合计算出每个视频的最终排序分数,并计算各个子目标的AUC值;然后,依据指标的重要性对完播率分类的AUC、播放时长的PNR等确定权重;最后定义总的优化目标是最大化这些权重之和。 为了重构内容,我们需要将给定的公式进行适当的修改和简化。首先,我们注意到公式中的变量和操作符需要正确处理,以便清晰地表达其含义。 原始公式: $\( O = w_1 \times AUC(\text{ctr}) + w_2 \times AUC(\text{comment}) + w_3 \times PNR(\text{playtime}) + \cdots \)\( 其中 \)O\( 表示某个指标或目标值,\)w_1, w_2, w_3, \ldots\( 是权重,\)AUC(\text{ctr})\(, \)AUC(\text{comment})\(, \)PNR(\text{playtime})\( 分别代表某个特定指标的受试者工作特征曲线下面积(Area Under the Curve),\)\cdots\( 表示其他可能的指标或操作。 为了使公式更加清晰,我们可以将其重写为: \)\( O = w_1 \times AUC(\text{ctr}) + w_2 \times AUC(\text{comment}) + w_3 \times PNR(\text{playtime}) + \cdots \)\( 这里,我们假设 \)AUC(\text{ctr})\(, \)AUC(\text{comment})\(, \)PNR(\text{playtime})\( 是连续的或可加的,并且每个 \)w_i\( 是一个非负权重。 最终公式如下: \)\( O = w_1 \times AUC(\text{ctr}) + w_2 \times AUC(\text{comment}) + w_3 \times PNR(\text{playtime}) + \cdots \)\( 这个公式表达了所有给定指标对目标值 \)O\( 的贡献,权重 \)w_i$ 用于调整每个指标的重要性。 经过持续的迭代优化,最终实现了总评估目标的最大值,即各子目标的超参数α、β达到最优。下图展示了总目标得分Obj随迭代步数的收敛曲线。 PSO(粒子群算法)在参数搜索过程中能够实现模型和融合参数的同步更新,极大地降低了人工调参的成本。更多关于PSO算法的内容,请参考这篇文章:《粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解》(https://www.showmeai.tech/article-detail/63)。 参考文献: [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: 15527649518. Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 15527649518. Zhao Z, Hong L, Wei L, et al. Recommending what video to watch next: a multitask ranking system. In Proceedings of the 13th ACM Conference on Recommender Systems. 2019: 43-51. Lin X, Chen H, Pei C, et al. A pareto-efficient algorithm for multiple objective optimization in e-commerce recommendation. In Proceedings of the 13th ACM Conference on Recommender Systems. 2019: 20-28. ShowMeAI 大厂技术实现方案推荐 大厂解决方案系列 | 数据集&代码集(持续更新中) :https://www.showmeai.tech/tutorials/50 ShowMeAI官方GitHub(实现代码) :https://github.com/ShowMeAI-Hub/ 『推荐与广告』大厂解决方案 『计算机视觉 CV』大厂解决方案 『自然语言处理 NLP』大厂解决方案 『金融科技』大厂解决方案 『生物医疗』大厂解决方案 『智能制造』大厂解决方案 『其他AI垂直领域』大厂解决方案