GNN教程:图注意力网络(GAT)详解!

2020 年 11 月 29 日 专知
 Datawhale干货 
作者:秦州,算法工程师,Datawhale成员

引言

本文为GNN教程 的第四篇文章 【GAT网络】, 在前几篇博文中,我们讨论了基本的图神经网络算法GCN, 使用采样和聚合构建的inductive learning框架GraphSAGE, 然而图结构数据常常含有噪声,意味着节点与节点之间的边有时不是那么可靠,邻居的相对重要性也有差异,解决这个问题的方式是在图算法中引入“注意力”机制(attention mechanism), 通过计算当前节点与邻居的“注意力系数”(attention coefficient), 在聚合邻居embedding的时候进行加权,使得图神经网络能够更加关注重要的节点,以减少边噪声带来的影响。

后台回复【GNN】进图神经网络交流群。

图注意力机制的类型

目前主要有三种注意力机制算法,它们分别是:学习注意力权重(Learn attention weights),基于相似性的注意力(Similarity-based attention),注意力引导的随机游走(Attention-guided walk)。这三种注意力机制都可以用来生成邻居的相对重要性,下文会阐述他们之间的差异。

首先我们对“图注意力机制”做一个数学上的定义:

定义(图注意力机制):给定一个图中节点 的邻居节点

(这里的  和GraphSAGE博文中的  表示一个意思)。注意力机制被定义为将 中每个节点映射到相关性得分(relevance score)的函数

相关性得分表示该邻居节点的相对重要性。满足:

下面再来看看这三种不同的图注意力机制的具体细节

1. 学习注意力权重

学习注意力权重的方法来自于Velickovic et al. 2018 其核心思想是利用参数矩阵学习节点和邻居之间的相对重要性。

给定节点 相应的特征(embedding)

节点 和节点 注意力权重 可以通过以下公式计算:

其中, 表示节点 对节点 的相对重要性。在实践中,可以利用节点的属性结合softmax函数来计算 间的相关性。比如,GAT 中是这样计算的:

其中, 表示一个可训练的参数向量, 用来学习节点和邻居之间的相对重要性, 也是一个可训练的参数矩阵,用来对输入特征做线性变换, 表示向量拼接(concate)。

如上图,对于一个目标对象 表示它和邻居 的相对重要性权重。 可以根据  和  的 embedding  和  计算,比如图中 是由  共同计算得到的。

2. 基于相似性的注意力

上面这种方法使用一个参数向量 学习节点和邻居的相对重要性,其实另一个容易想到的点是:既然我们有节点 的特征表示 ,假设和节点自身相像的邻居节点更加重要,那么可以通过直接计算 之间相似性的方法得到节点的相对重要性。这种方法称为基于相似性的注意力机制,比如说论文 TheKumparampil et al. 2018 是这样计算的:

其中, 表示可训练偏差(bias), 函数用来计算余弦相似度,和上一个方法类似, 是一个可训练的参数矩阵,用来对输入特征做线性变换。

这个方法和上一个方法的区别在于,这个方法显示地使用 函数计算节点之间的相似性作为相对重要性权重,而上一个方法使用可学习的参数 学习节点之间的相对重要性。

3. 注意力引导的游走法

前两种注意力方法主要关注于选择相关的邻居信息,并将这些信息聚合到节点的embedding中。第三种注意力的方法的目的不同,我们以Lee et al. 2018 作为例子:

GAM方法在输入图进行一系列的随机游走,并且通过RNN对已访问节点进行编码,构建子图embedding。时间 的RNN隐藏状态  编码了随机游走中  步访问到的节点。然后,注意力机制被定义为函数  ,用于将输入的隐向量 映射到一个 维向量中,可以通过比较这 维向量每一维的数值确定下一步需要优先游走到哪种类型的节点(假设一共有 种节点类型)。下图做了形象的阐述:

如上图, 聚合了长度 的随机游走得到的信息 ,我们将该信息输入到排序函数中,以确定各个邻居节点的重要性并用于影响下一步游走。

后话

至此,图注意力机制就讲完了,还有一些细节没有涉及,比如在 GAT论文 中讨论了对一个节点使用多个注意力机制(multi-head attention), 在AGNN论文中分析了注意力机制是否真的有效,详细的可以参考原论文。

