«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (10): 123-129  DOI: 10.19678/j.issn.1000-3428.0062524
0

引用本文  

陈铭杰, 张浩, 彭昱忠, 等. 基于偏相关性测试的递归式因果推断算法[J]. 计算机工程, 2022, 48(10), 123-129. DOI: 10.19678/j.issn.1000-3428.0062524.
CHEN Mingjie, ZHANG Hao, PENG Yuzhong, et al. Recursive Causal Inference Algorithm Based on Partial Correlation Test[J]. Computer Engineering, 2022, 48(10), 123-129. DOI: 10.19678/j.issn.1000-3428.0062524.

基金项目

国家自然科学基金(62006051);中国博士后科学基金(2020M680225);广东省高校青年创新人才项目(2020KQNCX049)

通信作者

张浩(通信作者),讲师、博士

作者简介

陈铭杰(1999—),男,硕士研究生,主研方向为机器学习、因果推断;
彭昱忠,教授、博士;
谢峰,博士后;
庞悦,博士后

文章历史

收稿日期:2021-08-28
修回日期:2021-10-29
基于偏相关性测试的递归式因果推断算法
陈铭杰1,2 , 张浩2,3 , 彭昱忠4 , 谢峰5 , 庞悦3,6     
1. 东莞理工学院 计算机科学与技术学院, 广东 东莞 523808;
2. 广东石油化工学院 计算机学院, 广东 茂名 525099;
3. 复旦大学 计算机科学技术学院, 上海 200433;
4. 南宁师范大学 计算机与信息工程学院, 南宁 530001;
5. 北京大学 数学科学学院, 北京 100871;
6. 中国银联博士后科研工作站, 上海 201201
摘要:因果推断是挖掘事物间联系的一种重要方式,但在高维数据场景下,利用因果推断算法进行条件独立性(CI)测试存在冗余测试多和测试效率低的问题,这限制了因果推断在高维数据集上的应用。提出一种基于偏相关性测试的递归式因果推断算法。采用“分治”的方法对变量集进行递归式因果分割,得到更易于处理的低维子数据集,提高对数据集的处理效率。在每个子数据集上进行局部因果推断,减少每次因果推断的计算量并提升算法的运行速度。在此基础上,通过比较显著性值的合并策略整合所有子结果并得到完整的因果关系,保证总体因果结构的准确性。在“分治”过程中,采用高效的偏相关性测试避免高复杂度的核密度估算,进一步提升算法效率。基于10个经典数据集的实验结果表明,在准确率与经典推断算法CAPA持平的情况下,该算法的运算速度提升了2~10倍,且在样本量越大的数据集中提升效果越明显,证明递归式因果推断算法可以有效处理高维数据集,在保证准确率的同时提高运算效率。
关键词因果推断    因果网络    条件独立性测试    偏相关性测试    递归式算法    
Recursive Causal Inference Algorithm Based on Partial Correlation Test
CHEN Mingjie1,2 , ZHANG Hao2,3 , PENG Yuzhong4 , XIE Feng5 , PANG Yue3,6     
1. School of Computer Science and Technology, Dongguan University of Technology, Dongguan, Guangdong 523808, China;
2. School of Computer, Guangdong University of Petrochemical Technology, Maoming, Guangdong 525099, China;
3. School of Computer Science, Fudan University, Shanghai 200433, China;
4. School of Computer and Information Engineering, Nanning Normal University, Nanning 530001, China;
5. School of Mathematical Sciences, Peking University, Beijing 100871, China;
6. China UnionPay Post-Doctoral Research Station, Shanghai 201201, China
Abstract: Causal inference is an important tool for mining relationships between observed data points. The causal inference algorithm encounters the problems of redundant tests and low test efficiency in high-dimensional cases, which limits the application of causal inference in high-dimensional datasets. This study proposes a recursive causal inference algorithm based on partial correlation test. The strategy of 'divide and conquer' is used to perform the recursive causal segmentation of the variable set to obtain the low-dimensional sub-dataset, which is easier to handle and improves the processing efficiency of the dataset. Local causal inference is performed on each subset to reduce the computation amount for each causal inference and improve the running speed of the algorithm. Thereafter, the significant values of the merger strategy are compared to integrate all subresults and obtain a complete causal relationship to ensure the accuracy of the overall causal structure. By 'dividing and conquering', an efficient partial correlation test is used to avoid the high complexity of kernel density estimation and further improve the efficiency of the algorithm. Experiments are performed on ten classical data sets. The results show that when the accuracy is the same as that of the classical inference algorithm, CAPA, the operation speed of this algorithm improved by two to ten times. The improvement effect is more obvious on the dataset with a larger sample size, which proves that the recursive causal inference algorithm can effectively handle high-dimensional datasets, ensure a good accuracy, and improve the operational efficiency.
Key words: causal inference    causal network    Conditional Independence(CI) test    partial correlation test    recursive algorithm    

