01 ****背景 随着搜广推播放全链路优化进入到深水区,推播放全链路优化进入到深水区,机器增长驱动的业务增长边际效益越来越小。在站外广告业务中,每天需要处理数千亿次用户请求,耗时约束在百毫秒左右,这使得算力问题更加严峻,需要在有限的机器资源下应对流量的波动和价值差异。在站外业务场景中,流量规模随时间段而变化,不同媒体平台和用户群体的流量请求价值也不同。此外,用户请求的数量远超实际曝光,大部分请求没有创造实际的广告收入,这更需要精细化地分配算力资源,将算力向高质量流量倾斜,以最大化商业价值。
为了解决这个问题,我们提出了基于多智能体强化学习 的全链路算力调度(MaRCA: Multi-Agent Reinforcement Learning Computation Allocation),通过建设用户价值预估模块、算力预估模块、动作价值预估模块、负载感知决策模块,并依据京东业务模块机器的物理归属,建模播放链路上下游的协同关系,将链路决策过程建模成多智能体强化学习问题,通过不同智能体的集中式训练、分布式执行,能够在保证集群稳定的前提下,最大化整体收益。
作为支撑站外广告大促备战水准提升的重要基建,该项目于2024年618大促后启动,9月底推全, 成功经历了2024年11.11大促全周期考验,大幅提升了业务效果和系统稳定性。
02 ****整体方案
问题建模
问题定义: 当前各类状态信息为st,已知各模块负载约束Cm,权衡消费Q(st,at)和算力消耗C(st,at)的关系,应该采取什么样的动作组合at,能够得到最大的奖励R(st,at)。具体定义如下:
◦状态空间S: 用以描述当前状态信息,包含用户特征、流量特征、机房(IDC)等信息。
◦动作空 间A: 结合召回、粗排和精排场景,我们汇总了三类全链路算力动作决策点:
▪链路选择型: 决定选择激活哪些链路。▪开关型: 选择是否开启不同的分支。▪队列型: 选择不同的队列长度。
◦动作价值Q(st,at):在给定状态st,采取动作组合at产生的广告消费。
◦算力消耗C(st,at):在给定状态st,采取动作组合at所消耗的算力。
◦动作奖励R(st,at):在给定状态st,采取动作组合at所获得的奖励。
◦在此问题中,需要在给定系统算力消耗的情况下,对M个请求最大化广告收益。通过线性规划建模,可以将其简化为一个带约束条件的优化问题:
▪通过拉格朗日对偶求解,该问题最优解为:
▪其中λt为拉格朗日乘子,即算力权衡因子▪因此,动作奖励的定义为:
◦优化目标:
模块拆分
◦用户价值预估模块: 针对不同用户预测用户单请求的广告收入价值(即广告消费)、价值等级。
◦算力预估模块: 针对不同请求预测每个动作组合的算力消耗。◦动作价值预估模块: 针对不同请求预测每个动作组合的广告消费。◦负载感知决策模块:基于预估的用户价值、算力消耗与动作价值,感知当前系统CPU负载、弹性降级状态,进行动态算力分配。
整体流程如下图:
模型预估体系
模型预估体系包含了用户价值、算力预估和动作价值这三个相互依赖的模型预估模块。模型预估既需要有好的排序,也需要足够准确。我们采用斯皮尔曼等级相关系数来评估排序、预测误差来评估准确性。预估的准确性、稳定性和安全性为全链路算力调度决策提供了扎实的基础。
用户价值预估模块
目标: 用户价值预估模块是全链路算力调度的前置模块,基于请求数据及消费信息进行建模,对用户的请求价值进行排序和分类,生成用户价值分桶。
难点: 请求数据巨大,外部媒体竞胜、曝光到消费的漏斗长,产生广告价值的数据稀疏,且长尾效应严重,用户价值建模困难。
建模方式: 为解决上述难点,参考工业界对长尾和稀疏数据的预估方法,我们在深度交叉网络(DCN)5 的模型结构基础上引入了:
◦泊松回归建模: 将常规回归问题的MSE损失替换为泊松损失:
▪长尾数据匹配:泊松损失能够更有效地处理非负且稀疏的目标变量。
▪降低异常值影响:相比MSE,泊松损失对较大误差的样本不会给予过度惩罚,减少过拟合的风险。
◦广告消费价值分桶: 在站外场景中,用户的请求和消费价值差异过大,为了减少异常用户的影响,我们使用累积消费金额相等的方法对用户进行价值分桶。
在用户特征方面,主要选择了用户行为序列及自身属性相关的特征,包括年龄、学历、职业、订单数量、平均客单价、活跃度等,专注刻画用户本身的价值。
算力预估模块
目标: 算力预估模块的主要目的在于预测不同请求在给定动作组合下,所需的实际算力消耗C。
难点: 不同请求在各个模块中的动作结果不一致,加之缺乏真实的算力消耗标签,导致难以准确预估算力消耗。
问题建模: 在队列、动作结果相同的情况下,算力消耗基本是相同的,因此可以将原始问题拆解为两个子问题:
1.请求粒度上的动作结果预测: 在给定各类特征及动作情况下,预估该请求的动作结果,动作结果有大量的标签数据,可以利用常规机器学习方法解决。
◦模型结构:DCN+MMoE。◦模型输入:前序动作、当前动作、流量特征、用户价值等。◦模型预测:模型在S×A空间进行预估,产出不同s∈S下,各动作组合a的队列长度。
2.给定动作结果下的算力消耗估计:
◦队列型: 测量+回归拟合,具体流程如下:
▪队列分桶:将采集的仿真流量按用户群体、队列结果分桶。▪请求测试:在每个队列长度桶中,向系统发送固定的请求量QPS=m,部署在n台机器上,每台机器的CPU核心数为Ncores,记录在该条件下的 CPU 使用率p。▪计算算力消耗:使用以下公式计算该队列分桶对应的单位请求算力消耗:
▪回归拟合:基于不同队列分桶与其对应的算力消耗,可以描绘出多个测量点;通过单调多项式回归 拟合队列长度与算力消耗的关系,可以得到队列任意值所对应的算力消耗。 ◦开关型: 类似队列分桶测量的逻辑,通过对各开关单独测量,获得不同开关类型的算力消耗数据。
◦链路选择型: 得到了队列型和开关型的算力消耗数据,链路选择型算力消耗就是该链路所有子动作的累计和。
动作价值预估模块
目标: 基于用户、流量信息和决策点的依赖关系,给定动作组合,预估请求的价值。
难点:
◦召回模块和精排模块不能独自建模,却需要独自决策,所以需要在模型侧显式建模召回模块和精排模块的关系,同时不影响二者独立感知负载并决策。
▪不能独自建模:召回模块和精排模块之间相互影响,比如:如果召回模块选择不同的召回组合,即使精排动作相同,产生的价值也并不一致。▪需要独自决策:召回模块和精排模块机器环境是解耦的,需要各自独立决策;如果耦合决策,则无法准确感知单模块的算力,无法准确调控。
◦召回模块和精排模块的决策粒度不相同,召回模块需要序贯决策多个动作,而精排模块只进行精排队列决策,模型需要对齐决策时间步。
建模方式: 为解决上述难点,我们设计了多智能体强化学习方法,依据模块机器的物理归属关系,建模召回 Agent和精排 Agent,通过智能体集中式训练、分布式执行的方式,最大化整体收益。该方法主要分为两个模块:Adaptive Weighted Ensemble DRQN和Mixing Network。其中Adaptive Weighted Ensemble DRQN解决的是单智能体的序贯决策问题,Mixing Network主要解决召回模块和精排模块的协同问题。以下是两个模块的详细介绍:
◦Adaptive Weighted Ensemble DRQN:
▪DRQN的作用:传统的DQN在处理全可观测环境时表现出色,但在部分可观测环境(Partial Observable Markov Decision Process,POMDP)中,由于无法获得完整的状态信息,性能会受到限制(例如我们的召回 Agent),在这种情况下,智能体需要利用历史信息来推断当前的环境状态。DRQN将深度Q网络与循环神经网络相结合,使用GRU来处理序列化的观测数据,使得当前的Q值估计不仅依赖于当前的观测,还依赖于过去的观测序列,可以在部分可观测的场景下更好地处理Q估计问题。▪基于误差的自适应多Q集成方法:为了提高动作价值估计的稳定性,我们在 DRQN 网络的输出层引入了多头机制,并对各个头的误差进行自适应加权。每个智能体的 DRQN 不再只输出一个Q值,而是输出K个平行的 Q-head,依据各Q值的预测损失对各 Q-head 的输出进行动态加权集成融合。
◦Mixing Network:
▪Mixing Network的作用:Mixing Network负责综合各个智能体的个体Q值 Q1,Q2...Qn,来估计全局的联合Q值Qtotal,这里有3个关键设计:
▪协作型Agent建模: 在我们的业务场景中, 召回和精排是上下游链路,处于协作关系,不涉及对抗。具体而言,整体的价值会随着任一Agent的价值增加而单调递增。为实现这一点,我们结合 Softplus 函数构建Mixing Network:-Mixing Network是一个多层的神经网络,输入为所有智能体的个体Q值Q1,Q2...Qn,输出为联合Q值 Qtotal。-Softplus激活函数对神经网络中的原始权重进行如下公式变换,可以确保Qtotal对每个Qi的单调性。
▪基于St的动态网络: Mixing Network感知全局的状态St,依据不同的用户、流量及Agent决策动作,动态生成网络权重,这样可以更准确捕获智能体之间的协作关系。▪多Agent间解耦: 在执行过程中,多智能体可以根据个体Q值独立地选择动作,不需要额外的通信,能够支持分布式执行的业务场景。
▪Mixing Network的训练过程:将所有Qi输入到Mixing Network,经过前向传播得到联合Q值 Qtotal。使用 Qtotal计算损失函数:
负载感知决策模块
目标:在状态s下,在合法动作空间A中寻找收益最高的动作a∗,并保持各模块m的CPU负载稳定在目标值Cm。收益的计算方式为R(s,a)=Q(s,a)−λC(s,a),其中Q(s,a)是动作价值,C(s,a)是该动作消耗的算力,λ是算力权衡因子,通过反馈调节的方式迭代调整。当系统负载偏高时,提高λ可以降低动作的性价比,使动作更保守,以降低系统负载;反之亦然。
具体步骤如下:
◦设定算力负载目标: 设模块m的CPU负载目标为Cm,用于指导模块的算力调度决策。◦负载感知: 感知模块m的近实时系统状态信息,以此计算系统压力。-各模块机器负载: 获取m的机器IP集合,然后查询当前时刻t的各个IP的实时负载数据,并将所有IP的负载数据聚合成^Cm,t 。-弹性降级状态: 获取当前时刻t的弹性降级系数Dm,t。弹性降级是京东广告研发的一种系统保护机制,通过自动或手动的方式调整系统资源分配(如丢弃流量、丢弃分支、缩短队列等),以应对负载突涨,确保系统稳定运行。系统压力越大,弹性降级档位越高。-系统压力: 弹性降级机制在负载超过系统CPU安全阈值时会逐步升级档位,因此弹性降级档位可以被认为是 CPU 负载的延伸部分。通过预定义的换算关系fm,可以将弹性降级系数 Dm,t转换为等效的 CPU 负载fm(Dm,t),以便统一衡量系统压力:
◦反馈调节更新λ: 基于当前系统压力调整算力权衡因子λ。-学习 率 α>0:通过反馈机制更新λ,并将其约束到上下界之间。-指数项k≥1:用于自适应地调整迭代步伐,当负载接近目标值时,λ的调整步伐较小,可以减少震荡;当负载偏离目标较远时,步伐则增大,以加速调整。
◦寻找最优动作: 基于更新后的λt+1寻找最优动作组合。
03 ****实验效果
实验结果显示,MaRCA在各类流量场景下均取得了业务效果的显著提升,在系统资源保持不变的前提下,实现了+14.93%的广告消费增长。同时,MaRCA上线后,播放系统的可靠性、智能性大幅提升,有效缓解了流量波动带来的压力,为高峰期/大促期的稳定运行提供了充足保障。
04 未来展望
负载感知决策优化: 当前的决策机制主要还是依赖于负载感知进行反馈调节。在系统面对流量和预算的突变时,反馈机制可能无法及时响应。我们计划引入模型预测控制(MPC)方法,构建更智能的负载感知决策Agent。该Agent将利用系统模型预测下一时刻的状态,结合历史数据、预算、流量和时段信息,提前预测最优的算力权衡因子λ,以更好地应对复杂的流量和竞价环境。
动作空间扩展: 我们计划扩展动作空间的维度,引入更多的决策变量,例如模型选择、过滤策略和执行路径等新因素。新增这些决策变量可以更精准地调度算力、决策动作,但同时也意味着算力预估、价值预估和链路系统的复杂度会进一步上升。
推广应用: 此方案在搜广推等推荐算法链路里具有一定普适性,尤其在算力紧张的业务场景中,业务收益潜力更大。
参考资料
1 Biye Jiang, Pengye Zhang, Rihan Chen, Xinchen Luo, Yin Yang, Guan Wang, Guorui Zhou, Xiaoqiang Zhu, and Kun Gai. 2020. DCAF: A Dynamic computa- tion resource allocation Framework for Online Serving System. arXiv preprint arXiv:2006.09684 (2020).
2 Xun Yang, Yunli Wang, Cheng Chen, Qing Tan, Chuan Yu, Jian Xu, and Xiaoqiang Zhu. 2021. Computation Resource Allocation Solution in Recommender Systems. arXiv preprint arXiv:2103.02259 (2021).
3 顺辉、家宏、宋伟、国梁、乾龙、乐彬等,美团外卖广告智能算力的探索与实践,tech.meituan.com/2021/06/17/...
4Zhou, Jiahong and Mao, Shunhui and Yang, Guoliang and Tang, Bo and Xie, Qianlong and Lin, Lebin and Wang, Xingxing and Wang, Dong.2023. RL-MPCA: A Reinforcement Learning Based Multi-Phase Computation Allocation Approach for Recommender Systems. WWW '23
5Ruoxi Wang and Bin Fu and Gang Fu and Mingliang Wang. 2017. Deep & Cross Network for Ad Click Predictions. arXiv preprint arXiv:1708.05123(2017)
6Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-expertsC//Proceedings of the 24th ACM SIGKDD international conference on knowledge discovery & data mining. 2018: 1930-1939.
7 泰来,百度搜索智能化算力调控分配方法,xie.infoq.cn/article/126...
8 Mnih, K. Kavukcuoglu, D. Silver, A. A. Rusu, J. Veness, M. G.Bellemare, A. Graves, M. Riedmiller, A. K. Fidjeland, G. Ostrovski, S. Petersen, C. Beattie, A. Sadik, I. Antonoglou, H. King,D. Kumaran, D. Wierstra, S. Legg, and D. Hassabis. Humanlevel control through deep reinforcement learning. Nature, 518 (7540):529--533, 2015.
9 Hausknecht M, Stone P. Deep recurrent q-learning for partially observable mdpsC//2015 aaai fall symposium series. 2015.
10 Rashid T, Samvelyan M, De Witt C S, et al. Monotonic value function factorisation for deep multi-agent reinforcement learningJ. Journal of Machine Learning Research, 2020, 21(178): 1-51.
11 Justin Fu, Aviral Kumar, Ofir Nachum, George Tucker, and Sergey Levine. 2020. D4rl: Datasets for deep data-driven reinforcement learning. arXiv preprint arXiv:2004.07219 (2020).
12 Scott Fujimoto, David Meger, and Doina Precup. 2019. Off-policy deep rein- forcement learning without exploration. In International conference on machine learning. PMLR, 2052--2062.
13 Hado Van Hasselt, Arthur Guez, and David Silver. 2016. Deep reinforcement learning with double q-learning. In Proceedings of the AAAI conference on artificial intelligence, Vol. 30.
14 Ziyu Wang, Tom Schaul, Matteo Hessel, Hado Hasselt, Marc Lanctot, and Nando Freitas. 2016. Dueling network architectures for deep reinforcement learning. In International conference on machine learning. PMLR, 1995--2003.
15 Xiangyu Zhao, Changsheng Gu, Haoshenglun Zhang, Xiwang Yang, Xiaobing Liu, Jiliang Tang, and Hui Liu. 2021. Dear: Deep reinforcement learning for online advertising impression in recommender systems. In Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 35. 750--758.
16 Guorui Zhou, Xiaoqiang Zhu, Chenru Song, Ying Fan, Han Zhu, Xiao Ma, Yanghui Yan, Junqi Jin, Han Li, and Kun Gai. 2018. Deep interest network for click-through rate prediction. In Proceedings of the 24th ACM SIGKDD international conference on knowledge discovery & data mining. 1059--1068.
17 Ashwinkumar Badanidiyuru and Guru Guruganesh. 2021. Modeling labels for conversion value prediction. In ADKDD '21: Workshop on Ad Targeting at Scale. ACM, 1--6.