【图神经网络论文整理】(一)—— 可解释性和泛化性图分类的因果注意力:CAL

news2025/7/9 5:54:20

在这里插入图片描述


  • KDD '22: Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining
  • August 2022
  • Pages 1696–1705
  • 论文地址

本文介绍的论文是中科大王翔教授等人在KDD2022上发表的《Causal Attention for Interpretable and Generalizable Graph Classification》。

作者强调了当前基于注意力和池化的GNN在图分类中的泛化问题,并且提出了一种新的用于图分类的因果注意力学习策略(CAL),使GNN在过滤掉捷径特征的同时利用因果特征,最后在合成数据集和真实数据集上的大量实验证明了CAL的有效性。


🍁 一、背景 🍁

目前大多数图神经网络GNN在图分类这项任务中,遵循learning to attend这种模式,这能够最大程度学习图数据与标签之间的关系。

但是这种范式使得模型学习到的映射是基于统计相关性的,忽略了数据之间的因果关系,没有区分特征的因果效应和非因果效应,这会导致模型将非因果特征作为捷径特征,将其用来进行预测。

这也是导致ODD数据泛化性不好的一个原因,因为模型是将捷径特征作为预测,如果ODD数据不遵循这种数据分布,那么将会使得GNN的泛化能力变差。

所以作者提出了新的想法CAL,设计一个模型能够将图数据中的因果图和琐碎图进行分离,降低嘈杂因子对于该项任务的影响。

🍁 二、模型方法 🍁

2.1 结构因果模型

在这里插入图片描述
对于图分类的任务,我们可以定义上面的SCM图,这幅图显示了该任务当中的一些变量之间的因果关系。

  • G:代表图数据
  • C:代表图数据中的因果特征
  • S:图数据中的捷径特征,也就是混杂因子,会导致模型不按正确的方式进行预测
  • R:图的表征信息
  • Y:图的类别信息

对于因果理论来讲,图数据中会存在两种数据特征,一种是捷径特征,另外一种是因果特征,我们希望分类任务当中我们使用因果特征,也就是走G->C->R->Y这条道路,但是数据种往往会存在非因果特征,模型会使用这部分数据用于预测,也就是图中上面的路。

这也就是说如果我们的数据分布不一致,那么显然模型的泛化性一定会降低,因为在测试集种很有可能没有捷径这部分特征。

说了很久捷径特征和因果特征,这里我举个例子说明一下这两个特征的区别:

比如我们现在有一个图像分类的任务,是要判断一张图片是不是羊,我们的训练集中所有有羊的图片中都会有草地,但是验证集中只有羊,此时如果使用模型训练,模型就会将草和羊做关联,认为凡是有草的图片就会有羊,没有草的图片即使有羊也不会识别成功,这时该网络就犯了错,因为它的学习方式有误,我们识别羊应该通过图像的纹理判断是否具备羊的特征,而不是通过草这个特征,即便该模型在训练集中可以做到百分百准确率,但是一旦换一张一只羊在南极的照片,他就会识别失败。

显然这个例子中的捷径特征就是草这个因素,因果特征应该是羊图像的纹理特征,叫捷径特征也就是模型利用该特征偷懒了,并没有学习到数据的本质关系。

2.2 后门调整

该因果关系图中,存在后门路径C<-G->S->R->Y,其中S在C和Y之间就扮演了混杂因子的角色,尽管C和Y没有直接联系,但是存在后门路径,他会建立一个错误的联系通过S,进而导致模型出现错误的判断,所以切断后门路径使GNN利用因果特征至关重要。

因果理论中为我们提供一种方法来消除后门路径:利用do算子进行干预

在这里插入图片描述

2.3 因果和琐碎参与图

为了能够同时学习到图数据中的因果特征和捷径特征,作者提出了因果参与图和琐碎参与图这两个概念,希望通过这两个图来分类特征信息,然后用因果图进行分类,而琐碎参与图视为没有因果特征信息的图。
在这里插入图片描述
目标就是通过掩码分数来从完整图数据中捕获因果参与图和琐碎参与图,学习到这两个图不仅可以指导GNN的表示学习,还可以回答GNN使用什么知识进行预测,这对于解释性、隐私性和公平性的应用至关重要。

2.4 因果注意力学习

作者提出了CAL框架来实现上面的想法

2.4.1 计算注意力掩码分数

作者为了实现干预,所以需要从图数据中分离因果特征和捷径特征,这也就对应上面说到的两个图,但是作者在学习这两部分特征时使用了注意力模块,这个模块会根据节点以及边的特征信息来学习出对应的注意力分数。
在这里插入图片描述
利用这些分数,我们可以形成两个矩阵,分别是 M a M_a Ma M x M_x Mx以及他们的互补矩阵,所谓互补矩阵就是使用全1矩阵减去他们得到的矩阵,然后使用这两个矩阵提取图数据中的信息。