开放科学(资源服务)标志码(OSID):

0 概述

在因果关系推断问题中,研究者通常使用统计独立性测试[1]和条件独立性测试[2]对数据集间蕴含的因果关系进行推断,因此,对于数据中因果信息的获取尤为重要[3]。以PC算法[4]为例,作为一个经典的基于约束的因果推断算法,其算法原理是根据数据集间变量的联合概率分布与条件概率分布特点,通过条件独立性(Conditional Independence,CI)测试判断变量之间是否满足独立性或条件独立性,在进行一系列基于方向规则的判断后构造出一个大致的因果网络图。此图通常是一个部分有向无环图(Partial Directed Acyclic Graph,PDAG),其中包含一组马尔可夫(Markov)等价类,而不是一个完全准确的因果网络图。

因为CI测试的条件集会较大程度影响到测试结果的准确率,所以CI测试比统计独立性测试的难度要大得多[5]。对于CI测试,一般有三种使用场景:一种是数据离散分布的情况,可以根据对应的条件概率$ P(X, Y|Z)=P(X\left|Z\right)P\left(Y\right|Z) $将条件集合Z变为单个条件变量,然后使用常用的条件互信息或卡方检验技术判断条件独立性关系是否成立[5];另外两种分别针对数据连续分布和混合连续离散分布的情况,会采用离散化的方法对数据进行离散化处理,然后通过传统的CI测试方法即第一种场景中的条件互信息和卡方检验等方法进行检验,但是存在的问题是在离散化的过程中容易丢失一些数据信息,导致最终推断结果不够准确。虽然可以通过计算条件密度估计值$ {P}_{X|YZ}={P}_{X|Z} $间的距离来检验CI测试是否准确[6],但是当数据量较大时,离散的区间比较难设定,过大容易导致数据丢失,过小则需要很多的样本量,在Z较大的情况下,离散化数据和估算条件密度都是需要解决的重要问题。

近年来,研究者提出一系列基于核函数的CI测试方法。这些方法可以利用高阶矩信息将观测变量映射到再生核希尔伯特空间(RKHSs),此时的变量具有帮助推断高维变量分布的特点,如独立性和同质性[7]。文献[8]提出一种利用希尔伯特-施密特范数的条件交叉协方差算子,它是可以对应到RKHSs函数下xy条件协方差的一种度量。该方法证实了如果与之对应的RKHSs是特征核[9-11],则算子范数为0且$ x\perp y|Z $。相关文献以及深入研究表明,基于核方法的CI测试可以从给定的变量中获得比基于离散数据集的CI测试更多且更完整的信息,同时也表明基于核方法的CI测试在因果推断场景中能够发现更准确的因果关系。

基于核函数的方法,通过将变量集的条件概率分布空间映射到基于平方可积函数空间的高维的线性空间,找出一种单向或双向映射关系,如KCIT[12]。这种方法准确率较高,但运算复杂度也非常高,一般来说,当变量个数超过10或样本量大于2 000时,就很难在一般的计算环境中运行。因此,该方法难以在高维数据场景中高效地解决因果推断问题。由此可见,因果推断的一个关键难题就是设计一个合适的CI测试方法,使之能够在高维数据场景下也能高效运行。

本文提出一种基于偏相关性测试的因果推断算法CIPCT,从递归分治的角度应对数据集和条件集过大的情况。采用变量/特征分割方法将变量集递归式地分割成多个子数据集,使用因果推断算法对每个子数据集进行因果推断,得到对应的子结果。在此基础上,通过合并策略对所有的子结果进行合并整理,得到与原始数据集相对应的因果网络。此外,在“分-治-合”过程中采用较为高效的偏相关性测试,避免计算复杂度高的核密度估算,进一步提高因果推断的效率。

1 相关研究

本节将介绍一些关于提升因果推断速度的工作。在研究因果关系相关问题时,函数模型性能也是其中一个决定性因素。本文采用加性噪声模型(Additive Noise Model,ANM)作为因果函数模型,以此作为函数模型的优势在于:一是有独特的模型特性;二是数据都有一个特殊的加噪声项,可以借此获取额外的信息[13]。由于基于最小残差平方的回归方法估算可得到关于Z的非线性平方可积函数,因此文献[14]对(xiZ)和(xjZ)分别做非线性回归得到函数fg,通过检验fg是否存在将CI测试简化为两到三个统计独立性测试[15]。当加性噪声模型的特性被加以利用,即可避免估算条件概率密度,减少条件集Z所引起的高维难题,从而获取完整的因果信息,加速CI测试并打破Markov等价类限制。

在打破Markov等价类限制的前提下,文献[16-17]提出一种利用残差独立性发现条件独立性的方法,其对于Z维度具有更好的鲁棒性。Markov等价类包含三个结构:$ {x}_{1}\to {x}_{2}\to {x}_{3} $$ {x}_{1}\leftarrow {x}_{2}\to {x}_{3} $$ {x}_{1}\leftarrow {x}_{2} $ $ \leftarrow {x}_{3} $,这三个结构有着相同的条件独立性和统计独立性,在传统的因果推断算法下判断异常艰难,但是这三个结构所具有的独特的外加噪声项是完全不同的。文献[18]通过最小二乘回归计算出残差,利用外加噪声项验证条件独立性等价于残差独立性,使得CI测试进一步简化成一个独立性测试,从而进一步提升速度。

2 预备知识 2.1 因果网络

因果网络是一种概率推理模型,由一组随机变量X={x1x2,…,xn}以及对应的顶点集V={v1v2,…,vn}和顶点间边的集合E={e1e2,…,em}组成,记作GXVE)。可以看出,因果网络是由一组随机变量X与其相对应的一个有向无环图GVE)构成的,其要求X的联合概率分布PX)与GVE)是对应的,其中,E={exixj)|xixjX}表示有向无环图G中两个变量xixj之间的边集合,exixj)表示变量xixj之间的关系,可以是xi -xj$ {x}_{i}\to {x}_{j} $$ {x}_{i}\leftarrow {x}_{j} $。需要注意的是,在因果推断领域中,为了方便或提高阅读性,在不影响理解的情况下,通常用X同时表示变量与节点,不分开论述。

2.2 马尔可夫等价

当有两个有向无环图是马尔可夫等价类时,即两个有向无环图满足包含同样节点、边(不考虑方向)和V结构的条件时,它们具有完全一样的独立性与条件独立性。以图 1图 2为例,这两个网络结构是属于马尔可夫等价的,他们的独立性和条件独立性一致:1)独立性:X不独立YX不独立ZY不独立Z;2)条件独立性:X不独立Y|ZXZ|YY不独立Z|X。因此,对于马尔可夫等价类,由于它们都具有相同的独立性与条件独立性,因此CI测试无法正确判断出真实结构。

Download:
图 1 顺连结构 Fig. 1 Consequent structure
Download:
图 2 分连结构 Fig. 2 Disjuncition structure
2.3 忠实性假设

已知一个因果网络G,其中有三个变量(集)XYZ,他们的联合概率分布为PXYZ),如果满足从XY|Z可以推导出XYZ集合D分离的条件,那么就称这个联合概率分布PXYZ)满足关于因果网络G的因果忠实性假设。

3 偏相关性测试

本节将讨论如何在因果推断中应用偏相关性测试检测条件独立性是否成立,这里先给出DAUDIN的关于CI的一个经典理论[19-20],其中描述了如何在平方可积函数空间中把相关性与独立性相关联,将以该理论支撑本文后续的理论分析。

3.1 条件独立性特性

条件独立性特性(Characterization of Conditional Independence,CCI)的相关定义如下:

XYZ为3个随机变量或随机变量集,定义:

$ {E}_{1}=g\in {L}_{XZ}^{2}, E\left(g\right|Z)=0 $ (1)
$ {E}_{2}=h\in {L}_{YZ}^{2}, E\left(h\right|Z)=0 $ (2)
$ {E}_{3}=g\text{'}\in {L}_{X}^{2}, E\left(g\text{'}\right)=0 $ (3)
$ {E}_{4}=h\text{'}\in {L}_{Y}^{2}, E\left(h\text{'}\right)=0 $ (4)

其中:$ {L}_{XZ}^{2} $$ {L}_{YZ}^{2} $$ {L}_{X}^{2} $$ {L}_{Y}^{2} $分别表示(XZ)、(YZ)、XY平方可积函数空间,那么下面四个等式互相等价:

$ X\perp Y|Z $ (5)
$ \forall g\in {E}_{1} \text{,} \forall h\in {E}_{2}, E\left(gh\right)=0 $ (6)
$ \forall g\in {E}_{1} \text{,} \forall h\text{'}\in {E}_{4}, E\left(gh\text{'}\right)=0 $ (7)
$ \forall h\in {E}_{2} \text{,} \forall g\text{'}\in {E}_{3}, E\left(hg\text{'}\right)=0 $ (8)

