Decision Focused Causal Learning for Direct Counterfactual Marketing Optimization:方法精读
基本信息
- 论文:Decision Focused Causal Learning for Direct Counterfactual Marketing Optimization
- 作者:Hao Zhou, Rongxiao Huang, Shaoming Li, Guibin Jiang, Jiaqi Zheng, Bing Cheng, Wei Lin
- Venue:KDD 2024,Proceedings of the 30th ACM SIGKDD Conference on Knowledge Discovery and Data Mining
- DOI:10.1145/3637528.3672353
- arXiv:2407.13664v1
- Pages:6368–6379
- 关键词:decision-focused learning, causal learning, counterfactual marketing optimization, multi-treatment budget allocation, MCKP, EOM, DPM, finite difference, Lagrangian duality
0. 一句话读法
DFCL 不是单纯把 uplift/CATE 模型训练得更准,而是把最终预算分配决策的收益直接写进训练目标。营销系统真正上线的是一个组合:
$$ \text{features}\rightarrow (\hat r_{ij},\hat c_{ij}) \rightarrow \text{MCKP / Lagrangian solver}\rightarrow z^*(B,\hat r,\hat c), $$
传统 two-stage 方法只优化第一段的预测误差,DFCL 试图优化整个链路的最终策略质量。它的关键处理是:
- 在 RCT 数据上,用按 treatment 样本量校正的 factual loss 代替不可观测的全量 counterfactual MSE;
- 把预算约束的 primal MCKP 转成 Lagrangian dual,避免每个预算都反复调用大型 0-1 优化器;
- 用 policy learning loss、maximum entropy regularized loss 或 improved finite-difference 给 decision loss 提供可训练梯度;
- 训练目标最终是 $L_{DFCL}=\alpha L_{PL}+L_{DL}$,用 $L_{PL}$ 保住预测基本面,用 $L_{DL}$ 让模型关注预算边界附近真正影响 allocation 的误差。
1. 论文定位:预测准确率和分配收益之间的错位
营销预算分配常被拆成两阶段:第一阶段用机器学习模型预测不同 treatment 下的 revenue / cost / uplift,第二阶段把预测值丢给运筹优化器求预算约束下的最优分配。这个流程的核心问题是目标不一致:模型训练时优化 MSE、Logloss 或 uplift ranking;业务上线时关心的是预算约束下的总 orders、GMV、revenue 或 ROI。
在 MCKP 里,预测误差的业务价值高度不均匀。一个不会改变 $z^*$ 的误差几乎不影响决策;一个发生在预算边界或 treatment choice 边界附近的小误差,可能让优化器选错折扣档位,产生明显收益损失。DFCL 的方法定位就是把这种“决策敏感性”纳入训练。
与普通 DFL 相比,营销场景多了三个困难:
| 难点 | 普通 DFL 常见假设 | 营销 DFCL 的处理 |
|---|---|---|
| 预算不确定 | 约束或 feasible set 固定 | 用多预算/多 $\lambda$ 学习不同预算下的策略 |
| 反事实不可观测 | 可以直接评价完整真实参数下的决策 | 依赖 RCT,用 inverse treatment count / propensity 构造无偏估计 |
| 优化器调用昂贵 | 下游 solver 可以反复调用 | 利用 Lagrangian dual 分解,或用 IFD 增量更新加速 |
2. 问题设定:Multi-Treatment Budget Allocation Problem
论文把营销问题定义为 Multi-Treatment Budget Allocation Problem, MTBAP。有 $N$ 个对象、$M$ 个 treatment。对象可以是用户、商家或商品;treatment 可以是折扣、券面额、补贴档位或 no treatment。
| 符号 | 含义 |
|---|---|
| $i\in[N]$ | 对象索引 |
| $j\in[M]$ | treatment / action 索引 |
| $x_i$ | 对象特征 |
| $t_i$ | RCT 中实际分配给对象 $i$ 的 treatment |
| $r_{ij}$ | 对象 $i$ 在 treatment $j$ 下的潜在 revenue / orders |
| $c_{ij}$ | 对象 $i$ 在 treatment $j$ 下的潜在 cost |
| $z_{ij}\in\{0,1\}$ | 是否给 $i$ 分配 treatment $j$ |
| $B$ | 总预算 |
| $\hat r_{ij},\hat c_{ij}$ | 模型预测的 revenue / cost |
| $\lambda$ | Lagrange multiplier,预算影子价格 |
MTBAP 的 primal 形式为:
$$ \begin{aligned} \max_z\quad & F(z,B)=\sum_i\sum_j z_{ij}r_{ij} \\ \text{s.t.}\quad & \sum_i\sum_j z_{ij}c_{ij}\le B, \\ & \sum_j z_{ij}=1,\quad \forall i, \\ & z_{ij}\in\{0,1\},\quad \forall i,j. \end{aligned} $$
如果 $r,c$ 已知,这是 multi-choice knapsack problem。营销系统里 $r,c$ 不可直接观测,线上只能输入模型预测 $\hat r,\hat c$,求:
$$ z^*(B,\hat r,\hat c)=\arg\max_z F(z,B,\hat r,\hat c). $$
DFCL 的训练目标必须围绕这个 $z^*$ 展开,而不是只围绕 $\hat r,\hat c$ 的逐点误差展开。
3. 反事实与 RCT:为什么 loss 要按 treatment count 校正
潜在结果框架下,每个对象只观测到 factual outcome:
$$ (x_i,t_i,r_{i t_i},c_{i t_i}), $$
未分配 treatment 的 $r_{ij},c_{ij}$ 都是 counterfactual。若完整 potential outcome surface 可观测,直接 MSE 为:
$$ L_{MSE}=\frac{1}{NM}\sum_i\sum_j\left[(r_{ij}-\hat r_{ij})^2+(c_{ij}-\hat c_{ij})^2\right]. $$
但真实训练集只能观测 $t_i$ 对应项。DFCL 在 RCT 条件下使用:
$$ L_{PL}=\frac{1}{M}\sum_i\frac{1}{N_{t_i}}\left[(r_{i t_i}-\hat r_{i t_i})^2+(c_{i t_i}-\hat c_{i t_i})^2\right]. $$
其中 $N_{t_i}$ 是 treatment $t_i$ 的样本数。Theorem 1 说明,在 randomized assignment 下,$L_{PL}$ 与完整 $L_{MSE}$ 在期望意义上等价。这个结论非常依赖 RCT:如果日志来自强选择偏差的线上策略,单靠这个权重不能消除 confounding。
4. Decision Loss:用真实收益评价预测诱导出的策略
给定 $\hat r,\hat c$ 后,优化器产生 $z^*(B,\hat r,\hat c)$。如果完整真实 $r$ 可知,预算 $B$ 下的 decision loss 可写成:
$$ L_{DL}(B,r,c,\hat r,\hat c)= -\sum_i\sum_j r_{ij}z^*_{ij}(B,\hat r,\hat c). $$
负号表示最大化 revenue 等价于最小化 loss。由于预算在现实中波动,论文把多预算下的目标合并:
$$ L_{DL}(r,c,\hat r,\hat c)=\int_0^\infty L_{DL}(B,r,c,\hat r,\hat c)dB, $$
实现时可以用离散预算集合替代积分:
$$ L_{DL}=\sum_B L_{DL}(B). $$
最终训练目标为:
$$ L_{DFCL}=\alpha L_{PL}+L_{DL}. $$
$\alpha$ 控制 prediction loss 与 decision loss 的权衡。$\alpha$ 太小会让模型过度围绕策略边界优化,可能牺牲基础泛化;$\alpha$ 太大则退化回普通 two-stage 预测模型。
5. Lagrangian dual:把预算问题改写成每个对象的打分选择
primal MCKP 难以频繁求解,DFCL 使用 Lagrangian relaxation。对预算约束引入 $\lambda\ge 0$:
$$ H(z,\lambda,B,r,c)=\lambda B+\sum_i\sum_j(r_{ij}-\lambda c_{ij})z_{ij}. $$
给定 $\lambda$ 后,对象之间解耦,每个对象只需要选择:
$$ z^d_{ij}(\lambda,r,c)=\mathbf{1}\left\{j=\arg\max_k(r_{ik}-\lambda c_{ik})\right\}. $$
$\lambda$ 可理解为预算影子价格。预算越紧,$\lambda$ 越大,cost 惩罚越强;预算越宽,$\lambda$ 越小,模型更愿意选择高成本高收益 treatment。
Theorem 2 的作用是建立 primal 与 dual 的关系:在大规模营销中,单个对象最大收益 $\max_{ij}r_{ij}$ 相对总体最优值 $F(z^*,B,r,c)$ 很小,因此 Lagrangian/greedy 近似的比例接近 1:
$$ \rho \ge 1-\frac{\max_{ij}r_{ij}}{F(z^*,B,r,c)}\approx 1. $$
这使 dual decision loss 成为可接受的训练替代目标。
6. 三种梯度路径:PLL、MER、IFD
6.1 Policy Learning Loss, PLL
dual 下的 hard decision 是 indicator,不可微:
$$ z^d_{ij}(\lambda,\hat r,\hat c)=\mathbf{1}\left\{j=\arg\max_k(\hat r_{ik}-\lambda\hat c_{ik})\right\}. $$
PLL 用 softmax 平滑这个选择:
$$ p_{ij}(\lambda,\hat r, \hat c)=\frac{\exp(\hat r_{ij}-\lambda\hat c_{ij})}{\sum_k\exp(\hat r_{ik}-\lambda\hat c_{ik})}. $$
若完整 $r,c$ 可知,policy learning loss 等价于最大化 soft policy 的期望 reward。由于训练集中只有 factual outcome,DFCL 使用 RCT 校正后的 surrogate:
$$ L_{PLL}= -\sum_\lambda\sum_i\frac{N}{N_{t_i}}(r_{i t_i}-\lambda c_{i t_i}) \frac{\exp(\hat r_{i t_i}-\lambda\hat c_{i t_i})}{\sum_j\exp(\hat r_{ij}-\lambda\hat c_{ij})}. $$
直观上,若某个 factual treatment 在真实 $r-\lambda c$ 下有高 reward,模型应提高它在 $\hat r-\lambda\hat c$ softmax 下的概率。
6.2 Maximum Entropy Regularized Loss, MER
MER 从优化问题本身加入 entropy regularizer,并放松 $z\in\{0,1\}$ 到 $z\in[0,1]$:
$$ \max_z\sum_i\sum_j(\hat r_{ij}-\lambda\hat c_{ij})z_{ij}-\tau\sum_i\sum_j z_{ij}\ln z_{ij}, \quad \sum_j z_{ij}=1. $$
解具有 temperature softmax 形式:
$$ z^d_{ij}=\frac{\exp[(\hat r_{ij}-\lambda\hat c_{ij})/\tau]}{\sum_k\exp[(\hat r_{ik}-\lambda\hat c_{ik})/\tau]}. $$
$\tau$ 控制平滑程度。$\tau$ 大时选择更软,梯度更平滑;$\tau$ 小时接近 hard argmax,但训练更敏感。
6.3 Improved Finite-Difference, IFD
IFD 走另一条路:用 EOM 估计策略收益,再用 finite difference 估计 decision loss 对 $\hat r, \hat c$ 的梯度。普通黑盒 finite difference 需要逐维扰动并反复调用 primal solver,百万级样本下成本很高。
论文的改进点是利用 dual decomposition:给定 $\lambda$ 时,每个对象独立决策。对每个样本,先计算使 treatment choice 改变的最小扰动,再只修正 perturbation 后改变的部分,不必完整重算所有策略收益。因此 IFD 保留黑盒估计的直接性,同时把计算从“频繁求解 primal MCKP”降到更可控的增量更新。
7. 离线实验:预测指标不等于决策质量
7.1 数据集
| 数据集 | 类型 | 规模与字段 | 用途 |
|---|---|---|---|
| CRITEO-UPLIFT v2 | public binary treatment RCT | 13.9M samples,12 features,treatment indicator,visit/conversion labels | 用 AUCC 评估二元 treatment 下的决策质量 |
| Meituan Marketing data | 美团折扣 RCT | 2.8M samples,107 features,5 个折扣 treatment:$T\in\{0,5,10,15,20\}$,daily cost/orders | 用 EOM 评估多 treatment 预算分配 |
7.2 Baselines
| 方法 | 含义 |
|---|---|
| TSM-SL | two-stage + S-Learner,先预测 response,再求 MCKP |
| TSM-CF | two-stage + Causal Forest |
| DPM | Direct Policy Matrix / decision factor 方向的 surrogate 方法 |
| CN | 带 treatment-outcome monotonic constraint 的 constrained network |
| CN+DFCL-PL | 在 CN 上加入 DFCL policy learning loss |
| DFCL-PL | 使用 policy learning loss 的 DFCL |
| DFCL-MER | 使用 maximum entropy regularized loss 的 DFCL |
| DFCL-IFD | 使用 improved finite difference 的 DFCL |
7.3 原始实验表与结论
Table 1:common metrics。 two-stage 方法在普通预测指标上不差,甚至可能更好;这正好说明预测指标和决策指标不一致。

