Advertising Uplift & Budget Allocation

Global incrementality readout, BH-corrected segment testing, and budget-policy simulation — real output from the source Python pipeline on the public Criteo Uplift dataset.

付费广告增量评估

广告 Uplift 与预算分配分析

基于 Criteo 公开数据集的真实增量分析:全局读数、BH 校正分层检验、预算策略模拟——全部来自实际跑源项目 Python 流水线产生的结果。

核心问题

广告预算应该投给最可能转化的人,还是最可能因广告改变行为的人?

全局访问 uplift

1.018%

每 10 万用户约 1018 个增量访问,p = 6.72e-8

全局转化 uplift

0.092%

每 10 万用户约 92 个增量转化,p = 0.0488

Top uplift decile

0.668%

按 uplift score 排名前 10% 用户的转化提升

Response 模型 AUC

0.9538

Logistic Regression,75/25 分层切分测试集上的 AUC

按 uplift score 定向前 30% 用户,每 10 万用户的增量转化是随机定向同样人数的 5.6× 倍(46.2 vs 8.2 每 10 万,同样的预算覆盖同样多的人)。这是同一份 policy_simulation 数据算出来的最直接的一句话结论:定向依据从「谁最可能买」换成「广告是否真的改变了谁」,同预算下增量效果差 5.6 倍。

0.9538 的 AUC 对这类任务来说异常高,需要打个问号,不能直接当作「模型很好」来用。核实后发现:特征 f1 只有 16 个不同取值,其中 98.8% 的行是同一个值——接近常数特征。高 AUC 不代表好的概率校准,也可能是数据本身的某种规律性造成的,而非模型真的学到了强信号。对照组样本量也只有约 1.5 万,进一步限制了双模型法里 control 模型的精度;更严谨的做法是尝试 X-learner 或 R-learner,并在部署前检查校准曲线,而不只是看 AUC。

1. 全局增量读数

n = 14,954 control / 85,046 treatment(Criteo 100k 行可复现样本)

指标ControlTreatment绝对提升每 10 万增量Cohen's hp-value
访问3.879%4.896%1.018%1,017.60.04986.72e-8
转化0.201%0.293%0.092%92.20.01870.0488

2. Uplift 排名 vs Response 排名

response score(logistic regression 预测转化概率)预测谁更可能转化;uplift score(两模型法,p_treated − p_control)预测广告是否会改变这个用户的行为。付费投放更关心后者。

按 uplift score 排序

D1
+668
D2
+162
D3
+94
D4
+0
D5
+0
D6
+94
D7
-211
D8
-223
D9
-128
D10
+142

按 response score 排序

D1
+1064
D2
-86
D3
-255
D4
-274
D5
+0
D6
+0
D7
+0
D8
+0
D9
+0
D10
+48

response 排名第 1 decile 的增量转化(1,064/10万)反而高于 uplift 排名第 1 decile(668/10万)——因为这个小样本存在噪声,但更能说明问题的是 response 排名第 2–4 decile 出现负增量(本来就会转化的用户,广告反而没有带来增量甚至更差),而 uplift 排名的深层 decile 大多在 0 附近或小幅正向波动。高 response 不等于高 uplift。

指标口径

  • visit:曝光后是否访问了广告主网站(0/1,数据集原始字段)
  • conversion:曝光后是否发生转化(0/1),本 demo 的主指标
  • treatment:是否被随机分入广告曝光组(1)还是 holdout 组(0)——随机分配,不是用户自选
  • exposure:treatment=1 的用户中,广告是否真正被展示(存在 treatment 但未 exposure 的情况)——本 demo 按 treatment 分组,未单独拆分 exposure 口径
  • 样本范围:完整 Criteo 数据集约 2500 万行,本 demo 用 10 万行可复现随机样本(下载/复现方式见方法论)
  • f0-f11:数据集提供的匿名稠密特征,无业务含义可解释,仅用于建模与分层