$ Z=\mathrm{\varnothing } $时,可以得到$ X\perp Y\iff \forall g\text{'}\in {E}_{3} $$ \forall h\text{'}\in {E}_{4}, $ $ E\left(g\text{'}h\text{'}\right)=0 $

CCI描述的是一种在平方可积函数空间中相关性与独立性的等价关系。后续将给出一些相关的理论分析与结果,即分别在高斯和非高斯情况下偏相关性与条件(不)独立性的关系。

3.2 偏相关性与条件独立性的关系

定理1  给定m + 2个随机变量:xyZ={z1z2,…,zm},它们都是基于独立的随机变量sii=1,2,…,l)的线性组合,如果所有的si都符合联合高斯分布,那么xy |Z成立,当且仅当$ {\sigma }_{xy.Z}=0 $

证明  考虑到给定变量集Zxy的偏相关性系数为$ {\rho }_{xy.Z}=\frac{{\sigma }_{xy.Z}}{\sqrt{{\sigma }_{xx.Z}{\sigma }_{yy.Z}}} $,其中$ {\sigma }_{\mathrm{*}\mathrm{*}.Z} $(给定Z的协方差)可以认为是投影到Z上的xy残差的协方差。因此,由独立与相关关系可得出$ {\sigma }_{xy.Z}=\mathrm{c}\mathrm{o}\mathrm{v}(x-E(x\left|Z\right), y-E\left(y\right|Z\left)\right)=0 $。在联合高斯分布下,$ {\sigma }_{xy.Z}=0\Rightarrow x\perp y|Z $

另一方面,如果$ x\perp y|Z $,那么根据式(7)进行推断,因为$ E(x-E(x\left|Z\right)\left|Z\right)=0 $$ E(y-E(y\left|Z\right)\left|Z\right)=0 $,所以有$ x-E\left(x\right|Z)\in {E}_{1} $$ y-E\left(y\right|Z)\in {E}_{2} $。此外,考虑到给定Z关于xy的偏相关性,由于给定Z后的偏协方差$ {\sigma }_{xy.Z} $等价于xyZ形成的线性空间上投影的协方差,因此有:

$ \begin{array}{l}{\sigma }_{xy.Z}=\mathrm{c}\mathrm{o}\mathrm{v}\left\{\right(x-E\left(x\right|Z\left)\right), (y-E(x\left|Z\right)\left)\right\}=\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ E\left\{\right(x-E\left(x\right|Z\left)\right)(y-E(x\left|Z\right)\left)\right\}-\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ E(x-E(x\left|Z\right)\left)E\right(y-E\left(y\right|Z\left)\right)=0\end{array} $ (9)

定理2  偏相关性不成立与独立成立在联合高斯分布条件下是等价的,即独立性测试可以由偏相关性测试替换。

推论1  给定m + 2个随机变量:xy以及Z = {z1z2,…,zm},它们都是基于独立的随机变量sii=1,2,…,l)的线性组合,如果所有的si符合联合非高斯分布,那么$ {\sigma }_{xy.Z}\ne 0\Rightarrow x $不独立$ y|Z $

推论1可以由定理1直接推导出,表明在非高斯场景下,偏相关性不成立是条件不独立的充分条件,即可以通过偏相关性测试判定独立性不成立。所以,在非常苛刻的条件——非高斯且偏相关性成立的情况下,无法判断条件独立的情况。因此,在绝大多数情况下,都可以用偏相关性对独立性进行判断,从而大幅缩短检测独立性是否成立的时间。

4 因果推断算法

本节提出基于偏相关性测试的递归式因果推断(CIPCT)算法,对算法基本框架、因果分割、因果方向学习与子图合并4个部分分别进行介绍。

4.1 算法基本框架

CIPCT算法是一种递推式算法,其采用传统的“分-治-合”方法[21-22]进行因果学习,并在具体的算法步骤中融合偏相关性测试。CIPCT算法流程如图 3所示,具体步骤如下:

Download:
图 3 CIPCT算法流程 Fig. 3 Procedure of CIPCT algorithm

1)采用分治策略将庞大的原始数据集进行递归,分解成更小的子数据集,使用高效的偏相关性测试提高效率。

2)在分出若干子数据集的基础上,对每一个子数据集进行因果方向学习,形成子结果。

3)以比较显著性值的方式作为合并策略,对所有的子结果进行合并整理后,得到原始数据集对应的完整因果网络图。

4.2 因果分割

