《Real-Time Bidding by Reinforcement Learning in Display Advertising》粗读
广告智能竞价:从经典表格DP走向现代深度端到端强化学习
我正在做基于强化学习的广告投放(2026/7/14)
第一部分:WSDM 2017 —— RLB (基于强化学习的广告投放实时竞价)
一、 行业背景与问题形式化
1.1 业务背景
- 高动态竞价环境:实时竞价(RTB)环境波动剧烈,大盘流量供给、外部竞品加价、时间段变化都在影响竞价水位。
- 传统方案痛点:传统的“线性出价(Lin-Bid)”等启发式算法属于“短视(Greedy)”模型,只看眼前的点击率,不考虑未来预算和时间的配比,极易导致预算早烧完或晚剩余。
- 强化学习(RL)的适配性:广告投放是一个典型的序列决策问题(在有限的时间和预算内最大化点击)。RL 专注于“序贯决策、试错学习、动态优化”,与该需求高度契合。
1.2 问题形式化(MDP 建模)
- 你的环境(Environment)需要模拟什么?
- 流量请求的生成概率 \(p_x(\boldsymbol{x})\):大盘在不同时间段会推送什么样特征的用户。
- 竞争对手的出价分布 \(m(\delta, \boldsymbol{x})\):大盘的竞争激烈程度。
- 模型输入(State):状态 \(s = (t, b, \boldsymbol{x})\)
- \(t\):当前 Episode(通常为一天)内剩余的竞价次数/时间。
- \(b\):当前广告计划剩余的预算。
- \(\boldsymbol{x}\):当前实时到来的用户/竞价请求特征。
- 模型输出(Action):动作 \(a\)
- \(a\):模型给出的具体竞价出价(Bid Price)。
- 模型追求(Reward):
- 论文设定:赢得曝光后的预估点击率 \(\theta(\boldsymbol{x})\)(即最大化总点击量)。
二、 核心方法框架:非端到端的“两阶段”解耦
该论文的核心突破在于:它没有采用当时不稳定的“端到端神经网络”,而是将“高维特征预估”与“宏观序列规划”进行了完美的解耦。
实时流量 x ───► [ 阶段1:监督学习拟合器 ] ───► 预估点击率 θ(x) ─┐
├─► [ 阶段3:出价决策(公式9/10)] ───► 输出最优出价 a
剩余时间 t, 预算 b ──► [ 阶段2:RL 规划师(DP)] ───► 期望未来价值 V(t, b) ┘
1. 阶段一:用户转化率预测器(Supervised Learning)
- 做法:利用逻辑回归(Logistic Regression, LR)等成熟的监督学习模型,输入高维的用户/环境特征 \(\boldsymbol{x}\),输出一个点击率预估值 \(\theta(\boldsymbol{x})\)。
- 物理意义:它是一个“价值评估师”,只负责看一眼眼前这个人,给出一个纯粹的静态估值,把高维的 \(\boldsymbol{x}\) 压缩成一维的概率。
2. 阶段二:序列规划师(Tabular Dynamic Programming)
- 做法:使用基于模型的表格型动态规划(Value Iteration,值迭代)。
- 物理意义:它是一个“财务管家”,手里只拿着剩余时间 \(t\) 和剩余预算 \(b\),利用离线统计的大盘概率 \(m(\delta)\) 和 \(\theta_{avg}\),用双重循环从后往前推,算出一张巨型的二维价值表 \(V(t,b)\)。
- 表格意义:\(V(t,b)\) 衡量的是“在不知道下一个用户是谁的情况下,留着 \(b\) 块钱和 \(t\) 次机会,未来平均还能拿多少点击”。
3. 阶段三:出价决策(公式 9 / 10 的 Argmax 试探)
- 线上决策时,AI 结合“评估师”给出的 \(\theta(\boldsymbol{x})\) 和“管家小抄”里的 \(V(t,b)\),套用公式进行试探(从出价 \(\delta = 0\) 一直试探到预算上限 \(b\)):\[\theta(\boldsymbol{x}) + V(t-1, b-\delta) - V(t-1, b) \ge 0 \]
- 逻辑:若“(眼前的点击)+(花掉 \(\delta\) 钱后未来的价值) \(\ge\) (留着钱不花未来的价值)”,说明这笔交易划算,继续试探更大的 \(\delta\),直到找到临界最高出价。
三、 算法补漏:论文中未细读的“对手竞价”与“博弈机制”
为了追求数学的严谨性,作者对“对手出价(竞价环境)”进行了如下建模:
3.1 市场第二价格拍卖(GSP)的数学表达
广告平台采用第二价格拍卖,这意味着即使你出价为 \(a\),如果赢了,你实际支付的也是全场第二高价(市场价)\(\delta\)。
因此,若竞争对手的最高出价为 \(\delta\):
- 赢的概率:\(W(a, \boldsymbol{x}) = \int_{0}^a m(\delta, \boldsymbol{x}) d\delta\) (对手出价全部低于你的出价 \(a\) 的概率之和)。
- 赢了之后的扣费:不是扣除你的出价 \(a\),而是扣除市场价 \(\delta\)。
3.2 对手竞价如何嵌入公式 (4) 和 公式 (8)
这也就是为什么论文里会出现复杂的积分和求和公式:
- 公式 4 中:\[V(t, b, \boldsymbol{x}) = \max_{0 \le a \le b} \left\{ \sum_{\delta=0}^a \color{red}{m(\delta, \boldsymbol{x})} (\theta(\boldsymbol{x}) + V(t-1, b-\delta)) + \sum_{\delta=a+1}^{\infty} \color{red}{m(\delta, \boldsymbol{x})} V(t-1, b) \right\} \]
- 这里的 \(m(\delta, \boldsymbol{x})\) 就是对手出价的概率分布。
- 前半部分:对手出价 \(\delta \le a\)(你赢了),概率是 \(m(\delta)\),你要扣除 \(\delta\) 预算,拿到 \(\theta(\boldsymbol{x})\) 的奖励。
- 后半部分:对手出价 \(\delta > a\)(你输了),概率是 \(m(\delta)\),预算不扣。
- 论文的做法:作者通过分析历史数据,使用非参数方法(Non-parametric method)拟合出大盘的 \(m(\delta)\) 曲线,将其作为已知常数喂给模型,从而能直接用数学公式离线算出这个期望求和。
四、 大规模数据的工程挑战与四种演进方案
当 \(T\)(竞价次数)达到千万级,\(B\)(预算分)达到百万级时,\(O(TB)\) 的时间和空间复杂度会导致服务器内存爆炸,无法运行表格型 DP。为此,作者进行了如下探索:
┌──► [ RLB-NN ] ───► 直接硬喂超大(t,b) ───► 泛化差,外推崩溃
│
├──► [ RLB-NN-Seg ] ─► 切片法 (1e6 切成 100个 1e4) ───► 稳定超越 Lin-Bid
[ 100万样本 训练 NN ]─┤
├──► [ RLB-NN-MapD ] ─► 状态缩放: V(t,b) 差值映射 ───► 稳定,但在线有 O(n) 试探开销
│
└──► [ RLB-NN-MapA ] ─► 动作缩放: 动作 a 直接映射 ───► 最稳定,在线 O(1) 速度极快
4.1 引入边际价值 \(D(t,b)\)(关键转化)
- 因为绝对价值 \(V(t,b)\) 随预算增长会变得无限大,神经网络极难稳定拟合。
- 作者转化问题,预测边际效用 \(D(t,b) = V(t, b+1) - V(t,b)\)。通过在小规模(\(T_0, B_0\))上运行表格型 DP,获得训练样本 \((t, b, D(t,b))\),并以此训练全连接神经网络 \(NN(t,b)\)。
4.2 四种落地外推方案对比
RLB-NN(纯神经网络外推)- 原理:直接把线上超大范围的 \(t\) 和 \(b\) 输入给神经网络进行预测。
- 结果:失败。神经网络没有外推能力,面对没见过的大数字会疯狂乱预估,出价崩溃,效果极差。
RLB-NN-Seg(从粗到精的片段分割模型)- 原理:把 1e6 的大时段切成 100 个 1e4(\(T_0\) 级别)的小时段,预算按比例分流。
- 结果:非常成功。将环境强行约束在神经网络熟悉的 \(T_0\) 范围内,避开了泛化问题。
RLB-NN-MapD(边际效用状态映射)- 原理:利用 \(b/t\)(消耗速率)反映“财力”的物理直觉。遇到大状态 \((1e6, 1e5)\),等比例缩放到神经网络见过的 \((T_0, \frac{b}{t} T_0)\) 去预测 \(D\)。
- 结果:十分稳定。
- 缺点:虽然得到了 D,但由于这是“值映射”,线上每次出价时,依然要在系统里用 \(O(n)\) 的时间复杂度去循环试探寻找最优出价 \(a\),高并发下计算延迟高。
RLB-NN-MapA(出价动作状态映射)- 原理:在 MapD 的基础上进行终极进化。既然 \(b/t\) 反映了出价底气,那我们在离线的小世界里直接算出最优出价 \(a^*(T_0, \frac{b}{t} T_0)\),在线大世界里直接照搬这个出价动作。
- 结果:极度稳定且速度极快。避开了在线计算 \(D\) 的累加和穷举试探,实现 \(O(1)\) 的秒级出价响应。
五、 该经典论文的局限性与不足
虽然该论文是开山之作,但在真实的商业投放中,它具有以下明显的硬伤和保守性:
- 对“静态竞争对手”的绝对依赖:
- 它假设对手的出价分布 \(m(\delta)\) 是静态、可预估的。如果线上突然遭遇特殊节日(如双十一)或竞品恶意加价,分布 \(m(\delta)\) 剧烈漂移,模型预先计算的 \(V\) 表就会彻底失效。
- 非端到端的系统割裂:
- 预估和控制是割裂的。如果点击率预估模型(CTR)更新了,或者特征变了,强化学习的决策部分需要重新对齐,维护成本极高。
- 缺乏商业 CPA / ROI 的硬性约束:
- 该模型的奖励是最大化点击量。但在效果广告里,客户要求的是“单线索成本低于80元(CPA限制)”。该模型无法在数学上直接对“成本”和“转化”进行双重硬约束。
- 单智能体(Single-Agent)视角的局限性:
- 模型假设自己是唯一的智能体,别人都是傻子(静态概率)。如果所有广告主都用这套算法,大盘会陷入剧烈的震荡和混沌。
第二部分:承前启后 —— 为什么我们需要 DRLB 模型?
在理解了 WSDM 2017 这篇经典论文的保守性(依赖离线算表、公式推导、无法处理复杂的线上 CPA 约束)之后,我们带着你对“端到端神经网络控制出价”的极致追求,正式开启对阿里 2018 年顶会论文的探索:
《Budget Constrained Bidding by Model-free Reinforcement Learning in Display Advertising》(DRLB)
┌──► [ 17年老模型 RLB ] ─► 离线算小抄 + 比例缩放 + 在线查表 (保守/受限)
│
[ 走向端到端深度学习 ] ─┤
└──► [ 18年新模型 DRLB ] ─► 特征输入 ──► [ 神经网络 DQN ] ──► 动作输出 (现代/高效)
▲ │
└─ [ 模拟器反馈 ] ┘
为什么它是你一直在寻找的“梦中情纸”?
- 它是真正的端到端(End-to-End):
它彻底丢掉了复杂的微积分推导和巨型的 \(V(t,b)\) 二维数组。它使用无模型深度强化学习(Model-Free Deep RL)中的 DQN(深度Q网络),将实时的投放特征直接输入神经网络,直接输出对出价的控制信号。 - 它100%重合你的暑期实习业务(控成本+拿量):
现实中的广告主给的是硬性预算约束(Budget Constraint)和 CPA(单动作成本)约束。这篇论文展示了阿里的算法学家们,是如何通过设计一个“带约束条件的 Reward 函数(Reward Shaping)”,来让 DQN 学会:钱花得太快时自动控成本,花得太慢时自动提价抢量。 - 高度的可解释性与安全性:
它不仅用神经网络,还巧妙地利用了控制论,保证了即使神经网络训练时表现不稳定,也能在商业投放中守住客户预算的底线。
接下来,我们将正式进入第二篇论文的深水区,看看阿里的 DQN 是如何在线上完美起飞的!
我的原文
Real-Time Bidding by Reinforcement Learning in Display Advertising
基于强化学习的广告投放实时竞价介绍
实时高动态竞价,更加符合现实情况
神经网络值函数、从粗到精的片段分割模型、状态映射模型(后两个应对,大范围状态泛化问题)
提升显著背景与相关工作
强化学习、动态规划,需要奖励函数和转移概率模型“已知”,状态空间大,难遍历In our paper, we follow [14, 32] and adopt the most widely used
logistic regression for utility estimation to model the reward on agent actions.In this paper, we follow [1, 33] and use a non-parametric method to model
the market price distribution.问题与形式化
基于模型的强化学习
你的环境需要模拟什么? 你需要模拟出流量 x 的生成概率 px(x),以及模拟出竞争对手的市场价分布m(δ)。
你的模型输入(State)是什么? 就是 (t,b,x),也就是时间、预算和当前特征。
你的模型输出(Action)是什么? 就是 a(出价金额)。
你的模型追求什么(Reward)? 在论文里是求和总的 θ(x)(预估点击率),在你们的项目里,是求线索量最大化,同时受控于单线索成本。发现不是端到端的神经网络方法,
他使用方法是1、用户转化率预测器:监督学习来预测点击率θ(x)
2、规划师:用强化学习来进行序列规划V(t,b,θ(x))
3、在获得V表格后,通过不断固定加价+查表来找“最优解”论文的基础想法即监督学习来处理复杂的用户属性x,用强化学习来进行算出价值,而通过穷举和表格的方式来找到动作a
作者要进一步使用神经网络方法预测V,发现对大范围数据难以处理(原本要输出的结果:V的范围很大)
进一步转化问题为计算V-V'的差值D,D的值十分稳定,神经网络能够处理
并通过表格方法计算得到(t,b,D(t,b))用以训练神经网络1、但输出稳定了,输入还是不稳定,t和b的范围很大,神经网络不稳定(RLB-NN)
2、将大范围比如1e6的时间段切片视为100个1e4的时间段,预算同样均分,使得“环境”在神经网络的可接收范围(RLB-NN-Seg)
3、使用b/t,即每单位时间预算,数值稳定,能够反应“财力”,背后依靠的是时间、预算、广告量一同线性增长,而后根据这个比例,将比如1e6t,1e5b缩放到1e3t,1e2b,但缺点是我们依然需要通过试探穷举的方法来找到a,试探的时间复杂度是O(n)
(RLB-NN-MapD)
4、进一步改进'3',观察到b/t真正反映现有经济能力,而MapD在得到结果前还要对D映射,方法4直接根据b/t去寻找输出的动作a
(RLB-NN-MapA)RLB-NN难以工作
RLB-NN-Seg效果不错
RLB-NN-MapD和RLB-NN-MapA十分稳定虽然文章还有许多细节没明白,但我不再决定继续阅读了,因为他已经让我熟悉了广告投放的基本问题,在解决方案上,该论文的做法还比较保守,我是来寻找端到端神经网络方法的!有更值得深度了解的论文,而不要在这>里继续追究这篇论文的问题,来体验自己什么“思考”的快感。相信之后的论文依然有机发问。
接下来是
2. 《Budget Constrained Bidding by Model-free Reinforcement Learning in Display
Advertising》 (业内简称 DRLB 模型)
- 出处:CIKM 2018 (来自阿里巴巴团队)
- 为什么推荐:这篇论文的场景与你项目的目标(控成本 + 拿量)具有 100% 的重合度!
现实中广告主不是无限预算的,这篇论文解决的就是“在预算(或CPA)受限的情况下,如何用深度强化学习 (DQN) 最大化拿量”。- 对你的帮助:论文里详细推导了如何设计一个“带约束条件的 Reward
函数”。当你和导师讨论“如果模型花钱太快导致成本飙升怎么办”时,你可以直接引用这篇论文里的 Reward 塑形(Reward
Shaping)方法,导师一定会对你刮目相看。

浙公网安备 33010602011771号