Towards Self-Explainable Graph Neural Network
概
SE-GNN 试图构造一个本身就有可解释能力的 GNN.
符号说明
- , 图;
- , nodes;
- , edges;
- , 特征;
- , 邻接矩阵;
- , labeled nodes, 其中结点的标签记为 , 此为 one-hot 向量;
- , unlabeled nodes;
- , 的 n-hop 邻居;
- n-hop subgraph;
Motivation
-
以往的可解释 GNN 往往采取重新训练一个模型来解释特定的 GNN, 作者认为这种做法存在 bias, 所以作者希望能够构造一个本身具有可解释能力的 GNN;
-
作者认为, node 分类最重要的是关注 node features 以及它们的 local structures:
- 两个结点如果它们的特征相似, 那么它们的标签可能是一致的;
- 两个结点如果它们的局部的结构相似, 那么它们的标签也可能是一致的;
-
所以本文就从这两个方面出发, 介绍如何建模点和点的特征相似度以及结构特征相似度.
相似度
点相似度
-
以往的抓住结点间的相似度, 往往通过一个复杂的 GNN 将其转换为特征, 然后用类似 cosine 相似度来度量, 但是一旦用上了复杂的 GNN, 那么就不可避免地混淆了结构信息;
-
所以作者希望避免这一点:
即通过 MLP 紧接一个单层的 GCN.
-
于是两个结点的点相似度可以定义为:
其中 可以用比如 cosine 相似度.
结构相似度
- 如果两个结点具有相似的 n-hop 子图的话, 那么两个结点本身也可能是相似的;
- 为了建模这一关系, 我们需要考虑两个结点的 n-hop 子图的边的匹配度:
- 首先定义 的表示:
其中 可以是池化或者 LSTM 等等;
2. 记两个子图 的边特征集合为:- 为 中的每一个边找到 中的一个最相似的匹配:
并把这些配对记为- 于是, 我们可以定义边的相似度:
本文方法
-
有了点的相似度和结构的相似度, 我们可以定义两个结点的总的相似度:
-
通过概相似度, 我们可以通过 KNN 找到 K 个最相邻的结点 ;
-
很显然的, 应该和最相似的那批点的标签保持一致 (这里假设 越大越相似):
其中
-
显然这个过程解释了 的来源;
-
此外, 我们还可以对边的重要性进行解释:
- 如果一条边很重要, 那么它应当在多个相似的子图中出现;
- 对于边 , 记 为 中匹配的点边, 则 的重要性可以衡量为:
显然 越大, 说明该边提供了很多的相似度, 自然是重要的边.
注: 如何 KNN 以及如何采样负样本近似等这里就不讲了.
代码
[official]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2021-10-07 Implicit Neural Representations with Periodic Activation Functions
2020-10-07 What is being transferred in transfer learning?
2019-10-07 pandas tutorial
2019-10-07 pandas tutorial 2