论文学习笔记:Attention-Based Graph Neural Network For Semi-supervised Learning


图卷积对图中节点的特征和图结构建模,本文中作者首先移除图卷积中的非线性变换,发现在GCN中起关键作用的是传播层,而不是感知层。然后提出AGNN模型,在传播层引入attention机制,使中心节点特征的聚合过程中,对邻居节点的注意力产生差异。模型在benchmark测试用的文献引用数据集上的效果优于其他state-of-the-art的方法。并且,通过传播矩阵计算节点之间的关联强度,得到了一些更有趣的信息。在预测目标节点类别时,与预测类别相同的邻居节点将会在此过程中,承担了比其他邻居节点更重要的角色。

Graph Neural Network

GNN模型的向前传播是典型的传播层和感知层的交替。模型第l层的隐含状态 H ( l ) ∈ R n × d h H^{(l)} \in \mathbb{R}^{n\times d_h} H(l)Rn×dh,隐含状态的第i行 H i ( l ) H^{(l)}_i Hi(l),表示节点i的 d h d_h dh维特征。传播矩阵 P ∈ R n × n P\in \mathbb{R}^{n\times n} PRn×n传播层定义为
H ~ ( l ) = P H ( l ) \tilde{H}^{(l)}=PH^{(l)} H~(l)=PH(l)
回顾半监督GCN,交替叠加两次,传播层和感知层
H ( 1 ) = R e L U ( ( P X ) W ( 0 ) ) , Z = f ( X , A ) = s o f t m a x ( ( P H ( 1 ) ) W ( 1 ) ) H^{(1)} = \mathrm{ReLU}((PX)W^{(0)}), \\ \\ Z = f(X, A) = \mathrm{softmax}((PH^{(1)})W^{(1)}) H(1)=ReLU((PX)W(0)),Z=f(X,A)=softmax((PH(1))W(1))
其中, P = D ~ − 1 / 2 A ~ D ~ − 1 / 2 P=\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2} P=D~1/2A~D~1/2 A ~ = A + I \tilde{A}=A+\mathbb{I} A~=A+I。参数 W ( 0 ) 和 W ( 1 ) W^{(0)}和W^{(1)} W(0)W(1)通过最小化损失函数L,训练得到
L = − ∑ i ∈ L ∑ c = 1 d y Y i c l n Z i c \mathcal{L}= -\sum_{i\in L}\sum_{c=1}^{d_y}Y_{ic}\mathrm{ln}Z_{ic} L=iLc=1dyYiclnZic

为了更好的理解GCN,作者将GCN中的非线性变换剔除,只保留传播层,称为GLN。这样GLN模型就是一个简单的线性模型。
Z = f ( X , A ) = s o f t m a x ( ( P 2 X ) W ( 0 ) W ( 1 ) ) Z = f(X, A) = \mathrm{softmax}\Big((P^2X)W^{(0)}W^{(1)}\Big) Z=f(X,A)=softmax((P2X)W(0)W(1))
如表2,比较GCN和GLN,GLN的准确度甚至更高,这表明对提升模型表现至关重要的是传播层,而不是感知层。其他不使用图卷积的方法对比,GLNN模型在准确度上有明显差距。

AGNN

原始的GCN和其他图神经网络使用的是静态,无法自适应的传播法则。无法捕捉中心节点的哪个邻居节点对于中心节点的分类贡献更大。真实数据并非所有的边都是代表着相同的关联强度,其中必然有一些才是至关重要的。

作者提出的AGNN,简单的在每层加入一个参数 β ( t ) \beta^{(t)} β(t)。作用在邻居节点集上的注意力机制,学习哪些邻居与中心节点关联更强,权衡他们对分类目标节点的贡献度。

AGNN第一层网络与原始GCN一样,参数矩阵 W ( 0 ) ∈ R d x × d h W^{(0)}\in \mathbb{R}^{d_x \times d_h} W(0)Rdx×dh将节点特征 X X X转化为长度为 d h d_h dh的特征向量,激活函数使用ReLU。
H ( 1 ) = R e L U ( X W ( 0 ) ) H^{(1)} = \mathrm{ReLU}(XW^{(0)}) H(1)=ReLU(XW(0))

在每个传播层加入参数化的注意力引导机制,参数为 β ( t ) ∈ R \beta^{(t)}\in \mathbb{R} β(t)R
H ( l + 1 ) = P ( l ) H ( l ) , H^{(l+1)} = P^{(l)}H^{(l)}, H(l+1)=P(l)H(l),

这样,对于节点i的输出向量为
H i ( l + 1 ) = ∑ j ∈ N ( i ) ∪ { i } P i j ( l ) H i j ( l ) , P i ( l ) = s o f t m a x ( [ β ( l ) c o s ( H i ( l ) , H j ( l ) ) ] j ∈ N ( i ) ∪ { i } ) H^{(l+1)}_i = \sum_{j\in N(i) \cup \{i\}}P^{(l)}_{ij}H^{(l)}_{ij}, \\ \\ P_i^{(l)}=\mathrm{softmax}([\beta^{(l)} \mathbb{cos}(H^{(l)}_{i}, H^{(l)}_{j})]_{j\in N(i) \cup \{i\}}) Hi(l+1)=jN(i){i}Pij(l)Hij(l),Pi(l)=softmax([β(l)cos(Hi(l),Hj(l))]jN(i){i})

