读书笔记8:Graph Attention Networks(ICLR 2018)

https://mila.quebec/wp-content/uploads/2018/07/d1ac95b60310f43bb5a0b8024522fbe08fb2a482.pdf

https://arxiv.org/pdf/1710.10903.pdf

这是一篇将attention机制应用到graph convolution中的文章。但是文章中提出的模型其实是利用了attention的一部分思想,而不是和处理sequence的模型应用的attention机制是不完全一样的。

处理sequence的模型引入的attention机制可以分为两类,一类是在输入sequence本身上计算attention的intertext情形;另一类是另外有一个用来计算attention的文本的intertext情形 。本文中的情形是intratext,是在输入的待处理的graph自身上计算attention,在摘要中作者说明了,本文的attention计算的目的是为每个节点neighborhood中的节点分配不同的权重,也就是attention是用来关注那些作用比较大的节点,而忽视一些作用较小的节点。相比之下,在sequence的模型中,attention的计算是为了在处理局部信息的时候同时能够关注整体的信息,计算出来的attention不是用来给参与计算的各个节点进行加权的,而是表示一个全局的信息并参与计算。

和其他graph convolution方向的论文一样,本文的introduction部分也是先介绍CNN多么多么成功,然后指出很多问题中的数据并不是CNN所擅长处理的网格状(grid-like)形式的,而是以一些不规则的形式存在,但是这些数据都可以用graph表示,因此兴起了graph convolution network。接着稍微详细的介绍一下GCN都分为spectral approaches和non-spectralappproaches。然后,作者用一段文字介绍了attention mechanism进来在sequence based tasks中几乎变成了一个常规配备,然后分析了attention mechanism的好处。接下来的一段紧接着就说,受到attention mechanism的启发,我们也要提出一个attention based的模型来在graph structured data上进行节点分类的任务,想法是为每一个节点更新hidden representation的时候,都要对其neighbors进行一下attention的计算,模仿sequence based task中的intratext的attention的思想。作者指出这个框架有三个特点:1. attention机制计算很高效,为每一个节点和其每个近邻节点计算attention可以并行进行。2. 通过指定任意的权重给neighbor,这个模型可以处理拥有不同“度”(每个节点连接的其他节点的数目)节点,也就是说,无论一个节点连接多少个neighbor,这个模型都能按照规则指定权重。3. 这个模型可以直接应用到归纳推理的问题中(inductive learning problem),包括一些需要将模型推广到完全未知的graph的任务中。作者在四个数据集上进行了实验都取得了state-of-the-art的结果。这四个数据集,三个是引用文献的,一个是蛋白质相互作用网络的。作者在introduction的后面提到,本文的工作可以看做是MoNet的具体形式,并且在不同edge上共享计算网络很像Santoro 2017年的relational networks的和Hoshen 2017年的VAIN,之后还简单提到了一些其他的相关工作。

接下来介绍模型。模型的输入是node feature的集合,即,其中N是node的数量,F是每一个node的feature数量,其实也就是feature vector的长度。模型的输出也是一个集合,N是不变的,但是每一个node的feature数量变成了,不一定还是之前的F了。node的原始的feature可能不够好用,因此先用至少一层线性层来为每个node计算一个表达能力更强的feature,也即用一个应用到每一个node的feature上。之后在node上应用self-attention,这个attention mechanism也是复用的,每个节点都用一样的机制。attention coefficient的计算为,用两个node的feature来计算两个node之间有怎样的一个关系。整个过程便是,即两个node feature先是通过线性变换生成新的表达力更强的feature,然后计算attention coefficient,于是,任意两个node之间都有了attention coefficient,本文的这个attention coefficient其实是用来做加权平均的,即卷积的时候,每个node的更新都是其他node的加权平均(不一定是所有node,本文中实际只用了直接相连的node),但是直接用attention coefficient不太好,因此进行一下softmax,得到,这个系数α就是每次卷积时,用来进行加权求和的系数。以上都是一般性的描述,具体来讲,本文采取的计算attention coefficient的函数a是一个单层的前馈网络,参数是,并且使用了LeakyReLU来处理,整个写好就是

其中||表示连接起来。每次卷积时,除了加权求和,还要再弄一个非线性函数,即

为了使模型更加稳定,文章还提出了multi-head attention机制,这种机制更加有利,这个意思是说不只用一个函数a进行attention coefficient的计算,而是设置K个函数,每一个函数都能计算出一组attention coefficient,并能计算出一组加权求和用的系数,每一个卷积层中,K个attention机制独立的工作,分别计算出自己的结果后连接在一起,得到卷积的结果,即,||依然表示连接在一起的意思,是用第k个计算attention coefficient的函数计算出来的attention coefficient计算出来的。整个过程如下图所示:

 

 

