| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> A Gentle Introduction to Graph Neural Networks -> 正文阅读 |
|
[人工智能]A Gentle Introduction to Graph Neural Networks |
本文是跟李沐读论文的笔记,这篇介绍了A Gentle Intorduction to Graph Neural Netoworks这篇文章。 文章目录
1.引言本文介绍了GNN,GNN已经有了很多领域的应用,例如:antibacterial discovery(抗生素发现) , physics simulations(物理模拟), fake news detection(假新闻检测), traffic prediction(流量预测) 和推荐系统等领域。 本文共分为四部分,首先介绍了哪些数据更容易表示成图数据,讲了一些例子。其次我们探索了图结构数据和其它类型数据的不同,以及使用图数据时,我们不得不做的一些选择。然后我们介绍了一个GNN的模型。最后我们提供了一个GNN playground,可以在上面进行一些实验。 2.什么是图
举例image as graphs text as graphs molecules as graphs social network as graphs 3.与图结构相关的一些问题在图上的预测任务中有三种类型,分别是graph-level、edge-level、node-level。 ?在图级任务中,我们预测整个图的单个属性。对于节点级任务,我们预测图中每个节点的某些属性。对于边级任务,我们希望预测图形中边的属性或存在。? graph-level task
Node-level task
Edge-level task
图在机器学习中的挑战图大概有四类信息,节点信息、边信息、图信息和连接信息。对于前三种信息很容易表示,对于连接信息,有多种表示方式一种就是邻接矩阵,矩阵也很方便进行计算,但是邻接矩阵是个系数矩阵,占用的空间较大,并且当变换点的排列顺序时(如AB,BA),相同的图会产生不同的邻接矩阵,这不能保证深度学习会有相同的输出。另一种表示方式是邻接链表。表示如下图所示。Nodes表示节点的信息,Edges表示边的信息。Adjacency List表示连接的信息。Global表示图的信息。 4.Graph Neural Networks??GNN 是对图的所有属性(节点、边、全局上下文)的可优化转换,可保留图形对称性(排列不变性)。??
. ?消息传递分为三个步骤:?
?通过将消息传递GNN层的消息堆叠在一起,节点最终可以合并整个图形中的信息:在三层之后,节点具有距离它三步之遥的节点的信息。?更新过程如下图所示(只有边的信息时,信息从边传到节点)。 ?此问题的一种解决方案是使用图 (U) 的全局表示形式,该图有时称为??主节点??或上下文向量。这个全局上下文向量连接到网络中的所有其他节点和边缘,并且可以充当它们之间的桥梁来传递信息,从而为整个图形构建表示。这创建了比本来可以学习的更丰富,更复杂的图形表示形式。 5.GNN PlayGround详见原文。 6.相关知识Other types of graphs (multigraphs, hypergraphs, hypernodes, hierarchical graphs)还有一些其它类型的图。 Sampling Graphs and Batching in GNNS?训练神经网络的常见做法是使用根据训练数据的随机常数大小(批大小)子集(小批量)计算的梯度来更新网络参数。这种做法对图形提出了挑战,因为彼此相邻的节点和边的数量存在差异,这意味着我们不能具有恒定的批大小。使用图形进行批处理的主要思想是创建子图,以保留较大图形的基本属性。此图形采样操作高度依赖于上下文,并涉及从图形中子选择节点和边缘。这些操作在某些上下文中(引用网络)可能是有意义的,而在另一些上下文中,这些操作可能太强了(分子,其中子图仅表示新的,较小的分子)。如何对图形进行采样是一个开放的研究问题。如果我们关心在邻域级别保留结构,一种方法是随机抽样一个统一数量的节点,即我们的??节点集??。然后添加与节点集相邻的距离为 k 的相邻节点,包括它们的边。每个邻域都可以被视为一个单独的图形,并且GNN可以在这些子图的批次上进行训练。可以屏蔽损失以仅考虑节点集,因为所有相邻节点都具有不完整的邻域。更有效的策略可能是首先随机抽样单个节点,将其邻域扩展到距离k,然后在扩展集中选择另一个节点。一旦构建了一定数量的节点、边或子图,就可以终止这些操作。如果上下文允许,我们可以通过选择初始节点集,然后对恒定数量的节点进行子采样(例如随机,或通过随机游走或Metropolis算法)来构建恒定大小的邻域。 Comparing aggregation operations聚合方式有多种,例如Max, Mean, Sum。没有最佳方式。设计聚合是一个开放性的研究问题。 GCN as subgraph function approximators?当聚焦于一个节点时,在 k 层之后,更新的节点制图表达具有所有相邻要素的有限视点,直至 k 距离,本质上是子图表示。边缘表示也是如此。? ?因此,GCN正在收集大小为k的所有可能的子图,并从一个节点或边缘的有利位置学习向量表示。可能的子图的数量可以组合增长,因此从头开始枚举这些子图,而不是像GCN那样动态构建它们,可能会令人望而却步。? Edges and Graph Dual?需要注意的一件事是,边缘预测和节点预测虽然看似不同,但通常归结为同一个问题:图形上的边缘预测任务。?G?可以表述为节点级预测?G?的双重。? ?获取?G?的对偶,我们可以将节点转换为边缘(并将边缘转换为节点)。图及其对偶包含相同的信息,只是以不同的方式表示。有时,此属性使得在一种表示中解决问题比在另一种表示中更容易,例如傅里叶空间中的频率。简而言之,要解决边缘分类问题?G?,我们可以考虑在 上做图卷积?G?的对偶(这与学习上的边缘表示相同)?G?),这个想法是用双原始图卷积网络开发的 CNN的假设是:空间变换的不变性 Graph convolutions as matrix multiplications, and matrix multiplications as walks on a graphGraph Attention NetworksGraph explanations and attributionsGenerative modelling |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:43:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |