GCN学习 GRAPH ATTENTION NETWORKS

最近需要用的GAT的中心节点周围节点分配权重的思想,不得不提到注意力Attention机制的重要性,因此阅读GAT。



前言

GCN模型可以分为频谱域和空间域两大类。应用较多的还是在频谱类,使用拉普拉斯矩阵借助图谱进行卷积操作。但是他也存在一些缺陷,比如依赖拉普拉斯矩阵不能直接用于有向图,模型训练依赖整个图结构,且图结构必须保持静态,不能应用于动态图,同时卷积时无法为邻居节点分配不同的权重。因此GAT的出现就可解决GCN存在的问题。

一、Introduction

本文提出的方法可以隐式的制定不同的权重到一个邻居的不同节点,同时不需要任何类型的代价很高的矩阵操作。他可以处理任意大小的输入,同时可以重视某些重要的节点并忽视影响力较小的节点。在这篇文章中简单概述一下GAT的核心算法,不对论文做过多的详解。

二、GAT Architecture

三个特点:

  • 高效:针对相邻节点可以并行运算
  • 灵活:针对不同度的节点,可以运用不同大小的权值与之对应。
  • 可移植:可将模型应用于全新的图结构,不需要与训练集相同。

输入和输出

输入 h = { h ⃗ 1 , h ⃗ 2 , . . . , h ⃗ N } , h ⃗ i ∈ R F \mathbf h=\{ \vec h_1,\vec h_2,...,\vec h_N\},\vec h_i \in \mathbb R^F h={h 1,h 2,...,h N},h iRF,
N为节点个数,F为特征个数,表示输入为N个节点的F个特征。
输出 h ′ = { h ⃗ 1 ′ , h ⃗ 2 ′ , . . . , h ⃗ N ′ } , h ⃗ i ′ ∈ R F \mathbf h'=\{ \vec h_1',\vec h_2',...,\vec h_N'\},\vec h_i' \in \mathbb R^F h={h 1,h 2,...,h N},h iRF,
表示对这N个节点的F‘个输出,输出为N个节点的每个节点的F’个特征。
按照输出的feature预测输出的feature

特征提取和注意力机制

为了得到输入和输出的转换,需要根据俄输入的feature至少一次线性变换得到输出的feature,所以需要对所有节点训练一个权值矩阵, W ∈ R F ′ × F \mathbf W\in\mathbb R^{F'\times F} WRF×F,这个权值矩阵就是输入与输出的特征之间的关系。
接着针对每个节点实行self-Attention。

self-attention

在这里插入图片描述
e i j e_{ij} eij表示节点j的特征对节点i的重要性,该模型允许每个节点注意其他每个节点,删除所有的结构信息。通过masked attention,计算节点 e i j , j ∈ N i e_{ij}, j \in N_i eij,jNi,其中 N i N_i Ni是图中节点i的某个邻域。这是基本方法

实际应用

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
相当于,先把节点i、j的特征向量拼接,各自乘函数,然后和一个 2 F ′ 2F' 2F维的权重参数化向量 α ⃗ , α ⃗ ∈ R 2 F ′ \vec \alpha,\vec \alpha\in \mathbb R^{2F'} α α R2F计算内积。再经过激活函数。通过softmax分类器得到归一化后的该节点i对于j的重要程度。分类后,他的特征值在GCN中就改变了,变成了具有加权信息的特征向量。当然也可以将多个权值计算之后(即一个节点相对于他的邻域内多个节点计算出的 α ⃗ \vec \alpha α 值)连接,若是最后一层则不拼接,将k个attention的输出取平均。

总结

我们可以合理的利用Attention机制来处理传统GCN无法实现的任务。这让数据的输入更加灵活,可接受的输入形式更广泛。与DropEdge仍有区别,也有相似之处。第一是他们的思路都是从数据集处理,只处理单次且全局共享,DropEdge随机放弃几个相连接的边,作用是防止过拟合和过平滑,让性能优化;而GAT是对节点进行处理的,保留了拓扑信息和所有的节点特征但是使用了处理函数,更耗时,而且文章中没有对模型的过拟合和过平滑程度进行评估。两者最相同的特点都是相当于对原图信息做了预处理,但是下游任务仍未改变。思路类似但是做法不同。

参考

GAT 图注意力网络 Graph Attention Network
图注意力网络(GAT) ICLR2018, Graph Attention Network论文详解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值