← 返回个人主页
READING NOTE / BLOG个人博客

广告出价建模:BCB、MCB、USCB 与多约束 Pacing

Castle Zeng个人博客

广告自动出价的基础,是在预算和效果约束下分配流量。广告主表达总投入、转化成本或投产目标,系统据此决定每次流量机会的出价。BCB、MCB 与 USCB 的共同主线,是把这类全周期约束写成优化问题,再利用拉格朗日对偶推导逐流量的出价结构。

建模、出价函数与参数调控属于三个层次。建模决定“优化什么、满足什么”;出价函数给出“流量价值怎样转化为出价”;参数调控解决“未来未知时,如何持续更新参数”。同一个模型可以采用不同调控方法,同一个线性出价外形也可能对应不同业务目标。

BCB、MCB 与 USCB 可以在统一的符号体系下表达,从单预算约束逐步扩展至多项效果约束。ICML 2024 论文 A Field Guide for Pacing Budget and ROS Constraints 则进一步研究预算与 ROS 控制的组合方式,为比较建模等价性和控制结构提供了理论依据。本文聚焦优化模型、对偶推导与最优出价形式。论文正式版本。

1. 符号约定与建模假设

1.1 常用成本指标:CPA、CPF 与 CPC

CPA、CPF、CPC 都用于衡量取得一次目标事件的平均广告成本,区别在于分母统计哪一种事件。以下总消耗与事件数均应采用同一广告计划、统计周期及归因口径。

指标 名称与含义 计算方式 单位
CPA Cost Per Action,单次目标转化成本;也常见 Cost Per Acquisition(单次获客成本)的用法。目标行为可定义为支付、注册、提交表单或询盘等 总消耗 ÷ 目标转化数 元/次目标转化
CPF 本文统一指单次询盘成本,衡量获取一次询盘所需的平均广告消耗 总消耗 ÷ 询盘数 元/次询盘
CPC Cost Per Click,单次点击成本,衡量取得一次广告点击所需的平均消耗 总消耗 ÷ 点击数 元/次点击

其公式分别为

CPA=总消耗目标转化数,CPF=总消耗询盘数,CPC=总消耗点击数.\begin{aligned} \mathrm{CPA}&=\frac{\text{总消耗}}{\text{目标转化数}},\\[3pt] \mathrm{CPF}&=\frac{\text{总消耗}}{\text{询盘数}},\\[3pt] \mathrm{CPC}&=\frac{\text{总消耗}}{\text{点击数}}. \end{aligned}

CPA 的分母由具体业务目标决定,不能默认等于订单数,也不能默认等于新增客户数。CPF 在本文沿用询盘口径,询盘是否去重、是否仅统计有效询盘,应以业务定义为准。当目标转化就是同一口径的询盘时,CPA 与 CPF 数值相同,CPF 是这一目标下 CPA 的具体业务表达。 CPA 与 CPC 的通用定义可参见 Google Ads 术语表。

例如,假设某计划一天消耗 1000 元,获得 500 次点击、20 次询盘和 5 笔支付订单。若将支付订单定义为目标转化,则

CPC=1000/500=2 元/次点击,CPF=1000/20=50 元/次询盘,CPA支付=1000/5=200 元/笔支付订单.\begin{aligned} \mathrm{CPC}&=1000/500=2\text{ 元/次点击},\\ \mathrm{CPF}&=1000/20=50\text{ 元/次询盘},\\ \mathrm{CPA}_{\text{支付}}&=1000/5=200\text{ 元/笔支付订单}. \end{aligned}

若改为以询盘作为目标转化,同一计划的询盘 CPA 就是 50 元,与 CPF 相同。分母为零时,相应平均成本没有定义,不能记为零。

这些平均成本指标与实际计费方式需要分别确定。按点击扣费的广告,也可以用 CPA 或 CPF 衡量效果,并设置相应成本约束。某次流量的出价、该次流量实际支付的金额,以及全天统计得到的平均成本,是三个不同的量。

“目标 CPA/CPF/CPC”是希望满足的成本上限,“实际 CPA/CPF/CPC”是投放后计算的统计结果。后文的 CwC_w、kjk_j 表示前者;约束的分母则随所选事件变化。例如,CPC 约束累计点击数,询盘 CPF 约束累计询盘数。

1.2 单广告计划的流量选择问题

设一个投放周期内可参与竞价的流量集合为 I\mathcal I。除特别说明外,以一次曝光机会为粒度,并假定价值、成本、预算与事件预估均为非负数,目标单位成本为正数。

符号 含义
ii 流量机会编号
jj 效果约束编号,j=1,…,Mj=1,\ldots,M
MM 效果约束数量,不包括单独列出的预算约束
bib_i 对该机会提交的出价;主体推导采用单次曝光等价金额
cic_i 单广告位二价模型下,竞得该机会时支付的市场成本,与 bib_i 不必相等
xix_i 是否竞得;实际为 0/10/1,线性规划松弛为 [0,1][0,1]
viv_i 竞得后的预期目标价值,如点击、转化、询盘或成交金额
pCTRipCTR_i 该次曝光带来点击的预估概率
pCVRipCVR_i 发生点击后带来目标转化的预估概率
BB 整个投放周期的总预算
wiw_i 单项平均成本约束中的预期事件数
CwC_w 该事件的目标平均成本,如目标 CPC、CPA、CPF
pij,kjp_{ij},k_j 第 jj 项约束的预期事件数、目标单位成本
cijc_{ij} 第 jj 项约束采用的成本;不预先假定它等于 cic_i
p,qp,q 预算约束与单项平均成本约束对应的非负拉格朗日乘子
qjq_j 第 jj 项平均成本约束对应的非负拉格朗日乘子
α,β,ωj\alpha,\beta,\omega_j 从对偶变量变换得到的出价系数

pp 是预算约束的拉格朗日乘子,pijp_{ij} 是事件数量的预估,两者含义不同。乘子的定义及求解在 BCB 推导中展开。

在固定对手出价的单广告位二价模型中,可以写成

xi(bi)=1{bi≥ci}.(1)x_i(b_i)=\mathbf 1\{b_i\ge c_i\}. \tag{1}

式(1)暂按平价时本方竞得来书写;若平价采用其他规则,应单独处理等号情形。二价模型中,cic_i 同时是竞得流量的最低出价门槛和竞得后的支付金额。线上出价时通常不知道它的精确值;离线模型则将整段历史中的市场成本视为已知输入。

1.3 曝光与点击的出价口径

曝光出价与点击出价采用不同的计价单位,比较出价公式或换算参数时,应先统一计价口径。

在 pCVRipCVR_i 表示“点击后转化率”的定义下,每次曝光的预期转化数为

vi=pCTRi pCVRi.(2)v_i=pCTR_i\,pCVR_i. \tag{2}

若 pCVRpCVR 已定义为曝光到转化概率,则不能再乘一次 pCTRpCTR。本文固定采用式(2)的定义。

对点击计费的简化模型,曝光等价出价与点击出价满足

biimp=pCTRi biclick.(3)b_i^{\mathrm{imp}}=pCTR_i\,b_i^{\mathrm{click}}. \tag{3}

因此,biimp=κpCTRipCVRib_i^{\mathrm{imp}}=\kappa pCTR_i pCVR_i 可以换算成 biclick=κpCVRib_i^{\mathrm{click}}=\kappa pCVR_i。这里除以 pCTRipCTR_i 的前提是 pCTRi>0pCTR_i>0,且曝光出价确实按式(3)由点击出价换算而来。点击率用于两种计价单位之间的转换,并没有从流量价值中消失。若使用每千次曝光金额,还需要乘以 10001000。实际系统含质量分、位置效应或其他计费项时,应按真实拍卖机制重新换算。

1.4 线性规划松弛与拍卖假设

以下先求解“应该分配哪些流量”的线性规划,再利用拍卖规则把分配条件改写为出价公式。分配模型的假设和拍卖规则缺一不可。

下文首先采用单广告计划、单广告位二价拍卖的简化模型:各次流量的价值与成本可以累加,对手的行为和市场成本视为给定,不随本计划的策略发生反馈变化。若坚持 xi∈{0,1}x_i\in\{0,1\}、每次流量不可分,预算下的选择通常是 0–1 背包问题,不能仅靠一个价值成本比阈值保证任意有限样本的精确最优。

将 xix_i 的取值放宽到 [0,1][0,1],称为线性规划松弛,得到下文主要研究的连续分配模型。其最优值可作为原 0–1 问题的上界;若存在一个最优分配的所有分量都是 0 或 1,则它同时也是原 0–1 问题的最优解。分配比例也可用于描述大量重复机会上的平均分配,但平均约束不等于每条实际投放路径都满足约束。

第一价拍卖中,竞得后的支付就是本方出价,必须把支付对出价的依赖写入模型,不能直接沿用二价公式。多广告位 GSP(广义第二价格拍卖)也不能直接当作单广告位二价拍卖:广告位置、质量分及计费规则会共同影响结果。