在这里插入图片描述

2.4.2 分离因果图和琐碎图

上面给出了因果图和琐碎图的计算方式,然后作者采用了两个GNN层获取了图的表示,使用读出函数和分类器进行预测,因为我们最终是要做分类,所以需要使用Read Out函数读取整幅图的数据,将其转化为一个向量输入到后面的分类器中进行分类。

在这里插入图片描述
因为因果参与图是真正用来提取信息进行分类任务的,所以我们要基于因果参与图的预测结果构造损失函数,也就是分类任务常用的交叉熵损失函数。

在这里插入图片描述

但是我们的琐碎参与图也会存在输出,因为我们不想让它参与模型的预测,也就是不希望捷径特征和Y产生因果关系,所以希望琐碎参与图的输出与Y无关系,那么就希望它的输出更加接近均匀分布,所以对于琐碎参与图也会有相应的损失函数:

在这里插入图片描述
该损失函数利用了KL散度,它就是用于衡量两个分布的相似性,因为我们希望它不参与预测,也就是希望它的输出更加接近均匀分布。

2.4.3 因果干预

为了缓解混杂因子对于模型的影响,需要进行后门调整,作者的想法是对混杂因素进行分层,将因果参与图与琐碎参与图进行随机配对,组成一个干预图。

在这里插入图片描述
就是将因果参与图的读出表示随机与琐碎参与图的读出表示进行相加,然后将这个向量用于分类器。

最后,整个CAL框架模型的损失可以定义为这三个损失函数之和:

在这里插入图片描述

🍁 三、实验结果 🍁

3.1 合成数据集

在这里插入图片描述

3.2 真实数据集

在这里插入图片描述

🍁 四、总结 🍁

该作者从因果角度重新审视了用于图分类的GNN建模,发现当前的GNN学习策略倾向于利用捷径特征来支持他们的预测,然而,捷径特征实际上扮演了一个令人困惑的角色。它在因果特征和预测之间建立了一条后门路径,从而误导GNN学习虚假相关性。为了减轻混杂效应,提出了GNN的因果注意学习策略(CAL)。CAL以因果理论的后门调整为指导,它鼓励GNN利用因果特征,而忽略捷径部分。广泛的实验结果和分析证实了其有效性。

CAL算法流程
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据处理】Python matplotlib绘制双柱状图以及绘制堆积柱状图——保姆级教程

Python matplotlib绘制双柱状图以及绘制堆积柱状图双柱状图一、双柱状图的原理二、双柱状图的完善1. 增加图片标题2. 增加x轴y轴标题3. 增加x轴注释四、完整代码堆积柱状图一、堆积柱状图的绘制原理二、plt.bar参数介绍三、完整代码&#xff1a;双柱状图 一、双柱状图的原理 …

机器人C++库(12)Robotics Library 之指定路径规划算法

机器人C库&#xff08;12&#xff09;Robotics Library 之路径规划算法&#xff1a;PRM、RRT、EET算法 RL库的运动规划(rl::plan)模块集成了以下经典的路径规划算法&#xff1a; PRM算法:概率路线图算法RRT算法&#xff1a;快速探索随机树算法EET算法&#xff1a;搜索树算法-基…

java计算机毕业设计ssm基金分析系统的设计与实现

项目介绍 计算机信息技术的发展,推动了基金信息化管理的进程,并随着互联网&#xff1a;概念的提出,各种互联网&#xff1a;软件也应运而生。在传统的管理中,各种信息管理难,传播速度慢,需要耗费很长时间统计核查,不能满足现代化的发展需求,基于JAVA的基金分析系统的提出解决了…

python+django家政服务中介网站系统

通常 一个Django model 对应一张数据表&#xff0c;model是以类的形式表现的 实现了ORM 对象与数据库映射 隐藏了数据访问细节 不需要写sql语句 admin是Django自带的 自动化数据管理界面 前端技术&#xff1a;nodejsvueelementui 我们最初的项目结构由五个文件组成&#xf…

《树莓派项目实战》第六节 使用超声波模块测距

目录 6.1 引脚介绍 6.2 工作原理 6.3 使用注意 6.4 连接到树莓派 6.5 编写代码输出距离 在本节&#xff0c;我们将学习如何使用HC-SR04超声波模块测量前方障碍物的距离&#xff0c;该项目设计到的材料有&#xff1a; 树莓派 * 1面包板 * 1杜邦线若干HC-SR04超声波模块* 1…

Mysql进阶之索引与视图和三大范式

1、索引&#xff08;index&#xff09; 1.1、什么是索引&#xff1f; 索引是在数据库表的字段上添加的&#xff0c;是为了提高查询效率存在的一种机制。 一张表的一个字段可以添加一个索引&#xff0c;当然&#xff0c;多个字段联合起来也可以添加索引。 索引相当于一本书的…