Table 2:CRITEO AUCC。 DFCL-IFD 达到 $0.7859\pm0.0021$,相对 TSM-SL 提升 $+3.94\%$;DFCL-PL / MER 与 DPM 接近或略低于 IFD。

Figure 1 / Table 3:Marketing data EOM。 在美团多 treatment 数据上,DFCL 系列在不同 per-capita budget 下整体优于 baseline。Table 3 的 improvement 行显示:CN 为 $0.16\%$,CN+DFCL-PL 为 $1.26\%$,DFCL-PL 为 $1.98\%$,DFCL-MER 为 $2.06\%$,DFCL-IFD 为 $2.85\%$。


这个结果的读法是:DFCL 不一定让 MSE / Logloss 最好,但能让优化器在预算约束下拿到更好的策略收益。对营销系统而言,这比全局平均预测误差更接近上线目标。
8. Ablation:$\alpha$ 与 $\lambda$ 决定训练落点
论文做了两个关键敏感性实验。

8.1 Prediction loss weight $\alpha$
$\alpha$ 增大时,prediction loss 在训练目标中权重更高。实验显示,中等范围内加入 $L_{PL}$ 不会伤害决策表现,还能提升泛化稳定性;但 $\alpha$ 太大时,训练会退回普通 two-stage 方法,decision loss 的作用被压掉。
工程含义:$\alpha$ 不是装饰性超参,应按离线 EOM / AUCC 或在线小流量指标调参,而不是只看 validation MSE。
8.2 Lagrange multiplier $\lambda$
不同 $\lambda$ 对应不同预算区间。小 $\lambda$ 更偏高预算策略,大 $\lambda$ 更偏低预算策略。论文比较了 $\{0.1\}$、$\{0.1,0.5\}$、$\{0.1,0.5,1.0\}$,发现多 $\lambda$ 训练能更好平衡不同 budget 下的表现。
工程含义:如果线上预算每天波动,单个 $\lambda$ 容易过拟合某个预算区间;更稳妥的做法是从历史预算分布中采样多个 $\lambda$ 或预算点进行训练。
9. 在线 A/B:310K 商家、四周折扣实验
线上实验部署在美团折扣场景:310K online shops,每天随机分成 G-DFCL、G-DPM、G-TSM 三组。treatment 为 $\{0,5,10,15,20\}$ 折扣档位,目标是在预算约束下最大化 orders。
部署流程是:
- 每天 campaign 开始前,DFCL 模型预测各商家不同折扣下的 outcome / cost;
- 离线资源分配优化器根据预算与业务约束分配折扣;
- 用户访问商家并看到折扣,产生 orders / cost;
- 历史随机数据与优化器继续用于下一轮模型训练。

