图卷积神经网络(GCN)与 图注意力神经网络(GAT)


一、GCN

1.1 离散卷积

离散卷积本质上是一种加权求和
如图1所示,CNN中的卷积本质上就是利用一个共享参数的过滤器(kernel),通过计算中心像素点以及相邻像素点的加权和来构成特征图(feature map)实现空间特征的提取,当然加权系数就是卷积核的权重系数。

那么卷积核的系数如何确定的呢?是随机化初值,然后根据误差函数通过反向传播梯度下降进行迭代优化。这是一个关键点,卷积核的参数通过优化求出才能实现特征提取的作用,GCN的理论很大一部分工作就是为了引入可以优化的卷积参数。
在这里插入图片描述
图1 CNN中卷积提取feature map示意图

1.2 为什么要研究GCN?

CNN是Computer Vision里的大法宝,效果为什么好呢?原因在上面已经分析过了,可以很有效地提取空间特征。但是有一点需要注意:CNN处理的图像或者视频数据中像素点(pixel)是排列成成很整齐的矩阵(如图2所示,也就是很多论文中所提到的欧几里得结构Euclidean Structure)
在这里插入图片描述
图2 图像矩阵示意图(Euclidean Structure)
与之相对应,科学研究中还有很多Non Euclidean Structure的数据,如图3所示。社交网络、信息网络中有很多类似的结构。
在这里插入图片描述
图3 社交网络拓扑示意(Non Euclidean Structure)
实际上,这样的网络结构(Non Euclidean Structure)就是图论中抽象意义上的拓扑图。
所以,Graph Convolutional Network中的Graph是指数学(图论)中的用顶点和边建立相应关系的拓扑
图。

GCN研究的原因:

  • CNN无法直接处理Non Euclidean Structure的数据。通俗理解就是在拓扑图中每个顶点的相邻顶点数目都可能不同,那么当然无法用一个同样尺寸的卷积核来进行卷积运算。
  • 由于CNN无法处理Non Euclidean Structure的数据,又希望在这样的数据结构(拓扑图)上有效地提取空间特征来进行机器学习,所以GCN成为了研究的重点

1.3 提取拓扑图空间特征的两种方式

1.3.1空间维度

Vertex domain(spatial domain)(空间域)是非常直观的一种方式。顾名思义:提取拓扑图上的空间特征,那么就把每个顶点相邻的neighbors找出来。这里面蕴含的科学问题有二:

  • 按照什么条件去找中心vertex的neighbors,也就是如何确定receptive field(感受野
  • 确定receptive field,按照什么方式处理包含不同数目neighbors的特征?

1.3.2 图谱维度

借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质
拉普拉斯矩阵
在这里插入图片描述
在这里插入图片描述
图5 Laplacian 矩阵的计算方法

常用的拉普拉斯矩阵实际有三种

  • L = D - A 定义的Laplacian 矩阵更专业的名称叫Combinatorial Laplacian(组合拉普拉斯算子)
  • L^sys = D^-1/2 L D^-1/2 定义的叫Symmetric normalized Laplacian(对称归一化拉普拉斯算子),很多GCN的论文中应用的是这种拉普拉斯矩阵
  • L^rw = D^-1 L 定义的叫**Random walk normalized Laplacian(随机游走归一化拉普拉斯算子)

二、GAT

1.1 基础

1.1.1 Graph数据结构的两种特征

  • 对于任意一个顶点 i ,它在图上邻居Ni ,构成第一种特征,即图的结构关系。
  • 当然,除了图的结构之外,每个顶点还有自己的特征 ℎi (通常是一个高维向量)。它可以使社交网络中每个用户的个体属性;可以是生物网络中,每个蛋白质的性质;还可以使交通路网中,每个交叉口的车流量。
    在这里插入图片描述

1.2 GCN 的局限性

- GCN 结合邻近节点特征的方式和图的结构依依相关,这局限了训练所得模型在其他图结构上的泛化能力。

2 GAT

2.1 计算Attention

对于顶点i,逐个计算它的邻居们(j∈Ni)和它自己之间的相似系数
e i j = a ( [ W h i ∥ W h j ] ) , j ∈ N i ( 1 ) e_{i j}=a\left(\left[W h_i \| W h_j\right]\right), j \in \mathcal{N}_i (1) eij=a([WhiWhj]),jNi1

首先一个共享参数 W 的线性映射对于顶点的特征进行了增维,当然这是一种常见的特征增强(feature augment)方法最后α(·)把拼接后的高维特征映射到一个实数上
显然学习顶点 i,j 之间的相关性,就是通过可学习的参数 W和映射 α(⋅) 完成的。
有了相关系数,离注意力系数就差归一化了!其实就是用个softmax
α i j = exp ⁡ ( LeakyReLU ⁡ ( e i j ) ) ∑ k ∈ N i exp ⁡ ( LeakyReLU ⁡ ( e i k ) ) \alpha_{i j}=\frac{\exp \left(\operatorname{LeakyReLU}\left(e_{i j}\right)\right)}{\sum_{k \in \mathcal{N}_i} \exp \left(\operatorname{LeakyReLU}\left(e_{i k}\right)\right)} αij=kNiexp(LeakyReLU(eik))exp(LeakyReLU(eij))

2.2 加权求和

完成第一步,已经成功一大半了。第二步很简单,根据计算好的注意力系数,把特征加权求和(aggregate)一下。
h i ′ = σ ( ∑ j ∈ N i α i j W h j ) ( 3 ) h_i^{\prime}=\sigma\left(\sum_{j \in \mathcal{N}_i} \alpha_{i j} W h_j\right) (3) hi=σ(jNiαijWhj)(3)
h i ′ 就是 G A T 输出的对于每个顶点 i 的新特征(融合了邻域信息), σ ( ) 是激活函数。 h_i^{\prime} 就是GAT输出的对于每个顶点 i 的新特征(融合了邻域信息), \sigma\left(\right)是激活函数。 hi就是GAT输出的对于每个顶点i的新特征(融合了邻域信息),σ()是激活函数。

原文链接:https://www.zhihu.com/question/54504471/answer/332657604

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值