由于传统的因果推断算法在面对高维数据时运行时间较长,因此本文在进行因果分割时采用分治策略,并融合偏相关性测试提升效率。因果分割阶段的目的就是尽可能地将数据集分割成子数据集,子数据集会通过与父数据集相同或更高阶的偏相关性测试继续进行因果分割,从而减少偏相关性测试的次数,缩短算法在高维环境下的耗时。在基于CI测试的因果推断中,一般将CI测试的执行次数作为算法时间复杂度,因为与CI测试相比,其他操作在执行时间上可以忽略不计。假设原始变量集V={v1v2,…,vn}被递归分割成m个子集{V1V2,…,Vm},其中,对于所有m,有|Vm|≤n。当假设CIPCT使用PC算法进行因果推断时,则求解子问题的算法时间复杂度为O$ m{k}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{2}{2}^{{k}_{\mathrm{m}\mathrm{a}\mathrm{x}}-2} $),其中kmax=max(|V1|,|V2|,…,|Vm|)。另一方面,需要在每次迭代中都构造一个CI测试表,在最坏的情况下,需要针对原始变量集V计算一个σ阶CI测试表(σ是预先设定的参数)。因此,递归式推断算法CIPCT的时间复杂度为O$ m{k}_{\mathrm{m}\mathrm{a}\mathrm{x}}^{2}{2}^{{k}_{\mathrm{m}\mathrm{a}\mathrm{x}}-2}+{n}^{\sigma +2} $)。如果只使用PC算法解决因果推断问题,则算法复杂度为O$ {n}^{2}{2}^{n-2} $)。由于kmax通常要比n小得多,因此CIPCT算法的算法时间复杂度较传统基于CI测试的算法大幅降低。

因果分割的具体实现如算法1所示,主要步骤如下:

1)构造一个0阶偏相关性测试表M,其通过对数据集Vv1~vn进行偏相关性测试后得到。Mij=1表示在0阶条件下vivj相关系数为0,即corr(vivj)=0;Mij=0表示在0阶条件下vivj不相关。

2)从Mij=1中取viAvjB,把数据集V分为子数据集ABC,其中C中断了AB之间所有联系,要求C必须是满足条件的最小集,但不一定为是A或者B的D分离集。令D=V,从D中去除掉所有与C不相关的变量,令V1=ADV2=BD

3)若在上一步中无法对V进行因果分割,则构造更高一阶的偏相关性测试表,再执行步骤2。通过以上操作,最后可得一个因果分割V={V1V2}。

算法1  因果分割

输入  输入数据集V,偏相关性测试表M,初始为|V|阶零矩阵

输出  因果分割V=(V1V2)。

1.对于∀vi,vj∈V,若corr(vi,vj)=0,则另Mij=1,阶数k=0。

2.通过解决以下优化问题,将V分割成三个子数据集,V={A,B,C=V|A,B}

s.t.min |C|;∀vi∈A,∀vj∈B,Mij=1;|A| > 0,|B| > 0

3.for ∀vi∈V1∪V2 do

4.D=V,若vi和∀vj∈C满足Mij = 1,则D = D|vi

5.end for

6.V1=A∪D,V2=B∪D

7.if V1=V或V2=V,then

8.for ∀vi,vj∈V(Mi,j=0)do

9.若∃Z⊆V|vi,vj(|Z| = k + 1)使得pcorr(vi,vj|Z)=0,则令Mi,j=1。

10.end for

11.转到第4行。

12.else

13.返回V={V1,V2}。

14.end if

4.3 因果方向学习

经过因果分割后将会得到若干个子数据集,此处将使用V结构性质进行因果方向学习。首先从局部结构x-z-y入手,如果在给定某个条件集Z之后,能令xy满足偏相关性,即pcorr(xy|Z)=0,根据D分离准则,此时若z不属于Z,就可以判断出x-z-y结构为$ x\to z\leftarrow y $;然后进行一致性传播[3],推导出剩下边的方向。在因果分割过程中会将这几个相似的局部结构保存,以此来完成下一步子图合并。

4.4 子图合并

本文在文献[21]研究的基础上,将子图合并中的CI测试替换为偏相关测试,根据边与边之间的显著性值sv的大小决定连接方向。显著性值sv表示了方向被接受的概率,给出相关的理论分析如下:

定理3  对于任意一个无向图或局部无向图,假设给定一个局部结构v1-v2-v3,在对该结构进行基于V结构的方向判断时,接受两个方向$ {v}_{1}\to {v}_{2} $$ {v}_{3}\to {v}_{2} $的概率相同,均为$ s{v}_{\mathrm{v}\mathrm{s}\mathrm{t}\mathrm{r}\mathrm{u}\mathrm{c}\mathrm{t}\mathrm{u}\mathrm{r}\mathrm{e}}:=P({v}_{1}\perp {v}_{3}|S)\times P({v}_{1}\perp {v}_{3}\left|\right(S\bigcup {v}_{2}\left)\right) $,其中S为满足CI的条件集。

