• 图神经网络的基本知识


    欧几里得空间

    欧几里得空间(Euclidean space),是指一类特殊的向量空间,对通常3维空间V3中的向量可以讨论长度、夹角等几何性质。
    常见的欧几里得结构化数据主要包含:
    1D:声音,时间序列等;
    2D:图像等;
    3D:视频,高光谱图像等;

    常见的非欧几里得结构化数据主要包含:
    1D:社交网络(eg:Facebook,Twitter等)等;
    2D:生物网络(基因,分子,大脑连接)等;
    3D:基础设施网络(eg:能源,交通,互联网,通信等)等;

    什么是图

    针对非欧几里得结构化数据表示问题,研究者们引入了图论中抽象意义上的图(Graph)来表示非欧几里得结构化数据。
    图是由边和节点组成的数据结构。
    在这里插入图片描述

    图的分类

    根据图的节点间是否有方向,可将图分为无向图与有向图
    根据图的边是否有权重,可以将图分为无权图和有权图
    根据图的边和点是否具有多种类型,可以将图分为同构图和异构图

    如何表示一张图

    邻接矩阵:几个节点就是几乘几的邻接矩阵,如果节点之间有边就在邻接矩阵的对应位置置为1
    邻域:表示与某个顶点有边连接的点集
    拉普拉斯矩阵:度矩阵-邻接矩阵。拉普拉斯矩阵中的第i行实际上反应了第i个节点在对其他所有节点产生扰动时所产生的增益累积。直观上来讲,图拉普拉斯反映了当我们在节点i上施加一个势,这个势以哪个方向能够多顺畅的流向其他节点。(图谱论学习—拉普拉斯矩阵背后的含义

    图的性质

    无向图的度:一个点连接的边的数量
    有向图的出/入度:一个点指向别的点(别的点指向该点)的边的个数
    子图:子图中所有的节点都是大图的节点,子图中所有的边都包含在大图中
    连通图:对于一个无向图,如果任意的节点i能够通过一些边到达节点j,则称之为连通图
    连通分量∶无向图G的一个极大连通子图称为G的一个连通分量〈或连通分支),连通图只有一个连通分量,即其自身﹔非连通的无向图有多个连通分量
    有向图的连通性:强连通图︰给定有向图G={V,E},并且给定该图G中的任意两个结点u和v,如果结点u与结点v相互可达,即至少存在一条路径可以由结点u开始,到结点v终止,同时存在至少有一条路径可以由结点v开始,到结点u终止,那么就称该有向图G是强连通图
    弱连通图:若至少有一对结点不满足单向连通,但去掉边的方向后从无向图的观点看是连通图,则D称为弱连通图
    最短路径:图中的两个节点能达到的最短路径
    图直径:图中两两节点最短路径的最大值

    图中心性

    度中心性:度中心性=(Ndegree)/(n-1) n表示图中节点的数量,Ndegree表示该节点的度
    特征向量中心性:根据邻接矩阵计算特征值和特征向量,然后找到最大的特征值对应的特征向量就是每个节点的特征向量中心性。特征向量中心性不仅跟点的度有关(度越大值越大),还跟这个点所连接的点有关。相比较于度中心性能更好表示节点在图中的位置。
    在这里插入图片描述
    中介中心性:betweenness(图中其余两两节点之间的最短路径经过该指定节点的次数)=经过该节点的最短路径/其余两两节点的最短路径
    连接中心性:closeness=(n-1)/节点到其他节点的最短路径之和 n是节点个数

    图上的学习任务

    1. 图节点分类任务:图中每个节点都有对应的特征,当我们已知一些节点的类别的时候,可以设计分类任务针对未知节点进行分类。GCN、GraphSAGE、GAT模型都是对图上的节点分类。希望预测这个点的类别或者其他的特性,那么这就是一个节点级别的任务;
    2. 图边结构预测任务:图中的节点和节点之间的边关系可能在输入数据中能够采集到,而有些隐藏的边需要我们挖掘出来,这类任务就是对边的预测任务,也就是对节点和节点之间关系的预测。希望预测这条边的权值,或者预测这条边是否存在,等等,那么这就是一个边级别的任务;
    3. 图的分类:对于整个图来说,我们也可以对图分类,图分类又称为图的同构问题,基本思路是将图中节点的特征聚合起来作为图的特征,再进行分类。预测整张图的一个类别,或者想比较两张图之间的相似性等等,这就是一个图级别的任务了。

    图游走

    图游走类算法的目标:学习出图中每一个节点的一维表示,即node embeddings:

    1. 得到node embeddings之后,可以进行下游任务(节点分类等)
    2. 通过node embeddings可以学习节点和邻居的关系,更好的表示图结构与图特征的信息

    通过图表示学习使用图上的多次游走得到的序列,从而得到节点的一维表示(用于下游任务)
    游走模型的鼻祖是DeepWalk模型,它也是第一个将 NLP 领域的思想运用到图嵌入领域的模型。
    在这里插入图片描述
    Random Walk:从图中的某个节点出发,游走的每一步都从与当前节点相连的边中随机选择一条,沿着选定的边移动到下一个顶点,不断重复这个过程,直到得到的序列无法继续往下走或者到达指定最大长度。在走了多趟之后,便可以得到多个游走序列,此时就可以类比 NLP 中的句子了。随机游走的本质,其实就是可以“回头”的深度优先搜索。将随机游走表示成公式的话,可以得到下面的这个式子。
    在这里插入图片描述
    DeepWalk选取随机游走序列中下一个节点的方式是均匀随机分布的,因此对于与当前节点有边相连的节点,都有相同的概率被选择。
    在 DeepWalk 中,会针对图中的每个节点采样多条序列,得到这些节点序列之后,就可以直接套用 Word2vec 模型了。

    图信号相关概念

    时域和频域

    时域(时间域)——自变量是时间,即横轴是时间,纵轴是信号的变化。其动态信号x(t)是描述信号在不同时刻取值的函数。时域是真实世界,是惟一实际存在的域。
    频域(频率域)——自变量是频率,即横轴是频率,纵轴是该频率信号的幅度,也就是通常说的频谱图。频域它不是真实的,而是一个数学构造。正弦波是频域中唯一存在的波形,这是频域中最重要的规则,即正弦波是对频域的描述,因为频域中的任何波形都可用正弦波合成。

    傅里叶变换

    将一个时域非周期的连续信号,转换为一个在频域非周期的连续信号。
    把信号通过频谱的方式(包括幅值谱、相位谱和功率谱)进行准确的、定量的描述。
    能看到的仅仅是一个类似正弦波的波形,其幅值在按照一定的规律变化。记载这个波形的信息,尤其是量化的记载是很困难的。那么这个时候引入傅里叶变换就可以得到一个频谱(幅值谱)。

  • 相关阅读:
    Swift学习内容精选(一)
    信息学奥赛一本通:1311:【例2.5】求逆序对
    【学习OpenCV4】OpenCV入门精讲(C++/Python双语教学)
    基于JAVA+SpringMVC+Mybatis+MYSQL的影视网站
    《动态规划 ---- 线性规划一》----- 动态规划的基本概念,线性动态规划-->背包问题
    nginx常用指令、方向代理、负载均衡、动静分离、高可用实例
    访谈-John Carmack-2022
    【自然语言处理】利用python创建简单的聊天系统
    CentOS7系统下安装OpenOffice
    今天就分享一段话
  • 原文地址:https://blog.csdn.net/zjn1174962912/article/details/125867857