其中传播矩阵 P i ( l ) P_i^{(l)} Pi(l)也是关于第l层状态和参数 β ( l ) \beta^{(l)} β(l)的函数。attention中的softmax函数是确保传播矩阵每行的和为1,代表邻居节点对中心节点的影响力总和为1。这样从节点j到i的注意力为
P i j ( l ) = ( 1 / C ) e β ( l ) c o s ( H i , H j ) C = ∑ j ∈ N ( i ) ∪ { i } e β ( l ) c o s ( H i , H j ) P^{(l)}_{ij}=(1/C)e^{\beta^{(l)}cos(H_i, H_j)} \\ \\ C=\sum_{j\in N(i) \cup \{i\}}e^{\beta^{(l)}cos(H_i, H_j)} Pij(l)=(1/C)eβ(l)cos(Hi,Hj)C=jN(i){i}eβ(l)cos(Hi,Hj)

计算节点i和节点j在第l层隐含状态的余弦距离,它捕捉了节点j到节点i的关联程度。注意力机制更倾向于选择那些与中心节点相同类别的邻居节点,给予更强的关联强度。

Experiments

在benchmark数据集上,作者设计了三个对比试验,验证AGNN模型的半监督分类精度。与其他baseline方法的结果对比,见下表。无论是只包含传播层的GLN模型还是基于attention的AGNN模型,都取得了优于其他方法的精度。
Screenshot from 2018-11-13 10:21:48.png-125.9kB

定性分析

之所以将attention引入模型,有一部分是因为,它提供了一定的解释性。学习得到的传播矩阵P,反映特征聚合过程中,中心节点i,对邻居节点j的关注度,它代表在对节点i分类过程中,节点j起到的作用。

图1,作者提供了基于Cora和CiteSeer数据集的节点对邻接矩阵attention统计。展示了来自 c 1 c_1 c1c1的节点到来自 c 2 c_2 c2c2的节点的平均attention。将其定义为 c 2 c_2 c2 c 1 c_1 c1的相关性。
R e l e v a n c e ( c 2 → c 2 ) = 1 ∣ S c 1 , c 2 ∣ ∑ ( i , j ) ∈ S c 1 , c 2 R ( j ← i ) , \mathrm{Relevance}(c_2\rightarrow c_2) = \frac{1}{|S_{c_1,c_2}|}\sum_{(i,j)\in S_{c_1,c_2}} R(j \leftarrow i), Relevance(c2c2)=Sc1,c21(i,j)Sc1,c2R(ji),
每个边的相关性得分即为:
R ( j ← i ) = ( P i j ( l ) − 1 ∣ N ( i ) ∣ + 1 ) / 1 ∣ N ( i ) ∣ + 1 R(j \leftarrow i) = \Big(P^{(l)}_{ij}-\frac{1}{|N(i)|+1}\Big)\Big/\frac{1}{|N(i)|+1} R(ji)=(Pij(l)N(i)+11)/N(i)+11
上式中, ∣ N ( i ) ∣ |N(i)| N(i)表示节点i的度, S c 1 , c 2 = { ( i , j ) ∈ E s , Y i = c 1 , Y j = c 2 } S_{c_1,c_2}=\{(i,j)\in E^s, Y_i=c_1,Y_j=c_2\} Sc1,c2={(i,j)Es,Yi=c1,Yj=c2} E s E^s Es表示包含self-loop在内的所有边的集合。如果不使用任何attention,那么,传播中对中心节点的每个邻居的关注度是均匀的, P i j = 1 ∣ N ( i ) ∣ + 1 P_{ij}=\frac{1}{|N(i)|+1} Pij=N(i)+11。加入attention之后,上式中的归一化attention R ( j → i ) R(j\rightarrow i) R(ji)需要为0,所以 P i j P_{ij} Pij要减去这个基础误差。并且,使用 1 ∣ N ( i ) ∣ + 1 \frac{1}{|N(i)|+1} N(i)+11做归一化。这样,attention度量的是中心节点与其邻居节点之间的相对强度,而不是绝对差异。

Fig1 展示了CiteSeer和Cora数据集的相关性得分。对于两个数据集,对角线上的元素占主导地位,这表明注意力机制正在学习为同一类别的节点增加权重。如果 c 2 → c 1 c_2\rightarrow c_1 c2c1的相关性很高,那说明,平均来看,类别 c 1 c_1 c1的节点更加关注邻居集合中那些类别 c 2 c_2 c2的节点。
image_1d4uniopl1md712chh4s13qeg6i1j.png-199.4kB

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

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

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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值