因果推断-初篇

📅 2026/7/10 15:31:18
因果推断-初篇
关注因果推断源于一次面试经历职位招聘简介中任职要求一栏写着在因果推断方面有较为丰富的研发经验。出于好奇和对技术的追求翻阅了一些相关的技术文档觉得很有意思。以此篇文章开始记录一下我的学习过程。水平有限记录是出于热爱如有错误之处请批评指正因果推断 (Causal Inference)├── 潜在结果框架 (Rubin Potential Outcomes)├── 观测性因果推断 (IV / PSM / DAG / Front-door)│└── 实验数据 / RCT 下的个体因果效应估计└── Uplift Modeling营销场景最常用├── Meta-Learner 体系│ ├── S-LearnerSingle Model / 单模型法│ ├── T-LearnerTwo-Model / 两模型法│ ├── X-Learner工业最常用│ ├── R-Learner基于正交因果损失│ └── DR-LearnerDoubly Robust├── Double Machine Learning (DML / DMLForest)└── Deep Causal Networks├── TARNet / CFRNet├── DragonNet└── CEVAE 等Uplift Modeling 常用方法包括Meta-Learner体系S-Learner 单模型法、T-Learner 两模型法、X-Learner、R-Learner、DR-Learner以及 DML 和 Deep Causal Networks其中 X-Learner 因对样本不平衡友好在工业营销场景中最为常用。Meta-Learner 的含义是Meta-Learner元学习器不是某一个具体模型而是一类“用基模型(base learner)来估计因果效应”的框架/范式。具体实现中用现成的任意 ML 模型LR / GBDT / DNN作为 base learner通过不同方式组合 / 构造pseudo-outcome来估计CATEConditional Average Treatment Effect。专业术语LLM × Causal 方向Causal Prompting / CoT / BenchmarksCausal Prompting因果提示指设计 Prompt 引导 LLM 做因果推理任务Chain-of-Thought, CoT 思维链causal-retrieve-bench / cause-interpret-bench这两类是因果LLM 评测数据集causal-retrieve-benchLLM 能否从文本/语料中正确检索因果事实X causes Y / confoundercause-interpret-benchLLM 能否解释因果结论为何算 ATE / 哪个是混杂 / 反事实含义与因果相关CoT 可部分模拟反事实 / 前提回溯推理但不是真正因果模型Structural Causal Model,SCM 结构因果模型SCM是潜在结果框架 图模型的统一表述TreatmentT干预变量是否发券、是否用药、是否看到广告OutcomeY结果变量是否流失、是否点击、是否康复因果推断目标估计T 对 Y 的因果效应而非相关性。CopilotCopilot副驾驶 / AI 助手因果推断语境Causal-Copilot你列表里大概率指这个Causal-Copilot​ 是一个基于 LLM 的自动化因果分析 Agent用来降低因果发现/推断的使用门槛。DAG有向无环图sequence-driven structural causal modelsSD-SCM 序列驱动结构因果模型符号含义公式ITEIndividual Treatment Effect单个个体 i 的处理效应τi​Yi​(1)−Yi​(0)不可同时观测CATEConditional ATE某子群体 Xx 的平均效应τ(x)E[Y(1)−Y(0)∣Xx]ATEAverage Treatment Effect全人群平均处理效应E[Y(1)−Y(0)]Uplift Model 本质就是CATE / ITE 的估计与排序因果推断的几类任务CGL (Causal Graph Learning)因果图学习ATE (Average Treatment Effect Estimation)平均处理效应估计HTE (Heterogeneous Treatment Effect Estimation)MA (Mediation Effect Analysis)中介效应分析OPO (Optimal Policy Optimization)最优策略优化CRMCustomer Relationship Management客户关系管理 / 运营系统实际生产中常说“把高分用户推给 CRM 做 VIP 外呼挽留” 把名单写入 CRM 营销活动由 CRM 生成外呼工单给坐席Push 平台 — 消息触达通道App Push / 短信网关 / MAP指批量、自动化给用户发消息的系统常见功能App Push应用内推送短信 / 彩信下发微信模板消息 / 企微消息部分公司归入此层支持分群条件、去重、频控、点击回收区别于 CRMPush 平台偏通道自动化、低成本、大批量CRM可含人工动作外呼工单、复杂优惠配置、客户档案混淆因素Confounding factor​​​​​​​​​​​​​​在因果图里可以看到C轻症、重症会同时影响TA、B方案以及Y存活、死亡。像C这种同时影响treatment 和结果的因素就是混淆因素confounding factor。选择偏差Selection bias因为在观测到的数据样本里由于医生会根据患者的实际情况安排A、B方案这使得接受A、B方案的人群分布是不一样的B方案以重症患者居多A以轻症患者居多这种不一样就称为选择偏差selection bias有时候也叫 Treatment bias。因为存在选择偏差现象使得我们无法通过简单分别统计A、B方案的死亡率来比较治疗效果差别。怎么解决这个选择偏差问题问题呢可能有些同学已经想到了强行随机分配A、B方案呗大家人群分布一样就可以比较了。没错理论上随机化AB实验的方法是可以规避选择偏差问题但在现实中很多随机化会因为伦理和操作成本上的原因而很难做到。比如不考虑患者的实际病情强行安排给一个轻症患者被随机到了B方案费用很贵稀缺医疗资源患者和医生都是不答应的。如果规避不了在存在选择偏差的样本里如何评估因果效应呢 其实可以做到的但这次我们先把概念讲清楚具体怎么做日后再聊参考下一篇文章 。但我们并不只想做“事后诸葛亮”我们需要一个模型能提前预估因果效应以便做出干预与否、怎么干预的决策。基于观测到的存在选择偏差的数据训练一个能够预估因果效应的模型这就是uplift modeling 要做的事情后面我们再慢慢聊一系列的建模方法是怎么做的。倾向性Propensity结合前面的混淆因素的概念倾向性其实很好理解比如不同患者由于自身状况不同对治疗的选择方案A或B会有一定的倾向性。举个例子一个病重的患者最终可能有80%的概率接受B治疗方案这个80%就是倾向性得分用数学语言来说就是P(治疗方案B患者x )。这个条件概率在观察性研究的因果推断中发挥着至关重要的作用称为倾向性得分propensity score我们会经常聊到它。反事实 (Counterfactual)我们观测到的样本里只能知道某个用户接受A方案或B方案后的治疗结果但无法知道那些选择B方案的患者如果选择A方案治疗结果会有什么不一样。反事实可以理解为存在于平行宇宙中的“另一个事实”。再比如一个人服用了药物这个例子可能更容易讲清楚 hahaha 我们能观测到他服用药物后的是否康复但如果我们想判断是否是因为服了药才康复就需要知道如果不服药的情况依旧患病还是自愈。可惜没有如果另一种选择只存在平行世界中。对于另一种treatment存在于平行世界的另一种事实就称为反事实(counter fact)。两种理论前面我们说到因果推断 要做的事情就是预估一种干预因素treatment对结果outcome的影响treatment effect做这个事情主要有两种理论或者说框架分别是潜在结构因果模型、潜在结果框架(业界常用。潜在结果框架Potential outcomes framework[2]指的是 Neyman-Rubin potential outcomes framework[2] 有些资料也称为RCMRubin casual model大概思路是认为每个观测到的样本在平行世界里都存在着另一个事实对应着另一个可能称为潜在结果Potential outcome。只要把潜在的结果计算出来跟观测到的结果进行对比相减就知道两种选择做干预、不做干预的区别了。潜在结果框架需要依赖接下来要说的三大假设。因果推断和大模型怎么融合因果推断和大模型结合主要有如下4个方向Causality in Large Models看一下大模型里的因果性是什么Causality for Large Models用因果推断理论改造大模型让其更有理论性Causality with Large Models用大模型解决因果问题Causality of Large Models用大模型运作的因果结构让其更有可解释性参考链接https://zhuanlan.zhihu.com/p/1919447555906971260