[EGNN] Exploiting Edge Features for Graph Neural Networks 利用图神经网络的边特征 论文详解 CVPR 2019
文章目录
- 1 简介
- 1.1 GAT和GCN的局限性
- 1.2 EGNN的创新点
- 2 相关工作
- 3 EGNN网络
- 3.1 符号定义
- 3.2 EGNN和GNN的对比
- 3.3 Doubly stochastic normalization of edges 边的双向随机归一化
- 3.4 EGNN(A): Attention based EGNN layer
- 3.5 EGNN\(C\): Convolution based EGNN layer
- 3.6 Edge features for directed graph
- 4 实验结果
- 4.1 引文网络数据集
- 4.2 化学分子数据集
论文:Exploiting Edge Features for Graph Neural Networks(利用图神经网络的边特征 )
有的地方为:Exploiting Edge Features in Graph Neural Networks
作者:Liyu Gong,Qiang Cheng
来源:CVPR 2019
论文链接:http://openaccess.thecvf.com/content_CVPR_2019/papers/Gong_Exploiting_Edge_Features_for_Graph_Neural_Networks_CVPR_2019_paper.pdf
github链接:未开源代码
Graph convolutional networks (GCN) 和Graph attention networks (GAT) 不能充分的利用edge features。为了充分利用edge features, 本文作者提出提出了一个新的框架EGNN来增强当前的图神经网络模型,例如GCN和GAT。
文中使用了GCN中的引文网络数据集和其他一些分子数据集实验,证明了EGNN能充分利用图中的边的信息,和GCN、GAT相比,EGNN性能更好,分类准确率更高。
1 简介
1.1 GAT和GCN的局限性
GAT和GCNs之间的本质区别在于聚集邻居权值的方式不同:在GCNs中,用于聚集(过滤)邻居节点的权值是由独立于节点embedding的图拓扑结构定义的;而在GAT中,由于注意力机制,权值是节点embedding的函数。对图节点的分类结果表明,GAT的自适应能力使得融合节点特征和图拓扑结构的信息更加有效。
两个局限
没有充分使用边的特征:GAT没有充分利用边的信息,只利用到了连接性,即在邻接矩阵中值为1表示有连接,值为0,表示不相连。然而,图中的边通常具有很多信息,例如强度、类型等。并且不仅仅是二进制的变量,可能是连续的、多维的。
GCN能够利用一维的边的特征,也就是边的权重,但是仅限于使用一维的边的特征。原始邻居矩阵可能存在噪声:每个GAT或GCN层根据作为输入的原始邻接矩阵过滤节点特征。原始邻接矩阵可能存在噪声且不是最优的,这将限制滤波操作的有效性。
1.2 EGNN的创新点
- 能够充分地利用多维的边的特征。它克服了GAT只能使用二进制边特征和GCN只能使用一维边特征的局限
- 双随机边归一化。文中建议将边的特征矩阵规范化为双随机矩阵,这在去噪方面表现出不错的改进的性能[Network Enhancement: a general method to denoise weighted biological networks]。
- 跨神经网络层的基于注意的边的自适应能力。EGNN不仅可以过滤节点特征,而且可以跨层调整边的特征。利用这种新的体系结构,当通过网络层传播时,边的特征适应局部内容和全局层。
- 对有向边编码多维边的特征。文中提出了一种方法可以将边的方向编码成多维的边的特征。因此,EGNN可以有效的处理有向的图数据。
2 相关工作
提取非欧氏距离的图数据的特征的一些方法:
(1)传统的机器学习核方法:
- Graph Kernels
- Weisfeiler-Lehman Graph Kernels
(2)基于矩阵分解的embedding方法
- Laplacian Eigenmap (LE):Laplacian Eigenmaps and Spectral Techniques for Embedding and Clustering,NIPS 2001
- Graph Factorization (GF) algorithm:Distributed Large-scale Natural Graph Factorization,WWW 2013
- GraRep:GraRep: Learning Graph Representations with Global Structural Information,2015
- HOPE:Asymmetric Transitivity Preserving Graph Embedding,SIGKDD 2016
(3)基于随机游走的方法
- DeepWalk
- node2vec
- LINE
- HARP
基于随机游走和矩阵分解的方法有几点局限性
- 将特征映射到低维向量空间的embedding function是线性的或太过简单,不能捕获复杂的信息
- 都没有融合节点特征
- 是transductive的,在训练期间要求整个图的结构信息
针对上述问题的解决方案
- 使用深度学习神经网络可以表示复杂的特征,并且可以通过梯度下降方法来优化
- 为了将图节点嵌入到欧氏空间中,采用深度自编码器从节点相似矩阵或邻接矩阵中提取连接模式。例如,Deep Neural Graph Representations (DNGR),Structural Deep Network Embeddings (SDNE)
尽管基于自编码的方法能够捕获比基于矩阵分解和随机游走的方法更复杂的模式,但是它们仍然不能利用节点特性。最新的方法是使用GCN、GAT等新型的网络结构。
3 EGNN网络
3.1 符号定义
- XXX是一个N×FN × FN×F的矩阵,表示全图的节点的特征
- XijX_{ij}Xij表示第iii个节点的第jjj个特征
- XiX_{i}Xi表示第iii个节点的FFF维的特征
- EEE是一个N×N×PN × N × PN×N×P的tensor,表示图上边的特征
- EijE_{ij}Eij表示连接节点iii和节点jjj的边的PPP维的特征向量
- EijpE_{ijp}Eijp表示EijE_{ij}Eij中的第ppp个通道
- Eij=0E_{ij}=\bf{0}Eij=0表示节点iii和节点jjj之间没有边连接
- Ni\mathcal{N}_iNi表示节点iii的邻居集合
3.2 EGNN和GNN的对比
- 左图:GNN层,每个层可能是一个GCN或GAT层。
- 右图:EGNN层,是GNN加了边的特征的增强版。
EGNN有两点不同于GNN:
- 邻接矩阵使用不同:传统GNN的邻接矩阵就是a binary matrix(0或者1),表示各个点的邻居关系,GAT也是这样。在GCN中,邻接矩阵是一个都是正值的矩阵,每个值都是一维的边的特征。
而EGNN的邻接矩阵是多维的正值矩阵。(矩阵中每个值都有多个维度,来表示每条边的多个属性) - 邻接矩阵的喂法:传统GNN每一层都输入相同的邻接矩阵A,而EGNN中,在输入到下一层之前,每一层的边的特征都在改变。
除此以外,还有以下特点:
- EGNN中每层的边的特征的维度是不变的,都是N×N×PN × N × PN×N×P
- EGNN中的E0E^0E0是根据Doubly stochastic normalization已经归一化的
- 对于节点分类问题,沿着最后一个维度,每个节点embedding vectorXiLX_{i}^{L}XiL都应用一个softmax operator
- 对于整个图的预测(分类或者回归),在XLX^{L}XL的第一个维度应用一个池化层pooling layer使得特征矩阵简化为一个整个图的单个vector embedding。然后一个全连接层应用于该向量上,全连接层的输出可以被用来做回归的预测,或者是分类。
3.3 Doubly stochastic normalization of edges 边的双向随机归一化
在形卷积运算中,利用边的特征矩阵作为滤波器,将节点特征矩阵相乘。为了避免乘法增加输出特征的规模,需要对边的特征进行归一化处理:
E~ijp=E^ijp∑k=1NE^ikp(1)\tag{1} \tilde{E}_{i j p} =\frac{\hat{E}_{i j p}}{\sum_{k=1}^{N} \hat{E}_{i k p}} E~ijp=∑k=1NE^ikpE^ijp(1)
Eijp=∑k=1NE~ikpE~jkp∑v=1NE~vkp(2)\tag{2} E_{i j p} =\sum_{k=1}^{N} \frac{\tilde{E}_{i k p} \tilde{E}_{j k p}}{\sum_{v=1}^{N} \tilde{E}_{v k p}} Eijp=k=1∑N∑v=1NE~vkpE~ikpE~jkp(2)
- E^\hat EE^表示未加工的边的特征, E^\hat EE^的所有元素都是非负的
- EEE表示归一化以后的边的特征
很容易验证归一化以后的边的特征EEE满足以下特点
Eijp≥0(3)\tag{3} E_{i j p} \geq 0 Eijp≥0(3)
∑i=1NEijp=∑j=1NEijp=1(4)\tag{4} \sum_{i=1}^{N} E_{i j p} =\sum_{j=1}^{N} E_{i j p}=1 i=1∑NEijp=j=1∑NEijp=1(4)
- 边的特征矩阵E..pE_{..p}E..p的每一个维度p=1,2,...,Pp=1,2,...,Pp=1,2,...,P都是一个行和列的和都是1的值为正数的方阵
- 上述方阵都是双向随机矩阵,都是左随机和右随机的
Doubly stochastic matrices (DSMs)有很多不错的性质:对称的,positive semi-definite(半正定的),最大特征值为1。
双向随机归一化的优点
在多层网络的diffusion期间,边的特征矩阵会在不同的层之间重复相乘,使用双向随机归一化能够避免边的特征矩阵的爆炸和衰减为0的问题,可以使得整个过程更稳定。
双随机矩阵在图的边的去噪中的有效性在nature论文(Network Enhancement: a general method to denoise weighted biological networks,2018)中得到了验证
不同归一化方法的对比
- GAT中使用的是行归一化
Eijp=E^ijp∑j=1NE^ijp(5)\tag{5} E_{i j p}=\frac{\hat{E}_{i j p}}{\sum_{j=1}^{N} \hat{E}_{i j p}} Eijp=∑j=1NE^ijpE^ijp(5)
- GCN中使用的是对称归一化
Eijp=E^ijp∑i=1NE^ijp∑j=1NE^ijp(6)\tag{6} E_{i j p}=\frac{\hat{E}_{i j p}}{\sqrt{\sum_{i=1}^{N} \hat{E}_{i j p}} \sqrt{\sum_{j=1}^{N} \hat{E}_{i j p}}} Eijp=∑i=1NE^ijp∑j=1NE^ijpE^ijp(6)
3.4 EGNN(A): Attention based EGNN layer
GAT模型只能处理单维的二进制边的特征,即,注意力机制是在邻居的节点特征上定义的,没有考虑实值边的特征,如权值。针对多维正实值边的特征问题,文中提出了一种新的注意力机制。这种注意力机制同时聚合了节点的特征和对应边的特征:
Xl=σ[∥p=1P(α..pl(Xl−1,E..pl−1)gl(Xl−1))](7)\tag{7} X^{l}=\sigma\left[\Vert_{p=1}^{P}\left(\alpha_{..p}^{l}\left(X^{l-1}, E_{..p}^{l-1}\right) g^{l}\left(X^{l-1}\right)\right)\right] Xl=σ[∥p=1P(α..pl(Xl−1,E..pl−1)gl(Xl−1))](7)
- α\alphaα是生成一个N×N×PN × N × PN×N×P的tensor的函数,α..p\alpha_{..p}α..p是第ppp个通道的函数
- αl\alpha^lαl就是注意力系数,
- ggg是一个将节点特征从输入空间映射到输出空间的转换函数
gl(Xl−1)=WlXl−1(8)\tag{8} g^{l}\left(X^{l-1}\right)=W^{l} X^{l-1} gl(Xl−1)=WlXl−1(8)
- WlW^{l}Wl是一个Fl×Fl−1F^{l} \times F^{l-1}Fl×Fl−1的参数矩阵
α..pl=DS(α^..pl)(9)\tag{9} \alpha_{..p}^{l} =\operatorname{DS}\left(\hat{\alpha}_{..p}^{l}\right) α..pl=DS(α^..pl)(9)
α^ijpl=fl(Xi.l−1,Xj.l−1)Eijpl−1(10)\tag{10} \hat{\alpha}_{i j p}^{l} =f^{l}\left(X_{i.}^{l-1}, X_{j.}^{l-1}\right) E_{i j p}^{l-1} α^ijpl=fl(Xi.l−1,Xj.l−1)Eijpl−1(10)
- DS就是双向随机归一化操作
- fff可以是由两个输入向量产生标量值的任何普通注意力函数,文中为了简化,使用一个线性的函数作为注意力函数
fl(Xi.l−1,Xj.l−1)=exp{L(aT[WXi.l−1∥WXj.l−1])}(11)\tag{11} f^{l}\left(X_{i.}^{l-1}, X_{j.}^{l-1}\right)=\exp \left\{\mathrm{L}\left(a^{T}\left[W X_{i.}^{l-1} \| W X_{j.}^{l-1}\right]\right)\right\} fl(Xi.l−1,Xj.l−1)=exp{L(aT[WXi.l−1∥WXj.l−1])}(11)
- LLL代表LeakyReLU激活函数
- WWW和公式(8)中的一样
- ∣∣||∣∣是连接操作
注意力系数将会作为新的边的特征输入到下一层
El=αl(12)\tag{12} E^{l}=\alpha^{l} El=αl(12)
可以看出,EGNN在网络层之间不断通过注意力系数来调整边的特征。
3.5 EGNN(C): Convolution based EGNN layer
GAT使用注意力系数聚合邻居特征而GCN使用邻接矩阵聚合GCN。因此,用对应的边的特征矩阵E..pE_{..p}E..p替换α..pl\alpha_{..p}^{l}α..pl就得到了EGNN(C):
Xl=σ[∥p=1P(E⋯pXl−1Wl)](13)\tag{13} X^{l}=\sigma\left[\|_{p=1}^{P}\left(E_{\cdots p} X^{l-1} W^{l}\right)\right] Xl=σ[∥p=1P(E⋯pXl−1Wl)](13)
3.6 Edge features for directed graph
现实生活中的很多图数据的边都是有方向的,例如,在引文网络中,一些机器学习的论文通常会引用数学类的论文,但是数学类的很少引用机器学习类的。在之前的GAT,GCN中的研究都是把引文网络数据当作是无向图,把边的特征丢掉通常会失去一些重要的信息。
实验中把边的方向看作是一种边的特征,并把有向边的通道EijpE_{ijp}Eijp编码成
[EijpEjipEijp+Ejip]\left[\begin{array}{ccc}{E_{i j p}} & {E_{j i p}} & {E_{i j p}+E_{j i p}}\end{array}\right] [EijpEjipEijp+Ejip]
- 三个通道分别代表三种类型的邻居:forward, backward and undirected
- EGNN将会从不同的通道获得这三种类型的邻居聚合的信息
4 实验结果
- 使用Tensorflow实现
- Cora等数据集的节点特征很稀疏,使用Sparse Tensor减少内存要求和计算复杂度
- GPU:12 Gigabyte graphics memory的Nvidia Tesla K40
4.1 引文网络数据集
- Cora和Citeseer数据集的特征是稀疏的,用二进制标识表示,1表示对应的词出现在引文中,0表示对应的词没有出现在引文中
- Pubmed数据集使用TF-IDF作为节点特征
- 三种引文在GCN等网络中已经忽略了边的信息,文中使用的是原始数据集(来源于Collective Classification in Network Data和Query-driven Active Surveying for Collective Classification)
每个数据集划分成三个子集用于训练,验证和测试,比例分别为
- sparse:5%, 15% and 80%
- dense:60%, 20% and 20%
实验设置如下
- 学习率:0.005
- 所有隐藏层的线性映射WWW的输出维数固定为64
- drop out rate:0.6
- 使用权值衰减为0.0005的L2L_2L2正则化
- 隐藏层的非线性激活函数:exponential linear unit (ELU)
用于数据分布不平衡,为了测试数据不平衡的影响,使用有权重和无权重两种损失函数。节点属于第kkk类的权重计算方式如下:
∑k=1KnkKnk(14)\tag{14} \frac{\sum_{k=1}^{K} n_{k}}{K n_{k}} Knk∑k=1Knk(14)
- 其中,KKK表示类别的数量
- nkn_knk表示节点属于第kkk类的数量
- 少数类中的节点被赋予了比多数类更大的权重,因此损失也更大。
- D:Doubly stochastic normalization
- M:multi-dimensional edge features
- A:edge adaptiveness
- W:weighted loss component
- 多维边特征和双随机归一化比边自适应能力有更大的提高
- 没有权重的训练在Cora数据集上有更高的准确率
- 带权的训练不总是能提升性能,特别是在不太平衡的数据集上,例如Pubmed
- 更多的训练数据为算法提供了更多的信息来调整参数,因此dense划分比sparse划分准确率更高
- Citeseer的节点度最小,在sparse划分中边的数量很少用到,因此Citeseer数据集在Sparse划分时准确率提高不多
4.2 化学分子数据集
- 一个分子可以表示成一张图,其中一个原子就是一个节点,化学键是边
- 在引文网络上是做节点分类,但是在分子数据集上是做整图分类,预测或回归等任务,例如,给定一个分子的图表示,分类问题目标是预测是否是有毒的,回归问题目标是预测溶解度
- 化学分子数据集的图中的边上通常包含了多维的边的的特征
- Tox21含有7831种化合物,每个化合物包含12种标签
- Lipophilicity包含4200种化合物,目标是预测溶解度,是一个回归任务
- 对于三种数据集,节点通过25维的特征向量来描述,边特征的维度Tox21, Lipo和Freesolv分别是42, 21,25
实验设置如下
- 学习率:0.0005
- 所有隐藏层的线性映射ggg的输出维数固定为16
- 除了bias参数,其余的使用权值衰减为0.0001的L2L_2L2正则化
- 隐藏层的非线性激活函数:exponential linear unit (ELU)
[EGNN] Exploiting Edge Features for Graph Neural Networks 利用图神经网络的边特征 论文详解 CVPR 2019相关推荐
- [论文翻译]-A Comprehensive Survey on Graph Neural Networks《图神经网络GNN综述》
文章目录 摘要 1 简介 1.1 GNN简史 1.2 Related surveys on graph neural networks 1.3 Graph neural networks vs. ne ...
- Distill文章-A gentle introduction to graph Neural Networks(图神经网络是怎么构造的)
目录 1 简介 2 图的介绍 3 数据如何表示成图 4 三大类问题 5 将机器学习(神经网络)用在图上,会遇到什么挑战 6 最简单的GNN 7 信息传递(把图结构的信息考虑进去) 8 GNN的pl ...
- 论文翻译-A Comprehensive Survey on Graph Neural Networks《图神经网络GNN综述》
文章目录 1 简介 1.1 GNN简史 1.2 GNN的相关研究 1.3 GNN vs 网络嵌入 1.4 文章的创新性 2 基本的图概念的定义 3 GNN分类和框架 3.1 GNNs分类 3.2 框架 ...
- Introduction to Graph Neural Network(图神经网络概论)翻译:目录总览
前言:最近对图神经网络部分比较感兴趣,偶尔看到清华大学刘知远老师在今年3月份发表的一本书:Introduction to Graph Neural Network,于是将该书内容进行翻译,记录阅读中自 ...
- Introduction to Graph Neural Network(图神经网络概论)翻译:Chapter4:Vanilla Graph Neural Networks
文章目录 4.Vanilla Graph Neural Networks(原始图神经网络) 4.1. Introduction 4.2 Model 4.3 Limitations 4.Vanilla ...
- SGC - Simplifying Graph Convolutional Networks 简化的图卷积网络 论文详解 ICML 2019
文章目录 1 相关介绍 1.1 Simple Graph Convolution (SGC)提出的背景 1.2 SGC效果 2 Simple Graph Convolution 简化的图卷积 2.1 ...
- HetGNN-Heterogeneous Graph Neural Network 异构图神经网络 KDD2019
来源:KDD2019 论文链接:https://www3.nd.edu/~dial/publications/zhang_2019_heterogeneous.pdf 代码链接: https://gi ...
- Introduction to Graph Neural Network(图神经网络概论)翻译:Chapter2:Basic of Math and Graph
文章目录 2 Basic of Math and Graph 2.1 Linear Algebra(线性代数) 2.1.1 Basic Concepts(基本概念) 2.1.2 EIGENDECOMP ...
- 【阅读】A Comprehensive Survey on Electronic Design Automation and Graph Neural Networks——EDA+GNN综述翻译
转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net] Paper原文:https://dl.acm.org/doi/pdf/10.1145/3543853 ...
最新文章
- 200 万年薪,却招不到清华姚班毕业生!能上姚班的都是什么人?
- MySQL数据库查询中的特殊命令
- Python之functools.reduce使用
- setjmp和longjmp
- 如何在ASP.NET Core应用中实现与第三方IoC/DI框架的整合?
- mysql中的isnull
- iOS开发UI篇—实现一个私人通讯录小应用(二)
- CPR认证-建材CE认证-305/2011/EU
- PAT乙级(1007 素数对猜想)
- spring 自动扫包代码放置的位置问题
- 发布 html win7 工具,win7 天气 Win7自带的桌面天气工具怎么使用
- FPGA学习网站推荐
- win10:取消电脑代理的方法
- web前端源码笔记_canvas【爱创课堂专业前端培训】
- Real-Time Rendering 第五章 光照模型
- 图片文档扫描矫正处理(手机扫描仪),OCR识别,图片修改库整合
- 图片验证码和短信验证码开发
- CMOS和CCD相机对比
- POJ 2886:Who Gets the Most Candies?
- pyLDAvis3.3.1 报错 OSError: [Errno 22] Invalid argument: ‘https://cdn.jsdelivr.net/gh/bmabey/pyLDAvis@
热门文章
- Github上的开源项目2
- 在Ubuntu 上安装和配置postfix邮箱服务器
- nginx证书填写路径报错:SSL: error:0200107B:system library:fopen:Unknown error:fopen
- java导出excel表头斜线_Java导出Excel三表头
- [经典面试题][淘宝]求首尾相连数组的最大子数组和
- ElasticSearch服务(一)
- DSS 代码分析【服务器架构】
- ajax、php、json异步数据处理
- 文本工具来查看、分析、统计,比较
- (练习篇)萤火虫esp32与小爱音响---实现笔记本电脑唤醒