图的基本表示方法

news2024/11/28 18:41:55

一、图的基本表示方法

G = ( V , E ) G = (V,E) G=(V,E)由下列要素构成:

  • 一组节点: V = 1 , ⋯ n V = 1,\cdots n V=1,n
  • 一组边 E ⊆ V × V E \subseteq V \times V EV×V
    • ( i , j ) ∈ E (i,j) \in E (i,j)E 连接了节点 i 和 j i和j ij
  • i 和 j i和j ij被称为相邻节点
  • 节点的度:相邻节点的数量。
    在这里插入图片描述
    节点、边和度的示意图
  • 如果一个图的所有节点都有 n-1 个相邻节点,则该图是完备的(complete)。也就是说所有节点都具备所有可能的连接方式。
  • 从 i 到 j 的路径(path)是指从 i 到达 j 的边的序列。该路径的长度(length)等于所经过的边的数量
  • 图的直径(diameter)是指连接任意两个节点的所有最短路径中最长路径的长度。
    举个例子,再在这个案例中,我们可以计算出一些连接任意两个节点的最短路径,该图直径为3,因为没有任意两个节点之间的最短路径超过3.

在这里插入图片描述
测地路径:指两个节点之间的最短路径
*如果所有节点,都可以通过某个路径连接到彼此,则它们构成一个连通分支。如果一个图仅有一个连通分支,则该图是连通的

在这里插入图片描述

如果一个图的边是有顺序的配对,则该图是有向的(directed)。i 的入度(in-degree)是指向 i 的边的数量出度(out-degree)远离 i 的边的数量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如何存储图

在这里插入图片描述
在这里插入图片描述

图的类型和性质

  • 图可以根据不同标准进行分类,我们在这里主要讲一种分类方法,同构图与异构图

  • 同构图与异构图

  • 两个图G和H是同构图(isomorphic graphs),能够通过重新标记图G的顶点而产生图H

  • 果G和H同构,那么它们的阶是相同的,它们大小是相同的,它们个顶点的度数也对应相同

  • 异构图是一个与同构图相对应的新概念

  • 传统同构图(Homogeneous Graph)数据中只存在一种节点和边,因此在构建图神经网络时所有节点共享同样的模型参数并且拥有同样维度的特征空间

  • 而异构图(Heterogeneous Graph)中可以存在不只一种节点和边,因此允许不同类型的节点拥有不同维度的特征或属性

  • 不同类型的节点拥有不同的特征或属性。

什么是图神经网络

在过去的几年中**,神经网络的兴起与应用成功推动了模式识别和数据挖掘的研究**。许多曾经严重依赖于手工提取特征的机器学习任务(如目标检测、机器翻译和语音识别),如今都已被各种端到端的深度学习范式(例如卷积神经网络(CNN)、长短期记忆(LSTM)和自动编码器)彻底改变了。曾有学者将本次人工智能浪潮的兴起归因于三个条件,分别是:

计算资源的快速发展(如GPU)
大量训练数据的可用性
深度学习从欧氏空间数据中提取潜在特征的有效性
尽管传统的深度学习方法被应用在提取欧氏空间数据的特征方面取得了巨大的成功,但许多实际应用场景中的数据是从非欧式空间生成的,传统的深度学习方法在处理非欧式空间数据上的表现却仍难以使人满意。例如,在电子商务中,一个基于图(Graph)的学习系统能够利用用户和产品之间的交互来做出非常准确的推荐,但图的复杂性使得现有的深度学习算法在处理时面临着巨大的挑战。这是因为图是不规则的,每个图都有一个大小可变的无序节点,图中的每个节点都有不同数量的相邻节点,导致一些重要的操作(例如卷积)在图像(Image)上很容易计算,但不再适合直接用于图。此外,现有深度学习算法的一个核心假设是数据样本之间彼此独立。然而,对于图来说,情况并非如此,图中的每个数据样本(节点)都会有边与图中其他实数据样本(节点)相关,这些信息可用于捕获实例之间的相互依赖关系