redis搭建主从、redis搭建集群、redis中StrictRedis()、RedisCluster()方法与python交互

一、StrictRedis方法 创建对象&#xff0c;指定host、port、db与指定的服务器端口连接&#xff0c;其中默认host为localhost、port为6379、db为0&#xff0c;不同类型调用的实例方法不同&#xff0c;与redis命令一致&#xff0c;方法需要的参数与命令参数一致 from redis imp…

Xavier(8):Xavier使用速腾聚创激光雷达运行a-loam算法部分报错与解决方案

文章目录1 速腾聚创激光雷达驱动报错&#xff1a;Project cv_bridge specifies /usr/include/opencv as an include dirProject grid_map_cv specifies /usr/include/opencv as an include dir2 a-loam算法报错&#xff1a; fatal error: opencv/cv.h: 没有那个文件或目录报错&…

无线社工基础

无线社工基础 一些社会工程学密码生成器&#xff08;百度&#xff09; Crunch工具 /usr/share/crunch/charset.lstcrunch 最短长度 最长长度 字符集 选项crunch 8 12 -f /usr/share/crunch/charset.lst ualpha -o /root/pass.txt Windows下对附近无线网络进行扫描 WirelessMon…

MySQL事务/事务与数据库底层数据/多点回滚/隔离级别/悲观锁和乐观锁/锁模式和分类/相关锁总结/JDBC事务实现

文章目录MySQL事务概述事务事务与数据库底层数据事务控制语句事务处理基本测试多点回滚相关日志问题redo logundo log隔离级别常见问题事务隔离性隔离级别的范围总结隔离等级读未提交读已提交可重复读串行化并发写问题幻读问题悲观锁和乐观锁锁模式锁分类按加锁方式分类按照算法…

基于贝叶斯推理估计稳态 (ST) 和非稳态 (NS) LPIII 模型分布拟合到峰值放电(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

ShardingSphere笔记(一): 经验和踩坑总结

ShardingSphere笔记&#xff08;一&#xff09;&#xff1a; 使用经验总结 文章目录ShardingSphere笔记&#xff08;一&#xff09;&#xff1a; 使用经验总结一、背景框架选择二、ShardingSphere-jdbc 只是一个帮助你路由的框架&#xff08;踩坑总结&#xff09;1. 它默认会认…

支持末尾携带标签的多行TextView

项目开发过程中&#xff0c;遇到个UI上的需求&#xff0c;本着不重复造轮子、敏捷开发的原则&#xff0c;于是乎网上找寻了一番&#xff0c;发现还是自己搞吧&#xff0c;搜不到这样的需求&#xff0c;先看下我们的效果。 总结有以下三点需要注意&#xff1a; 末尾vip部分是…

$19服务:DTCStatusMask和statusofDTC bit 定义

诊断协议那些事儿 诊断协议那些事儿专栏系列文章&#xff0c;当ECU产生DTC时&#xff0c;我们只知道有故障发生了&#xff0c;并不清楚该故障什么时候发生&#xff0c;现在是否已经恢复、发生过几次&#xff0c;恢复过几次等信息&#xff0c;基于此ISO发布的14229-1使用DTC状态…

[附源码]SSM计算机毕业设计志愿者管理系统论文2022JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【VTK+有限元后处理】可视化结果云图

构建vtkUnstructuredGrid对象 为了读取不同格式的有限元计算结果文件&#xff0c;我们先写一个FEDataModel类来管理有限元的几何拓扑和属性信息。 class FEDataModel:"""有限元数据模型类"""def __init__(self):self.nodes [] # 节点几何坐标…

斐波那契数列和斐波那契数

一、什么是斐波那契数列 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这…

【考研复试】计算机专业考研复试英语常见问题三(个人选择/学业规划篇)

相关链接&#xff1a; 【考研复试】计算机专业考研复试英语常见问题一&#xff08;家庭/家乡/学校篇&#xff09;【考研复试】计算机专业考研复试英语常见问题二&#xff08;研究方向/前沿技术/本科毕设篇&#xff09;【考研复试】计算机专业考研复试英语常见问题三&#xff0…

C++---哈希

目录 1. unordered系列关联式容器 1.1 unordered_map 1.1.1 unordered_map的介绍 1.1.2 unordered_map的接口说明 1.2 unordered_set 2. 底层结构 2.1 哈希概念 2.2 哈希冲突 2.3 哈希函数 2.4 哈希冲突解决 2.4.1 闭散列 2.4.2 开散列 3. 封装unorder_map和unord…

MySQL增删改查进阶 — 表的设计

文章目录表的设计1.设计思路2.实体固定关系的套路2.1 一对一关系2.2 一对多关系2.3 多对多关系3.总结表的设计 表的设计实际上要做的工作就是明确一个程序里&#xff0c;需要使用几个数据库&#xff0c;几个表&#xff0c;表里都有哪些列。 1.设计思路 先明确实体再明确实体…