因果推断深度学习工具箱 - Deep Counterfactual Networks with Propensity-Dropout

(updated in 20210828)

文章名称

Deep Counterfactual Networks with Propensity-Dropout

核心要点

作者把causal inference视作multitask learning的问题,并通过dropout的方式来进行正则化,减少selection bias带来的影响。这种正则化通过估计每一个样本的propensity score,来调整网络的复杂度。本质上类似于propensity weighting的方法,只是更具有神经网络的风格。调整网络复杂度,会在propensity score较低的时候减少过拟合的风险,实现更好的泛化。
文章主要关注CATE(ITE),并且在binary treatment的场景下展开讨论。但是,可以模仿其他的multiple head的神经网络方法,迁移到multiple treatment的场景下。通过,Generalized Propensity Score,可以泛化文中提出的propensity score dropout。

方法细节

问题引入

文章建立在potential outcome框架下,并且需要满足unconfoundness的假设,即Y \perp \!\!\! \perp T | X。为了需要估计因果效应T(x) = \mathbb{E}[Y_i(1) - Y_i(0) | X=x_i],比较老的方法采用直接建模的方式,比如\hat{T}(x) = f(x_i, 1) - f(x_i, 0),也就是我们常说的single learner(如果两个f带有下表就是T-learner)。这种建模方式的弊端是高维的特征x_i会淹没低纬度的干预t_i
如果采用T-learner,不会存在干预被淹没的问题,也比较灵活,却引入了模型误差带来的因果效应估计的偏差,并且牺牲了统计效率,不能够充分利用样本。

具体做法

为了同时确保灵活性和样本效率,作者把因果推断问题看做多任务学习的问题,不同的counterfactual估计是不同的、却相关的任务。不同的干预意味着不同的任务,任务id和treatment id一一对应。如下图所示,左侧的potential outcome network具有多层共享网络来提升样本效率,因为通过不同treatment的数据共同训练了这些层,提取了共同的因素。而后续单独的输出网络,有保证了灵活性和独立性。相当于在T-learner和S-learner之间做了一个折中,也是很多神经网络处理不同treatment的惯常方式。

Propensity Dropout Network

但是,这样的网络并不能纠正由混淆变量带来的偏差。类似IPW和其他传统的因果推断方法,作者也利用propensity score进行样本权重调节。只不过,调节不是发生在loss的权重上,而是改变网络的复杂程度。在propensity score比较极端(非常接近0或者1)的情况下,利用dropout,使得网络变得简单。在propensity score比较接近0.5的情况下,保持原来网络的复杂程度,这样可以充分利用,在不同干预下,特征分布重合度(overlap)较高的样本。这种权重调节,其实是减少了对具有极端propensity score样本的学习充分程度,是另一种意义上的降权。这样的降权,可以减少对selection bias的过度拟合,提升网络预测在不同counterfactual估计上的泛化能力。
作者定义Droupout Propensity(x) = 1 - \frac{\gamma}{2} - \frac{1}{2}H(\tilde{p}(x)), 其中0 \leq \gamma \leq 1H(p)是信息熵。这样当propensity score是0或者1的时候,dropout的值为1 - \frac{\gamma}{2},当propensity score是0.5的时候,dropout的值为\frac{1}{2} - \frac{\gamma}{2}。因此,propensity score更极端的样本具有更大的dropout的概率。
除此之外,通过Monte Carlo Dropout可以得到样本的置信度的点估计,估计步骤如下图。图中,w是各层对应的权重,r是对应的dropout mask向量。通过从Dropout概率的伯努利分布中采样dropout的mask向量,多次估计\tilde{T},最终可以得到\tilde{T}的置信区间。
iMonte Carlo Propensity Dropout

整个网络是交替进行训练的,在训练的过程中,share网络会在每一个epoch中被充分训练,而不同干预的输出网络是每隔一个epoch单独训练的,每一个epoch都会采用propensity dropout。整个流程如下图所示,单数epoch左侧的outcome网络没有被训练,而双数epoch时右侧将不会被训练。
alternative training

总的来说,propensity dropout的方法是很有创意的结合了神经网络的dropout和propensity score weighting,同时延续了当时multitask learning的counterfactual估计的主流思路。

代码实现

文中训练的伪代码如下图所示,

training process

具体的pytorch实现可以参见,
https://github.com/Shantanu48114860/Deep-Counterfactual-Networks-with-Propensity-Dropout

首先是DCN网络(作者称没有propensity dropout的网络为deep counterfactual network),可以看到是简单的FFN,不过有两个独立的输出和一些共享层(代码里是2层)。

DCN network structure

DCN的训练是交替训练的,如下图所示,在偶数epoch的时候,训练potential outcomeY_1,奇数的时候训练另一个potential outcome的输出。
DCN network training

之后是propensity score网络,可以看到也是简单的2层FFN,当然可以根据数据采用更复杂的网络结构。


propensity score network

Propensity Score网路的训练是在所有数据集上进行的,训练方法如下图所示。本质就是利用观测样本中treatment的分布,去估计treatment assignment。


propensity score network training

最后来看一下Propensity Dropout的部分。可以看到,首先利用得到的Propensity Score,计算信息熵,然后按照公式得到dropout的概率值,进而得到dropout mask向量。


Propensity Dropout

Propensity Dropout过程中用到的一些工具函数,也都比较简单直接。


util functions

值得注意的是,训练时候的Propensity Score是数据集中处理得到的,实际训练中,可以先通过训练好的propensity score网络得到估计的每个样本的propensity score。

心得体会

利用propensity score在样本粒度调整模型复杂度

个人理解propensity score dropout,是作者把selection bias对counterfactual估计的影响,看做是某种过拟合的产物,是一种保守的反事实估计策略。为了减少混淆变量的影响,放弃了对观测outcome的充分拟合。

Doubly-Robust

虽然作者说同时利用了利用了outcome和propensity score的信息,所以是doubly-robust的。但是,个人认为没有最多只能说是隐式的进行了propensity score weighting,但是并没有进行显示的doubly-robust的建模。

文章引用

[1] https://github.com/Shantanu48114860/Deep-Counterfactual-Networks-with-Propensity-Dropout

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容