证明  根据V结构定义,v1v3在给定某一个条件集S满足CI,而条件集增加中间节点集后不满足CI这两个特征即可直接推断得到。首先假设给定一个局部V结构v1-v2-v3,当$ {v}_{1}\to {v}_{2} $$ {v}_{3}\to {v}_{2} $时,它们的显著性值分别定义为:

$ \mathrm{s}{\mathrm{v}}_{\mathrm{v}\mathrm{s}\mathrm{t}\mathrm{r}\mathrm{u}\mathrm{c}\mathrm{t}\mathrm{u}\mathrm{r}\mathrm{e}}^{}:=P({v}_{1}\perp {v}_{3}|S)\times P({v}_{1}\perp {v}_{3}\left|\right(S\bigcup {v}_{2}\left)\right) $ (10)
$ \mathrm{s}{\mathrm{v}}_{\mathrm{v}\mathrm{s}\mathrm{t}\mathrm{r}\mathrm{u}\mathrm{c}\mathrm{t}\mathrm{u}\mathrm{r}\mathrm{e}}^{}=\mathrm{s}{\mathrm{v}}_{{v}_{1}\to {v}_{2}}^{}=\mathrm{s}{\mathrm{v}}_{{v}_{3}\to {v}_{2}}^{} $ (11)

其中:S是对应的D分离集。然后对比显著性值,取显著性值更大的方向进行方向连接。最后通过合并所有的子因果网络,得到关于原始数据集的完整因果网络结构图。在子图合并过程中,显著性值的计算是在偏相关测试的基础上进行的,通过检测上一步因果分割中的偏相关测试得到显著性值再保存结果,因此,不会增加额外的计算时间。子图合并的具体实现如算法2所示。

算法2  子图合并

输入  原始数据集V,子因果网络集Gps={G1G2,…,Gm}

输出  合并后的关于V的完整因果网络G

1.构造关于V的全连接图GN

2.初始化GN中边方向的显著性svvi→vj=0(∀vi,vj∈V)。

3.for ∀Gi(Gi∈Gps)do

4.for ∀vi,vj∈Gi do

5.if vi和vj不相邻then

6.删除GN中vi与vj之间的边。

7.else if vi→vj(或vi←vj)then

8.若Gi中的svvi→vj大于GN中的svvi→vj,则更新vi→vj(或vi←vj)到GN中对应的位置,同时更新较大的svvi→vj到GN

9.end if

10.end for

11.end for

5 实验结果与分析

本文所有的实验均在MATLAB R2016a中进行,运行环境是一台CPU为i5-7200U,主频为2.50 GHz、内存12 GB的64位操作系统的笔记本,将本文提出的CIPCT算法和目前具有代表性的递归式因果推断算法CAPA[21]进行对比。

实验所用数据为10组不同的真实因果网络结构[22-23],涵盖了多个领域,表 1中列出了这些数据的网络结构信息,其中,节点数代表维度。

下载CSV 表 1 10个因果网络结构的统计特性 Table 1 Statistical characteristics of ten causal network structures

实验分为两种方式进行:首先在不同数据场景下固定相同样本量,将样本量控制在2|V|=2n,这是一种经典的评估样本量、节点个数与准确率关系的方法[14],并同时对比两种推断算法的耗时;然后在相同数据环境下,分别比较不同样本量下的实验结果,评估样本量对准确率、耗时的影响。本文实验使用召回率R、精确率P和F1值F1对算法的综合性能进行评估。其中:召回率反映算法发现因果关系的查全率;精确率反映算法发现因果关系的查准率;F1值反映算法的综合的准确率。这三个指标的计算公式如下:

$ R=\frac{\mathrm{算}\mathrm{法}\mathrm{学}\mathrm{习}\mathrm{到}\mathrm{的}\mathrm{因}\mathrm{果}\mathrm{关}\mathrm{系}\mathrm{数}\mathrm{量}\bigcap \mathrm{真}\mathrm{实}\mathrm{的}\mathrm{因}\mathrm{果}\mathrm{关}\mathrm{系}\mathrm{数}\mathrm{量}}{\mathrm{真}\mathrm{实}\mathrm{的}\mathrm{因}\mathrm{果}\mathrm{关}\mathrm{系}\mathrm{数}\mathrm{量}} $
$ P=\frac{\mathrm{算}\mathrm{法}\mathrm{学}\mathrm{习}\mathrm{到}\mathrm{的}\mathrm{因}\mathrm{果}\mathrm{关}\mathrm{系}\mathrm{数}\mathrm{量}\bigcap \mathrm{真}\mathrm{实}\mathrm{的}\mathrm{因}\mathrm{果}\mathrm{关}\mathrm{系}\mathrm{数}\mathrm{量}}{\mathrm{算}\mathrm{法}\mathrm{学}\mathrm{习}\mathrm{到}\mathrm{的}\mathrm{因}\mathrm{果}\mathrm{关}\mathrm{系}\mathrm{数}\mathrm{量}} $
$ {F}_{1}=\frac{2\times R\times P}{R+P} $
5.1 不同数据相同样本量的实验

