GATConv

论文名称:Graph Attention Networks

论文地址:https://arxiv.org/abs/1710.10903

本文介绍GATs算法,它是一种对当前网络结构的一种创新,使用masked self-attention layers解决当前图卷积的不足。通过stacking layers能够聚合邻居节点的特征,不需要进行复杂的矩阵运算和图结构的先验知识。通过这种方式,我们解决spectral-based graph一些挑战,使得我们模型适用于inductivte和tansductive任务。

1.GAT ARCHITECTURE

接下来,我们介绍一下graph attention networks的block layer(可以进行 stack),以及他们相关理论集实践中好处、相对于之前工作一些限制。

1.1 GRAPH ATTENTIONAL LAYER

接下来,介绍一下graph attentional layer。

输入一组节点特征 h = { h ⃗ 1 , h ⃗ 2 , … , h ⃗ N } , h ⃗ i ∈ R F \mathbf{h}=\left\{\vec{h}_{1}, \vec{h}_{2}, \ldots, \vec{h}_{N}\right\}, \vec{h}_{i} \in \mathbb{R}^{F} h={h 1,h 2,,h N},h iRF,其中 N N N是指node的数量, F F F是每个node特征的数量。经过 该层,会输出新的节点特征集合 h ′ = { h ⃗ 1 ′ , h ⃗ 2 ′ , … , h ⃗ N ′ } , h ⃗ i ′ ∈ R F ′ \mathbf{h}^{\prime}=\left\{\vec{h}_{1}^{\prime}, \vec{h}_{2}^{\prime}, \ldots, \vec{h}_{N}^{\prime}\right\}, \vec{h}_{i}^{\prime} \in \mathbb{R}^{F^{\prime}} h={h 1,h 2,,h N},h iRF

将输入特征转化为输出特征,为了获得更高的特征表达,我们至少进行可学习的线性转换。为了实现这个目的,我们初始化、共享一个weight matrix W ∈ R F ′ × F \mathbf{W} \in \mathbb{R}^{F^{\prime} \times F} WRF×F,应用到每个node上。然后,我们对节点进行self-attention, 这个self attention机制 a a a是共享的: R F ′ × R F ′ → R \mathbb{R}^{F^{\prime}} \times \mathbb{R}^{F^{\prime}} \rightarrow \mathbb{R} RF×RFR, attention coefficients计算方式如下:
e i j = a ( W h ⃗ i , W h ⃗ j ) (1) e_{i j}=a\left(\mathbf{W} \vec{h}_{i}, \mathbf{W} \vec{h}_{j}\right)\tag{1} eij=a(Wh i,Wh j)(1)
该值意味着node j j j的特征对node i i i的重要性。通常来说,如果不考虑结构信息,模型需要对计算所有节点对该节点的权重。我们考虑了图的结构信息,加入masked attention, 我们只计算 e i j e_{ij} eij, 其中 j ∈ N i j\in\mathcal{N_i} jNi, N i \mathcal{N}_i Ni指node i i i的邻居节点。在我们的实验中,我们只考虑节点 i i i的一阶邻居(包括节点 i i i自己), 为了使得不同邻居节点 j j j 可以比较,我们对其进行softmax操作:
α i j = softmax ⁡ j ( e i j ) = exp ⁡ ( e i j ) ∑ k ∈ N i exp ⁡ ( e i k ) (2) \alpha_{i j}=\operatorname{softmax}_{j}\left(e_{i j}\right)=\frac{\exp \left(e_{i j}\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(e_{i k}\right)}\tag{2} αij=softmaxj(eij)=kNiexp(eik)exp(eij)(2)
我们对其进行扩展,使用的注意力机制 a a a是单层前向的神经网络,使用的参数化矩阵 a → ∈ R 2 F 2 \overrightarrow{\mathrm{a}} \in \mathbb{R}^{2 F^{2}} a R2F2, 采用LeakyReLu非线性变换(with negative input slope α = 0.2 \alpha=0.2 α=0.2),如Figure 1(left)所示,公式如下:
α i j = exp ⁡ ( LeakyReLU ⁡ ( a → T [ W h ⃗ i ∥ W h ⃗ j ] ) ) ∑ k ∈ N i exp ⁡ ( LeakyReLU ⁡ ( a → T [ W h ⃗ i ∥ W h ⃗ k ] ) ) (3) \alpha_{i j}=\frac{\exp \left(\operatorname{LeakyReLU}\left(\overrightarrow{\mathbf{a}}^{T}\left[\mathbf{W} \vec{h}_{i} \| \mathbf{W} \vec{h}_{j}\right]\right)\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(\operatorname{LeakyReLU}\left(\overrightarrow{\mathbf{a}}^{T}\left[\mathbf{W} \vec{h}_{i} \| \mathbf{W} \vec{h}_{k}\right]\right)\right)}\tag{3} αij=kNiexp(LeakyReLU(a T[Wh iWh k]))exp(LeakyReLU(a T[Wh iWh j]))(3)
其中 ⋅ T \cdot ^T T代表转置, ∥ \| 代表concatenation操作

在这里插入图片描述

我们将标准化的attention权重系数对邻居特征进行线性组合,使用 σ \sigma σ进行非线性变换,生成每个节点的最终特征:
h ⃗ i ′ = σ ( ∑ j ∈ N i α i j W h ⃗ j ) (4) \vec{h}_{i}^{\prime}=\sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j} \mathbf{W} \vec{h}_{j}\right)\tag{4} h i=σjNiαijWh j(4)
为了使得模型的效果更加稳定,我们对attention机制进行扩展,使用multi-head attention. K K K个独立的attention机制进行类似Equation 4的转换,然后将特征进行拼接,得到输出特征:
h ⃗ i ′ = ∥ k = 1 K σ ( ∑ j ∈ N i α i j k W k h ⃗ j ) (5) \vec{h}_{i}^{\prime}=\|_{k=1}^{K} \sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j}^{k} \mathbf{W}^{k} \vec{h}_{j}\right)\tag{5} h i=k=1KσjNiαijkWkh j(5)
其中, ∥ \| 表示concatention, α i j k \alpha_{ij}^k αijk表示 k -th k\text{-th} k-th attention机制的标准化权重系数, W k W^k Wk是指进行线性转化的权重矩阵。最后每个节点输出 h ′ h^\prime h, 特征的维度是 K F ′ KF^\prime KF而不是 F ′ F^\prime F

如果我们在最后一层使用multi-head attention,concatenation就毫无意义了,取而代之,我们一般使用averaging,然后进行非线性变换:
h ⃗ i ′ = σ ( 1 K ∑ k = 1 K ∑ j ∈ N i α i j k W k h ⃗ j ) (6) \vec{h}_{i}^{\prime}=\sigma\left(\frac{1}{K} \sum_{k=1}^{K} \sum_{j \in \mathcal{N}_{i}} \alpha_{i j}^{k} \mathbf{W}^{k} \vec{h}_{j}\right)\tag{6} h i=σK1k=1KjNiαijkWkh j(6)
multi-head的汇总过程如Figure 1(right)。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值