多智能体强化学习的算力调度创新,让每一份算力都创造广告价值 | 京东零售技术实践
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] 顺辉、家宏、宋伟、国梁、乾龙、乐彬等,美团外卖广告智能算力的探索与实践,https://tech.meituan.com/2021/06/17/waimai-ai-advertisement.html
[4]Zhou, 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
[5]Ruoxi Wang and Bin Fu and Gang Fu and Mingliang Wang. 2017. Deep & Cross Network for Ad Click Predictions. arXiv preprint arXiv:1708.05123(2017)
[6]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.
[7] 泰来,百度搜索智能化算力调控分配方法,https://xie.infoq.cn/article/12604ce20399101393bf1bec6
[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 mdps[C]//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 learning[J]. 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.
评论