Uplift深度模型简易整理

发布时间:2026/8/22 15:29:15
Uplift深度模型简易整理 因果推断中的变量关系图画的有点问题仅对T影响 与 对T和Y均无影响写反了4种变量对T是否施加治疗有影响对Y实际结果有影响对T与Y都有影响Confounder和对T和Y都无影响模型评估指标先定义四类人群给补-买不给补-买给补-不买不给补-不买Uplift Curve前x%uplift得分的人群中给补 中 买 的比例 - 不给补 中 买 的比例不在乎模型给了多少人补给补数量不重要只在乎 给补了一定会买不给补一定不能买钱花的准回答的是“在哪个分段我的补贴效率最高钱花得最准”—— 适合预算极其有限必须精准打击的场景Qini Curve前x%uplift得分的人群中给补 中 买 的人数 - 不给补 中 买 的人数给补和不给补的采样总人数需要拉齐不“太”在乎模型浪费了多少补给补-不买的数量不重要但不给补-买还是要看的只在乎花钱带来的绝对增量够不够大回答的是“切到哪个分段我的营销活动能为公司带来最大的总GMV增量规模最大”—— 适合有一定预算需要冲GMV或总用户净增量的场景TAR(CFR)Net 2016深度因果开山鼻祖模型结构优化目标简介共享representation layer两个head各自预测treatment前后的结果IPM模块用来收集隶属于treatment组数据的embedding与control组的表征并要求两者分布一致来让共享的表征层不要学习“由于confounder存在导致的数据偏置”带来的selection bias如使用OBS观测数据病情严重程度对进入T组和C组本身有影响对于治疗结果也有影响对于纯randomized controlled trial(RCT)下可以视为不存在这种bias但是其实采样多少都会有点儿不过应该不严重就是了具体有没有用要看消融了DragonNet 2019模型结构优化目标简介与CFR网络不同点在于CFR希望通过强力拉齐representation layer的输出来让拉齐T组与C组让confounder对采样本身带来的bias变小而DragonNet则是认为预测Treatment效果对uplift的表现 所需要的特征完全等价于 预测样本是否愿意接受 treatment 的特征既 仅保留 confounder与instrument variable而不在意precision variable所以dragonnet有效的一个大前提是样本对是否进入treatment有明显的倾向性与CFR相同纯RCT下DragonNet毫无意义因为不存在倾向性至此可以举一个简化的例子对于定价冒泡的uplift预估任务treatment——给折扣A(treatment)与不给折扣A(control)result——呼叫gmv不呼叫0CFRNet在这里的假设是一些外部条件可能会影响我们给折扣或不给折扣的人群这明显是错误的不可用DragonNet在这里的假设是预测result的特征完全样本是否被给折扣的特征有关这也是错的不可用但如果换一种用法让DragonNet的倾向性得分预估用户在treatment下发单的倾向性...或许有用吧但是与DragonNet本身的理论证明是不同的需要自行验证相当于多任务学习换辅助任务了认为其他的任务有助于训练FlexTENet 2021模型结构优化目标损失函数简介非常直观暴力地的模型结构调优。中间加了一个shared subspace的head用来学习两个不同private subspace的head的共享知识并通过loss函数要求每个head与shared-head的参数要尽可能差异大。别的没啥可说的了SNet 2021略模型结构优化目标各个目标的加和简介看着挺无耻的。就说这么多模型用哪个结构更好呢不如全融一起平均性能会更好...纯灌水的感觉EUEN 2021EUENExplicit Uplift Effect Network专门用于广告/资源投放的场景设计的模型结构优化目标J和L分别是给定Treatment与非Treatment的数据的预测与真值的差距简介其实就是没有对数据debias的CFRNet也有一丢丢ESMM的思路利用全量数据来训练Uc和Ut然后最终要的是算准upliftDRNet 2020模型结构优化目标损失函数简介面对treatment同时具有多种并且还包含量化dosage的情况要预估大量的counterfactual。方法也很暴力一个shared-representataion layers每个treatment对应一个head每种treatment的每个dosage阶段也各自对应一个头最终头的数量非常多直接暴力学习然后加了一个CFR的数据debias的RS约束毕竟也是医学起源还是需要数据纠偏的VCNet 2021模型结构优化目标前者是端到端loss后者是负对数的倾向性得分简介DRNet的暴力拆多头导致dosage的连续性成了问题。VCNet提出了一种“可变参数模型结构”让所有的剂量头其实是图中的t全都捏在一个model里面。具体做法是将表征层之后的predict head model通过“样条基变换”通过公式构造一个自定义的f(t)来与predict head model相乘对模型参数进行基于t的变化此外还有一个类似DragonNet的倾向性得分头用来给特征提纯但难点在于如何预估剂量的倾向性其实就是做了个插值来算也不是很重要..略过DECSN 2022KDD模型结构优化目标ESNX-Net:具体解释在简介中画了下划线简介依然是面对OBS数据中样本数据本身采样偏差、以及数量量级差异大的问题。其实对于长期在线运行的策略这种OBS数据通常是更常见的RCT数据是很珍贵的。ESN模块中也借鉴了一点ESMM的“全空间建模”思想同时预测样本的倾向性prop以及实验组和对照组的结果prop*val来缓解数据量级差异的问题同时也像DragonNet一样让模型表征层将特征聚焦在对T有影响的confunder上不过这一点或许是次要的X-network利用x-learner的思路TR学习T组结果CR学习C组结果然后一个uplift模块PTE预测uplift然后再让整体模型一起学习确保CR预测的T组数据uplift能够接近TTR预测的C组数据-uplift能够接近C来让模型完全利用数据进行学习并纠偏介绍x-learner用control模型预测treatment组数据的control结果treatment模型预测control组数据的treatment结果然后再用俩模型来拟合这俩值与原本真值的差异来减小样本空间偏差与数据偏差的问题是个面向OBS的很不错的“技术”工作理论、工作量、复杂度都很高但是不好说会不会是技术PR[狗头]EFIN 2023KDD模型结构优化目标三个损失分别是native valtreatment val对齐损失简介面对的问题是 treatment特征利用以及特征交互利用不充分所以主要工作在于特征embedding建设与交叉稀疏特征使用lookup来取得并训练embeddingself-attention不做赘述treatment-aware attention的Q是treatment featuresKV是基础featuresintervention做了用于面对OBS数据差异的t与c的磨平RERUM 2024KDD模型结构优化目标T和C各自的准确率4个pair排序损失一个list排序损失简介需要假设数据为RCT数据面向连续性收益Outcome具有长尾分布效应难以处理的问题以及更注重高响应值用户、忽略低响应值用户的问题。主要做了一系列损失函数的改进没有新的模型结构设计对于这俩问题由于MSE对异常值非常敏感容易被海量的0值冲垮所以C和T的准确性损失函数使用ZLIN loss替代MSE把uplift问题当做排序问题来处理设计了大量的排序类优化目标基于样本对的组内保序(c对ct对t)任取实际上取有限个即可两个实验组或对照组的样本真值更高的那个样本预估值必须也更高 ——这个目标很好有助于模型训准基于样本对的组间保序(c对tt对c)任取一对实验组对照组的样本t值差(c组数据估值-t组数据真值)与c值差(c组数据真值-t组数据估值)要尽量同向直观来说两个跨组数据control值越高的那个treatmenet值也要越高 ——这个目标感觉可能会有点小问题就是c真值高的样本t估值不一定就必须要高可能就没什么弹性呢或许是作为个正则使用吧基于list的排序作者做了一个真实uplift的分数列表略复杂强要求RCT数据用其他组的数据真值估算本组用户的估值然后让每个batch内数据的预估的uplift排序概率与真实uplift排序保序总体来说2和3这部分的优化目标的假设感觉有点绝对不一定适合所有的问题ZLIN loss和组内保序还是值得借鉴的介绍ZLIN loss CrossEntrophy alpha * lognormx; μ, σ)是谷歌2019年用于LTV设计的预估模型与优化方法模型输出三个值p,μ,σp预估价值不为0的概率u和σ是对数正态分布的均值和方差用来预估非0部分数据的分布情况可以用极大似然估计让x尽量服从u和σ构成的分布。为什么使用对数正态分布从直观来理解的话参考log函数图像对数函数通过让0~1之间的y值快速变化让1~INF之间的数慢速累积最终让log符合正态分布的形式取得一种可以描述右偏长尾数据的分布UMLC 2025KDD模型结构优化目标Lreg response回归mse loss 1e-4 * LupschitzRegression的模型正则这里的response就是control组数据的真实结果值wbatch是该组中 使用treatment变量attention的结果e的预测结果 与 不用e的预测结果的差这个差越大越重点学习μ0是通过ef直接control预测μ1是通过ef直接treatment增量预测~μ1~是通过ef加e的增量预测最后的e注意力加权的值、用于放大treatment变量影响简介面对 在使用RCT数据时原始的“上下文类特征”可能会导致T组与C组的数据分布偏移 的问题首先通过训练让一个回归模型预估control组数据的真实response的方式来训练把context降维的能力让模型学习到上下文中与response高度相关、而非与treatment相关的特征可以理解为去除confounder对treatment的影响然后利用低纬度特征进行K聚类每个context特征会对应某个类g之后对数据再做整合把用户特征、g、treatment相同的数据进行合并新的数据的y (yi yj)/2。通过这种给context降维聚类的方法来一定程度降低不同context特征与T组C组数据的潜在联系其次设计了一个交互模型输入是用户特征embcontext分组的emb以及treatment变量。里面有两个交互模块分别是user-context的co-attention模块输出位ef以及treatment的交互模块的cross-attention(treatment特征是Q输出为e)进行最后的uplift结果预估。这里面最后做了三个预测分别是使用ef预测control结果使用ef预测treatment结果以及使用efe预测treatment结果。这个位置较神奇不是很好理解引用AI讲解了这就像有两个侦探调查同一个案件侦探Auplift_base只能查看案发现场用户-上下文侦探Buplift_full还能查看凶手留下的线索treatment如果两人得出相同结论说明线索treatment可能不重要如果结论不同说明线索treatment是关键证据案件真相uplift_true 是评判标准迫使两人协作找出真正原因让模型通过用context特征拟合control组响应来学习context特征的思路蛮有趣的降低context这种非完全RCT数据的对treatment的耦合提高模型效果各种注意力模块的应用应该是基操了DFL DFCL[2407.13664] Decision Focused Causal Learning for Direct Counterfactual Marketing OptimizationTwo-Stage的问题是1模型优化目标是MSE但实际重要的是序准误差小但顺序可能会错2多个模型组合各学各的但整体决策不一定最好一般CL: x - yf(x) - argmax_z F(y) - 业务收益DFL将业务收益直接用作训练f(x)DFL的核心问题是通过argmaxILP选出的如何求导DFCL在此基础上加上两个新问题counterfactual不可知 与 ILP每轮求解成本高问题1——argmax不可导policy learning loss使用 “softmax计算所有action的概率” 来替代 “argmax选择最优action”p(j | x) (GMVj lambda * Profitj) / sum(GMV lambda * Profit)问题2——counterfactual不可知inverse propensity weight(IPS、IPW)对内部进行放大 1 / P(j/x) * r_j问题3——ILP每轮求解成本高直接使用dueling decomposition来简化ilp问题提出了一种训练范式通过因果模型估r和c的uplift然后代入线性OR来计算各act的softmax然后通过IPS评估结果作为真实reward反向训练因果模型同时也保留原始r与c的目标值让模型来学习参考资料https://zhuanlan.zhihu.com/p/627344224https://zhuanlan.zhihu.com/p/49306740651https://zhuanlan.zhihu.com/p/12800803045