原文链接:
https://arxiv.org/pdf/1803.07294.pdf翻译在:2018-GaAN: Gated Attention Networks for Learning on Large and Spatiotemporal Graphs
有一个mxnet的实现:https://github.com/jennyzhang0215/GaAN
我们提出了一种新的网络结构,门注意网络(GaAN),用于图的学习。GaAN不同于传统的多头注意机制(它均衡的消耗所有的注意头),它使用一个卷积子网络来控制每个注意头的重要性。我们证明了GaAN在电感节点分类问题上的有效性。此外,以GaAN为构建块,构造了图形门控重电流单元Graph Gated Recurrent Unit (GGRU)来解决交通速度预测问题。对三个实际数据集的大量实验表明,我们的GaAN框架在这两个任务上都取得了最新的结果。
GaAN和GAT区别就在于---
The difference between the attention aggregator in GaAN and the one in GAT is that GaAN uses the key-value attention mechanism and the dot product attention while GAT uses a fully connected layer to compute the attention coefficients.
review一下key-value attention和dot product attention可以看如下链接:
深度学习之注意力机制(Attention Mechanism)和Seq2Seq给定一个节点 及其相邻节点 ,图聚合器是以 形式的函数γ ,其中 和 是中心节点 的输入和输出向量。 是相邻节点中的参考向量集,而 是聚合器的可学习参数。在本文中,我们不考虑使用边缘特征的聚合器。但是,通过定义 来包含边缘特征向量 ,可以很容易地将边缘合并到我们的定义中。于是就有了
MULTI-HEAD ATTENTION AGGREGATOR:
对中心节点特征 进行线性规划,得到查询向量,并对相邻节点特征进行投影,得到关键值和向量值。然后,我们应用多头注意机制(Vaswani et al,2017)来获得最终聚集函数。多头注意力聚合器的详细公式如下:
说明:
K : 注意力头的数量
是节点i与j之间的第k个注意权重,这是通过对点积值应用softmax生成的
K个注意输出与输入向量串联,传递到 参数化的输出全连接层,得到最终的输出
这部分与GAT不一样的地方就是采用了键值对attention和点积attention,而GAT只用一个全连接计算 ,并且还没有用上附加值向量。
GATED ATTENTION AGGREGATOR
虽然多头部注意力聚集器能够探索中心节点与其邻域之间的多个表示子空间,但并非所有这些子空间都同等重要;某些子空间甚至可能不存在于某些节点。输入一个捕捉无用表示的注意力的输出会误导模型的最终预测。因此,我们计算一个介于0(低重要性)和1(高重要性)之间的附加软门,为每个头部分配不同的重要性。结合多头注意聚合器,我们得到了门控注意聚合器的公式:
其中 是一个标量,在节点i的第k个头部的门值,为了确保添加的门不会引入太多附加参数,我们使用卷积网络 ,该网络取中心节点和相邻节点的特征来生成门值。 有多重涉及方法,在本文中,我们将平均池化和最大池化结合起来构建网络:
这里, 在取元素最大值之前将邻域特征映射到维向量, 将连接的特征映射到最后的K 门。通过设置一个较小的 ,用于计算门的子网将具有可忽略的计算开销。GaAN聚合器结构的一般说明如图1所示。此外,我们还比较了图2a和图2b中多头注意聚集器和门控注意聚集器的一般结构。
而后作者讨论了Graph pooling aggregators和Graph pairwise sum aggregators两种类型的聚合方法,还做了些测试
结果当然是GaAN最好:
之后还做TRAFFIC SPEED FORECASTING(GRAPH GRU)的测试,当然还是自己提出的模型最好。
最后推荐一下 Zhiyuan Liu 老师的图网络书籍,值得入门同学看一看:
《Introduction to Graph Neural Networks》
链接:https://pan.baidu.com/s/1m_PzEi--rIETm9bwjRXhQg
提取码:hy1s