图神经网络与图注意力网络

图片

        随着计算机行业和互联网时代的不断发展与进步,图神经网络已经成为人工智能和大数据的重要研究领域。图神经网络是对相邻节点间信息的传播和聚合的重要技术,可以有效地将深度学习的理念应用于非欧几里德空间的数据上。本期推送围绕图神经网络与图注意力网络相关知识进行概述。

1.什么是图

1.1 定义

    图表示的是一系列实体(节点)之间的关系(边)。

  • V:节点信息(节点标识、节点邻居数)

  • E:边信息(边标识、边权重)

  • U:全局信息(节点数、最长路径)

1.2 embedding

    为了深入表示每个节点、边和整个图,可以使用如下存储方式:

图片

        把节点信息、边信息和全局信息做embedding,通俗说即把这些信息存储为向量的形式。例如上图用向量来表示节点,形成一个长度为6的向量,表示节点的6个信息,高矮代表了值的大小。

1.3 将多种类型的数据表示成图

(1)images as graphs(将图片表示为图) 
  •  把每个像素作为一个点,存在邻接关系则形成一条边

图片

(2)text as graphs(将文本表示为图)
  • 把词表示为顶点,词与词存在有向边

图片

(3)将现实生活中的关系表示成图
  • 分子结构(原子之间的关系)、社交网络(人物交互图)、引用(文章引用关系)

  • 例如下图为话剧《奥赛罗》中的人物交互图,通过将同时出现在一个场景里的人物连上一条边,将人物关系表示成图。

图片

1.4 在图上可定义的问题类型

(1) 图层面的任务
  • 比如,给定一张图,对该图进行分类。

图片

        如上图,预测出哪些分子是具有两个环的。这个例子比较简单,可以用图的遍历来完成,当图非常复杂的时候,图神经网络可以发挥巨大作用。

(2)节点层面的任务
  • 比如,将节点分类到不同的阵营。

图片

    上图是空手道俱乐部数据集,将学员分类到两个老师的队伍中。

(3)边层面的任务    
  • 比如,已知节点,学习节点之间的边的信息。

图片

        在这个例子中,边的预测是通过语义分割把人物、背景拿出来,然后分析实体间的关系。也就是给出节点之间的图,对边上的属性进行预测。比如黄衣服的人在踢绿衣服的人,他们都站在地毯上。

1.5 在图上使用神经网络的挑战

        图上有节点属性、边的属性、全局信息、连接性四种类型的信息。

        前面三个比较容易与神经网络兼容,因为其可以表示成向量的形式。在利用连接性这种类型的信息时,通常会使用邻接矩阵——但是存在图太大无法存储、交换行列本质不变但矩阵变化的情况。于是很多情况下会使用邻接列表表示图上的连接性关系。

图片

        如上图,这张图有8个顶点,7条边。邻接列表的长度与边数相同,第i项表示第i条边连接的哪两个节点。

2.图神经网络

图神经网络的基本思想就是:

  • 基于节点的局部邻居信息对节点进行embedding。直观来讲,就是通过神经网络来聚合每个节点及其周围节点的信息。

图片

对于这个图来说,要计算节点A的Embedding,有以下的两条想法:

  • 节点A的Embedding,是它的邻接节点B、C、D的Embedding传播的结果

  • 而节点B、C、D的Embedding,又是由它们各自的邻接节点的Embedding传播的结果。

    为了避免无穷无尽,以下图为例,做两层,可以构造该图的传播关系。

图片

第0层即输入层,为每个节点的初始向量,称为初始Embedding。

第1层:

  • 节点B的Embedding来自它的邻接点A、C的Embedding的传播。

  • 节点C的Embedding来自它的邻接点A、B、E、F的Embedding的传播。

  • 节点D的Embedding来自它的邻接点A的Embedding的传播。

第2层:

  • 节点A的Embedding来自它的邻接点B、C、D的Embedding的传播。

        但是,目前我们还不知道传播到底是什么,图中的小方块在做什么,下面就对传播机制进行介绍。

小方块主要就做了两件事情:

  • 收集(Aggregation)

        对上一层的所有邻接节点的Embedding,如何进行汇总,获得一个Embedding,供本层进行更新。

  • 更新(Update)

        对本层已“收集完毕”的邻接点数据,是否添加自身节点的上一层Embedding,如果是,如何添加、如何激活等等,最终输出本层的Embedding。

下面使用公式介绍一个具体例子:

图片

符号解释:h表示节点的embedding,下标v或u表示节点的索引,上标k表示第几层,σ表示激活函数,  或  表示矩阵,N(v)表示节点v的邻接点集合。

公式解释:使用节点的输入特征向量来初始化第0层节点的embedding。为了计算第k层节点v的embedding,需要用到上一层中节点v本身的embedding、节点v的邻居节点在k-1层中的embedding平均值。

