Global incrementality readout, BH-corrected segment testing, and budget-policy simulation — real output from the source Python pipeline on the public Criteo Uplift dataset.
付费广告增量评估
基于 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。
n = 14,954 control / 85,046 treatment(Criteo 100k 行可复现样本)
| 指标 | Control | Treatment | 绝对提升 | 每 10 万增量 | Cohen's h | p-value |
|---|---|---|---|---|---|---|
| 访问 | 3.879% | 4.896% | 1.018% | 1,017.6 | 0.0498 | 6.72e-8 |
| 转化 | 0.201% | 0.293% | 0.092% | 92.2 | 0.0187 | 0.0488 |
response score(logistic regression 预测转化概率)预测谁更可能转化;uplift score(两模型法,p_treated − p_control)预测广告是否会改变这个用户的行为。付费投放更关心后者。
按 uplift score 排序
按 response score 排序
response 排名第 1 decile 的增量转化(1,064/10万)反而高于 uplift 排名第 1 decile(668/10万)——因为这个小样本存在噪声,但更能说明问题的是 response 排名第 2–4 decile 出现负增量(本来就会转化的用户,广告反而没有带来增量甚至更差),而 uplift 排名的深层 decile 大多在 0 附近或小幅正向波动。高 response 不等于高 uplift。
指标口径