在不同数据场景下固定相同样本量进行对比实验,选取全部10个因果网络结构并将样本量控制在2|V|=2n,将提出的CIPCT算法与CAPA算法[21]进行对比。对比两种推断算法的准确率,并列出两种算法的运行时间进行分析比较,实验结果如表 2所示,其中加粗数据表示最优值。

下载CSV 表 2 CIPIT和CAPA算法在不同数据集中的性能对比 Table 2 Performance comparison of CIPIT algorithm and CAPA algorithm on different datasets

分析表 2结果可以发现,CIPCT算法的耗时相对较少,但是精确率相对略低,这是因为偏相关性测试对于高维数据时存在错误添加节点的现象。但是由于其采用了计算偏相关性系数的方式,因此在维度增加时可以筛选出更合适的节点,从而加快构造网络结构的速度,进而加快对高维数据的处理速度。

5.2 相同数据不同样本量的实验

设计在相同数据场景下不同样本量的对比实验,挑选Barley(两者准确率相近)和Andes(CAPA优于CIPIT)分别在不同样本量(n、2n、3n、5n、7n)的情况下进行对比实验,实验结果如表 3所示,其中加粗数据表示最优值。

下载CSV 表 3 CIPIT和CAPA算法在不同样本量下的性能对比 Table 3 Performance comparison of CIPIT algorithm and CAPA algorithm under different sample sizes

表 3可以看出,两种算法在Barley数据集上准确率几乎持平,而在Andes数据集上CAPA优于CIPIT,因为偏相关性测试是一种近似的CI测试,在特定的网络结构下,如Andes,这个网络结构要求严格的CI,则偏相关性测试效果会一定程度下降。此外,可以看到当维度为n时,在Andes结构中CI测试的速度较快,原因是CAPA采用的是启发式因果分割,在低样本量情况下,加上CI测试的耗时也可能要比CIPIT快。

通过对比表 3中的F1值和运行时间可以看出,虽然本文算法在Andes网络结构中的F1值略低于CAPA算法,但对比两种算法的处理时间可知,CIPIT可以在高维网络结构中进行更快速的有效构建,并且在维度越高的数据环境下这种时间差距越明显。由于目前其他的因果推断算法都难以在高维数据环境下进行快速有效的处理,使用偏相关性测试后耗时减少明显,说明本文算法在运算时间上具有显著优势。

6 结束语

本文提出的CIPCT算法是一种基于偏相关性测试的快速因果推断算法,其在传统的“分-治-合”框架中融入偏相关性测试,从而保证准确率同时提高运算效率。在对因果结构进行降维处理“分”的过程中,将整体的因果网络快速拆分成若干个子因果网络,对每一个子因果网络都进行因果推断,使得因果推断能够在高维数据环境下运行,避免传统CI测试运算复杂度和时间复杂度高的缺点。实验结果表明,在高维数据环境下,本文算法与目前具有代表性的递归式因果推断算法CAPA在准确率几乎持平的情况下,速度可提升2~10倍。后续将改进推断过程及算法框架,将本文算法与神经网络相结合,进一步提升准确率和降低算法复杂度。