参考文献

[1] Attention Models in Graphs: A Survey
[2] Graph Attention Networks [3] Attention-based Graph Neural Network for Semi-supervised Learning [4] Graph Classification using Structural Attention



专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎注册登录专知www.zhuanzhi.ai,获取5000+AI主题干货知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程资料和与专家交流咨询
点击“阅读原文”,了解使用专知,查看获取5000+AI主题知识资源
登录查看更多
3

相关内容

图注意力网络(Graph Attention Network,GAT),它通过注意力机制(Attention Mechanism)来对邻居节点做聚合操作,实现了对不同邻居权重的自适应分配,从而大大提高了图神经网络模型的表达能力。
专知会员服务
37+阅读 · 2020年11月24日
图节点嵌入(Node Embeddings)概述,9页pdf
专知会员服务
37+阅读 · 2020年8月22日
系列教程GNN-algorithms之七:《图同构网络—GIN》
专知会员服务
47+阅读 · 2020年8月9日
系列教程GNN-algorithms之六:《多核卷积拓扑图—TAGCN》
专知会员服务
47+阅读 · 2020年8月8日
一份简短《图神经网络GNN》笔记,入门小册
专知会员服务
224+阅读 · 2020年4月11日
【图神经网络(GNN)结构化数据分析】
专知会员服务
114+阅读 · 2020年3月22日
【图神经网络入门】GAT图注意力网络
深度学习自然语言处理
27+阅读 · 2020年5月16日
图神经网络入门(三)GAT图注意力网络
专知
7+阅读 · 2020年5月15日
【GNN】图神经网络入门之GRN图循环网络
深度学习自然语言处理
17+阅读 · 2020年5月9日
【GNN】R-GCN:GCN 在知识图谱中的应用
深度学习自然语言处理
11+阅读 · 2020年5月4日
知识图注意力网络 KGAT
图与推荐
51+阅读 · 2020年3月16日
掌握图神经网络GNN基本,看这篇文章就够了
新智元
162+阅读 · 2019年2月14日
图注意力网络
科技创新与创业
35+阅读 · 2017年11月22日
Arxiv
14+阅读 · 2019年9月11日
Self-Attention Graph Pooling
Arxiv
5+阅读 · 2019年4月17日
Arxiv
23+阅读 · 2018年10月1日
Arxiv
3+阅读 · 2018年2月11日
Arxiv
9+阅读 · 2018年2月4日
VIP会员
相关VIP内容
专知会员服务
37+阅读 · 2020年11月24日
图节点嵌入(Node Embeddings)概述,9页pdf
专知会员服务
37+阅读 · 2020年8月22日
系列教程GNN-algorithms之七:《图同构网络—GIN》
专知会员服务
47+阅读 · 2020年8月9日
系列教程GNN-algorithms之六:《多核卷积拓扑图—TAGCN》
专知会员服务
47+阅读 · 2020年8月8日
一份简短《图神经网络GNN》笔记,入门小册
专知会员服务
224+阅读 · 2020年4月11日
【图神经网络(GNN)结构化数据分析】
专知会员服务
114+阅读 · 2020年3月22日
相关资讯
【图神经网络入门】GAT图注意力网络
深度学习自然语言处理
27+阅读 · 2020年5月16日
图神经网络入门(三)GAT图注意力网络
专知
7+阅读 · 2020年5月15日
【GNN】图神经网络入门之GRN图循环网络
深度学习自然语言处理
17+阅读 · 2020年5月9日
【GNN】R-GCN:GCN 在知识图谱中的应用
深度学习自然语言处理
11+阅读 · 2020年5月4日
知识图注意力网络 KGAT
图与推荐
51+阅读 · 2020年3月16日
掌握图神经网络GNN基本,看这篇文章就够了
新智元
162+阅读 · 2019年2月14日
图注意力网络
科技创新与创业
35+阅读 · 2017年11月22日
相关论文
Arxiv
14+阅读 · 2019年9月11日
Self-Attention Graph Pooling
Arxiv
5+阅读 · 2019年4月17日
Arxiv
23+阅读 · 2018年10月1日
Arxiv
3+阅读 · 2018年2月11日
Arxiv
9+阅读 · 2018年2月4日
Top
微信扫码咨询专知VIP会员