水熊虫
水熊虫
不认命,就拼命!
262文章 52分类

营销补贴--DFCL(基于决策lift模型)

因果推断与决策聚焦学习(DFCL)深度笔记

本文档记录了关于因果推断、决策质量、Qini曲线与DFCL(Decision Focused Causal Learning)的完整思考链路,聚焦于一个核心命题:如何从“预测精度”转向“决策质量”

1. 起点:因果推断中的排序能力之争

核心问题

在因果推断驱动的营销决策中,真正影响决策质量的,是“多个个体之间的排序能力”,还是“单个个体在不同Treatment下的排序能力”?

结论

在绝大多数商业场景下,横向排序(多个体之间)远重要于纵向排序(单个体多策略)

排序类型 定义 可行性
横向排序 同一策略下,谁能带来最高增量 ✅ 可行,可用Qini曲线评估
纵向排序 同一人,策略A好还是策略B好 ❌ 反事实缺失,几乎不可识别

实操含义

决策 = 选对人(横向排序),而不是算准每个人内心的偏好(纵向排序)。

2. Qini曲线:衡量横向排序能力的黄金标准

Qini曲线的作用

衡量模型在单一策略(Treatment vs Control)下的排序能力。

画法核心步骤

  1. 在RCT验证集上,按模型预测的CATE(增量)从高到低排序。
  2. 将数据分成K个等频桶。
  3. 计算前k个桶的累计增益(Cumulative Gain)
  4. 横轴为累计人群比例,纵轴为累计增益。

累计增益公式

$$ \text{Cumulative Gain}_k = \left( \frac{\sum_{i \in \text{Top}_k} Y_i W_i}{\sum W_i} - \frac{\sum_{i \in \text{Top}_k} Y_i (1-W_i)}{\sum (1-W_i)} \right) \times \sum_{i \in \text{Top}_k} W_i $$

其中: - $W_i$:是否接受Treatment(1=是,0=否) - $N_{T,k}$:前k个桶中Treatment组的样本数 - $N_{C,k}$:前k个桶中Control组的样本数

关键注意

  • Qini曲线必须基于RCT数据绘制,否则观测数据中的选择偏差会导致虚假增益。 -$( N_{C,k} )$ 是“按模型预测排序后,排名前k%的桶内Control组样本数”,而非全量随机样本。
  • AUUC(Qini曲线下面积)用于量化模型排序能力,AUUC越高越好。

3. 从Qini到DFCL:为什么要更进一步?

Qini的局限

Qini只解决 “单策略下谁更受益” 的问题,无法处理: - 多策略并存(3元券 vs 5元券) - 预算动态变化 - 预测误差在决策边界处的放大效应

两阶段法的根本缺陷

传统“预测(ML)→ 优化(OR)”两阶段法存在预测-决策脱节

阶段 目标 问题
第一阶段(ML) 最小化预测误差(如MSE) 不关心误差在决策边界处的分布
第二阶段(OR) 基于预测值做最优分配 边界处的微小误差会被放大为重大决策失误

核心矛盾:预测精度 ≠ 决策质量。MSE最小的模型,不一定是决策最优的模型。

4. DFCL的核心思想

一句话概括

DFCL把“分配决策的质量”直接作为模型训练的损失函数,让模型为决策服务,而非为预测服务。

与传统方法的对比

维度 传统两阶段法 DFCL
优化目标 最小化预测误差(MSE) 最小化决策损失(决策质量的负值)
训练信号 所有样本均匀贡献梯度 决策边界样本获得更高梯度权重
误差容忍 追求绝对精度 容忍集体高估/低估,只要排序不变
输出 预测值 $\hat{r}_{ij}$ 预测值 $\hat{r}_{ij}$(但训练方式不同)

核心创新

  • 用RCT数据作为“真实世界裁判”:OR方案套回RCT真实结果,评估决策质量。
  • 通过拉格朗日对偶加速OR求解:将训练时间从小时级降至秒级/轮。
  • 差异化梯度分配:决策边界附近的样本获得更大梯度信号。

5. DFCL的训练过程详解

数据准备

数据类型 用途 关键特征
RCT数据 计算决策损失的“裁判” 无偏,但稀少
观测数据 模型主要学习素材 有偏,但量大

每轮迭代流程

  1. Batch构造:从RCT数据中分层采样,确保Batch内同时包含多种策略的样本。
  2. 模型前向:预测每个用户在各策略下的收益 $\hat{r}_{ij}$。
  3. OR求解:在模拟预算B下,基于 $\hat{r}$ 求解最优分配方案 $z^*$。
  4. 计算预测损失:$\mathcal{L}_{PL} = \frac{1}{N} \sum (\hat{r}_{i, T_i} - R_{i, T_i})^2$
  5. 计算决策损失:$\mathcal{L}_{DL} = - \sum R_{i, z^*_i}$(用RCT真实收益验货)
  6. 总损失:$\mathcal{L}_{total} = \alpha \cdot \mathcal{L}_{PL} + \mathcal{L}_{DL}$
  7. 反向传播:梯度差异化分配,决策边界样本获得更强信号
  8. 参数更新:模型向“提升决策质量”方向进化

关键机制:决策损失的差异化分配

决策损失不是平均分配给所有样本,而是通过梯度回传按边际贡献分配: - 被OR选中但真实收益低的样本 → 获得强负梯度信号 - 未被选中但真实收益高的样本 → 获得强正梯度信号 - 对决策边界无影响的样本 → 梯度接近0

6. 关于预算的关键洞察

为什么预算在DFCL中如此重要?

在现实营销场景中,预算不仅决定“切到第几个人”,还决定“谁应该排第一”

预算水平 最优策略 原因
低预算 优先增量ROI最高的用户(如低消费敏感人群) 每元投入回报最大化
高预算 优先绝对贡献最高的用户(如高消费人群) 整体收益最大化

结论

最优排序本身是预算的函数。预算变化不是简单“往后切”,而是“排序可能完全翻转”。DFCL通过把预算作为输入变量,让模型学会在不同预算下自动调整排序逻辑。

7. 边际效应递减与DFCL

一致性

DFCL完全符合边际效应递减规律。

关键区别

  • 单策略场景:预算增加 = 切到增量更低的人(单一递减曲线)。
  • 多策略场景:预算增加 = 在不同策略/用户的递减曲线之间切换,把资源从边际收益已低的曲线上,转移到边际收益尚高的曲线上。

核心概念:等边际原理

最优状态下,每一元预算投在任何地方带来的边际收益应该相等。DFCL通过训练模型,让OR能在任意预算下找到这个“等边际”的分配方案。

8. 为什么“完美预测”解决不了问题?

你的直觉

如果我能把每个用户在所有策略下的ROI都学准,两阶段法就是最优的。

为什么不可能

障碍 说明
反事实缺失 每个用户只有一个策略下的真实结果,其他永远不可观测
误差分布不均 决策边界处的样本(通常是长尾用户)误差最大
数学次优性 argmax(期望) ≠ 期望(argmax),两阶段法在数学上不是全局最优

关键认识

决策只依赖预测值的“相对大小”,而非“绝对大小”。 模型优化的天然倾向是缩小绝对误差(MSE),而非保证相对排序正确。

9. DFCL的终极策略:容忍集体误差,保证相对排序

核心洞察

如果模型对所有用户集体高估或集体低估,只要高估/低估的幅度均匀,排序不变,决策就不变。

DFCL的策略

  • 允许整体误差变大,只要误差方向在所有样本上保持一致。
  • 差异化分配梯度信号:决策边界处样本获得更高权重,远离边界的样本可以“不求甚解”。

对比

模型 MSE 排序正确率 决策质量
传统MSE模型 小(0.01) 可能低(60%)
DFCL模型 大(0.625) 高(100%) 最优

10. 关键概念速查表

概念 含义
横向排序 同一策略下,多个人谁增量最高
纵向排序 同一个人,多种策略下哪种最优
Qini曲线 衡量单策略排序能力的可视化工具
AUUC Qini曲线下面积,量化排序能力
CATE 条件平均处理效应,个体的增量估计
RCT数据 随机对照试验数据,无偏因果推断的黄金标准
两阶段法 先ML预测,再OR优化的传统范式
DFCL 决策聚焦因果学习,用决策质量作为训练目标
决策损失 OR方案套回RCT真实结果的负收益
等边际原理 最优分配下,每元预算的边际收益相等
拉格朗日对偶 加速OR求解的数学工具

11. 总结:从“预测驱动”到“决策驱动”的范式转移

传统范式 DFCL范式
优化目标:最小化MSE 优化目标:最小化决策损失
关心所有样本的预测精度 只关心决策边界处的相对排序
预测误差越大,模型越差 集体误差不影响决策,就不惩罚
两阶段隔离 端到端联合优化
Qini评估排序能力 决策损失直接优化决策质量

最终结论:在因果推断驱动的决策优化中,“做出好决策”远比“预测得准”重要。DFCL通过把决策质量融入训练目标,实现了从“为预测而学习”到“为决策而学习”的范式转移,是因果推断在工业界落地的关键突破。

参考文献

  • DFCL: Decision Focused Causal Learning for Direct Counterfactual Marketing Optimization (KDD 2024)
  • Bi-DFCL: 后续工作,解决有偏观测数据与无偏RCT数据结合问题 (NeurIPS 2025)
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×