论文还讨论满足 truthfulness 的拍卖:对以“价值减支付”为效用的竞价者,如实提交本次机会的价值即可最大化该次拍卖的期望效用,通常称为激励相容拍卖。单广告位第二价格拍卖满足这一性质,一般多广告位 GSP 则未必满足。后文从拉格朗日函数直接得到出价时,会明确使用这一条件。

2. BCB:预算约束下的价值最大化

BCB(Budget Constrained Bidding)只设置总预算约束,目标是在预算内取得尽可能大的总价值。例如,广告主要求“每天花费不超过 1000 元,获得尽量多的粉丝”。此时 viv_i 是竞得第 ii 次流量后带来的预期新增粉丝数,系统需要决定竞得哪些流量,以及每次流量的出价。

2.1 优化目标与预算约束

在一个投放周期内,竞得第 ii 次流量得到价值 viv_i、支付成本 cic_i。以 xix_i 表示是否分配该次流量,BCB 的线性规划模型为

max⁡x∑i∈Ivixis.t.∑i∈Icixi≤B,0≤xi≤1,∀i.(BCB)\begin{aligned} \max_{\boldsymbol x}\quad &\sum_{i\in\mathcal I}v_i x_i\\ \mathrm{s.t.}\quad &\sum_{i\in\mathcal I}c_i x_i\le B,\\ &0\le x_i\le1,\quad\forall i. \end{aligned} \tag{BCB}

第一行是目标函数:累加所有竞得流量的价值,取其最大值。第二行要求总消耗不超过预算 BB。最后一行是对实际 0/10/1 分配变量的连续松弛,允许以分配比例表示边界上的部分流量。

最大化总价值、最大化净收益和最大化价值成本比,是三个不同目标。 总价值目标只把消耗作为预算约束;净收益目标会在目标函数中直接扣除消耗;价值成本比目标则比较每单位消耗带来的价值。

以下用一个假设例子比较它们。为使价值与成本能够相减,暂将 viv_i 定义为货币价值,预算为 13 元,市场中只有两次流量机会:

流量 价值 viv_i 成本 cic_i 价值减成本 价值成本比
A 10 元 1 元 9 元 10
B 9 元 12 元 −3 元 0.75

最大化总价值时,竞得 A、B 共获得 19 元价值,消耗恰为 13 元,比只竞得 A 的 10 元价值更高。最大化净收益时,只竞得 A 的净收益为 9 元,而两次都竞得仅为 6 元,因此应放弃 B。最大化总价值与总成本的比值时,也应只竞得 A:其比值为 10,高于两次都竞得时的 19/1319/13。

可见,相同流量和相同预算下,不同目标会对流量 B 作出不同的竞得决策,相应的出价策略也会不同。BCB 以下推导对应的是总价值最大化。当 viv_i 表示点击数或转化数时,它与以元计量的 cic_i 单位不同,更不能直接用 vi−civ_i-c_i 表示净收益。

2.2 预算约束与拉格朗日函数

先将预算约束写成“左侧不大于零”的形式:

∑icixi−B≤0.\sum_i c_i x_i-B\le0.

为这项约束引入一个非负的拉格朗日乘子 p≥0p\ge0。由于它对应预算约束,也称预算约束的拉格朗日乘子,简称预算乘子。在对偶问题中,pp 本身是待优化的变量,因此也称对偶变量。pp 不是某条流量的市场价格,而是优化问题中需要求解的变量。

对于这里的最大化问题,将“乘子乘以约束左侧”从目标函数中减去,得到拉格朗日函数。随后展开括号,并把同一个 xix_i 的系数合并:

L(x,p)=∑ivixi−p(∑icixi−B)=∑ivixi−p∑icixi+pB=pB+∑i(vi−pci)xi.(4)\begin{aligned} \mathcal L(\boldsymbol x,p) &=\sum_i v_i x_i-p\left(\sum_i c_i x_i-B\right)\\ &=\sum_i v_i x_i-p\sum_i c_i x_i+pB\\ &=pB+\sum_i(v_i-pc_i)x_i. \end{aligned} \tag{4}

这个减号与最大化目标相对应。对任意满足预算约束的 x\boldsymbol x,都有 ∑icixi−B≤0\sum_i c_i x_i-B\le0,因而

−p(∑icixi−B)≥0,L(x,p)≥∑ivixi.-p\left(\sum_i c_i x_i-B\right)\ge0, \qquad \mathcal L(\boldsymbol x,p)\ge\sum_i v_i x_i.

固定 pp 后,只保留 0≤xi≤10\le x_i\le1,对 L\mathcal L 求最大值,便得到原问题最优总价值的一个上界。再选择使这个上界尽量小的 pp,就形成拉格朗日对偶问题;第 2.5 节给出其具体形式。

式(4)中的 pcipc_i 将消耗换算成与 viv_i 相同的价值单位。例如,viv_i 用预期点击数计量、cic_i 用元计量时,pp 的单位就是“点击/元”,所以 pcipc_i 的单位也是点击数。pp 越大,在拉格朗日函数中扣除同样一元消耗的数值越大,模型对消耗就越严格。vi−pciv_i-pc_i 是 xix_i 在拉格朗日函数中的系数,不是广告主实际获得的净利润。

2.3 流量分配变量的最优选择

固定 pp 后,式(4)中的 pBpB 与 x\boldsymbol x 无关;各个求和项只包含各自的 xix_i,不再互相耦合。因此,对整个函数求最大值,可以拆成逐项求解:

max⁡0≤xi≤1(vi−pci)xi.\max_{0\le x_i\le1}(v_i-pc_i)x_i.

这是一个关于 xix_i 的一次函数,其最大值由系数的符号决定:

  • 当 vi−pci>0v_i-pc_i>0 时,增大 xix_i 会增大函数值,故取 xi=1x_i=1。
  • 当 vi−pci<0v_i-pc_i<0 时,增大 xix_i 会减小函数值,故取 xi=0x_i=0。
  • 当 vi−pci=0v_i-pc_i=0 时,函数值恒为零,单看这一项,任意 xi∈[0,1]x_i\in[0,1] 都达到最大值。

这里求出的是给定 pp 时拉格朗日函数的最大化解,还不能直接称为预算约束下的最优分配。任意选取一个很小的 pp,可能使很多项的系数都为正,全部取 xi=1x_i=1 后就会超预算。

当 pp 已求解为最优对偶乘子 p∗p^*,并在系数为零的流量中选择合适的分配比例,使预算约束和后文式(9)同时成立时,得到原线性规划的最优分配:

