关注因果推断源于一次面试经历,职位招聘简介中任职要求一栏写着:在因果推断方面有较为丰富的研发经验。出于好奇和对技术的追求翻阅了一些相关的技术文档,觉得很有意思。以此篇文章开始,记录一下我的学习过程。(水平有限,记录是出于热爱,如有错误之处,请批评指正)
因果推断 (Causal Inference)
├── 潜在结果框架 (Rubin Potential Outcomes)
├── 观测性因果推断 (IV / PSM / DAG / Front-door)
│
└── 实验数据 / RCT 下的个体因果效应估计
└── Uplift Modeling(营销场景最常用)
├── Meta-Learner 体系
│ ├── S-Learner(Single Model / 单模型法)
│ ├── T-Learner(Two-Model / 两模型法)
│ ├── X-Learner(工业最常用)
│ ├── R-Learner(基于正交因果损失)
│ └── DR-Learner(Doubly Robust)
├── Double Machine Learning (DML / DML+Forest)
└── 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,来估计CATE(Conditional Average Treatment Effect)。
专业术语:
LLM × Causal 方向(Causal Prompting / CoT / Benchmarks)
- Causal Prompting:因果提示:指设计 Prompt 引导 LLM 做因果推理任务
- Chain-of-Thought, CoT 思维链
- causal-retrieve-bench / cause-interpret-bench:这两类是因果+LLM 评测数据集
- causal-retrieve-bench:LLM 能否从文本/语料中正确检索因果事实(X causes Y / confounder)
- cause-interpret-bench:LLM 能否解释因果结论(为何算 ATE / 哪个是混杂 / 反事实含义)
- 与因果相关:CoT 可部分模拟反事实 / 前提回溯推理,但不是真正因果模型
Structural Causal Model,SCM 结构因果模型:SCM是潜在结果框架 + 图模型的统一表述
Treatment(T):干预变量(是否发券、是否用药、是否看到广告)
Outcome(Y):结果变量(是否流失、是否点击、是否康复),因果推断目标:估计T 对 Y 的因果效应,而非相关性。
Copilot:Copilot(副驾驶 / AI 助手),因果推断语境:Causal-Copilot(你列表里大概率指这个),Causal-Copilot 是一个基于 LLM 的自动化因果分析 Agent,用来降低因果发现/推断的使用门槛。
DAG:有向无环图
sequence-driven structural causal models:SD-SCM 序列驱动结构因果模型
符号 | 含义 | 公式 |
|---|---|---|
ITE(Individual Treatment Effect) | 单个个体 i 的处理效应 | τi=Yi(1)−Yi(0)(不可同时观测) |
CATE(Conditional ATE) | 某子群体 X=x 的平均效应 | τ(x)=E[Y(1)−Y(0)∣X=x] |
ATE(Average 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):最优策略优化
CRM:Customer Relationship Management(客户关系管理 / 运营系统),实际生产中常说:
“把高分用户推给 CRM 做 VIP 外呼挽留” =把名单写入 CRM 营销活动,由 CRM 生成外呼工单给坐席
Push 平台 — 消息触达通道(App Push / 短信网关 / MAP):指批量、自动化给用户发消息的系统,常见功能:
App Push(应用内推送)
短信 / 彩信下发
微信模板消息 / 企微消息(部分公司归入此层)
支持:分群条件、去重、频控、点击回收
区别于 CRM:
Push 平台:偏通道,自动化、低成本、大批量
CRM:可含人工动作(外呼工单)、复杂优惠配置、客户档案
混淆因素(Confounding factor)
在因果图里可以看到,C(轻症、重症)会同时影响T(A、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] ,有些资料也称为RCM(Rubin 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