图神经网络学习—— 一文说明白图卷积GCN和图注意力GAT的区别

文章翻译自 DGL文档https://docs.dgl.ai/en/latest/tutorials/models/1_gnn/9_gat.html

文章末尾是原文:

GCN和GAT的关键区别在于,如何聚合来自临近邻居的信息(指一条,文章里说的是one-hop)。

对于GCN而言,

一个图的卷积运算产生邻节点特征的归一化和。

图神经网络学习—— 一文说明白图卷积GCN和图注意力GAT的区别_第1张图片

其中N(i)为其一跳邻居的集合(若要在集合中包含vi,只需向每个节点添加一个自循环,意思就是说如果得到的新节点如果要有老节点本身,那么要有自环)

 是一个基于图结构的归一化常数,σ是一个激活函数(GCN使用ReLU),W(l)是节点向特征变换的共享权矩阵。(注意!共享权重画重点,意思就是W它是对所有的节点进行统一的特征变换的,我们都一样!)

tips:GraphSAGE中提出的另一个模型使用相同的更新规则,只是设置了cij=|N(i)|。

 

而对于GAT引入了注意机制来代替静态归一化卷积运算。根据l层的嵌入计算l+1层节点嵌入h(l+1)i的公式如下:

图神经网络学习—— 一文说明白图卷积GCN和图注意力GAT的区别_第2张图片

式(1)为下层嵌入h(l)i的线性变换,W(l)为其可学习权矩阵。

式(2)计算两个相邻的非标准化注意分值。这里,它首先连接z嵌入的两个节点,在| |表示连接,然后将它和一个可学的权向量的点积⃗(l),并应用一个LeakyReLU。这种形式的注意通常被称为附加注意,与Transformer模型中的点积注意形成对比。

式(3)应用softmax对每个节点传入边的注意力得分进行归一化。

式(4)与GCN相似。来自邻居的嵌入信息被聚合在一起,根据注意力评分进行缩放。

 所以从本质上讲,GAT只是一个关注邻居特征的不同的聚合函数,而不是简单的均值聚合。

 

你可能感兴趣的:(深度学习,图神经网络学习)