xi∗={1,vi−p∗ci>0,0,vi−p∗ci<0,ξi∈[0,1],vi−p∗ci=0.(5)x_i^*= \begin{cases} 1,&v_i-p^*c_i>0,\\ 0,&v_i-p^*c_i<0,\\ \xi_i\in[0,1],&v_i-p^*c_i=0. \end{cases} \tag{5}

其中 ξi\xi_i 不是额外的业务参数,而是尚未由系数符号确定的分配比例。例如,只剩 1 元预算,而某条边界流量完整分配需要 2 元时,连续模型允许取 ξi=1/2\xi_i=1/2。在实际单次拍卖中,流量不能分成半次;这一比例需要通过重复机会上的分配或随机化实现,而且不自动保证每条随机投放路径都满足预算。实际系统仍需控制真实累计消耗。

2.4 最优出价与价值成本比阈值

式(5)确定了应该竞得哪些流量,但拍卖系统实际接收的是出价 bib_i,不是直接指定的 xix_i。二价模型下,本方出价超过市场成本 cic_i 时竞得流量,低于 cic_i 时不竞得,因此需要把式(5)的选择条件改写成出价与 cic_i 的比较。

当 p∗>0p^*>0 时,对应竞得流量的条件可以连续变形为

vi−p∗ci>0⟺vi>p∗ci⟺vip∗>ci.\begin{aligned} v_i-p^*c_i>0 &\quad\Longleftrightarrow\quad v_i>p^*c_i\\ &\quad\Longleftrightarrow\quad \frac{v_i}{p^*}>c_i. \end{aligned}

所以,将第 ii 次流量的出价设为 vi/p∗v_i/p^*,就能使拍卖的竞得结果与式(5)的严格不等式部分一致:

bi∗=vip∗.(6)\boxed{b_i^*=\frac{v_i}{p^*}}. \tag{6}

出价等于 cic_i 时,属于式(5)中系数为零的情况,需要结合平价分配规则与剩余预算处理。

因此,式(6)不是对式(4)直接求导得到的,而是由拉格朗日函数的逐项最大化条件,加上二价拍卖的竞得规则得到的。对于一组已实现的市场成本,可能有多个不同出价产生相同分配;式(6)给出的是实现该最优分配的一种阈值出价形式。

当 ci>0c_i>0 时,也可以把同一条件写成价值成本比的形式:

vici>p∗⟹xi∗=1,vici<p∗⟹xi∗=0.(7)\begin{aligned} \frac{v_i}{c_i}>p^*&\quad\Longrightarrow\quad x_i^*=1,\\ \frac{v_i}{c_i}<p^*&\quad\Longrightarrow\quad x_i^*=0. \end{aligned} \tag{7}

也就是说,价值成本比高于 p∗p^* 的流量被竞得,低于 p∗p^* 的流量不被竞得,这两种情况已经确定最终竞得结果。等于阈值时,分配按式(5)的边界情况处理。p∗p^* 是整个周期共享的阈值,不是每条流量各自的 vi/civ_i/c_i。对于 ci=0c_i=0 的流量,直接使用式(5)判断,不做除以零的运算。

2.5 最优乘子的求解与预算约束

出价函数中的 viv_i 由流量价值预估提供,p∗p^* 则需要根据预算和整个周期的流量价值、市场成本共同求解。固定 pp 时,第 2.3 节的一次函数最大值为

max⁡0≤xi≤1(vi−pci)xi=max⁡(vi−pci,0).\max_{0\le x_i\le1}(v_i-pc_i)x_i =\max(v_i-pc_i,0).

把所有项的最大值相加,得到对偶函数

g(p)=max⁡0≤x≤1L(x,p)=pB+∑imax⁡(vi−pci,0).g(p)=\max_{0\le\boldsymbol x\le1}\mathcal L(\boldsymbol x,p) =pB+\sum_i\max(v_i-pc_i,0).

由于每个 g(p)g(p) 都是原问题最优总价值的上界,对偶问题选择其中最小的上界:

p∗∈arg⁡min⁡p≥0[pB+∑i(vi−pci)+],(z)+=max⁡(z,0).(8)p^*\in\arg\min_{p\ge0} \left[pB+\sum_i(v_i-pc_i)_+\right], \qquad(z)_+=\max(z,0). \tag{8}

这里 arg⁡min⁡\arg\min 表示“使括号内表达式达到最小值的参数取值集合”,所以 p∗p^* 不一定唯一。对本节可行且目标有界的线性规划,强对偶性保证:最小上界等于原问题的最大总价值,即 g(p∗)=∑ivixi∗g(p^*)=\sum_i v_i x_i^*。同时,根据上界的构造,有

g(p∗)≥L(x∗,p∗)≥∑ivixi∗.g(p^*)\ge\mathcal L(\boldsymbol x^*,p^*)\ge\sum_i v_i x_i^*.

首尾已经相等,中间也必须相等。将式(4)中拉格朗日函数与目标函数之差 −p∗(∑icixi∗−B)-p^*(\sum_i c_i x_i^*-B) 设为零,便得到预算约束的互补松弛条件:

p∗(∑icixi∗−B)=0.(9)p^*\left(\sum_i c_i x_i^*-B\right)=0. \tag{9}

式(9)有两层含义。如果最优分配仍有剩余预算,即 ∑icixi∗<B\sum_i c_i x_i^*<B,那么 p∗p^* 必须为零;如果 p∗>0p^*>0,则最优分配必须恰好用完预算。预算恰好用完时,乘子也可能为零,不能反推它一定为正。

式(8)与预算之间的关系,还可以从对偶函数的斜率看出。在没有流量恰好满足 vi=pciv_i=pc_i 的区间内,

g′(p)=B−∑i:vi>pcici.g'(p)=B-\sum_{i:v_i>pc_i}c_i.

右侧是预算减去当前阈值会竞得的总成本。若当前选择超预算,斜率为负,适当增大 pp 会降低对偶函数值,同时提高价值成本比阈值,排除部分流量;若当前选择花费不足且 p>0p>0,则可向减小 pp 的方向寻找更低的对偶函数值。在阈值与某些流量的价值成本比相等处,函数可能不可微,此时需要使用次梯度(凸函数在不可微点处的斜率推广),或直接求解线性规划,不能依赖单一导数值。

出价与价值成比例,指的是在同一组参数下,价值更高的流量按相同比例提高出价。 例如,若求得 p∗=0.4p^*=0.4 点击/美元,则 1/p∗=2.51/p^*=2.5 美元/点击。预期价值为 1 个点击的流量出价 2.5 美元,预期价值为 0.2 个点击的流量出价 0.5 美元。不同广告计划的预算、流量价值和市场成本不同,解出的 p∗p^* 也可能不同,因此不能把 2.5 当作所有计划共用的出价系数。

2.6 历史数据下的离线求解

历史数据可以提供一批已经发生的流量机会。对每次机会整理其价值预估 viv_i 与竞得成本 cic_i,再设置与这批数据对应的周期预算 BB,就得到式(BCB)的输入。一天的流量样本应对应一天的预算;多天样本可以按天分别求解,不能把全部历史流量直接配上一个日预算。

求解这项线性规划,可以得到最优分配 x∗\boldsymbol x^*,也可以读取预算约束对应的最优对偶变量 p∗p^*。不同求解器可能采用不同的对偶变量符号约定,读取结果时应换算到式(4)的定义:最大化目标减去 p(∑icixi−B)p(\sum_i c_i x_i-B),且 p≥0p\ge0。

另一种等价做法,是直接最小化式(8)的一维对偶函数 g(p)g(p)。这两条路线求解的是同一个连续分配问题。所谓“通过历史数据直接求解”,就是用历史数据构造这个优化问题,从求解结果中获得乘子;不需要事先把 p∗p^* 当作已知输入。

这里的“线性”指模型对分配变量 xix_i 是线性的。若把竞得条件写成 1{bi≥ci}\mathbf 1\{b_i\ge c_i\},它对出价 bib_i 并不线性;直接优化这个示性函数,与求解连续分配 LP 需要区分。

市场成本数据也需要与模型一致。cic_i 是竞得后的市场支付成本,而非本方历史出价;如果数据只包含已经竞得的样本,不能把它当作完整的可参竞流量。缺失的流量机会和未观测成本需要另行估计,其误差会影响离线求解结果。

考虑一个预算分配例子:单价 1 美元的点击有 2 个,单价 2 美元的点击有 2 个,单价 3 美元的点击有 3 个,预算为 6 美元。所有点击价值均为 1 时,购买前两档得到 4 个点击,支出恰为 6 美元。

将这七次机会的数据代入式(8),得到

g(p)=6p+2(1−p)++2(1−2p)++3(1−3p)+.g(p)=6p+2(1-p)_++2(1-2p)_++3(1-3p)_+.

三个正部函数分别在 p=1p=1、p=1/2p=1/2、p=1/3p=1/3 处变为零。按这些位置分段展开:

g(p)={7−9p,0≤p<13,4,13≤p≤12,2+4p,12<p<1,6p,p≥1.g(p)= \begin{cases} 7-9p,&0\le p<\frac13,\\[2pt] 4,&\frac13\le p\le\frac12,\\[2pt] 2+4p,&\frac12<p<1,\\[2pt] 6p,&p\ge1. \end{cases}

例如,在 1/3≤p≤1/21/3\le p\le1/2 内,成本为 3 美元的项已经为零,其他两项仍非负,所以

g(p)=6p+2(1−p)+2(1−2p)+0=6p+2−2p+2−4p=4.\begin{aligned} g(p) &=6p+2(1-p)+2(1-2p)+0\\ &=6p+2-2p+2-4p=4. \end{aligned}

函数在 p<1/3p<1/3 时下降,在 [1/3,1/2][1/3,1/2] 内保持为 4,超过 1/21/2 后上升。因此,完整的最优乘子集合为

arg⁡min⁡p≥0g(p)=[13,12].\boxed{\arg\min_{p\ge0}g(p)=\left[\frac13,\frac12\right]}.

0.40.4 是从这个区间内选出的一个最优值;0.350.35、0.450.45 也属于最优乘子集合。取区间内部的值,出价会落在 2 美元与 3 美元之间,避免与样本中的市场成本相等。两个端点仍然是最优对偶值,但实施分配时需要处理平价情况。

在这个例子中,p∗=0.4p^*=0.4 是一个最优乘子。式(6)给出每个点击的出价 2.5 美元:成本为 1、2 美元的四次机会全部竞得,成本为 3 美元的三次机会全部放弃。二价下实际支付仍为各自的市场成本,总支付为 2×1+2×2=62\times1+2\times2=6 美元,并不是四次出价之和 10 美元。对偶函数值为

g(0.4)=0.4×6+2(1−0.4)+2(1−0.8)+3(1−1.2)+=4,g(0.4)=0.4\times6+2(1-0.4)+2(1-0.8)+3(1-1.2)_+=4,

恰好等于取得的 4 个点击,验证了这组分配和乘子的最优性。

若把同一例子的预算提高到 20 美元,全部七次点击的成本只有 2×1+2×2+3×3=152\times1+2\times2+3\times3=15 美元,预算足以购买所有正价值流量。最优分配就是全部竞得,此时可取 p∗=0p^*=0。零乘子表示不需要再靠预算筛掉任何一条正价值流量,不表示应当执行“无限大的出价”。 式(6)是在 p∗>0p^*>0 的条件下推导的,在这一情形中应直接使用“全部竞得”的分配结论。在该市场成本已知的离线例子里,对各次机会出价高于 3 美元即可实现同一分配,实际总支付仍为 15 美元;满足这些竞得条件的出价并不唯一。

图 1|BCB:在 6 美元预算下分配不同单价的点击。

2.7 预算消耗的实时反馈调控

离线乘子 p∗p^* 的含义,是对已知历史流量在指定预算下求出的最优阈值。下一天的流量价值、竞争成本与供给可能发生变化,历史乘子适合作为初始参数,不能直接视为未来全天的最优乘子。线上维护的是随反馈更新的估计值 ptp_t。

一个预算反馈控制循环需要明确三个量:本时段的目标消耗 DtD_t、实际消耗 CtC_t、当前预算乘子 ptp_t。以下采用每 15 分钟更新一次参数的示例。

  1. 初始化。 以历史求解结果确定一个正的初始乘子 p0p_0,并记录剩余预算与剩余投放时间。
  2. 设定消耗目标。 确定接下来 15 分钟允许或希望消耗的金额 DtD_t。
  3. 执行出价。 本时段内保持 ptp_t 不变,每次流量到达时预估 viv_i,使用 bi=vi/ptb_i=v_i/p_t 参与竞价。
  4. 采集反馈。 汇总本时段真实支付金额,得到 CtC_t,而不是把所有出价金额相加。
  5. 更新参数。 根据 CtC_t 相对于 DtD_t 的偏差更新乘子,调整下一时段的出价强度。
  6. 更新状态。 从剩余预算中扣除实际消耗,更新剩余时间与下一时段目标,重复这一过程;预算耗尽后停止参竞。

最简单的参考计划是按剩余时间均匀分配剩余预算:

Dt=BtremainΔhHtremain.D_t=B_t^{\mathrm{remain}}\frac{\Delta h}{H_t^{\mathrm{remain}}}.

其中 BtremainB_t^{\mathrm{remain}} 是本时段开始时的剩余预算,HtremainH_t^{\mathrm{remain}} 是以小时计量的剩余投放时间,Δh=0.25\Delta h=0.25 小时。剩余预算 600 元、剩余时间 12 小时时,本时段目标为

Dt=600×0.2512=12.5 元.D_t=600\times\frac{0.25}{12}=12.5\text{ 元}.

也可以按历史或预测的流量时间分布制定 DtD_t,为供给多、价值高的时段分配更多预算。BCB 本身只约束全天总预算,均匀消耗是一个便于说明的控制参考计划,并不是 BCB 模型必须满足的新增约束。

在 Dt>0D_t>0 时,定义“目标减实际”的相对误差:

et=Dt−CtDt.e_t=\frac{D_t-C_t}{D_t}.

消耗超过目标时 et<0e_t<0,不足目标时 et>0e_t>0。一种简单的指数反馈更新为

pt+1=ptexp⁡(−ηet),η>0.\boxed{p_{t+1}=p_t\exp(-\eta e_t)},\qquad\eta>0.

消耗过快使指数中的 −ηet-\eta e_t 为正,乘子增大,同样价值的流量出价降低;消耗不足则使乘子减小,出价提高。η\eta 决定单轮调整力度。按支付与目标预算的偏差更新预算乘子,与对偶反馈控制的基本结构一致;这里采用按时段汇总并归一化的示例形式。A Field Guide,§2.1

例如,设 pt=0.4p_t=0.4 点击/元,目标消耗 12.5 元,实际消耗 20 元,取 η=0.2\eta=0.2,则

et=12.5−2012.5=−0.6,e_t=\frac{12.5-20}{12.5}=-0.6,
pt+1=0.4exp⁡(0.12)≈0.451 点击/元.p_{t+1}=0.4\exp(0.12)\approx0.451\text{ 点击/元}.

预期价值为 1 个点击的流量,其出价由 2.5 元降至约 2.22 元。本时段结束后,剩余预算从 600 元减为 580 元,剩余时间从 12 小时减为 11.75 小时;若继续均匀分配,下一时段的目标应重新计算,而非始终沿用 12.5 元。

这一循环根据已发生的消耗修正出价,但“消耗进度达到参考计划”不等于“全天总价值已经最大化”。最终效果仍取决于流量价值预估、参考计划以及实时环境。实际支出还需独立核验,不能仅依靠周期性乘子更新防止超出总预算。当预算耗尽或本时段明确不投放时,直接停止参竞,不再计算目标为零的相对误差。

2.8 位置式 PID 的乘子更新

PID(Proportional–Integral–Derivative,比例—积分—微分)在每轮反馈中同时使用当前误差、累计误差和误差变化。以下沿用第 2.7 节的误差定义 et=(Dt−Ct)/Dte_t=(D_t-C_t)/D_t,并采用固定采样周期的离散位置式实现。

初始化正的基准乘子 pbasep_{\mathrm{base}},以及上一时段误差 e−1=0e_{-1}=0、累计误差 I−1=0I_{-1}=0。每个时段先使用当前 ptp_t 出价并汇总实际消耗,再计算误差,更新累计值:

It=It−1+et.I_t=I_{t-1}+e_t.

控制信号由三个部分相加:

ut=KPet+KIIt+KD(et−et−1).\boxed{u_t=K_Pe_t+K_II_t+K_D(e_t-e_{t-1})}.
项 计算式 含义
比例 P KPetK_Pe_t 根据本时段偏差立即调整
积分 I KIItK_II_t 根据历次偏差的累积,纠正持续消耗不足或过快
微分 D KD(et−et−1)K_D(e_t-e_{t-1}) 根据偏差正在扩大还是缩小,调整控制力度

采样周期固定时,时间长度因子已经吸收到 KI,KDK_I,K_D 中;改变更新周期时,应重新校准这些系数。连续几轮消耗过快会使 ItI_t 持续为负,即使当前偏差已缩小,积分项仍会反映此前的偏差。微分项则反映相邻时段的误差变化:负误差继续扩大时,微分项为负;负误差缩小时,微分项为正,减轻继续压低出价的力度。

采用以下指数转换,将控制信号作用于预算乘子:

pt+1=pbaseexp⁡(−ut).\boxed{p_{t+1}=p_{\mathrm{base}}\exp(-u_t)}.

它保持乘子为正,且与“乘子越大、出价越低”的关系一致。这里 utu_t 表示相对于固定基准的总修正量,所以位置式每轮都以 pbasep_{\mathrm{base}} 为基准计算,而不是再把同一个总修正量乘到当前 ptp_t 上。离散 PID 与“初始参数乘以指数修正”的结构,可参见广告出价多变量控制研究;下述数值用于演示计算,不是通用参数配置。Bid Optimization by Multivariable Control,§3.2、§4.1.3

沿用目标消耗 12.5 元、实际消耗 20 元的例子。为演示第一轮三项计算,设 pbase=0.4p_{\mathrm{base}}=0.4 点击/元,e−1=I−1=0e_{-1}=I_{-1}=0,并取

KP=0.2,KI=0.05,KD=0.1.K_P=0.2,\qquad K_I=0.05,\qquad K_D=0.1.

误差为 e0=−0.6e_0=-0.6,累计误差更新为 I0=−0.6I_0=-0.6。三个修正项分别为

KPe0=0.2×(−0.6)=−0.12,KII0=0.05×(−0.6)=−0.03,KD(e0−e−1)=0.1×(−0.6−0)=−0.06.\begin{aligned} K_Pe_0&=0.2\times(-0.6)=-0.12,\\ K_II_0&=0.05\times(-0.6)=-0.03,\\ K_D(e_0-e_{-1})&=0.1\times(-0.6-0)=-0.06. \end{aligned}

因此,

u0=−0.12−0.03−0.06=−0.21,u_0=-0.12-0.03-0.06=-0.21,
p1=0.4exp⁡(0.21)≈0.493 点击/元.p_1=0.4\exp(0.21)\approx0.493\text{ 点击/元}.

价值为 1 个预期点击的流量,出价由 2.5 元降至约 2.03 元。下一轮应使用新的实际消耗计算 e1e_1,再以 I1=I0+e1I_1=I_0+e_1 更新积分,继续相对于 pbasep_{\mathrm{base}} 计算总修正量;即使两轮消耗误差相同,积分项也会因为持续偏差而变化。

实际控制中可为乘子设置正的下限与上限,并限制单轮变化。当乘子已达到边界、积分还在推动它继续越界时,应暂停该方向的积分累计,偏差反向后再恢复,避免长时间积累导致恢复迟缓。微分项对测量噪声敏感,可对消耗反馈做平滑;三个系数应通过历史回放校准。PID 跟踪的是设定的消耗目标,是否提高全天总价值仍需结合流量质量与参考计划评估。

3. MCB:预算与平均成本的联合约束

MCB(Multi-Constrained Bidding)在预算之外增加效果约束。典型需求是:“每天花 2000 元,获得尽量多的成交,同时平均点击成本不超过 1.5 元。”此时目标事件是成交,约束事件是点击,两者并不相同。

3.1 标准优化模型

当约束事件总量为正时,平均成本要求为

∑icixi∑iwixi≤Cw.(10)\frac{\sum_i c_i x_i}{\sum_i w_i x_i}\le C_w. \tag{10}

在分母为正时,两边同乘 ∑iwixi\sum_i w_i x_i,再把右侧移到左侧,得到 ∑i(ci−Cwwi)xi≤0\sum_i(c_i-C_w w_i)x_i\le0。因此,MCB 可写成

max⁡x∑ivixis.t.∑icixi≤B,∑i(ci−Cwwi)xi≤0,0≤xi≤1,∀i.(MCB)\begin{aligned} \max_{\boldsymbol x}\quad &\sum_i v_i x_i\\ \mathrm{s.t.}\quad &\sum_i c_i x_i\le B,\\ &\sum_i(c_i-C_w w_i)x_i\le0,\\ &0\le x_i\le1,\quad\forall i. \end{aligned} \tag{MCB}

当总事件数为零时,比值形式没有定义;线性形式则有明确含义:它要求总消耗也为零。若 vi,wiv_i,w_i 使用预估值,模型约束的是这些预估量形成的总量关系。即使满足“预期总成本/预期总转化数不超过目标”,也不保证当天随机实现的实际 CPA 必然达标;在比值有定义时,两个期望的比值一般也不等于实际比值的期望 E[C/N]\mathbb E[C/N]。

3.2 对偶变量与出价函数

预算约束仍用拉格朗日乘子 p≥0p\ge0,平均成本约束新增拉格朗日乘子 q≥0q\ge0。与 BCB 一样,分别从目标函数中减去“乘子乘以约束左侧”,再按 xix_i 合并:

L(x,p,q)=∑ivixi−p(∑icixi−B)−q∑i(ci−Cwwi)xi=pB+∑i[vi+qCwwi−(p+q)ci]xi.(11)\begin{aligned} \mathcal L(\boldsymbol x,p,q) &=\sum_i v_i x_i-p\left(\sum_i c_i x_i-B\right) -q\sum_i(c_i-C_w w_i)x_i\\ &=pB+\sum_i\left[v_i+qC_w w_i-(p+q)c_i\right]x_i. \end{aligned} \tag{11}

固定 p,qp,q 后,xix_i 的系数为 vi+qCwwi−(p+q)civ_i+qC_w w_i-(p+q)c_i。与 BCB 的一次函数分析相同,系数为正时取 xi=1x_i=1,为负时取 xi=0x_i=0。当 p+q>0p+q>0,竞得条件为

vi+qCwwi−(p+q)ci>0⟺ci<vi+qCwwip+q.v_i+qC_w w_i-(p+q)c_i>0 \quad\Longleftrightarrow\quad c_i<\frac{v_i+qC_w w_i}{p+q}.

求得最优乘子 p∗,q∗p^*,q^*,并使分配满足原约束和互补松弛条件后,用右侧作为二价出价即可实现严格不等式对应的分配:

bi∗=vi+q∗Cwwip∗+q∗=1p∗+q∗vi+q∗p∗+q∗Cwwi.(12)\boxed{ b_i^*=\frac{v_i+q^*C_w w_i}{p^*+q^*} =\frac1{p^*+q^*}v_i+\frac{q^*}{p^*+q^*}C_w w_i }. \tag{12}

定义

α=1p+q,β=qp+q,(13)\alpha=\frac1{p+q},\qquad \beta=\frac q{p+q}, \tag{13}

就得到

bi=αvi+βCwwi.(14)\boxed{b_i=\alpha v_i+\beta C_w w_i}. \tag{14}

两项的来源可直接从式(11)看出。viv_i 是本次流量带来的目标价值,CwwiC_w w_i 是按目标单位成本计算、该次流量预期事件数对应的消耗额度。一次流量使成本约束的余量增加 Cwwi−ciC_w w_i-c_i,这一变化在拉格朗日函数中乘以 qq。例如,目标点击成本为 1.5 元、某次曝光预期带来 0.1 次点击时,其对应额度为 0.15 元;实际成本小于 0.15 元会增加约束余量,大于 0.15 元会消耗余量。qq 决定这项约束在流量选择中起多大作用。

严格由式(13)得到的参数满足 α>0\alpha>0、0≤β≤10\le\beta\le1,并可反解

p=1−βα,q=βα.(15)p=\frac{1-\beta}{\alpha},\qquad q=\frac\beta\alpha. \tag{15}

式(13)只是将 p,qp,q 改写成另一组参数,并没有增加自由变量。若搜索出的 α,β\alpha,\beta 不能通过式(15)对应到非负的 p,qp,q,就不属于这里推导的对偶参数形式。即使满足取值条件,也仍需满足预算、平均成本和互补松弛条件,才能认定为该线性规划的最优解。

3.3 对偶最优条件与参数耦合

固定 p,qp,q 时,逐项最大化式(11),每一项的最大值是其系数与零之中的较大者。再对 p,qp,q 最小化所得上界,得到 MCB 的对偶问题

(p∗,q∗)∈arg⁡min⁡p,q≥0[pB+∑i(vi+qCwwi−(p+q)ci)+].(16)(p^*,q^*)\in\arg\min_{p,q\ge0} \left[pB+\sum_i\left(v_i+qC_w w_i-(p+q)c_i\right)_+\right]. \tag{16}

最优分配必须同时满足预算和平均成本约束;最优乘子与分配还应满足以下互补松弛条件

p∗(∑icixi∗−B)=0,q∗∑i(ci−Cwwi)xi∗=0.(17)\begin{aligned} p^*\left(\sum_i c_i x_i^*-B\right)&=0,\\ q^*\sum_i(c_i-C_w w_i)x_i^*&=0. \end{aligned} \tag{17}

若最优分配的平均成本严格低于目标,由式(17)可知 q∗=0q^*=0,式(12)便退化为 BCB。若最优分配尚有剩余预算,则 p∗=0p^*=0;在 q∗>0q^*>0 时,出价由平均成本约束决定

bi∗=viq∗+Cwwi,q∗>0.(18)b_i^*=\frac{v_i}{q^*}+C_w w_i,\qquad q^*>0. \tag{18}

约束取等号时,乘子不一定严格为正;多个乘子值也可能产生同一最优分配。预算约束只要求“不超过预算”。若已经没有可增加总价值且满足平均成本要求的流量,就应保留剩余预算,而不是额外要求把预算花完。

pp 和 qq 分别来自预算与平均成本约束,但二者都进入同一个出价函数。固定流量的价值、成本目标和另一个乘子,对式(12)的参数形式求偏导,得到

∂bi∂p=−vi+qCwwi(p+q)2,∂bi∂q=pCwwi−vi(p+q)2.(19)\frac{\partial b_i}{\partial p} =-\frac{v_i+qC_w w_i}{(p+q)^2}, \qquad \frac{\partial b_i}{\partial q} =\frac{pC_w w_i-v_i}{(p+q)^2}. \tag{19}

在其他量固定时,提高 pp 会降低非零出价。提高 qq 的影响则取决于 pCwwi−vipC_w w_i-v_i 的符号:该量为正时出价提高,为负时出价降低。因此,成本控制会改变不同流量之间的出价关系,不只是把全部出价按同一比例降低。这些偏导描述的是单个参数变化的直接影响,不代表重新求解整个优化问题后的总效果。

3.4 CPA/CPF、CPC 与 ROS 约束下的出价

当优化目标与平均成本约束统计的是同一种事件,且事件数量采用相同的统计口径时,有 wi=viw_i=v_i。在 p∗+q∗>0p^*+q^*>0 的条件下,式(12)可以直接提取共同的 viv_i:

bi∗=vi+q∗Cwwip∗+q∗=vi+q∗Cwvip∗+q∗=1+q∗Cwp∗+q∗vi=(α∗+β∗Cw)vi.\begin{aligned} b_i^* &=\frac{v_i+q^*C_ww_i}{p^*+q^*}\\ &=\frac{v_i+q^*C_wv_i}{p^*+q^*}\\ &=\frac{1+q^*C_w}{p^*+q^*}v_i\\ &=(\alpha^*+\beta^*C_w)v_i. \end{aligned}

定义合并后的出价系数

κ∗=1+q∗Cwp∗+q∗=α∗+β∗Cw,\kappa^*=\frac{1+q^*C_w}{p^*+q^*} =\alpha^*+\beta^*C_w,

就得到

bi∗=κ∗vi.\boxed{b_i^*=\kappa^*v_i}.

例如,最大化转化数且约束 CPA 时,目标与约束分母都是转化数,可以这样化简。最大化转化数且约束 CPC 时,目标对应转化数、约束分母对应点击数,通常不满足 wi=viw_i=v_i,需要保留两项。

化简后,每条流量的出价只取决于 viv_i 和合并系数 κ∗\kappa^*。只要合并系数相同,不同的 α,β\alpha,\beta 组合就会产生相同出价;但预算与平均成本两条约束仍需同时满足,不能据此任意设置 κ\kappa 或认定任意参数组合已经最优。化简的是出价函数,而非约束条件。

最大化转化,约束 CPA/CPF。 当价值就是该约束事件的数量,即 vi=wi=pCTRipCVRiv_i=w_i=pCTR_i pCVR_i,目标成本记为 kCPAk_{CPA}:

biimp,∗=1+q∗kCPAp∗+q∗pCTRipCVRi=(α∗+β∗kCPA)pCTRipCVRi.(20)\boxed{ b_i^{\mathrm{imp},*} =\frac{1+q^*k_{CPA}}{p^*+q^*}pCTR_i pCVR_i =\left(\alpha^*+\beta^*k_{CPA}\right)pCTR_i pCVR_i }. \tag{20}

将系数展开,出价也可写为

bi=αpCVRipCTRi+βkCPApCVRipCTRi.b_i=\alpha pCVR_i pCTR_i+\beta k_{CPA}pCVR_i pCTR_i.

若转化定义为询盘,只需将 kCPAk_{CPA} 换成目标 CPF,并使 pCVRpCVR 对应询盘概率。点击出价则为

biclick,∗=(α∗+β∗kCPA)pCVRi.(21)b_i^{\mathrm{click},*} =\left(\alpha^*+\beta^*k_{CPA}\right)pCVR_i. \tag{21}

这时合并系数为 κ∗=α∗+β∗kCPA\kappa^*=\alpha^*+\beta^*k_{CPA},曝光出价为 κ∗pCTRipCVRi\kappa^*pCTR_i pCVR_i,点击出价为 κ∗pCVRi\kappa^*pCVR_i。

最大化转化,约束 CPC。 此时 vi=pCTRipCVRiv_i=pCTR_i pCVR_i,但 wi=pCTRiw_i=pCTR_i,于是

biimp,∗=α∗pCTRipCVRi+β∗kCPCpCTRi,biclick,∗=α∗pCVRi+β∗kCPC.(22)\begin{aligned} b_i^{\mathrm{imp},*} &=\alpha^*pCTR_i pCVR_i+\beta^*k_{CPC}pCTR_i,\\ b_i^{\mathrm{click},*} &=\alpha^*pCVR_i+\beta^*k_{CPC}. \end{aligned} \tag{22}

点击出价由随转化率变化的 αpCVRi\alpha pCVR_i 和不随该流量转化率变化的 βkCPC\beta k_{CPC} 两部分组成。后一项是关于 pCVRipCVR_i 的截距。除其为零或所有流量转化率相同等特殊情形外,整个函数不能合并成一个共同系数乘以 pCVRipCVR_i。因此,目标同为最大化转化时,CPC 约束与 CPA 约束仍会产生不同的出价函数。

最大化成交金额,约束 ROS/ROAS。 记 viv_i 为预期成交金额,在总消耗为正时,要求总价值/总消耗至少为 τ>0\tau>0:

∑ivixi∑icixi≥τ⟺∑i(ci−viτ)xi≤0.(23)\frac{\sum_i v_i x_i}{\sum_i c_i x_i}\ge\tau \quad\Longleftrightarrow\quad \sum_i\left(c_i-\frac{v_i}{\tau}\right)x_i\le0. \tag{23}

在 MCB 中令 wi=viw_i=v_i、Cw=1/τC_w=1/\tau,得到

bi∗=1+q∗/τp∗+q∗vi.(24)b_i^*=\frac{1+q^*/\tau}{p^*+q^*}v_i. \tag{24}

这里的比率是收入/消耗;如果 ROI 被定义为利润/投入,则需重新处理价值和目标,不能直接混用名称。

4. USCB:多项约束的统一表达

USCB(Unified Solution to Constrained Bidding,统一约束出价)将预算与多项效果约束写入同一个优化问题。以下讨论其统一建模和出价函数:BCB 只有预算约束,前一节的 MCB 增加一项平均成本约束,这里进一步允许同时存在多项效果要求。

4.1 共享消耗口径下的多约束模型

4.1.1 约束编号与优化模型

ii 表示第 ii 次流量机会,jj 表示第 jj 项效果约束。jj 取遍 1,…,M1,\ldots,M,其中 MM 是效果约束总数,不包括单独写出的预算约束。相应地,kjk_j 是第 jj 项约束的目标单位成本,pijp_{ij} 是流量 ii 对应该约束的预期事件数。

当所有效果约束都以同一个总消耗 ∑icixi\sum_i c_i x_i 为分子时,优化模型为

max⁡x∑ivixis.t.∑icixi≤B,∑i(ci−kjpij)xi≤0,∀j∈{1,…,M},0≤xi≤1,∀i.(USCB-S)\begin{aligned} \max_{\boldsymbol x}\quad &\sum_i v_i x_i\\ \mathrm{s.t.}\quad &\sum_i c_i x_i\le B,\\ &\sum_i(c_i-k_jp_{ij})x_i\le0,\quad\forall j\in\{1,\ldots,M\},\\ &0\le x_i\le1,\quad\forall i. \end{aligned} \tag{USCB-S}

例如,同时要求平均 CPC 不超过 1.5 元、平均 CPA 不超过 50 元时,M=2M=2,可以作如下编号:

jj 效果约束 目标成本 kjk_j 流量 ii 的预期事件数 pijp_{ij}
1 CPC k1=1.5k_1=1.5 元/点击 pi1=pCTRip_{i1}=pCTR_i
2 CPA k2=50k_2=50 元/转化 pi2=pCTRipCVRip_{i2}=pCTR_i pCVR_i

对 j=1j=1 和 j=2j=2 分别写出约束,便得到

{∑icixi≤1.5∑ipCTRixi,∑icixi≤50∑ipCTRipCVRixi.\begin{cases} \displaystyle\sum_i c_i x_i\le1.5\sum_i pCTR_i x_i,\\[4pt] \displaystyle\sum_i c_i x_i\le50\sum_i pCTR_i pCVR_i x_i. \end{cases}

两条效果约束加上一条预算约束,共有三条必须同时满足的要求。

4.1.2 逐项约束与加总约束

模型中的 ∑i\sum_i 把所有流量的贡献累加;∀j\forall j 表示对每个约束编号分别成立。因此,∑i(ci−kjpij)xi≤0\sum_i(c_i-k_jp_{ij})x_i\le0 后面写 j=1,…,Mj=1,\ldots,M,是对一组不等式的简写;写成 ∀j∈{1,…,M}\forall j\in\{1,\ldots,M\} 能更明确表达“每一项都必须满足”。这里不需要再添加 ∑j\sum_j。

若把这些独立不等式合并为

∑j=1M∑i(ci−kjpij)xi≤0,\sum_{j=1}^M\sum_i(c_i-k_jp_{ij})x_i\le0,

模型就被改变了:一个约束的余量可以抵消另一个约束的违反。满足全部独立约束一定能使它们的和不大于零,但只满足加总约束不足以保证每一项分别成立。

例如,假设某个投放方案的总消耗为 100 元,第一个约束按其事件数计算允许消耗不超过 80 元,第二个约束允许消耗不超过 130 元。两项约束的左侧分别为

100−80=20>0,100−130=−30≤0.100-80=20>0,\qquad100-130=-30\le0.

第一项已经违反,第二项满足要求;相加却得到 20−30=−10≤020-30=-10\le0,会掩盖第一项违反。虽然两项约束使用同一个总消耗,也仍需分别核验;把同一消耗与不同效果要求比较,不是在预算中重复支付两次。

4.1.3 多约束出价的对偶推导

qjq_j 是第 jj 项效果约束的拉格朗日乘子;ωj\omega_j 则是由该乘子变换得到、进入出价函数的系数。拉格朗日函数需要把每一项约束分别乘以对应的 qjq_j,再相加,所以这一阶段会出现 ∑j\sum_j:

L(x,p,q)=∑ivixi−p(∑icixi−B)−∑j=1Mqj∑i(ci−kjpij)xi.\begin{aligned} \mathcal L(\boldsymbol x,p,\boldsymbol q) &=\sum_i v_i x_i-p\left(\sum_i c_i x_i-B\right)\\ &\quad-\sum_{j=1}^M q_j\sum_i(c_i-k_jp_{ij})x_i. \end{aligned}

∑j\sum_j 在这里用于组成一个待优化的函数,不能替代原模型中的 MM 条独立约束。每个 qjq_j 仍有自己的非负限制,并在对偶问题中分别求解。展开并合并各 xix_i 的系数,得到

L=pB+∑i[vi+∑j=1Mqjkjpij−(p+∑j=1Mqj)ci]xi.(25)\mathcal L =pB+\sum_i\left[ v_i+\sum_{j=1}^M q_jk_jp_{ij} -\left(p+\sum_{j=1}^M q_j\right)c_i \right]x_i. \tag{25}

给定乘子时,xix_i 的系数为 vi+∑jqjkjpij−(p+∑jqj)civ_i+\sum_jq_jk_jp_{ij}-(p+\sum_jq_j)c_i。当 p+∑jqj>0p+\sum_jq_j>0,令这一系数为正,等价于

ci<vi+∑jqjkjpijp+∑jqj.c_i<\frac{v_i+\sum_jq_jk_jp_{ij}}{p+\sum_jq_j}.

因此,在最优乘子下,满足原约束和互补松弛的分配可由以下二价出价实现;等号处仍需单独处理分配:

bi∗=vi+∑jqj∗kjpijp∗+∑jqj∗=ω0∗vi+∑jωj∗kjpij,(26)\boxed{ b_i^* =\frac{v_i+\sum_jq_j^*k_jp_{ij}}{p^*+\sum_jq_j^*} =\omega_0^*v_i+\sum_j\omega_j^*k_jp_{ij} }, \tag{26}

其中

ω0=1p+∑jqj,ωj=qjp+∑jqj.(27)\omega_0=\frac1{p+\sum_jq_j},\qquad \omega_j=\frac{q_j}{p+\sum_jq_j}. \tag{27}

该出价函数由一个价值项与若干个约束项组成。对偶系数满足

ω0>0,ωj≥0,∑jωj≤1,p=1−∑jωjω0.(28)\omega_0>0,\quad\omega_j\ge0,\quad\sum_j\omega_j\le1, \qquad p=\frac{1-\sum_j\omega_j}{\omega_0}. \tag{28}

若每个 pijp_{ij} 都能写成一个不随流量 ii 变化的常数乘以 viv_i,各项就可以合并成一个共同系数乘 viv_i。这是合并成立的一个充分条件。点击、不同类型询盘与成交金额通常不成固定比例,出价一般需要保留多个事件项。是否能够合并,最终取决于所有约束项的加权和是否与 viv_i 成固定比例。

4.2 不同成本口径下的统一出价条件

当各项约束采用不同成本口径时,以 cijc_{ij} 表示第 jj 项约束下的成本,得到更一般的模型:

max⁡x∑ivixis.t.∑icixi≤B,∑i(cij−kjpij)xi≤0,∀j∈{1,…,M},0≤xi≤1.(USCB-G)\begin{aligned} \max_{\boldsymbol x}\quad &\sum_i v_i x_i\\ \mathrm{s.t.}\quad &\sum_i c_i x_i\le B,\\ &\sum_i(c_{ij}-k_jp_{ij})x_i\le0,\quad\forall j\in\{1,\ldots,M\},\\ &0\le x_i\le1. \end{aligned} \tag{USCB-G}

为各约束引入同样的非负拉格朗日乘子后,有 L=pB+∑iAixi\mathcal L=pB+\sum_i A_i x_i,其中 xix_i 的系数为

Ai=vi+∑jqjkjpij−pci−∑jqjcij.(29)A_i=v_i+\sum_jq_jk_jp_{ij}-pc_i-\sum_jq_jc_{ij}. \tag{29}

固定乘子时,Ai>0A_i>0 取 xi=1x_i=1,Ai<0A_i<0 取 xi=0x_i=0。求得最优乘子后,Ai=0A_i=0 的流量还需选择满足全部约束及互补松弛条件的分配比例,才能得到原问题最优解。逐项最大化拉格朗日函数后,对偶问题为

min⁡p,q≥0[pB+∑i(Ai)+].(30)\min_{p,\boldsymbol q\ge0}\left[pB+\sum_i(A_i)_+\right]. \tag{30}

仅凭这个一般模型,不能直接推出全流量共享系数的式(26)。 若进一步有

cij=aijci,c_{ij}=a_{ij}c_i,

且 aija_{ij} 是出价前已知、在当前决策中固定的非负成本比例系数,则式(29)可整理为 Ai=vi+∑jqjkjpij−(p+∑jqjaij)ciA_i=v_i+\sum_jq_jk_jp_{ij}-(p+\sum_jq_ja_{ij})c_i。在分母为正时,把 Ai>0A_i>0 改写成对 cic_i 的上界,得到

bi∗=vi+∑jqj∗kjpijp∗+∑jqj∗aij.(31)\boxed{ b_i^*=\frac{v_i+\sum_jq_j^*k_jp_{ij}} {p^*+\sum_jq_j^*a_{ij}} }. \tag{31}

所有 aij=1a_{ij}=1 时,式(31)回到式(26);若 aija_{ij} 随流量变化,分母也随流量变化。若无法在出价前确定不同成本项与支付之间的关系,式(29)仍可用于离线分析,但不能据此直接实施式(31);需要根据实际支付规则另行推导出价函数。

例如,仅约束某个国家流量自身的 CPA 时,分子只统计该国家消耗,分母只统计该国家转化。它与“全计划总消耗/该国家转化”是两个不同约束。从一般 LP 推导共享系数的出价函数时,必须明确各项成本之间的关系。

5. 累计投放状态与剩余时段模型

在 USCB 中引入当前时刻以前的累计消耗 c#c^{\#}、累计价值 v#v^{\#}、累计事件数 pj#p_j^{\#},可将全天模型转化为剩余时段模型。这一步保留了已经发生的投放结果,把决策变量限制在剩余流量集合 Ot\mathcal O_t。

共享消耗口径下,标准形式为

max⁡{xi:i∈Ot}v#+∑i∈Otvixis.t.∑i∈Otcixi≤B−c#,∑i∈Ot(ci−kjpij)xi≤kjpj#−c#,∀j,0≤xi≤1.(32)\begin{aligned} \max_{\{x_i:i\in\mathcal O_t\}}\quad &v^{\#}+\sum_{i\in\mathcal O_t}v_ix_i\\ \mathrm{s.t.}\quad &\sum_{i\in\mathcal O_t}c_ix_i\le B-c^{\#},\\ &\sum_{i\in\mathcal O_t}(c_i-k_jp_{ij})x_i \le k_jp_j^{\#}-c^{\#},\quad\forall j,\\ &0\le x_i\le1. \end{aligned} \tag{32}

已经取得的累计价值 v#v^{\#} 不随未来决策变化,因此加不加这一常数都不改变剩余流量的最优选择。预算还剩 B−c#B-c^{\#},第 jj 项效果约束还剩 kjpj#−c#k_jp_j^{\#}-c^{\#} 的允许消耗余量。若各约束采用不同成本口径,第 jj 项效果约束中的累计消耗应使用 cj#c_j^{\#},未来成本应使用 cijc_{ij}。

当累计消耗低于“目标单位成本乘累计事件数”时,这一余量为正,后续流量可以使用它。例如,目标 CPA 为 100 元,已花费 80 元取得 1 次转化,则余量为 20 元;随后再花费 120 元取得 1 次转化,累计 CPA 仍为 100 元。相反,若此前已经超出目标成本,余量为负,后续必须获得成本更低的转化才能补回;剩余流量不足时,全天约束也可能已经无法达成。

由此可以明确三个边界:

  1. 逐流量选择的依据。 逐条选择所比较的是拉格朗日函数中 xix_i 的系数,它同时包含价值和约束项;只按当前流量的 viv_i 大小选择,遗漏了成本与预算。逐项最大化还必须配合最优乘子及原约束,才能得到整个周期的最优分配。
  2. 预算对整个周期的影响。 预算耗尽后停止投放只能防止继续花费,不能挽回此前选择低价值流量的损失。预算乘子在每次选择时就影响出价,使当前流量与后续机会共同竞争有限预算。
  3. 约束的统计周期。 全天平均成本达标允许某些时间片的成本高于目标。若额外要求每个时刻 tt 的累计消耗 C1:tC_{1:t} 都不超过目标成本 kk 乘累计转化数 N1:tN_{1:t},即 C1:t≤kN1:tC_{1:t}\le kN_{1:t},则增加了一组过程约束,可选择的投放方案会减少。

在共享消耗口径下,若剩余流量的价值与成本全部已知,式(32)仍可推导出与式(26)同形的出价。线上未来流量尚未到达,系统只能根据历史与当前反馈估计系数 ω^t\widehat\omega_t。因此,“参数实时更新”表示系统在适应新信息,不等于已准确求出未知未来的最优乘子。

6. Budget+ROS 与 MCB 的等价关系

6.1 CPA 与归一化 ROS 的转换

设总转化数为 NN、总消耗为 CC,目标 CPA 为 K>0K>0。约束

C≤KN(33)C\le KN \tag{33}

可通过定义“按目标成本计价的价值” V=KNV=KN,写成 C≤VC\le V。在 C>0C>0 时,它等价于归一化 ROS 至少为 1;C=0C=0 时则直接使用线性约束,避免计算无定义的比值。固定 KK 时,最大化 NN 与最大化 KNKN 等价。

例如,预算 1000 元、目标 CPA 50 元的计划,可将每次转化计为 50 元的标准化价值;相应模型就是预算 1000 元、要求标准化 ROS 至少为 1、最大化标准化价值。

这一转换不表示每次转化的实际销售收入就是 50 元。若按每笔订单真实金额定义价值,最大化收入与最大化转化数通常不同。若目标是成交数而约束分母是点击数,两者也不能通过这一转换合并成同一个价值指标。

6.2 联合对偶出价的符号映射

论文将 ROS 目标归一化为 1。沿用本文符号,就是 MCB 的 wi=vi,Cw=1w_i=v_i,C_w=1 特例:

max⁡x∑ivixi,∑icixi≤B,∑i(ci−vi)xi≤0.(34)\max_{\boldsymbol x}\sum_i v_ix_i,\qquad \sum_i c_ix_i\le B,\qquad \sum_i(c_i-v_i)x_i\le0. \tag{34}

代入式(12),得到

bi∗=1+q∗p∗+q∗vi.(35)\boxed{b_i^*=\frac{1+q^*}{p^*+q^*}v_i}. \tag{35}

论文使用预算乘子 μ\mu、ROS 乘子 λ\lambda,因而在同一归一化模型中有 p=μ,q=λp=\mu,q=\lambda。这就是其 Dual-Optimal Pacing 的出价结构。论文 §2–2.1

论文使用分配函数 xi(b)x_i(b) 与期望支付函数,后者在这里记为 Pi(b)P_i(b)。确定成本的二价模型是其特例:Pi(b)=cixi(b)P_i(b)=c_i x_i(b)。对一般分配与支付函数,给定 p,qp,q 且 p+q>0p+q>0 时,本次拍卖需要最大化的拉格朗日项为

(1+q)vixi(b)−(p+q)Pi(b)=(p+q)[1+qp+qvixi(b)−Pi(b)].\begin{aligned} &(1+q)v_i x_i(b)-(p+q)P_i(b)\\ &\qquad=(p+q)\left[\frac{1+q}{p+q}v_i x_i(b)-P_i(b)\right]. \end{aligned}

外面的正数 p+qp+q 不影响哪个 bb 使表达式最大。括号内相当于以 1+qp+qvi\frac{1+q}{p+q}v_i 为价值的“价值减支付”问题;在第 1.4 节定义的激励相容拍卖中,以这一数值出价即可最大化该项。这一步说明了拍卖假设在式(35)中的作用。

归一化会改变乘子的数值。以转化目标的式(20)为例,令 v~i=Kvi\widetilde v_i=K v_i,目标也乘以 KK 后,可取

μ=Kp,λ=Kq.\mu=Kp,\qquad\lambda=Kq.

于是

1+λμ+λv~i=1+KqKp+KqKvi=1+Kqp+qvi.(36)\frac{1+\lambda}{\mu+\lambda}\widetilde v_i =\frac{1+Kq}{Kp+Kq}Kv_i =\frac{1+Kq}{p+q}v_i. \tag{36}

两种写法给出完全相同的出价。目标函数乘以 KK 后,乘子也相应乘以 KK;因此应比较换算后的出价函数,不能要求不同单位下的乘子数值保持不变。

7. 多约束 Pacing 的控制结构

第 2.7、2.8 节讨论单预算约束的反馈控制;本节进一步比较预算与 ROS 两项约束如何组合。Pacing 指基于投放反馈调整竞价强度。论文比较三种组合方式;用本文 pt,qtp_t,q_t 表示,并暂时省略剩余预算截断:

方式 出价 与式(35)的关系
Dual-Optimal,联合对偶 bt=1+qtpt+qtvt\displaystyle b_t=\frac{1+q_t}{p_t+q_t}v_t 给定当前乘子时,最大化本次拍卖的拉格朗日项
Sequential,串联 bt=1+qtqt1ptvt\displaystyle b_t=\frac{1+q_t}{q_t}\frac1{p_t}v_t 两个单约束倍率相乘,一般不等价
Min Pacing,并联取小 bt=min⁡{1+qtqt,1pt}vt\displaystyle b_t=\min\left\{\frac{1+q_t}{q_t},\frac1{p_t}\right\}v_t 一般不等于联合公式

表中的当前乘子 pt,qtp_t,q_t 是根据已发生的投放反馈更新的,并不预先等于整个周期的最优乘子。不同算法使用同样的字母,也不代表它们每一步具有相同参数值。表中各式先按正乘子书写;预算乘子为零表示预算模块不施加单独的出价上限,ROS 乘子为零表示 ROS 模块不施加单独上限。在采用“支付不超过出价”的拍卖模型时,还需将出价限制在剩余预算之内,预算耗尽则停止参竞。论文式(3)、(6)、(7)

作为纯代数对照,假设 p=2,q=1,v=1p=2,q=1,v=1,且剩余预算充足,则联合、串联、取小三种出价分别为 2/3,1,1/22/3,1,1/2。该例只说明公式不恒等,不代表三种算法稳态时的效果排序。

论文重点研究控制模块的组合及整个投放周期的表现。Min Pacing 一般不会最大化联合方法对应的单次拉格朗日项,但在各次机会独立同分布、拍卖满足激励相容,以及论文规定的平滑性等条件下,二者相对于离线最优值的累计价值差距和累计 ROS 约束违反具有相近的增长上界。论文研究的串联算法在某些实例上则会产生随拍卖次数线性增长的价值损失或约束违反。这里比较的是整个周期的理论界,不是逐次出价相同,也不是每个时段的成本都达标。 论文 §3

因此,“分别控制两个参数”并不必然属于 Sequential Pacing。必须检查:参数进入出价的方式、各模块读取的反馈、更新规则和约束口径。两个参数分别更新后代入联合公式,与两个单约束倍率直接相乘,是不同的控制结构。

8. 模型与最优出价形式总表

以下均采用单次曝光口径。CC 表示总消耗,WW 表示总约束事件数,CPA/CPF 行中的 kk 是相应的目标单位成本。带 ∗* 的乘子表示已解出的最优对偶参数;各出价式以分母为正、二价分配规则及线性规划模型成立为前提,边界分配仍需满足原约束。

模型或特例 优化目标 约束 最优出价结构
BCB ∑ivixi\sum_i v_ix_i 总预算 vi/p∗\displaystyle v_i/p^*
单项平均成本约束 ∑ivixi\sum_i v_ix_i C≤CwWC\le C_wW vi/q∗+Cwwi\displaystyle v_i/q^*+C_ww_i
MCB ∑ivixi\sum_i v_ix_i 预算+一项平均成本 (vi+q∗Cwwi)/(p∗+q∗)\displaystyle (v_i+q^*C_ww_i)/(p^*+q^*)
MCB:转化+CPA/CPF 转化/询盘数量 预算+相同事件的单位成本 [(1+q∗k)/(p∗+q∗)]pCTRipCVRi\displaystyle [(1+q^*k)/(p^*+q^*)]pCTR_i pCVR_i
MCB:转化+CPC 转化数量 预算+点击成本 [pCTRipCVRi+q∗kCPCpCTRi]/(p∗+q∗)\displaystyle [pCTR_i pCVR_i+q^*k_{CPC}pCTR_i]/(p^*+q^*)
MCB:价值+ROS 总价值 预算+ROS 不低于 τ\tau [(1+q∗/τ)/(p∗+q∗)]vi\displaystyle [(1+q^*/\tau)/(p^*+q^*)]v_i
USCB,共享消耗 ∑ivixi\sum_i v_ix_i 预算+多项平均成本 ω0∗vi+∑jωj∗kjpij\displaystyle \omega_0^*v_i+\sum_j\omega_j^*k_jp_{ij}
USCB,不同成本口径 ∑ivixi\sum_i v_ix_i 预算+各自口径的成本约束 一般按式(29)选择;满足成本比例条件时用式(31)
剩余时段模型 剩余价值,累计价值为常数 剩余预算+累计成本余量 结构保留,乘子由剩余问题决定

BCB 是 MCB/USCB 去掉效果约束后的特例;单约束 MCB 是 USCB 的特例;归一化 Budget+ROS 又是单约束 MCB 中目标价值与约束价值相同的特例。Dual-Optimal、Sequential、Min Pacing 位于控制算法层,不应与这些业务模型并列为新的约束种类。

9. 模型图示与记号约定

以下图示从预算分配、约束组合和广告链路三个角度展示出价模型。阅读图示时,需同时检查事件口径、成本口径与统计周期。

9.1 BCB 的阈值与环境波动

图 2|BCB 的性价比阈值:vi/ci>λ∗v_i/c_i>\lambda^* 时竞得,低于阈值时放弃。

9.2 MCB 的双约束及最优出价

图 3|预算与单位成本约束共同决定 MCB 的出价策略。

图 4|MCB 的两个对偶变量与最优出价,对应式(12)。

9.3 USCB 的成本口径与约束记号

图 5|USCB 一般模型区分总预算成本 cic_i 与各约束成本 cijc_{ij},对应式(USCB-G)。

图 6|成本约束的简写形式;完整建模需要补全统计口径与全周期求和。

平均成本约束必须明确统计周期及分子、分母的汇总范围。图 6 的简写省略了这些信息,使用时应展开为图 5 的全周期求和形式。若按单项 Cixi/(CPIixi)C_ix_i/(CPI_ix_i) 理解,xix_i 会消去,无法表示流量组合的平均成本。规范表达是“总成本不超过目标成本乘总事件数”。

9.4 出价链路与投放周期

图 7|出价通过排序计价影响流量分配;价值预估、出价函数与拍卖规则分别承担不同职责。

图 8|流量逐次到达,累计价值与成本共同决定广告计划的投放效果。

参考资料

  1. Santiago R. Balseiro et al. A Field Guide for Pacing Budget and ROS Constraints. ICML 2024, PMLR 235:2607–2638。§2、§2.1 与 §3 分别给出模型、出价算法与理论分析;正式版 PDF。

  2. Xun Yang et al. Bid Optimization by Multivariable Control in Display Advertising. KDD 2019:1966–1974。§3.2 与 §4.1.3 给出离散 PID 及指数参数转换的结构。

整理日期:2026-10-12;修订日期:2026-10-28。

#计算广告 #广告出价 #约束优化 #拉格朗日对偶