论文传送门SELF: Structural Equational Likelihood Framework for Causal Discovery
因果发现领域目前较为流行的算法分两种,分别从全局(global view)和局部(local view)角度进行了探索。
基于全局视图的方法主要包括 constraint-based methods
和 score-based approaches
,这类算法面临的主要挑战是马尔可夫等价类问题,即对于部分因果图形结构,即使在随机生成数据过程中不引入噪声,仅依赖于边缘分布信息并不能区分它们。
关于马尔可夫等价类问题,以下文提到的第一张图片举例,我们有可能学习到如下两种因果结构图
图1: x1 --> x2 --> x3; 图2: x1 <-- x2 --> x3
这两张因果结构图是马尔可夫等价的
基于局部视图的方法尝试通过研究生成模型中变量的编码复杂性,并结合误差和噪声来解决这个问题。具体来说,从原因变量到效应变量的生成过程的复杂性应该低于反向上的合成生成过程。由于该复杂度无法计算,研究人员提出了一系列简化的复杂度模型(Method based on various assumptions over the generative process beneath the distributions, post-nonlinear model , additive noise model and Information-geometric approach),但此类方法带来的效果提升是有限的。
此类算法先验地假设一些结构模型(可以理解为生成函数),然后用这些模型拟合变量间的函数关系
作者认为这两类方法应该是互补的。Local views在判断某一对变量之间的因果方向时更加准确,而global views能够通过提取local views的各种有向边选项上选择最合理的网络结构来纠正局部视图的小错误。达成这点的关键在于设计一个具有合理目标和约束的优化框架,这也就是SELF的主要研究方向。
(人话总结):local view 优势在于确定具体的某一对变量间的因果方向;而 global view 优势在于从整体出发,寻找当前制定规则下最优的网络结构。
先放一张论文中多次用到的图片
关于公式推导,主要是从最简单的概率公式,结合上图中提到的公式,一步步推导出我们想要的优化问题目标函数 点击跳转详细公式推导
P r ( X ) = ∏ i = 1 n P r ( X i ∣ X p a r e n t s i ) (此处省略 500 字) ⇒ L ( S ; O ) = ∑ j = 1 m ∑ i = 1 n l o g ( P r ( E i = O j , i − F i ( O j , i ) ) ) Pr(X)=\prod_{i=1}^{n}Pr(X_i|X_{{parents_i}}) \\ (此处省略500字)\\ \rArr \mathcal{L}(S;O)=\sum^m_{j=1}\sum^n_{i=1}log(Pr(E_i=O_{j,i}-F_i(O_{j,i}))) Pr(X)=i=1∏nPr(Xi∣Xparentsi)(此处省略500字)⇒L(S;O)=j=1∑mi=1∑nlog(Pr(Ei=Oj,i−Fi(Oj,i)))
新的对数似然公式结合了噪声noise
,使我们能够将噪声与加性噪声假设的独立约束联系起来。
在此基础上,作者还增加了模型复杂度约束,使用贝叶斯信息准则( B I C = d i l o g ( m ) 2 BIC = \frac{d_ilog(m)}{2} BIC=2dilog(m) )作为约束,得出了新的目标函数:
L B ( S ; O ) = ∑ j = 1 m ∑ i = 1 n l o g ( P r ( E i = O j , i − F i ( O j , i ) ) − d i l o g ( m ) 2 ) \mathcal{L_B}(S;O)=\sum^m_{j=1}\sum^n_{i=1}log(Pr(E_i=O_{j,i}-F_i(O_{j,i}))-\frac{d_ilog(m)}{2}) LB(S;O)=j=1∑mi=1∑nlog(Pr(Ei=Oj,i−Fi(Oj,i))−2dilog(m))
接下来,我们可以通过求目标函数的最大值,得出最优的因果结构图
m a x L B ( S ; O ) = ∑ j = 1 m ∑ i = 1 n l o g ( P r ( E i = O j , i − F i ( O j , i ) ) − d i l o g ( m ) 2 ) max \quad \mathcal{L_B}(S;O)=\sum^m_{j=1}\sum^n_{i=1}log(Pr(E_i=O_{j,i}-F_i(O_{j,i}))-\frac{d_ilog(m)}{2}) maxLB(S;O)=j=1∑mi=1∑nlog(Pr(Ei=Oj,i−Fi(Oj,i))−2dilog(m))
该优化问题可以采用 Augmented Optimization Algorithm 来解决,每一步迭代又可以分为以下两个步骤:
m a x L B ( S ; o ) = m a x G s u p F L B ( < G , F > ; O ) max \mathcal{L_B}(S;o)=max_G \ sup_ F \ \mathcal{L_B}(
s u p F L B ( < G , F > ; O ) sup_ F \ \mathcal{L_B}(
noise
的估计noise
的分布 m a x G L B ( < G , F > ; O ) max_G \ \mathcal{L_B}(
这一阶段的主要目标是找出得分最高的 G G G。在实际操作中我们可以先列出与 G G G 相邻的因果图(可以通过对 G G G 使用 AddDelReverse 操作,即增加、删除或反向一条边得到),然后对每一张图计算得分,找到分数最高的作为本轮的结果。
论文中采用了爬山算法,详细R语言代码可以
参考论文配套代码:https://github.com/DMIRLAB-Group/SELF
首先根据贝叶斯公式,使用条件概率表示 P r ( X ) Pr(X) Pr(X)
P r ( X ) = ∏ i = 1 n P r ( X i ∣ X p a r e n t s i ) Pr(X)=\prod_{i=1}^{n}Pr(X_i|X_{{parents_i}}) Pr(X)=i=1∏nPr(Xi∣Xparentsi)
使用对数似然估计,这里假设观测数据 O = { o 1 , o 2 , . . . , o m } O=\{o_1,o_2,...,o_m\} O={o1,o2,...,om},每个 o i o_i oi可以视为n维向量 o i = { o i , 1 , o i , 2 , . . . , o i , n } o_i=\{o_{i,1},o_{i,2},...,o_{i,n}\} oi={oi,1,oi,2,...,oi,n}
L ( G ; O ) = ∑ j = 1 m ∑ i = 1 n l o g ( P r ( X i = o j , i ∣ X p a i = o j , p a i ) ) \mathcal{L}(G;O)=\sum_{j=1}^{m} \sum_{i=1}^{n}log(Pr(X_i=o_{j,i}|X_{pa_i}=o_{j,pa_i})) L(G;O)=j=1∑mi=1∑nlog(Pr(Xi=oj,i∣Xpai=oj,pai))
其中
这里 S = < G , F > S=
⇒ L ( S ; O ) = ∑ j = 1 m ∑ i = 1 n l o g ( P r ( E i = O j , i − F i ( O j , i ) ) ) \rArr \mathcal{L}(S;O)=\sum^m_{j=1}\sum^n_{i=1}log(Pr(E_i=O_{j,i}-F_i(O_{j,i}))) ⇒L(S;O)=j=1∑mi=1∑nlog(Pr(Ei=Oj,i−Fi(Oj,i)))
请耐心等待博主更新。。。