近年来,人们对深度学习方法在图上的扩展越来越感兴趣。在多方因素的成功推动下,研究人员借鉴了卷积网络、循环网络和深度自动编码器的思想,定义和设计了用于处理图数据的神经网络结构,由此一个新的研究热点——“图神经网络(Graph Neural Networks,GNN)”应运而生,本篇文章主要对图神经网络的研究现状进行简单的概述。

需要注意的是**,图神经网络的研究与图嵌入**(对图嵌入不了解的读者可以参考这篇文章《图嵌入综述》)或网络嵌入密切相关,图嵌入或网络嵌入是数据挖掘和机器学习界日益关注的另一个课题。图嵌入旨在通过保留图的网络拓扑结构和节点内容信息,将图中顶点表示为低维向量,以便使用简单的机器学习算法(例如,支持向量机分类)进行处理。许多图嵌入算法通常是无监督的算法,它们可以大致可以划分为三个类别**,即矩阵分解、随机游走和深度学习方法。同时图嵌入的深度学习方法也属于图神经网络,包括基于图自动编码器的算法(如DNGR和SDNE)和无监督训练的图卷积神经网络(如GraphSage)。下图描述了图嵌入和图神经网络在本文中的区别**。

在这里插入图片描述

有那些图神经网络?

在本文中,我们将图神经网络划分为五大类别,分别是:图卷积网络(Graph Convolution Networks,GCN)、 图注意力网络(Graph Attention Networks)、图自编码器( Graph Autoencoders)、图生成网络( Graph Generative Networks) 和图时空网络(Graph Spatial-temporal Networks)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图卷积网络9GCNS

在这里插入图片描述
GCN方法又可以分为两大类,基于谱(spectral-based)和基于空间(spatial-based)。基于谱的方法从图信号处理的角度引入滤波器来定义图卷积,其中图卷积操作被解释为从图信号中去除噪声。基于空间的方法将图卷积表示为从邻域聚合特征信息,当图卷积网络的算法在节点层次运行时,图池化模块可以与图卷积层交错,将图粗化为高级子结构。如下图所示,这种架构设计可用于提取图的各级表示和执行图分类任务

在这里插入图片描述

基于空间的GCNs的方法

基于空间的图卷积神经网络的思想主要源自于传统卷积神经网络对图像的卷积运算**,不同的是基于空间的图卷积神经网络是基于节点的空间关系**来定义图卷积的。在这里插入图片描述

为了将图像与图关联起来,可以将图像视为图的特殊形式,每个像素代表一个节点,如下图a所示,每个像素直接连接到其附近的像素。通过一个3×3的窗口,每个节点的邻域是其周围的8个像素。这八个像素的位置表示一个节点的邻居的顺序。然后,通过对每个通道上的中心节点及其相邻节点的像素值进行加权平均,对该3×3窗口应用一个滤波器。由于相邻节点的特定顺序,可以在不同的位置共享可训练权重。同样,对于一般的图,基于空间的图卷积将中心节点表示和相邻节点表示进行聚合,以获得该节点的新表示,如图b所示。
在这里插入图片描述
一种共同的实践是将多个图卷积层叠加在一起。根据卷积层叠的不同方法,基于空间的GCN可以进一步分为两类:recurrent-based和composition-based的空间GCN。recurrent-based的方法使用相同的图卷积层来更新隐藏表示,composition-based的方法使用不同的图卷积层来更新隐藏表示。下图说明了这种差异。

在这里插入图片描述

基于组合的空间GCNs的方法

作为最早的图卷积网络,基于谱的模型在许多与图相关的分析任务中取得了令人印象深刻的结果。这些模型在图信号处理方面有一定的理论基础。通过设计新的图信号滤波器,我们可以从理论上设计新的图卷积网络。然而,基于谱的模型有着一些难以克服的缺点,下面我们将从效率、通用性和灵活性三个方面来阐述。

在效率方面,基于谱的模型的计算成本随着图的大小而急剧增加,因为它们要么需要执行特征向量计算,要么同时处理整个图,这使得它们很难适用于大型图。基于空间的模型有潜力处理大型图,因为它们通过聚集相邻节点直接在图域中执行卷积。计算可以在一批节点中执行,而不是在整个图中执行。当相邻节点数量增加时,可以引入采样技术来提高效率。