参考文献
[1]
吴育锋. 统计独立性的离散化新方法[J]. 计算机应用与软件, 2012, 29(4): 249-252.
WU Y F. A novel discretization method for statistical independence[J]. Computer Applications and Software, 2012, 29(4): 249-252. (in Chinese)
[2]
ZHANG H, ZHOU S G, YAN C X, et al. Recursively learning causal structures using regression-based conditional independence test[C]//Proceedings of the 33rd AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2019: 3108-3115.
[3]
郑巧夺, 吴贞东, 邹俊颖. 基于双层CNN-BiGRU-CRF的事件因果关系抽取[J]. 计算机工程, 2021, 47(5): 58-64, 72.
ZHENG Q D, WU Z D, ZOU J Y. Event causality extraction based on two-layer CNN-BiGRU-CRF[J]. Computer Engineering, 2021, 47(5): 58-64, 72. (in Chinese)
[4]
SPIRTES P, GLYMOUR C, SCHEINES R. Causation, prediction, and search, second edition[M]. Cambridge, USA: MIT Press, 2000.
[5]
张浩, 郝志峰, 蔡瑞初, 等. 基于互信息的适用于高维数据的因果推断算法[J]. 计算机应用研究, 2015, 32(2): 382-385.
ZHANG H, HAO Z F, CAI R C, et al. High dimensional causality discovering based on mutual information[J]. Application Research of Computers, 2015, 32(2): 382-385. (in Chinese) DOI:10.3969/j.issn.1001-3695.2015.02.015
[6]
SU L J, WHITE H. A nonparametric hellinger metric test for conditional independence[J]. Econometric Theory, 2008, 24(4): 829-864. DOI:10.1017/S0266466608080341
[7]
GRETTON A, BORGWARDT K M, RASCH M, et al. A kernel method for the two-sample-problem[M]//SCHÖLKOPF B, PLATT J, HOFMANN T. Advances in neural information processing systems 19: proceedings of the 2006 conference. Cambridge, USA: MIT Press, 2008: 513-520.
[8]
FUKUMIZU K, GRETTON A, SUN X H, et al. Kernel measures of conditional dependence[J]. Advances in Neural Information Processing Systems, 2007, 20(1): 167-204.
[9]
SRIPERUMBUDUR B K, FUKUMIZU K, LANCKRIET G R G. Universality, characteristic kernels and RKHS embedding of measures[J]. Journal of Machine Learning Research, 2011, 12(Jul): 2389-2410.
[10]
FUKUMIZU K, GRETTON A, SCHOLKOPF B, et al. Characteristic kernels on groups and semigroups[C]//Proceedings of the 23rd Annual Conference on Neural Information Processing Systems. Cambridge, USA: MIT Press, 2009: 473-480.
[11]
SRIPERUMBUDUR B, FUKUMIZU K, LANCKRIET G. On the relation between universality, characteristic kernels and RKHS embedding of measures[C]//Proceedings of the 13th International Conference on Artificial Intelligence and Statistics. Cambridge, USA: MIT Press, 2010: 773-780.
[12]
ZHANG K, PETERS J, JANZING D, et al. Kernel-based conditional independence test and application in causal discovery[C]//Proceedings of the 27th Conference on Uncertainty in Artificial Intelligence. Barcelona, Spain: AUAI Press, 2011: 804-813.
[13]
ZHANG H, YAN C X, ZHOU S G, et al. Combined cause inference: definition, model and performance[J]. Information Sciences, 2021, 574: 431-443. DOI:10.1016/j.ins.2021.06.004
[14]
ZHANG H, ZHOU S G, ZHANG K, et al. Causal discovery using regression-based conditional independence tests[C]//Proceedings of the 31st AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2017: 1250-1256.
[15]
ZHANG H, ZHOU S G, YAN C X, et al. Recursively learning causal structures using regression-based conditional independence test[C]//Proceedings of the 33rd AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2019: 3108-3115.
[16]
ZHANG H, ZHOU S G, GUAN J H, et al. Measuring conditional independence by independent residuals for causal discovery[J]. ACM Transactions on Intelligent Systems and Technology, 2019, 10(5): 50-69.
[17]
ZHANG H, ZHOU S, GUAN J. Testing independence between linear combinations for causal discovery[C]//Proceedings of the 35th AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2021: 6538-6546.
[18]
ZHANG H, ZHOU S G, GUAN J H. Measuring conditional independence by independent residuals: theoretical results and application in causal discovery[C]//Proceedings of the 32nd AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2018: 2029-2036.
[19]
DAUDIN J J. Partial association measures and an application to qualitative regression[J]. Biometrika, 1980, 67(3): 581-590. DOI:10.1093/biomet/67.3.581
[20]
FLAXMAN S R, NEILL D B, SMOLA A J. Gaussian processes for independence tests with non-iid data in causal inference[J]. ACM Transactions on Intelligent Systems and Technology, 2016, 7(2): 22.
[21]
ZHANG H, ZHOU S, YAN C, et al. Learning causal structures based on divide and conquer[J]. IEEE Transactions on Cybernetics, 2022, 52(5): 3232-3243.
[22]
CAI R C, ZHANG Z J, HAO Z F. SADA: a general framework to support robust causation discovery[C]//Proceedings of the 30th International Conference on Machine Learning. New York, USA: ACM Press, 2013: 208-216.
[23]
CAI R C, ZHANG Z J, HAO Z. SADA: A general framework to support robust Causation discovery with theoretical guarantee[DB/OL]. (2017-07-05)[2021-06-10]. https://arxiv.org/abs/1707.01283.