对于最后一个卷积层,如果还是使用multi-head attention机制,那么就不采取连接的方式合并不同的attention机制的结果了,而是采用求平均的方式进行处理,即 

接下来作者将模型与其他相关的工作进行了对比,指出attentional layer在几个方面的优点:1. 计算很高效,attention机制在所有边上的计算是可以并行的,输出的feature的计算在所有节点上也可以并行。像特征分解这种非常费资源的操作都不需要。单层的GAT的multi-head的一个head的时间复杂度可以表示为,这里面指的应该是计算attention机制的复杂度,每一个节点计算attention coefficient是O(FF'),然后每个节点都只计算其与周围几个直接连接的近邻节点之间的coefficient,即O(|V|),因此整个就是O(|V|FF'),计算α应该是加上了一个O(|V|)的复杂度。而|E|F'是用来计算卷积的时间复杂度,每个edge都对应将一个node乘上权重并包含到卷积的加权求和中,而每一个node有F'个feature,加进来就是F'次操作,因此整个就是O(|E|F')的复杂度。这个复杂度和Kipf&Welling 2017年的Graph Convolutional Networks(GCNs)的复杂度相当         2. 和GCN不同,本文的模型可以对同一个neighborhood的node分配不同的重要性,使得模型的容量(自由度)大增。并且分析这些学到的attentional weights有利于可解释性(意思可能是分析一下模型在分配不同的权重的时候是从哪些角度着手的),就像机器翻译里的情况(这个其实没看懂是什么意思,作者给了个例子是Bahdanau 2015年的qualitative analysis) 3. attention机制是对于所有edge共享的,不需要依赖graph全局的结构以及所有node的特征(很多之前的方法都有这个缺陷,但是作者没有说是什么方法,这种很笼统的话都不太好懂)。这也表明了两点:一是graph不需要是无向的。二是我们的技术适合inductive learning,包括一些任务中,用来测试的graph在训练阶段完全未知(由于本文做的多是在一个大graph上的node分类,因此训练和测试可能是在一个graph上的)。4. 2017年Hamilton提出的inductive method为每一个node都抽取一个固定尺寸的neighborhood,为了计算的时候footprint是一致的(指的应该是计算的时候处理neighborhood的模式是固定的,不好改变,因此每次都抽样出固定数量的neighbor参与计算),这样,在计算的时候就不是所有的neighbor都能参与其中。此外,Hamilton的这个模型在使用一些基于LSTM的方法的时候能得到最好的结果,这样就是假设了每个node的neighborhood的node一直存在着一个顺序,使得这些node成为一个序列。但是本文提出的方法就没有这个问题,每次都可以将neighborhood所有的node都考虑进来,而且不需要事先假定一个neighborhood的顺序  5. 这个是说明了之前提到的GAT如何被看做MoNet的一个特例,用到了一些MoNet的东西,需要看一下才知道在说啥。

接下来作者介绍了对模型的考量,也就是实验部分。实验分两部分,transductive learning和inductive learning,前者的模型用了两层GAT,网络结构的超参数是在Cora数据集上进行优化的,然后应用到了Citeseer数据集上。第一层8head,F'=8,跟着exponential linear unit (ELU)作为非线性函数,第二层作为分类层,一个attention head,feature数就是C,也就是类别数,后面跟着softmax函数。为了应对数据集小的问题,模型内使用了regularization,训练时使用了λ=0.0005的L2 regularization,此外,两层网络的输入都采用了p=0.6的dropout,这个dropout对normalized attention coefficient也使用了,相当于计算每个node位置的卷积时都是随机的选取了一部分近邻节点参与卷积。在inductive learning任务中,采用了3层的GAT模型,前两层K=4,F‘=256,用了ELU,最后一层用来分类,K=6,F'=121,紧跟着一个logistics sigmoid激活函数。这个任务中,训练集足够大,不需要使用regularization和dropout,但是成功的使用了skip connection(跨过中间一些层传递信息),此外,为了验证attention机制的好处,作者在这里还设了对比组,将所有a(x,y)=1。