在一般性方面,基于谱的模型假定一个固定的图,使得它们很难在图中添加新的节点。另一方面,基于空间的模型在每个节点本地执行图卷积,可以轻松地在不同的位置和结构之间共享权重。

在灵活性方面,基于谱的模型仅限于在无向图上工作,有向图上的拉普拉斯矩阵没有明确的定义,因此将基于谱的模型应用于有向图的唯一方法是将有向图转换为无向图。基于空间的模型更灵活地处理多源输入,这些输入可以合并到聚合函数中。因此,近年来空间模型越来越受到关注

图注意力网络

注意力机制如今已经被广泛地应用到了基于序列的任务中,它的优点**是能够放大数据中最重要的部分的影响。**这个特性已经被证明对许多任务有用,例如机器翻译和自然语言理解。如今融入注意力机制的模型数量正在持续增加,图神经网络也受益于此,它在聚合过程中使用注意力,整合多个模型的输出,并生成面向重要目标的随机行走

总结

慢慢的将各种网络架构,全部都好好研究一波。
明天在将几个相关领域的几个模型都研究彻底,包括代码会自己好,其他的后续用到啥学习啥即可。大致了以下图网路,然后再慢慢的开始搞研究!

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

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

相关文章

Neo4J入门笔记

1.安装以及启动 Neo4J作为图数据库标准的一个实现,其功能还是非常强大的功能,并支持Cypher查询。目前其提供了3种版本: 桌面版社区版企业版 Neo4J其实现是基于Java实现的,所以JDK的安装是必须的,启动的方式官方文档…

细胞穿膜肽MPG,Mpa-GALFLGFLGAAGSTMGA-OH

嵌合肽家族,来源HIV gp41和猴病毒40T抗原NLS融合序列的一个疏水区 编号: 205074中文名称: 细胞穿膜肽MPG单字母: Mpa-GALFLGFLGAAGSTMGA-OH三字母: Mpa-Gly-Ala-Leu-Phe-Leu-Gly-Phe-Leu-Gly-Ala-Ala-Gly-Ser-Thr-Met-Gly-Ala-COOH氨基酸个数: 17分子式: C73H113O21…

C++入门基础06:简单语句与顺序结构、选择结构if与switch、循环语句、跳转语句、异常处理

C入门基础06&#xff1a;简单语句与顺序结构、选择结构if与switch、循环语句、跳转语句、异常处理 1、简单语句与顺序结构&#xff1a; #include <iostream> //系统定义头文件一般是尖括号 #include<fstream> #include<string> using namespace std;int ma…

资本-劳动力错配指数计算、金融错配指标两大维度指标(内附代码)

一、资本错配和劳动力错配指数计算 1、数据来源&#xff1a;各省级统计年鉴/中国统计年鉴、 2、时间跨度&#xff1a;2000-2019年 3、区域范围&#xff1a;31省市自治区 4、指标说明&#xff1a; 资源的稀缺性决定了经济学研究的一个基本问题就是资源配置&#xff0c;如…

找出你的高价值潜在用户 - 通过归因分析实现用户画像和精准营销

在之前的博客文章 为什么你的用户转化率不高&#xff1f;--新媒体运营转化效果渠道归因分析中&#xff0c;我们讲到 新媒体运营用户转化相关的指标以及目标追踪&#xff0c;以及相关的渠道归因分析。在本篇文章中&#xff0c;我们一起来看看&#xff0c;如何通过 Kyligence Zen…

数据结构:二叉树

目录 树 二叉树 堆 以大堆为例代码实现 功能预览 初始化 销毁 打印 插入数据 删除数据 建堆 获取栈顶元素 获取数组中的元素个数 判空 堆排序 TopK问题 二叉树链式结构的实现 功能预览 二叉树遍历 求节点的总个数 求叶子节点的个数 求树的深度 求第k层的…

零入门容器云网络-5:同一宿主机上的两个网络命名空间通信方案

已发表的技术专栏&#xff08;订阅即可观看所有专栏&#xff09; 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  gr…

Android 虚拟分区详解(一) 参考资料推荐

