面向社科研究者:用深度学习做因果推断(一)

在因果推断中,传统方法常受限于强参数假设且难处理文本、图像等非传统数据,而深度学习虽擅长复杂数据表示学习,却因技术门槛和 “黑箱” 特性难融入社会科学因果分析;这份材料恰好填补这一空白,从深度学习基础(如人工神经网络、表示学习)和因果推断核心假设入手,逐步讲解深度结果建模、表示学习平衡等方法及 S 学习器、TARNet 等模型,还附 TensorFlow 与 PyTorch 实现教程,能帮社会科学研究者轻松入门 “用深度学习做因果推断”。
摘要
本入门读物系统梳理了潜在结果框架下使用深度神经网络进行因果推断的新兴文献。它直观介绍了如何构建和优化自定义深度学习模型,并展示了如何调整这些模型以估计/预测异质性处理效应。此外,还讨论了将因果推断扩展到混杂为非线性、时变或编码在文本、网络和图像中的场景的现有研究。为了最大限度地提高可及性,我们还介绍了因果推断和深度学习的必备概念。与其他关于深度学习和因果推断的论述相比,本入门读物的特点在于:聚焦观察性因果估计、详细阐述关键算法,并提供了在TensorFlow 2和PyTorch中实现、训练和选择深度估计器的详细教程。
引言
本入门读物旨在向社会科学读者介绍一个令人兴奋的研究领域——探索如何利用深度神经网络估计因果效应。近年来,因果推断框架和深度学习在科学、工业和医学领域都得到了迅速应用。因果推断在社会科学中有悠久的传统,社会科学家正越来越多地探索将机器学习(ML)用于因果推断(Athey 和 Imbens, 2016;Wager 和 Athey, 2018;Chernozhukov 等, 2018)。尽管如此,与其他机器学习方法相比,深度学习在社会科学中的应用仍然明显不足,无论是在因果推断还是更广泛的领域都是如此。
深度学习革命源于这些模型的灵活性和表达能力。神经网络几乎是非参数的,理论上可以逼近任何连续函数(Cybenko, 1989),使其非常适合分类和回归任务。此外,它们可以配置不同的架构和目标,以从各种定量数据以及文本、图像、视频、网络和语音中学习。这些优势使它们能够学习具有涌现特性的复杂数据的向量“表示”。表示学习的简单例子包括Word2Vec算法(它发现文本中单词之间的语义关系),或面部分类模型(它学习描述面部特征的向量)(Mikolov 等, 2013)。最近,像DALL-E、Stable Diffusion和ChatGPT这样的生成模型展示了如何从学习到的表示中重建逼真的图像和连贯的文本段落。
在这里,我们探讨利用这些优势来估计因果效应的潜力。因果推断框架是非参数的,但传统上用于估计因果效应的线性模型需要很强的参数假设。相比之下,神经网络近乎非参数的性质使我们能够估计平滑的响应面,以低偏差捕捉个体单元的异质性处理效应[1]。这些模型从复杂数据中学习的能力意味着我们可以将因果推断扩展到新的场景,在这些场景中,混杂是复杂的、时变的,甚至编码在文本、图形或图像中(见框1的假设示例)。最后,在正确的目标下,神经网络有望学习去混杂的数据表示,为处理建模提供新策略。
框1:非传统数据因果推断的示例场景
文本:作为一个激励性示例,Veitch、Sridhar和Blei(2020)考虑了作者报告的性别(T)对Reddit帖子获得的点赞数(Y)的影响。然而,性别也可能“影响帖子的文本,例如通过语气、风格或主题选择,而这些也会影响帖子的得分(X)”。控制文本的表示可以使分析师更准确地估计性别的直接效应。
图像:Todorov等(2005)表明,从政治家的面部照片(X)中对其能力(T)的瞬间判断可以预测他们的当选可能性(Y)。当尝试使用机器学习分类器而非人类分类器复制这项研究时,Joo、Steen和Zhu(2015)认为面部的年龄(Z)是一个不太明显的混杂因素:虽然年龄较大的人更有可能显得有能力,但他们也更有可能是现任者。即使年龄未知,使用神经网络控制图像中隐含的混杂因素(如年龄)也可以减少偏差。
网络:Nagpal等(2020)探讨了哪种类型的处方阿片类药物(如天然、半合成、合成)(T)最有可能导致长期成瘾(Y)。由于对不同伤害的易感性,就业类型(X)可能是处理和结果的共同原因。假设工作类型未被观察到,但我们知道患者可能通过同质性与同事交往。为了捕捉这种潜在未观察到的混杂因素的部分影响,分析师在估计因果效应时可能会选择控制患者在其社交网络中的位置表示。
本入门读物综合了关于深度因果估计器的现有文献,但它不是一篇综述;其目标从根本上说是教学性和前瞻性的,而非回顾性的。在“深度学习基础”部分,我们向社会科学家介绍深度学习的基本概念,以及在监督学习框架下构建和训练自己的深度神经网络的基本工作流程。对于不熟悉因果推断的读者,“因果识别和估计策略”部分介绍了因果识别的假设,以及可观测选择设计中的三种基本估计策略:匹配、结果建模和逆倾向得分加权(IPW)。当仅采用这些策略中的一种时,机器学习模型在理论和实践中往往表现不佳,因此我们还介绍了双重稳健性的概念。
“深度因果估计的三种不同方法”部分是本文的主体。在这里,我们介绍三种不同的深度因果估计方法——深度结果建模、通过表示学习进行平衡以及结合IPW的双重稳健性,以及四种相关的用于估计异质性处理效应的深度学习模型:S学习器、T学习器、处理无关回归网络(TARNet)和Dragonnet(Shalit、Johansson和Sontag, 2017;Shi、Blei和Veitch, 2019)。尽管这一文献正在迅速发展,但这四种模型足以说明如何以创造性的方式利用传统估计策略,发挥神经网络的核心优势(即通过表示学习去混杂、半参数推断)。“置信度和解释”部分涉及构建置信区间和解释神经网络的实际考虑。这些指南在配套在线教程中得到具体化,该教程向读者展示如何在TensorFlow 2和PyTorch中实现和解释“深度因果估计的三种不同方法”部分中描述的模型。
在“超越传统数据:文本、网络、图像和随时间变化的处理”部分,我们聚焦深度因果推断的未来:能够解开嵌入在文本、图像、图形或时变数据中的混杂关系的估计器。为清晰起见,我们给出了社会科学家可能用这些模型回答的问题类型的假设示例,并简要描述了关于每种模态的现有研究。有关其中一些模型的更全面论述,请参见在线附录。最后,我们讨论了神经网络如何融入更广泛的机器学习因果推断文献(“结论:背景下的深度因果估计”部分)。
本入门读物有多项贡献。首先,它是社会学文献中首批不仅从概念层面(如反向传播、表示学习),而且从实践层面(如验证、超参数调优)介绍深度学习基础的文献之一。我们关于训练和解释神经网络的建议得到了带有大量注释的教程的支持,这些教程教没有深度学习先验知识的读者如何在TensorFlow 2和PyTorch中构建自己的自定义模型。其次,我们利用这一基础并选择示例来构建关于如何利用深度学习的核心优势进行因果推断的直觉。最后,我们强调了该文献的未来方向,并论证了为什么因果估计的未来在于深度学习。
一、深度学习基础
人工神经网络
人工神经网络(ANNs)是受人类大脑启发的统计模型(Brand、Koch和Xu, 2020;Goodfellow、Bengio和Courville, 2016)。在人工神经网络中,网络中的每个“神经元”对其输入(通常是其他神经元的输出)进行加权求和,并使用可微(或几乎处处可微)的非线性函数(如sigmoid、整流线性单元)对其进行变换。神经元按层排列;输入层接收原始数据,后续层中的神经元将前一层的输出的加权和作为输入。“输出”层包含一个神经元,对应于每个预测结果,其变换函数适合这些结果。例如,预测一个实值结果的回归网络将有一个没有变换函数的输出神经元,以便它产生一个实数。没有任何隐藏层的回归网络完全对应于广义线性模型(图1A)。当在输入层和输出层之间添加额外的“隐藏”层时,这种架构被称为前馈网络或多层感知器(图1B)。具有多个隐藏层的神经网络被称为“深度”网络,因此得名“深度学习”(LeCun、Bengio和Hinton, 2015)。理论上,具有单个足够大的隐藏层的神经网络可以逼近任何连续函数(Cybenko, 1989)。
神经网络通过优化损失函数(也称为目标函数或成本函数)来训练预测结果。在训练过程中,反向传播算法使用微积分中的链式法则将损失函数中的总误差分配给网络中的每个神经元。然后,优化器(如随机梯度下降算法或流行的ADAM算法(Kingma和Ba, 2015))将每个参数向该误差梯度的相反方向移动。神经网络在20世纪80年代首次流行,但与其他机器学习模型家族(如支持向量机)相比,由于训练成本高而失宠。到21世纪末,反向传播的改进、计算能力的进步(即图形卡)以及更大数据集的获取共同促成了深度学习革命,人工神经网络开始显著优于其他模型家族。如今,在社会科学以外的行业和领域,深度学习是占主导地位的机器学习方法。
实践中的深度学习
本节重点关注在监督学习框架下训练神经网络的实践。虽然监督机器学习的原理是通用的,但神经网络的工作流程在实践中与其他机器学习方法(如随机森林、支持向量机)有很大不同。图2将此工作流程分为四个不同部分:设置、训练、模型评估和解释。我们在下面更详细地探讨每个主题。框2包含对不熟悉的读者的监督学习基本介绍。
框2:监督学习基本介绍
深度学习算法最常通过监督机器学习(该领域中最流行的学习框架)应用于因果推断[2]。监督学习的目标是教模型一个非线性函数,该函数将协变量/特征X转换为未见过的数据中的预测结果Ŷ。模型从训练数据中的标记示例Xtr和Ytr学习这个函数。
与传统统计分析一样,通过优化模型的参数来学习该函数,使得这些参数使用损失函数(如似然)最小化其预测值Ŷtr与真实值Ytr之间的误差。在侧重于推断的传统社会科学分析中,我们会在此处停止并解释这些参数。在侧重于对未见过的数据进行泛化的监督机器学习中,模型最终用于预测先前未见过的协变量/特征Xte的测试数据集中的结果Yte。该框架可以一般地应用于Y是分类的情况(称为分类问题)和Y是连续的情况(称为回归问题)。
统计学习理论将监督学习的核心挑战阐述为在训练数据集上的过拟合和欠拟合之间的平衡。这也称为“偏差-方差权衡”。在回归背景下,偏差误差是Y的期望值与模型学习的映射函数的期望值之间的差异[3]。高偏差通常是由于算法没有充分学习训练数据集中的关系(即欠拟合数据)造成的。相反,一个学习训练数据集过于紧密以至于拟合了样本中的噪声(即过拟合)的算法可能泛化性能较差,产生具有高方差的样本外预测。欠拟合可以通过增加模型的复杂度来轻松诊断和解决。在深度学习的情况下,可以通过添加额外的层或参数/神经元来增加模型复杂度。
诊断和解决过拟合是一个更具挑战性的问题。在监督学习中,过拟合是在训练后(但在测试前)通过评估保留的训练集部分(称为验证集)的预测性能来诊断的。如果模型在训练数据集上拟合良好但在验证集上表现不佳,则它很可能在测试集上也泛化不佳。为防止过拟合,可以使用正则化技术来简化模型的复杂度。“深度学习实践”部分详细讨论了神经网络的训练和正则化。有关监督学习和统计学习理论的完整论述,请参见Hastie、Tibshirani和Friedman(2009)。