两个任务都是用Glorot初始化初始的,并且是用Adam SGD来最小化交叉熵进行优化。

 

  • 24
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: Graph Attention Networks(GAT)是一种用于图神经网络的重要模型。GAT可以对任意大小和结构的图进行监督学习和无监督学习。 GAT基于注意力机制,通过计算节点之间的注意力权重来对图进行建模。与传统的图神经网络不同之处在于,GAT在每个节点与其相邻节点之间引入了注意力权重。这样,每个节点可以根据其邻居节点的特征和注意力权重来更新自身特征表示。通过自适应地学习权重,GAT可以捕捉到不同节点之间的重要性和关联程度。 具体来说,GAT模型主要包括两个关键组件:多头注意力和特征变换。多头注意力允许模型在不同注意力机制下学习到多种节点表示。而特征变换则通过使用多个线性变换层来改变节点特征的维度。 在GAT模型中,每个节点都会与其邻居节点进行信息交互和特征更新。节点会计算与其邻居节点的相似度得分,然后通过softmax函数进行归一化,以得到注意力权重。最后,节点会将邻居节点的特征与对应的注意力权重相乘并求和,从而得到更新后的特征表示。 GAT模型的优点是能够解决不同节点之间的连接关系和重要性差异的建模问题。由于引入了注意力机制,GAT能够对相邻节点的特征进行自适应的加权处理,从而更好地捕捉到有意义的模式和关联。 总之,Graph Attention Networks是一种基于注意力机制的图神经网络模型,能够对任意大小和结构的图进行监督学习和无监督学习。它通过自适应地计算节点之间的注意力权重,实现了对图中节点特征的有效建模。 GAT模型在社交网络、推荐系统和生物信息学等领域具有广泛的应用前景。 ### 回答2: Graph Attention Networks(GAT)是一种用于处理图数据的深度学习模型。传统的图神经网络模型使用了节点邻居的平均值来更新节点的表示,这种方法忽略了不同节点在图中的重要性和关联度。而GAT模型引入了注意力机制,可以在节点之间动态地学习权重,从而更好地捕捉图中节点之间的关系。 GAT模型的核心思想是在每个节点层使用自注意力机制来计算节点之间的注意力权重。具体来说,对于每个节点,GAT模型通过计算与之相邻的节点之间的相似度得到一个归一化的注意力权重。这个相似度可以通过神经网络模块学习得到,其中包括一个共享的权重矩阵。然后,通过将相邻节点的表示与对应的注意力权重相乘并求和,得到一个新的节点表示。这个过程可以通过多头注意力机制来并行计算,从而更好地捕捉节点的重要性和关联度。 GAT模型具有许多优点。首先,GAT模型可以自动学习节点之间的关系,并且可以根据节点之间的重要性分配不同的权重。其次,GAT模型具有较强的可解释性,可以通过注意力权重的可视化来解释模型的决策。此外,GAT模型还可以处理不同类型的图数据,包括社交网络、生物网络和推荐系统等。最后,GAT模型在一些图数据上表现出了较好的性能,在节点分类、链接预测和图分类等任务中取得了良好的结果。 总之,Graph Attention Networks是一种用于处理图数据的深度学习模型,通过引入注意力机制,可以动态地学习节点之间的权重,从而更好地捕捉图中节点之间的关系。该模型具有较好的可解释性和适用性,在许多图数据上取得了较好的性能。 ### 回答3: Graph Attention Networks(GAT)是一种基于图神经网络的模型。GAT的目标是在图数据上进行节点分类或边预测等任务。与传统的图神经网络不同,GAT在节点之间引入了注意力机制,以便在图中自动学习节点之间的关系。 GAT的核心思想是为每个节点分配不同的注意力权重,以更好地聚焦于重要的邻居节点。这种分配是通过学习每对节点间的注意力系数来实现的,而不是像传统方法一样使用固定的加权平均。 具体地说,GAT中的每个节点都有自己的特征向量表示,在计算节点之间的注意力权重时,GAT通过将节点对的特征向量与学习到的注意力权重相乘来评估节点之间的关系强度。然后,它将这些关系强度进行归一化处理,以产生每个节点对的注意力系数。最后,通过将注意力系数与邻居节点的特征向量相乘并进行加权求和,可以得到每个节点的输出特征。 与其他图神经网络方法相比,GAT具有以下优点:1)它能够自动学习节点之间的关系,而不需要手动指定图的拓扑结构;2)它能够根据节点之间的重要性自适应地分配注意力权重;3)它具有较强的可解释性,可以通过分析注意力系数来理解节点之间的关系。 GAT已经在许多图数据任务上取得了很好的效果,如社交网络分析、推荐系统和药物发现等。由于其良好的性能和可解释性,GAT在学术界和工业界都得到了广泛的应用,并且也有很多相关的改进和扩展方法出现。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值