操作步骤:

  • 收集——对上一层邻居节点的Embedding求平均。

  • 更新——收集完毕的Embedding与本节点上一层的Embedding进行加权和,然后再激活。

3.图注意力网络

3.1 基本思想

根据每个节点在其邻节点上的attention,来对节点表示进行更新。

3.2 改进

  • GCN无法允许为邻居中的不同节点指定不同的权重,GAT和GCN的核心区别在于如何收集并累和距离为1的邻居节点的特征表示。

  • 图注意力网络GAT用注意力机制替代了GCN中固定的标准化操作。

3.3 优点

  • 在GAT中,图中的每个节点可以根据邻节点的特征,为其分配不同的权值。

  • 引入注意力机制之后,只与相邻节点有关,即共享边的节点有关,无需得到整张图的信息。

3.4 GAT架构

图注意力层的输入:N个节点特征的集合h

图注意力层的输出:经过学习之后的N个节点的特征向量h' 

特征增强:为了使得节点特征表达得更清晰,首先对每一个节点进行一个线性变换,即乘上一个权重向量。【W维度为𝐹′×𝐹,作用:比如将一个长向量转为一个短向量,使得特征更容易提取】

对每个节点实行自注意力机制:注意力系数为

e_{ij} = a(W\vec{h_i},W\vec{h_j})

其中,  代表节点j的特征对节点i的影响,a代表计算两个节点(特征向量)相关度的函数。

本文通过masked attention将图结构加入到机制中,masked attention的含义是:仅将注意力分配到节点i的邻居节点集上(包括i本身)。

为了使得注意力系数更容易计算和便于比较,引入了softmax对所有的i的相邻节点j进行正则化。

公式2的含义:节点j对i的影响/节点i一阶邻居对i的影响之和。

注:  和  都叫做“注意力系数”,只不过  是在  基础上进行归一化后的。

图片

    将公式1和2进行综合,注意力系数  的计算过程即如上图所示:W乘上i的特征,W乘上j的特征,然后连接起来,乘上权重向量a,形成圈里的值是  ,再使用  进行归一化,形成新的注意力系数。

    通过上述运算得到了归一化后的不同节点之间的注意力系数,可以用来预测每个节点的输出特征:

3.5 多头注意力机制

        因为多个注意力机制学习到的attention侧重点可能略有不同,所以将K个独立的注意力机制的结果进行级联或者求平均,确保GAT更加稳定。下图展示是K=3的情况,使得结果更加稳定。

图片

4.总结

        本期推送从什么是图、图神经网络的基本思想、图注意力网络的基本思想三个方面对图神经网络相关的基础知识进行了介绍。图神经网络从提出发展到现在,针对不同的领域一直在进行改进和优化,已经可以应用到非常多的方面,因为其解决图相关问题的能力强大,所以未来仍有非常大的发展空间,会有更多优秀的模型被提出,解决更加复杂的问题。

5.参考文献

[1] Distill《A Gentle Introduction to Graph Neural Networks》

[2] Hamilton W L, Ying R, Leskovec J. Representation learning on graphs: Methods and applications[J]. arXiv preprint arXiv:1709.05584, 2017.

[3] Velickovic P, Cucurull G, Casanova A, et al. Graph attention networks[J]. stat, 2017, 1050: 20.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/178560.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java基础-集合

1、集合 在java中,集合(Collection)指的是一组数据容器,它可以存储多个对象,并且允许用户通过一些方法来访问与操作这些对象。j 集合的实现原理都基于数据结构和算法,如下: 数据结构&#xff1…

52.seata分布式事务

目录 1.事务的四大特性。 2.分布式服务的事务问题。 3.seata。 3.1理论基础。 3.1.1CAP定理。 3.1.2BASE理论。 3.2初识Seata。 3.2.1Seata的架构。 3.2.2部署TC服务。 3.2.3微服务集成Seata。 3.3 seata提供的四种分布式事务解决方案。 3.3.1 XA模式。 3.3.1.1 X…

摩尔定律,梅特卡夫定律,吉尔德定律

信息系统的三大定律(摩尔定律,梅特卡夫定律,吉尔德定律)有一个清晰的视角: 信息系统不是左边的生产消费系统,而是右边的交易系统,交易系统与生产消费典型的区别在于信息交易过程会产生新的信息,就像钱一样…

jvs-智能bi(自助式数据分析)11.21更新功能上线

jvs智能bi更新功能 新增: 1.字段设置节点新增自定义时间格式功能; 自定义功能允许用户根据需要自定义日期和时间字段的显示格式,为用户提供了更大的灵活性和便利性 2.图表时间搜索条件新增向下兼容模式; 时间搜索条件的向下兼容模式允许用…

【wireshark】基础学习