Appendix Table 4 给出四周 normalized orders 与置信区间。DFCL 平均相对 TSM-SL 提升 $2.17\%$,相对 DPM 提升约 $0.85\%$。

线上结果比离线更重要:它说明 decision-focused training 的收益不只是 counterfactual offline metric 上的曲线改善,也能转化为真实折扣系统中的 orders lift。
10. 复现与落地重点
10.1 必要数据字段
| 字段 | 说明 |
|---|---|
| stable unit id | 用户/商家/商品等对象 ID,需能跨天对齐特征与 outcome |
| treatment id | 折扣/券/补贴档位,必须包含 no-treatment 或低成本档位 |
| known assignment probability | RCT 或 exploration policy 的 $p_t$ / treatment count |
| factual revenue / orders | 与业务目标一致的 outcome |
| factual cost | 与预算口径一致的成本,避免券发放成本、核销成本、补贴成本混用 |
| context features | 决策前可用特征,不能泄露 treatment 后变量 |
| budget and constraints | 每日预算、品类/商家/人群约束、风控规则 |
10.2 训练与评估顺序
- 用 RCT 数据训练 two-stage baseline,确认 $L_{PL}$、EOM、AUCC 或业务 offline evaluator 可跑通;
- 加入 DFCL-PL 或 DFCL-MER,先用小规模样本验证梯度、温度和 $\lambda$ 设置;
- 对大规模多 treatment 场景,评估 IFD 是否带来显著训练速度和策略收益提升;
- 用多个预算点或多个 $\lambda$ 做 validation,避免只优化单一预算;
- 离线通过后进入小流量 A/B,重点看 orders / GMV / incremental profit / cost overrun / 用户体验指标。
10.3 常见失败模式
| 风险 | 表现 | 排查方向 |
|---|---|---|
| RCT 不干净 | offline EOM 与 online A/B 不一致 | assignment probability、实验污染、干预跨组影响 |
| cost 口径错 | budget 满足但财务成本异常 | coupon face value、核销成本、补贴结算周期 |
| $\lambda$ 覆盖不足 | 某些预算区间表现差 | 从历史预算分布采样多 $\lambda$ |
| $\alpha$ 过大 | 指标接近 two-stage | 降低 prediction loss 权重,观察 EOM/AUCC |
| $\alpha$ 过小 | 预测面不稳定,线上策略抖动 | 加强 $L_{PL}$ 或加 monotonic / smoothness 约束 |
| interference | 折扣影响竞争商家或用户跨店选择 | cluster randomization、市场级实验、延迟反馈建模 |
11. 与 Bi-DFCL 的关系
DFCL 是这一系列的基础版本:用 RCT 训练、用 decision loss 对齐 ML 与 OR、重点解决 prediction-decision misalignment。Bi-DFCL 则进一步处理 DFCL 的两个瓶颈:
| 维度 | DFCL | Bi-DFCL |
|---|---|---|
| 训练数据 | 主要依赖 RCT | RCT + 大量 OBS |
| 核心矛盾 | 预测 loss 与决策收益不一致 | RCT 低偏高方差,OBS 高偏低方差 |
| 训练结构 | 单层 $L_{PL}+L_{DL}$ | 上层 RCT decision loss 训练 Bridge,下层 OBS prediction loss 训练 Target |
| 预算目标 | 多预算 / 多 $\lambda$ dual loss | 更强调给定预算下的 primal decision loss |
| 上线模型 | causal model + optimizer | Target + optimizer,Bridge 训练期使用 |
因此,DFCL 更像“让反事实预测服务于分配决策”的第一步;Bi-DFCL 是“如何用小 RCT 指导大 OBS 训练”的第二步。
12. 落地判断
DFCL 的价值在于把 coupon / discount / subsidy 个性化从“预测任务”重新定义为“预测驱动的预算分配任务”。它特别适合以下条件同时成立的场景:
- treatment 档位有限且明确;
- 每个对象只能选一个 treatment;
- 总预算或 ROI 约束是真正的上线约束;
- 存在 RCT / randomized exploration 数据;
- 可以构建可信的 EOM / AUCC / policy evaluator;
- 线上允许按优化器输出做小流量 A/B。
不适合直接套用的场景也很明确:历史日志严重选择偏差且没有 propensity,treatment 之间存在强干扰,成本或 outcome 延迟长且归因不清,或上线决策还包含大量无法形式化的业务规则。此时 DFCL 的 decision loss 可能优化的是有偏 evaluator,而不是实际业务收益。
最终读法:DFCL 的贡献不是提出一个更复杂的 uplift 网络,而是给出了一个从 RCT counterfactual evaluation 到 budget-constrained optimizer 的训练闭环。对优惠券个性化而言,它把“模型指标好不好”推进到“模型输出能不能让预算优化器选得更好”。