文章目录0. 导读1. Android 官方 VAB 文档1.1 公开文档1.2 半公开文档2. Device Mapper 文档2.1 device mapper 文档2.2 dmsetup 工具2.3 COW 介绍3. Android 源码4. 参考资料汇总5. 后续计划6. 其它Android Virtual A/B 系统简称 VAB&#xff0c;我在这一系列里面又将其称为虚…

【LeetCode每日一题:813. 最大平均值和的分组~~~前缀和+递归+记忆化搜索】

题目描述 给定数组 nums 和一个整数 k 。我们将给定的数组 nums 分成 最多 k 个相邻的非空子数组 。 分数 由每个子数组内的平均值的总和构成。 注意我们必须使用 nums 数组中的每一个数进行分组&#xff0c;并且分数不一定需要是整数。 返回我们所能得到的最大 分数 是多少…

前端面试整理

Js 1. Localstorage、sessionStorage、cookie、session的区别 &#xff08;1&#xff09;web storage和cookie的区别&#xff1a; Cookie(不设置过期时间) sessionStorage WebStorage的目的是克服由cookie所带来的一些限制&#xff0c;当数据需要被严格控制在客户端时&…

C/C++ 深入浅出C++模板(上)

不知道你是否思考过一个问题&#xff0c;那就是为什么C有丰富的库&#xff0c;而C语言却没有&#xff1f;比如说C有STL库&#xff0c;线程库等。其实一个很重要的因素就是因为C引入了泛型编程这个概念&#xff0c;也就是我们熟悉的模板。今天我们就一起来深入理解什么是泛型编程…

如何将文字转语音?这几个软件可以将文字转语音

最近有朋友向我求助说&#xff0c;自己在学校的社团里准备了一个话剧节目&#xff0c;需要为这个节目进行旁白配音&#xff0c;但是里面的台词不仅绕口&#xff0c;还有一些是生僻字&#xff0c;念起来有点困难。要是碰上自己的课程比较多的时候&#xff0c;难以兼顾两边的工作…

使用Apache搭建网站

❤️痛苦不是失败&#xff0c;而是你本可以❤️ 实验环境 CentOS7.3&#xff08;1611&#xff09;版本、Apache2.4&#xff0c;vsftpd3.0 本次实验目的 1.编译安装httpd 2.优化路径 3.并将鲜花网站上传到web服务器为网页目录&#xff08;当然其他网站源码也可以&#xff09;…

CMU 15-213 CSAPP. Ch11. Dynamic Memory Allocation

CMU 15-213 CSAPP (Ch1~Ch3) CMU 15-213 CSAPP (Ch5~Ch7) CMU 15-213 CSAPP (Ch8) CMU 15-213 CSAPP (Ch9) CMU 15-213 CSAPP (Ch10) CMU 15-213 CSAPP (Ch11) 视频链接 课件链接 课程补充 该课程使用 64位 编译器&#xff01; Ch11. Dynamic Memory Allocation 11.1 Basic c…

【附源码】计算机毕业设计JAVA政府人才机构在线考试系统2021

【附源码】计算机毕业设计JAVA政府人才机构在线考试系统2021 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1…

《web课程设计》基于HTML+CSS+JavaScript典的中医药大学网(11个页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

基于Python监测键盘输入并发出声音的坤音键盘

代码和软件在公众号【走神研究所】发送【键盘】关键字获取。这是一款基于python的桌面小工具&#xff0c;能够实时显示你敲击键盘的按键&#xff0c;并且当摁下“J”、“N”、“T”、“M”时会发出坤音。具体视频演示和代码原理在这里打开程序&#xff0c;随意摁下键盘&#xf…

2022/11/27一周总结

项目 redis 安装以及启动 切换到redis根目录运行cmd&#xff0c;先启动服务端redis-server.exe 2.输入redis-cli并回车&#xff08;redis-cli是客户端程序&#xff09;如图正常提示进入&#xff0c;并显示正确端口号&#xff0c;则表示服务已经启动。 基本知识 数据类型 St…

算法提升:图的Dijkstra(迪杰斯特拉)算法

目录 概念 思路 代码 概念 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的&#xff0c;因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法&#xff0c;解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始&#xf…

【Hack The Box】linux练习-- Ophiuchi

HTB 学习笔记 【Hack The Box】linux练习-- Ophiuchi &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月27日&#x1f334; &#x1…