"); //-->
数无形时少直觉,形少数时难入微–华罗庚
1 图注意力神经网络的介绍
1.1GAT的原理与特性
图形,由点、线、面和体构成,代表了一种理解抽象概念和表达抽象思想的有效工具。图形语言的优势在于其跨越语言障碍的能力,这种能力和技术大多是人类为了理解世界而发展出来的。计算机科学和人工智能的快速进步,使得理解和学习事物之间的更深层次客观关系变得可能。图神经网络(GNN)的诞生,更加帮助人类通过图形来了解和解决问题。图注意力神经网络(GAT)是一种专为处理图结构数据而设计的特殊神经网络。不同于传统神经网络,GAT在处理输入数据时,会充分考虑数据间的关系,使其在处理图结构数据时能更准确地捕捉到数据间的关联性。GAT的主要优势在于其自动学习节点间关系的能力,无需人工预设。
GAT的核心工作原理是通过注意力机制来计算节点间的关系。在传统神经网络中,每个节点的状态更新是独立进行的。而在GAT中,每个节点的状态更新会考虑到其邻居节点的状态,GAT会计算一个节点与其邻居节点之间的注意力权重,然后根据这个权重来更新节点的状态。通过计算权重而更新 信息的方式使得GAT能更好地捕捉到图中的结构信息。在计算权重分值和捕捉信息的方面,GAT采用了类似于Transformer的掩蔽自注意力机制,由堆叠在一起的图注意力层构成,每个图注意力层获取节点嵌入作为输入,输出转换后的嵌入,节点嵌入会关注到它所连接的其他节点的嵌入(Velickovic et al.,2017)。在GAT的实际运算中,注意力分数的计算是通过一个名为“注意力头”的结构完成的。每个注意力头都会计算一组注意力分数,并且在最后的结果中,所有的注意力头的结果会被平均或者拼接起来,以得到最终的节点嵌入。这样做的好处是,每个注意力头可以关注到不同的特征或者模式,从而使得GAT能够捕捉到更多的信息。具体的数学内容将在下面的文章中解释。
此外,GAT引入了图池化的概念,这是一种选择最具信息的节点子集的方法,可以生成更具区分性的图。在图池化过程中,GAT使用一个可学习的投影向量来计算每个节点的投影分数,然后根据投 影分数来选择保留的节点。这种方式可以进一步提高GAT的性能。GAT还有一个重要特性是模型级别的融合。在处理复杂的问题时,GAT可以通过模型级别的融合来利用不同的信息源。这种能力已经使 得GAT在许多领域显示出其优越性,包括图像识别、自然语言处理和推荐系统等。在图像识别中,GAT 可以有效地处理图像中的像素之间的关系,从而提高图像识别的准确性。在自然语言处理中,GAT可以有效地处理文本中的词语之间的关系,从而提高文本理解的准确性。在推荐系统中,GAT可以有效地处理用户和商品之间的关系,从而提高推荐的准确性。
1.2GAT在生活中的例子
为了更加直观地理解图注意力神经网络(GAT),可以通过一个生活中的例子来揭示其工作原理和应用。
在中国的传统婚礼中,座位安排是一项重要的任务。主办方需要考虑所有宾客间的关系,以确保每个人在婚礼上都能享受到愉快的体验。这个过程可以被视为一个图,其中每个宾客代表一个节点,宾客间的关系代表边。主办方的目标是找到一个最优的座位安排,使得每个桌子的宾客都能和谐相处。
在GAT的框架下,这个过程被建模为一个注意力机制。每个节点(宾客)都用一个向量表示,称其为嵌入,可以被视为节点的特征或属性。在这个例子中,宾客的嵌入可能包括他们的年龄、性别、兴趣等信息。注意力机制的工作原理是通过计算每个节点(宾客)与其他节点(其他宾客)之间的相似度,来决定每个节点的重要性。这个相似度被称为注意力分数,它是通过一个叫做“点积注意力”的函数计算得出的。注意力分数越高,表示这个节点与其他节点的关系越好,他们被安排在同一个位置的可能性就越大。在这个例子中,如果两个宾客的注意力分数很高,那么他们可能会被安排在同一个桌子上。在这个过程中,GAT还会考虑到每个桌子的负责人。这个负责人需要有较高的注意力分数,因 为他需要照顾到桌子上的每一个宾客,确保他们都能享受到婚礼。这就像是在图中找出最重要的节点。
然而,就像在实际的婚礼座位安排中一样,GAT也有一些局限性。例如,如果宾客数量非常多,计算每个宾客的注意力分数可能会非常复杂。此外,GAT可能会忽略一些重要的信息,例如,一些宾客可能虽然与其他人的关系不是很好,但是他们可能是婚礼的重要人物。这就需要在计算注意力分数时,引入更多的信息,例如宾客的地位、他们对婚礼的贡献等。
总的来说,GAT是一种强大的工具,它可以帮助解决一些复杂的问题。然而,也需要理解它的局限性,并且在使用它的时候,需要考虑到问题的具体情况。通过将GAT与日常生活中的经验相联系,可以更好地理解和应用这个强大的工具。接下来本文将着重介绍GAT的工作原理以及部分算法的设计原理和数学知识。
2 GAT的工作原理
本文根据提出GAT文章Velickovic et al.(2017)中论述的顺序,简单介绍一下GAT的工作原理。如果初次接触图神经网络相关知识,推荐先移步至DGL Team (2023) and LabML Team (2023)了解基础相关工作。
GAT通常由多个单层图注意力层组成,以下为一个单层图注意力层的解释。N个点与F个特征的输入可以记为:
(1)
这里的作为输入的特征。这样的输入层会对于点生成新的特征,所以输出结果可以表示为:
(2)
这里的.为了将输入的特征转换为高维的特征,这里至少需要一个科学系的线性转换。在 (Velickovic et al.,2017)中,作者对于每一个点使用了一个共享的线性转换方式,同时介绍了一个权重矩阵来参数化线性转换。
2.1自注意力机制(Self-Attention Mechanism)
区别于注意力机制,自注意力关注每一个点和自己的关系,而与每个点间重要关系不同,按照相应关系得出权重,将权重按照重要关系赋予点与点之间的连接上。结合上文提到的W, (Velickovic et al.,2017) 提出了自注意力机制。因此,对于节点i来说,节点j的特征重要性可以用以下式子衡量:
(3)
这样的机制可以让每个节点彼此之间产生联系,并且摒弃了所有的结构化新消息。
2.2多头注意力机制(Multi-head Attention)
相较于上述的单一注意力机制中对于h1的处理方法,多头注意力机制在每一个注意力头中获取一个h1k。多头注意力机制中每个头的特征值串联,串联后的特征以下方式表示: (4)
在多头注意力机制下,最终的输出值将不再是F’个特征,而是KF’ 个特征。对于重复计算得出的结果可以通过取平均值或者向量的连接(Concatenation)
对于更细致的解释和数学推导,有兴趣的读者可以移步继续学习研究:(Graph Attention NetworksExperiment 2022;Graph Attention Networks 2022)。
2.3分步图示
本文参照(LaBonne,2022)的例子,更好地解释在节点中如何使用上文中提到的计算方法。对于节点1的embedding自注意力计算方法:
图1:例子图示
(5)
其中αij仍为节点之间特征关系的重要性,hi为每个点的属性向量。基于上面的计算方法,图注意力机制将计算出节点1的嵌入值。至于处理式子中的图注意力相关系数,要通过‘四步走’(LaBonne,2022):线性转换,激活函数,softmax归一化,以及多头的注意力机制来使用神经网络学习和节点1相关的注意力分数。
第一步,对于每个点与点之间连线的重要性计算,可以通过对于两点间的向量连接 (concatenate) 创造隐藏向量配对。为此,应用linear transformation与一个权重矩阵Watt来实现:
(6)
第二步,添加一个激活函数LeakyReLU:
(7)
第三步,将神经网络的输出结果归一化,方便进行比较:
归一化后的注意力分值可以计算和比较,但同时产生了新的问题,即自注意力是非常不稳定的。Velickovic et al.,2017)对此提出了给予transformer结构的多头注意力机制。
(8)(9)
第四步,按照上文提到的多头注意力机制,这里用作处理和计算注意力繁分数:
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。