图神经网络模型扩展(5)--2

1.图的无监督学习

        在数据爆炸的时代,大部分数据都是没有标签的。为了将它们应用到深度学习模型上,需要大量的人力来标注数据,例如我们熟知的人脸识别项目,如果想取得更好的识别效果,则一定需要大量人工标注的人脸数据。因此,研究如何利用大量的无标签数据帮助机器学习得到了越来越多的关注几乎所有的模型(无论是监督学习还是半监督学习)都需要有标签,可以是节点上的标签,也可以是图上的标签。那么,我们怎么将图神经网络扩展到无监督学习呢?

(1图的自编码器

        自编码器是实现神经网络无监督学习的一种重要方式。 一般来说,自编码器由一个编码器和一个解码器构成。 我们先通过一个图神经网络,将输入的图结构信息编码到一个隐藏变量Z:

Z=GNN(X,A),然后对得到的隐藏变量Z∈Rn×m 解码,重构原来的图:

A=sigmoid(ZZ^{T}),最后,比较A与原来的A,   得到重构损失函数(如交叉熵)。

可以把以上自编码器结构扩展到变分自编码器上,以获得一个更具解释性的概率框架,也就是图变分自编码器,在图变分自编码器中,假设要重构一个图结构,则目标是最大化以下概率:

我们用后验概率q(Z|A,X) 来近似p(Z|A,X), 并得到如图所示的下界 LELBO,然后只需要最大化这个下界作为目标函数。LELBo 包含两部分,第一部 Eq(z|A,x)[logp(A|Z)]可以认为是重构误差,第二部分KL散度KL[q(Z|A, X)||p(Z)]则可以认为是一个正则化项。

变分自编码器

        变分自编码器( Variational Auto-Encoder,VAE)的思想是用神经网络来参数化后验概率,然后通过蒙特卡洛采样的方法得到以上目标函数的近似解。回到GVAE 的例子,可以认为q(Z|A,X) 是一个编码器,用来得到隐变量的分布;而p(A|Z) 是一个解码器,用来重构图结构A。 我们可以用图卷积网络来参数化q(Z|A,X):

其中

均由两层图卷积网络得到。而解码器相对于非变分的解码器并无变化,仍然由ZzT 得到

可以看出,图自编码器和图变分自编码器在解码的过程中都是在重构邻接A,   因此,除了可以学习到节点的中间表示Z,   它们还很适合链路预测的任务,最终得到的p(A|Z) 可以用来预测A 中任意未知元素的概率。为什么在编码器里同时用了AX,  在解码器里只解码A呢?

        事实上,除了保持X不变来解码A的方案,还可以给定A来解码X。对每一个输入的图进行图卷积网络编码,解码时通过注意力机制把多个图整合成一个 邻接矩阵进行解码,重构损失函数通过比较输入的节点属性和重构图的节点属 性得到。另外,在介绍池化时讲到的Graph U-Net,则通过池化来编码,通过反池化来解码的对称结构,也可以认为是一种图上的自编码器。

        针对不同的问题,我们可能需要不同的图编码器和解码器,甚至在很多情况下,GVAE的简单框架并不能满足我们的需求,尤其是在需要生成整个图的任务中。

        Graph U-Net的整体框架。编码部分采用图卷积网络和Top-k 池化,并记住池化过程中的序号idx,而在解码部分则利用idx对称的进行反池化 xl+1=distribute(0N×c,X¹,  idx),把粗化节点的属性传播到其他被删 除的节点上(这些节点属性初始化为0)。Graph U-Net本身并没有直接用于无监督学习,而是直接用最后一层解码出的节点特征作为节点嵌入进行下游的分类任务,但是它本质上的确是一个自编码器的结构,因此 定义合适的损失函数后是可以用于无监督学习的。

2.最大互信息

        除了图自编码器,另一种非监督学习的图神经网络方法是利用互信息的最大化。图自编码器虽然取得了不错的效果,但是重构误差小其实并不一定说明学习出来的特征好。Hjelm等人在Deep  InfoMax(DIM,深度最大互信息算法)的论文中认为,好特征应该能够提取出样本的最独特的信息。那如何衡量学习 出来的信息是该样本独有的呢?于是他们引入了“互信息”来衡量。互信息是信息论中一个重要的概念,它表示一个随机变量包含另 一个随机变量的信息量。如果我们能构造一个编码器来最大化学到的嵌入和另 一个变量的互信息,就保留了节点最重要的特征。怎么计算互信息,怎么选取另一个变量呢?

        首先看互信息的表达式,对于两个变量X 与Y, 它们的互信息为:

         这并不是一个容易计算的量。幸运的是,近期有一些可扩展性很好的互信息近似方法被提出,如Belghazi 等人提出的MINE模型(互信息的神经估计),通过训练一个网络区分来自两个变量联合分布的采样和来自边际分布的采样。

        怎么选取变量呢? DIM模型在MINE模型的基础上更进一步,它可以最大化一个全局表示和局部表示之间的互信息来训练编码器。有了模型之后,我们可以把这个方法移植到图神经网络中,这就是DGI(Deep  Graph Infomax, 深度图互信息最大化)的由来。下面介绍它怎么无监督地学习图表示。

(1)负采样得到另一个图(X~,A~)C(X,A)   如果是单图采样,则可以保持 A 不变,随机改变节点特征X 的顺序。如果是多图采样,则可以将另一 个图作为负样本。

(2)得到输入图(正样本)的局部节点的嵌入表示 h=GNN(X,A)。

(3)得到负样本的局部节点表示h~=GNN(X~,A~)

(4)通过一个读取函数得到正样本的全局表示s=READOUT(h)

(5)设计一个判别器D(hi,s)=σ({h_{i}}^{T}Ws),  为样本的局部表示和全局表示形成的二元组(hi,s)打分。互信息最大化等价于优化以下目标函数:

其中N 为正样本的数量,M  为负样本的数量,E 为期望函数。虽然是非监督的图表示学习,但 DGI仍然取得了与其他监督学习相当的效果。而互信息最大化也为图表示学习带来了一个新的窗口,它被用在很多后续的任务中,如图神经网络的可解释性和无监督图分类。

3.图神经网络的预训练

        与无监督训练强相关的领域是自监督学习和预训练。预训练最大的优势是通过输入巨量的数据,使预训练好的模型只需通过微调就能迁移到不同的数据上,并在不同的目标任务上得到巨大的效果提升。由于大量的数据经常是没有人工标注的,预训练常利用无监督学习或自监督学习的方式进行。当然,预训练可以是多任务并行的,因此在有标签时也可以同时加入有监督的任务训练。那么,在图中怎么进行图神经网络的预训练呢?我们前面讲到的通过GraphSAGE 预测邻接节点共现的概率或者DGI中最大化互信息等策略都是可以用的,Hu等人 还进一步详尽地探讨了更多在图数据上进行图神经网络预训练的策略。

        这些策略可以被分为节点级别的和图级别的。在节点级别上,主要有两个自监督的任务一个是上下文(周围节点)预测,一个是属性遮蔽(预测遮蔽的节点属性或边)。展示了上下文预测任务中,一个中心节点的邻接域(其中K=2)   和上下文子图(r=1,r=4); 若为属性遮蔽任务,图中随机遮蔽了节点或边的属性,然后用图神经网络得到的嵌入表示来预测它们。

3.1节点级别的任务:上下文预测

        类似于图中的无监督训练方式,但是这里要预测的不是与周围节点的共现, 而是一个周围的子图,我们称为上下文图。这个任务的目的是希望具有相似上下文结构的节点也能被映射到相近的嵌入表示。

        对于任意节点v, 我们先采用一个要训练的主图神经网络得到这个节点的嵌入h_{v}。由于要训练的图可能很大,如果图神经网络有K 层,则我们只需要抽取节点v 周围距离小于等于K 的邻接节点进行编码。因此,节点的表示 h_{v}也代表了它的邻接域的表示。

        找到这个节点周围的上下文图,上下文图指的是到中心节点的距离大于等于r₁、小于等于r₂ 的所有点构成的子图,r₁ 被限制小于K, 所以上下文图可以和节点的邻接域有部分重合,重合的这些节点被称为上下文锚节点。找到上下文图之后,我们定义一个额外的辅助图神经网络,对上下文图进行编码,然后对所有上下文锚节点的嵌入求平均,作为一个节点上下文的向量表示,图G中节点v 的上下文向量记为{_c{v}}^{g}

        训练的目标是判断一个邻接域和一个上下文图是否属于同一个节点。具体来说,选取两个节点v 和{v}',   如果v=v'是同一个节点,那么以下sigmoid 函数的值将接近1;如果它们不是同一个节点(v'通过在随机选取的图G上随机负采样得到),那么以下 sigmoid 函数的值接近0:

3.2节点级别的任务:属性遮蔽

        先随机遮蔽节点中的一些属性(如在分子图中遮蔽节点的类型信息),然后通过图神经网络学习这个节点的嵌入,再通 过一个简单的预测层预测那些被遮蔽的属性。如果遮蔽的是边的属性,则边的嵌入可以通过与边相连的两个节点的嵌入的和得到。属性遮蔽任务主要对那些具有丰富属性标签的图非常有效,如分子图、蛋白质交互图等。

3.3 图级别的任务:属性预测和相似度预测

        对于大规模的图预训练,只有节点级别的任务是不够的,因为有不少下游任务是与整个图的表示相关的。为了得到更稳定的图嵌入表示,图级别的任务于预训练来说是一个重要的辅助。在很多科学用图数据上,我们其实是有图的各种属性标注的,如分子的化学性质等。因此,我们可以用图神经网络在这些有标签的图数据上进行预测,并作为预训练的任务。另一个可做的图级别的任务是比较两个图的相似度,如可以预测图之间的编辑距离等。

        整个预训练的过程是这样的:先在节点级别做两个自监督的预训练任务, 然后到图级别做有监督的训练。在得到经过预训练的图神经网络模型后,当我们拿到一个新的目标任务时,只需要在这个预训练模型上进行微调。例如,对于图分类任务,我们只需要在得到的图级别的表示上新建一层线性分类器就可以了。

                                                                                   

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Android MediaPlayer + GLSurfaceView 播放视频

Android使用OpenGL 播放视频 概述TextureView的优缺点OpenGL的优缺点 实现复杂图形效果的场景参考 概述 在Android开发中,使用OpenGL ES来渲染视频是一种常见的需求,尤其是在需要实现自定义的视频播放界面或者视频特效时。结合MediaPlayer,我…

【论文阅读】BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning

Abstract 在这篇论文中,我们研究了使基于视觉的机器人操纵系统能够泛化到新任务的问题,这是机器人学习中的一个长期挑战。我们从模仿学习的角度来应对这一挑战,旨在研究如何扩展和扩大收集的数据来促进这种泛化。为此,我们开发了…

数据库之索引<保姆级文章>

目录: 一. 什么是索引 二. 索引应该选择哪种数据结构 三. MySQL中的页 四. 索引分类及使用 一. 什么是索引: 1. MySQL的索引是⼀种数据结构,它可以帮助数据库高效地查询、更新数据表中的数据。 索引通过 ⼀定的规则排列数据表中的记录&#x…

F28335 时钟及控制系统

1 F28335 系统时钟来源 1.1 振荡器OSC与锁相环PLL 时钟信号对于DSP来说是非常重要的,它为DSP工作提供一个稳定的机器周期从而使系统能够正常运行。时钟系统犹如人的心脏,一旦有问题整个系统就崩溃。DSP 属于数字信号处理器, 它正常工作也必须为其提供时钟信号。那么这个时钟…

【例题】lanqiao3225 宝藏排序Ⅰ

这里的n的范围可以使用冒泡排序、选择排序和插入排序等算法。 冒泡排序 nint(input()) alist(map(int,input().split()))def pop_sort(a):for i in range(n):for j in range(n-i-1):if a[j]>a[j1]:a[j],a[j1]a[j1],a[j] pop_sort(a) print( .join(map(str,a)))选择排序 n…

数据结构(7.3_2)——平衡二叉树

平衡二叉树,简称平衡树(AVL树)----树上任一结点的左子树和右子树的高度之差不超过1. 结点的平衡因子左子树高-右子树高 //平衡二叉树结点 typedef struct AVLNode {int key;//数据域int blalance;//平衡因子struct AVLNode* lchild, * rchild; }AVLNode,*AVLTree; …

4. Python之运算符

一. Python运算符 常用的运算符有:算述运算符,赋值运算符,比较运算述,逻辑运算符,位运算符等等。 1. 算述运算符 用于处理四则运算的符号,主要有: 运算符描述加法-减法*乘法/除法//整除%取余…

Nature Climate Change | 全球土壤微生物群落调控微生物呼吸对变暖的敏感性(Q10)

本文首发于“生态学者”微信公众号! 全球变暖将加速有机物分解,从而增加土壤中二氧化碳的释放,触发正的碳-气候反馈。这种反馈的大小在很大程度上取决于有机质分解的温度敏感性(Q10)。Q10仍然是围绕土壤碳排放到大气的预测的主要不确定性来源…

FreeRTOS实战指南 — 3.2 FreeRTOS中链表的实现

目录 1 FreeRTOS中链表的实现 1.1 实现链表节点 1.2 实现链表根节点 1.3 将节点插入到链表的尾部 1.4 将节点按照升序排列插入到链表 1.5 将节点从链表删除 1.6 节点带参宏小函数 2 链表操作实验 1 FreeRTOS中链表的实现 1.1 实现链表节点 在FreeRTOS操作系统中&…

第二界陇剑杯赛-MISC

1 题目名称:hard_web-1 题目内容:1.服务器开放了哪些端口,请按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了80 81 82 83端口,则答案为80,81,82,83) 题目分值:100.0 题目难度:容易 …

go语言中的数组指针和指针数组的区别详解

1.介绍 大家知道C语言之所以强大,就是因为c语言支持指针,而且权限特别大,c语言可以对计算机中任何内存的指针进行操作,这样自然而然也会带来一些不安全的因素,所以在golang中,「取消了对指针的一些偏移&…

自动排课管理系统(源代码+论文+开题报告)

一、题目摘要 题目简要说明: 选排课系统功能的设计上,选排课系统可以分为登录、排课和选课3个子系统。登录子系统区分排课者(也即系统的管理者)、教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的功…

战斗机检测系统源码分享

战斗机检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

【K230 实战项目】气象时钟

【CanMV K230 AI视觉】 气象时钟 功能描述:说明HMDI资源3.5寸屏幕 使用方法 为了方便小伙伴们理解,请查看视频 B站连接 功能描述: 天气信息获取:通过连接到互联网,实时获取天气数据,包括温度、湿度、天气状…

您的计算机已被.lcrypt勒索病毒感染?恢复您的数据的方法在这里!

导言 在网络安全领域,勒索病毒已经成为一种威胁极大的恶意软件,其中.lcrypt勒索病毒(.lcrypt ransomware)是最近出现的一种新的变种。它以加密用户数据并要求赎金为手段,严重影响个人和组织的日常运营。本文91数据恢复…

力扣题解1184

大家好,欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述(简单): 公交站间的距离 环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distanc…

【Motion Forecasting】【摘要阅读】BANet: Motion Forecasting with Boundary Aware Network

BANet: Motion Forecasting with Boundary Aware Network 这项工作发布于2022年,作者团队来自于OPPO。这项工作一直被放在arxiv上,并没有被正式发表,所提出的方法BANet在2022年达到了Argoverse 2 test dataset上的SOTA水准。 Method BANet…

计算机三级网络技术总结(一)

RPR环中每一个节点都执行SRP公平算法IEEE 802.11a和g将传输速率提高到54Mbps一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息就要先建立TCP连接在一个区域内的路由器数一般不超过200个进入接口配置模式&#xff1a;Router(config)#interface <接口名> 封装ppp协…

QT 事件 Event 应用

文章目录 一、事件处理过程1. QT 事件应用介绍2. 事件分发过程 二、重写事件案例1. 鼠标事件2. 自定义按钮事件 一、事件处理过程 1. QT 事件应用介绍 众所周知Qt是一个基于C的框架&#xff0c;主要用来开发带窗口的应用程序&#xff08;不带窗口的也行&#xff0c;但不是主流…

数据结构和算法之线性结构

原文出处:数据结构和算法之线性结构 关注码农爱刷题&#xff0c;看更多技术文章&#xff01;&#xff01;&#xff01; 线性结构是一种逻辑结构&#xff0c;是我们编程开发工作应用最广泛的数据结构之一。线性结构是包含n个相同性质数据元素的有限序列。它的基本特征是&…