图1. 监督深度学习工作流程。(1)设置:训练深度学习模型的第一步是将数据分为训练集、验证集和可选的测试集。然后从用户指定的一组选择中选择初始超参数。(2)训练:在训练过程的每次迭代(称为一个epoch)中,训练集被随机分成小的迷你批次。对于每个迷你批次,网络对所有单元进行预测,并根据这些预测计算要分配给网络中每个神经元的误差梯度。然后,优化器将网络的参数向误差梯度的相反方向移动。在所有迷你批次都经过训练后(一个epoch),计算整个验证集的误差。整个过程重复进行,直到验证误差停止下降(以避免过拟合)。(3)模型评估:使用一个标准(通常是验证误差)来评估这种超参数化的性能。然后使用超参数优化算法(如网格搜索、贝叶斯超参数优化、遗传算法)选择新的超参数,并重复步骤1和2。一旦超参数优化算法完成搜索,就选择“最佳”模型进行推断。(4)推断和解释:选择模型后,分析师现在可以将其应用于测试数据(或者在统计推断的情况下,可能是完整数据集)。然后可以使用结果和/或倾向得分的预测来计算CATE(条件平均处理效应)并计算置信区间。像SHapley可加解释(SHAP)或集成梯度这样的特征重要性算法也可用于解释CATE估计。
设置和超参数
与其他类型的监督机器学习一样,训练神经网络的第一步是将数据集分为训练集、验证集和测试集(图2A)。如果网络用于统计推断(如此处所示),则测试数据集是可选的,推断可以仅在验证集或完整数据集上进行。
虽然计算图和损失函数定义了深度学习架构(框3),但实际实现可能因超参数的选择而有很大差异。在监督机器学习中,超参数是在训练模型时不会自动学习但必须由分析师指定的参数。在深度学习中,架构超参数包括计算图每个部分使用的层数、每层使用的神经元数量以及神经元使用的激活函数。虽然有一些基本的经验法则(例如,使用的层数少于神经元数量),但从理论上对这些选择的理解仍然不足[4];决策通常通过比较验证集上的经验性能来做出,这种做法称为超参数调优。
框3:阅读机器学习论文:计算图和损失函数
在机器学习文献中,新算法通常以其计算图和损失函数的形式呈现。计算图(不要与因果图混淆)使用箭头描述数据从神经网络的输入,通过参数,到输出的流动。神经元层或专门的子架构通常被抽象为通用形状。在我们的图表中,我们使用圆形紫色形状表示可观测变量,橙色矩形表示网络的表示层,圆形白色形状表示生成的输出,带纹理的矩形表示结果建模层。在预测后计算的操作(即不计算误差梯度反馈给网络以优化参数的操作)用虚线表示(例如,因果估计量的插入估计)。

图2. A:表示为计算图的广义线性模型(GLM)。圆形紫色框中描绘的可观测协变量X1,X2,X3和处理状态T。圆形紫色输入和带纹理的框之间的每条线代表一个参数(即GLM方程中的β)。带纹理的框是一个“输出神经元”,它对其加权输入求和,执行变换g(GLM中的链接函数;在这种情况下是恒等函数),并预测条件结果Ŷ(T)。与从推断统计角度理论解释这些参数不同,机器学习方法通常使用观察到的和未观察到的潜在结果的预测来插入估计因果估计量(例如,ĈATE)。训练后,为每个观察值将T设置为1−T可以预测未观察到的潜在结果Ŷ(1−T)。因为此操作发生在预测之后,并且不会将梯度反馈给网络以优化参数,所以在此处用虚线表示。ĈATE的插入计算同样用虚线表示。B:前馈神经网络(S学习器)。在前馈神经网络中,在输入(圆形紫色)和输出神经元之间添加额外的全连接(参数化)神经元层。输入协变量和隐藏层的大小被抽象为通用框(橙色)。输出神经元之前的最后一个隐藏层表示为Φ,因为隐藏层共同编码了一个表示函数(见“表示学习和多任务学习”部分)。在因果推断设置中,这种架构有时被称为S(ingle)学习器,因为一个前馈网络学习预测两个潜在结果。
除了架构之外,神经网络的损失函数是分析师指定神经网络学习的表示类型和产生的输出类型的主要方式。在多任务学习设置中,我们将整个网络的联合损失函数表示为组成任务和模块的损失的加权和。这些特定损失由超参数加权。例如,我们可以将预测结果和倾向得分的网络的联合损失加权为:
arg min h , π L = L h + λ L π = M S E ( Y , h ( X , T ) ) + λ B C E ( T , π ( X , T ) ) \underset{h, \pi}{\arg \min} \mathcal{L} = \mathcal{L}_h + \lambda \mathcal{L}_\pi = MSE(Y, h(X, T)) + \lambda BCE(T, \pi(X, T)) h,πargminL=Lh+λLπ=MSE(Y,h(X,T))+λBCE(T,π(X,T))
其中h(X,T)是预测的潜在结果,π(X,T)是预测的倾向得分,λ是超参数,MSE和BCE分别代表均方误差和二元交叉熵(即对数损失),分别是回归和二元分类的常见损失(框6)。
训练和正则化
神经网络的训练通过反复从训练集中进行预测、计算每个参数的误差梯度,并反向传播这些误差梯度的小部分来进行(图2B)。对训练集中的示例进行一次完整遍历称为训练循环或epoch。在每个epoch开始时,训练集被分成2到1024个单元的迷你批次,随机抽样且不放回。这种做法不仅有助于内存管理,还能改进优化。使用小的随机样本有效地将噪声引入训练过程,使模型不太可能陷入局部最小值。
迷你批次的大小可以被视为一个超参数[5]。由于一批数据只是样本(训练数据集)的一个样本,优化器仅通过误差梯度的一小部分(学习率)调整权重参数,以避免过拟合。学习率也是一个超参数,通常在0.0001到0.01之间变化。
大多数损失函数的非凸性质[6]意味着优化通常需要数百到数百万个训练epoch。此外,神经网络极易过拟合,因为很容易通过过多的神经元/层对其进行过参数化。为了防止过拟合,在每个epoch结束时计算完整验证集的误差指标。在称为“早停”的正则化实践中,分析师通常在验证指标停止改善时停止训练。其他常见的正则化技术包括对参数的权重衰减(即ℓ2范数、岭或Tikhonov)惩罚、训练期间神经元的dropout以及批归一化。
Dropout是深度学习中的一种正则化技术,其中某些节点在特定epoch的训练期间被随机屏蔽(Srivastava等, 2014)。Dropout的一般思想是迫使同一层中的两个神经元学习协变量/特征空间的不同方面,并减少过拟合。批归一化是另一种应用于神经元层的正则化技术(Ioffe和Szegedy, 2015)。通过在每个批次的基础上标准化(即z分数)层的输入,然后使用可训练参数对其进行重新缩放,批归一化平滑了损失函数的优化。这些正则化技术的添加和程度可以视为超参数。
模型选择
模型训练后,分析师比较使用不同超参数化或初始参数值组装的模型。可以使用随机搜索、所有可能组合的穷举网格搜索或策略性搜索算法(如贝叶斯超参数优化或进化优化)选择超参数化(Snoek、Larochelle和Adams, 2012)。最后一个epoch的验证损失指标通常用于这些比较。
因果估计器的模型选择因因果推断的基本问题而变得复杂:我们实际上感兴趣的不是观察到的“事实”结果和倾向得分,而是CATE和ATE(平均处理效应)。对于像Dragonnet这样的算法,其验证损失明确针对因果量,我们将其用作模型选择标准。在算法仅为结果建模或倾向建模而训练的情况下,需要其他解决方案。在在线附录中,我们描述了Johansson等(2020)提出的使用基于估计异质性效应精度(PEHE)的最近邻近似进行匹配,作为替代模型选择指标的建议(在线附录A)。
通过数据模拟开发更复杂的因果估计器模型选择方法是该文献中一个活跃的研究领域[7]。例如,Parikh等(2022)使用深度生成模型在弱非参数假设下逼近数据生成分布。Alaa和Van Der Schaar(2019)独立建模每个结果和倾向得分,然后使用影响函数评估模型误差。
表示学习和多任务学习
与其他机器学习方法相比,深度学习的一个比较优势是人工神经网络能够将复杂数据中的信息特征编码并自动压缩为灵活、相关的“表示”或嵌入,使下游监督学习任务更容易(Goodfellow、Bengio和Courville, 2016;Bengio, 2013)。虽然其他机器学习方法也可能编码表示,但它们通常需要大量预处理来为算法创建有用的特征(即特征工程)。从表示学习的角度来看,监督神经网络中每层作用的几何解释是将其输入(原始数据或前一层的输出)转换为通常更低维(但可能更高维)的向量空间。作为共享统计能力的一种方式,编码表示也可以在多任务学习中为两个任务同时联合学习。
表示的最简单示例可能是前馈网络中的最后一层,其中网络的早期层可以理解为将输入非线性编码为输出神经元的潜在线性特征数组(Goodfellow、Bengio和Courville, 2016)(图1B)。表示学习的一个著名例子是使用神经网络进行人脸检测。检查这些网络每层产生的表示表明,每个后续层似乎捕获面部越来越抽象的特征(首先是边缘,然后是鼻子和眼睛,最后是整个人脸)(LeCun、Bengio和Hinton, 2015)。对社会科学家来说,更熟悉的表示学习例子可能是像Word2Vec这样的词向量模型(Mikolov等, 2013)。Word2Vec是一个具有一个隐藏层和一个输出层的神经网络,其中语义相似的词在网络隐藏层创建的表示空间中更接近。
深度学习对因果估计的新贡献是提出神经网络可以学习一个函数Φ,该函数产生与处理去相关的协变量表示。从根本上说,其思想是Φ可以将处理组和控制组的协变量分布转换为一个表示空间,使它们无法区分(图3)。为了确保这些表示也仍然可预测结果(多任务学习),通常同时应用多个损失函数来平衡这些目标。这种方法应用于“深度因果估计的三种不同方法”部分中介绍的大多数算法。

图3. 通过表示学习进行平衡。深度学习用于因果推断的前景在于,神经网络编码函数Φ可以将处理组和控制组的协变量分布转换为一个表示空间,使它们无法区分。