TOC 查询tcp tcp 查询tcp握手请求的代码 tcp.flags.ack 0 确定tcp握手成功的代码 tcp.flags.ack 1 确定tcp连接请求的代码 tcp.flags.ack 0 and tcp.flags.syn 1 3次握手后确定发送成功的查询 tcp.flags.fin 1 查询某IP对外发送的数据 ip.src_host 192.168.73.134 查询某…

Ps:背景橡皮擦工具抠图实例

背景橡皮擦工具 Background Eraser Tool由于是一个破坏性的工具(直接删除像素)而少被人使用。 其实,它不仅是一个功能强大的抠图工具,也是可以转换为非破坏性运用的。 原图(注:图片来自网络) 效…

【尚硅谷】第06章:随堂复习与企业真题(面向对象-基础)

第06章:随堂复习与企业真题(面向对象-基础) 一、随堂复习 1. (了解)面向过程 vs 面向对象 不管是面向过程、面向对象,都是程序设计的思路。面向过程:以函数为基本单位,适合解决简单…

QGIS文章五——对遥感影像进行土地类型分类—监督分类(dzetsaka : classification tool)...

dzetsaka classification tool是QGIS的强大分类插件,目前主要提供了高斯混合模型分类器、Random Forest、KNN和SVM四种分类器模型,相比于SCP(Semi-Automatic Classification),他的一个特点就是功能专一,操作简单。 从十一月开始一…

深度学习 loss 是nan的可能原因

1 loss 损失值非常大,超过了浮点数的范围,所以表示为overflow 状态下的男。 解决办法: 减小学习率,观察loss值是不是还是nan 在将数据输入模型前,进行恰当的归一化 缩放 2 loss 的计算中存在除以0, log(0…

ios qt开发要点

目前关于ios qt的开发资料比较少,这里整理了几个比较重要的开发要点,基于MacOS14 Xcode15 Qt15.5 cmake iphone真机。 cmake报错,报错信息如下 CMake Error at /Users/user/Qt/5.15.5/ios/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:91 (m…

【PHP】PHP生成全年日历

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

Centos7使用rpm安装mysql 5.7.43

Centos7使用rpm安装mysql 5.7.43 1、下载rpm包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar2、解压并安装 tar xf mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar yum -y install mysql-*3、按需修改mysql配置 #注意&a…

Impala VS Hive

Impala和Hive的关系 Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中。并且impala兼容Hive的sql解析,实现了Hive的SQL语义的子集,功能还在不断的完善中。 与Hive的…

虹科Pico汽车示波器 | 汽车免拆检修 | 2017款东风本田XR-V车转向助力左右不一致

一、故障现象 一辆2017款东风本田XR-V车,搭载R18ZA发动机,累计行驶里程约为4万km。车主反映,车辆行驶或静止时,向右侧转向比向左侧转向沉重。 二、故障诊断 接车后试车,起动发动机,组合仪表上无故障灯点亮&…

探究Kafka原理-1.初识Kafka

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理🔥如果感觉博主的文章还不错的话,请&#x1f44…

Java集合拓展01

1、List,Set,Map三者的区别 List:一个有序(元素存入集合的顺序和取出的顺序一致)容器,元素可以重复,可以插入多个null元素,元素都有索引。常用的实现类有 ArrayList、LinkedList 和…

【Web】preg_match绕过相关例题wp

目录 ①[FBCTF 2019]rceservice ②[ctfshow]web130 ③[ctfshow]web131 ④[NISACTF 2022]middlerce 简单回顾一下基础 参考文章 p牛神文 preg_match绕过总的来讲就三块可利用 数组绕过、PCRE回溯次数限制、换行符 ①[FBCTF 2019]rceservice 先贴出附件给的源码 &l…

关于用css设置input输入框hover的时候的样式以及当input为disabled的时候,不要让hover样式生效

效果如果&#xff1a; 编辑状态下的时候&#xff1a; 只读状态下的时候&#xff1a; 代码如图&#xff1a; <input type"text" name"dataForm.exportCode" id"exportCodeItem" required :disabled"editDisabled" />input:not(…

SQL知多少?这篇文章让你从小白到入门

个人网站 本文首发公众号小肖学数据分析 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理和处理关系型数据库的编程语言。 对于想要成为数据分析师、数据库管理员或者Web开发人员的小白来说&#xff0c;学习SQL是一个很好的起点。 本文将为你提供一个…

实时错误’-2147217887‘多步OLB DB 操作产生错误。如果可能,请检查OLE DB状态值

目录 背景问题问题分析问题解决 错误解决与定位技巧总结 背景 仍旧是学生信息管理系统的问题&#xff0c;当时做的时候没发现这么多问题呢&#xff0c;只能说明一件事&#xff0c;做的时候没有站在用户的角度考虑需求&#xff0c;设置了什么内容&#xff0c;就按照设置好的去测…