网站首页 > 技术教程 正文
选自arXiv
机器之心编译
参与:刘晓坤、李泽南
近日,Bengio 团队提出了基于近邻节点注意机制的网络架构 GAT,可用于处理复杂、不规则结构的计算图,并在三种困难的基准测试中得到了业内最佳水平,研究人员称该模型有望在未来处理任意不规则结构图。该论文现已提交至 ICLR 2018 大会。
卷积神经网络已成功应用于解决图像分类、语义分割、机器翻译等问题,其中背后的数据表证有着网格状的结构。这些结构通过把学习到的参数应用到所有的输入位置,能高效的重复使用局部过滤器。
然而,许多有趣任务的数据并不能表示为网格状的结构,而是分布在不规则的区域。这就像是 3D 网格、社交网络、通信网络、生物网络或者大脑连接组一样。这样的数据通常用图(graph)的形式表示。
目前的文献中,已经有很多尝试来拓展神经网络以解决图随意的架构。早期的研究使用递归神经网络在图域中把数据直接表达为有向非循环图。图神经网络网络(GNN)首次出现于 Gori 等人(2005)与 Scarselli 等人(2009)的论文,把它作为递归神经网络的泛化形式,能够直接处理更普遍的图类,比如循环图、有向和无向的图。GNN 包括一个迭代过程,来传播节点状态直到平衡;然后是一个神经网络,基于其状态为每个节点生成一个输出;之后,这种思路被 Li 等人(2016)采用并改进,提出在传播步骤中使用门控循环单元(Cho et al.,2014)。
因此,把卷积泛化到图域中一直是个引发研究者兴趣的课题。在这个方面的进步通常可被归类为光谱方法与非光谱方法。
在这篇论文中,作者们提出了一种基于注意机制的架构,能够完成图结构数据的节点分类。该方法的思路是通过注意其邻位节点,计算图中每个节点的隐藏表征,还带有自注意策略。这种注意架构有多重性质:
(1)运算高效,因为临近节点对可并行;
(2)可以通过对近邻节点指定任意的权重应用于不同 degree 的图节点;
(3)该模型可以直接应用于归纳学习问题中,其中包括了需要将模型泛化到此前未见的图的任务。
作者们提出的通过节点连接共享神经网络计算的方法和关系网络(Santoro et al., 2017)的形式类似,其中对象之间的关系(用卷积神经网络提取图像中的区域特征)通过应用一种共享机制将所有的对象两两配对然后聚合而成。他们在三种有挑战性的基准测试上验证了提出的方法:Cora 和 Citeseer 引用神经网络数据集和一个蛋白质与蛋白质相互作用的数据集,新方法在这些测试中均获得了当前最佳的结果,展现了基于注意的模型处理任意结构图的潜力。
论文:Graph Attention Networks
论文链接:https://arxiv.org/abs/1710.10903
我们提出了图注意网络(graph attention networks,GATs),这是一种新型的神经网络架构,用于处理图结构化的数据(graph-structured data),利用隐藏的自注意层克服了过去的基于图卷积或其近似的方法的缺点。这些层的节点可以注意近邻节点的特征,通过将这些层堆叠起来,我们可以为不同节点的近邻指定不同的权重,而不需要耗费任何繁重的矩阵计算(比如矩阵求逆),也不需要预先知道图的结构。通过这种方法,我们同时解决了多个基于频谱的图神经网络的关键挑战,并准备将模型应用于归纳问题以及直推问题。我们的 GAT 模型在三种公认的直推和归纳图基准测试中取得了当前最佳的结果:Cora 和 Citeseer 引用神经网络数据集和一个蛋白质与蛋白质相互作用的数据集(其中的测试图在训练过程中完全不可见)。
GAT 的架构
图 1. 左方:GAT 模型中应用的注意机制 a(W~hi ,W~hj ),通过一个权重向量参数化~a ∈ R^2F'。右方:节点 1 对其近邻节点的多头注意(其中 K=3 heads)。不同的箭头格式和颜色表示独立的注意计算。来自每个头的聚合特征连接或平均后得到 ~h1'。
表 1:实验中使用的数据集。
表 2:对 Cora 和 Citeseer 数据集的实验结果(分类准确度)的总结。
表 3:对 PPI 数据集的实验结果(微平均的 F1 分数)的总结。
图 2. 在 Cora 数据集上对一个预训练的 GAT 模型的第一个隐藏层的计算特征表示的 t-SNE 图。
猜你喜欢
- 2024-10-16 机器学习中应用的范数 机器学习中常见的超参照数调整
- 2024-10-16 有限元求解:结构应力法如何实现的网格不敏感呢?
- 2024-10-16 论利用粒子群算法求解测距定位方程
- 2024-10-16 推荐系统多样性——DPP篇 推荐系统的模型
- 2024-10-16 线性代数主要可以从几个角度去理解: (1)线性方程...
- 2024-10-16 numpy入门 day05 numpy eig
- 2024-10-16 python多进程矩阵计算的应用示例 python多进程队列
- 2024-10-16 计量课后5.4(大数据202230906137 HSl)
- 2024-10-16 TensorFlow 2:使用自编码器进行插值
- 2024-10-16 Matlab矩阵的简单操作 matlab如何进行矩阵运算
你 发表评论:
欢迎- 05-05从virsh当中学习QEMU/KVM启动命令
- 05-05Win10 BCD文件损坏怎么修复?(bcd文件损坏win7)
- 05-05亚马逊春节假期期间的店铺管理设置
- 05-051分钟总结常用k8s常用诊断教程(k8s常见故障)
- 05-05VisiPics重复图片查找软件中文汉化教程
- 05-05微服务的发布实现方式1灰度实现(微服务实现原理)
- 05-05轻松掌握Java多线程 - 第二章:线程的生命周期
- 05-05德拉诺之王邪DK报告:PVE向小测试及分析
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)