Graph Neural Network
回顾半监督GCN,交替叠加两次传播层和感知层, 模型第l层的隐含状态。
其中,。非线性激活函数ReLU。参数
和
通过在所有标记样本集合L上,最小化损失函数,训练得到:
为了更好的理解GCN,作者将GCN中的非线性变换剔除,只保留传播层,称为GLN。这样GLN模型就是一个简单的线性模型。
与GCN中一样,,权重矩阵
和
是最小化损失函数训练得出。两个传播层只是简单的对邻居节点特征加权求平均,权重为节点的度,输出层也是一个线性分类器。如此,分离出线性传播层和非线性感知层。GLN与其他方法的表现对比,如表2。比较GCN和GLN,GLN的准确度甚至更高,这表明对提升模型表现至关重要的是传播层,而不是感知层。其他不使用图卷积的方法对比,GLN模型在准确度上有明显差距。基于这个结果,考虑使用attention机制,替换GLN中的线性传播。
AGNN
原始的GCN和其他图神经网络使用的是静态,无法自适应的传播法则。无法捕捉中心节点的哪个邻居节点对于中心节点的分类贡献更大。真实数据并非所有的边都是代表着相同的关联强度,其中必然有一些才是至关重要的。基于GLN的实验结果,提出了作用与邻居节点集合的attention机制,它可以学习到分类模型中,那些邻居与中心节点更相关,并相应的权衡他们的贡献。
AGNN第一层网络与原始GCN一样,参数矩阵将节点特征X转化为长度为
的特征向量,激活函数使用ReLU。
在每个传播层加入参数化的注意力引导机制,参数为。
这样,对于节点i的输出向量为:
其中传播矩阵也是关于第l层状态和参数
的函数。attention中的softmax函数是确保传播矩阵每行的和为1,代表邻居节点对中心节点的影响力总和为1。这样从节点j到i的注意力为 :
计算节点i和节点j在第l层隐含状态的余弦距离,它捕捉了节点j到节点i的关联程度。注意力机制更倾向于选择那些与中心节点相同类别的邻居节点,给予更强的关联强度。
Experiments
在benchmark数据集上,作者设计了三个对比试验,验证AGNN模型的半监督分类精度。与其他baseline方法的结果对比,见下表。无论是只包含传播层的GLN模型还是基于attention的AGNN模型,都取得了优于其他方法的精度。

定性分析
之所以将attention引入模型,有一部分是因为,它提供了一定的解释性。学习得到的传播矩阵P,反映特征聚合过程中,中心节点i,对邻居节点j的关注度,它代表在对节点i分类过程中,节点j起到的作用。
上图,作者提供了基于Cora和CiteSeer数据集,提供了邻接矩阵成对节点之间attention的统计。展示了来自的节点c1 到来自的节点c2平均attention。将其定义为c2到c1 的相关性。
每个边的相关性得分即为:
上式中,表示节点i的度,
,
表示包含self-loop在内的所有边的集合。如果不使用任何attention,那么,传播中对中心节点的每个邻居的关注度是均匀的,
。加入attention之后,上式中的attention
需要为0,所以
要减去这个基础误差。并且使用
做归一化,这样,attention度量的是中心节点与其邻居节点之间的相对强度,而不是绝对差异。
Figure1展示了CiteSeer和Cora数据集的相关性得分。对于两个数据集,对角线上的元素占主导地位,这表明注意力机制正在学习为同一类别的节点增加权重。如果c1 →c2的相关性很高,那说明平均来看,类别c1 的节点更加关注邻居集合中那些类别c2的节点。

剔除self-loops,分析相关性得分较高和较低的边。对相关性得分进行排序,分别取top100和bottom100,计算这些边中,两端节点是相同类型节点的边的占比。如表5,这表明作者提出的模型结构倾向于更关注来自相同类型的两个节点。

最后,分析测试集中,GCN没有分类正确,但AGNN正确分类的节点。展示注意力机制如何加权局部邻居节点的贡献。Fig2中作者展示了三个实例,节点外有黑色镶边的为目标节点,展示出目标节点的二阶邻居,邻居节点的大小代表目标节点对邻居节点的注意力强度。同样可以发现,AGNN对目标节点分类时,邻居节点中的某一类节点会受到更多的关注,这帮助模型将给目标节点打出正确的标签。

参考链接
https://openreview.net/pdf?id=rJg4YGWRb