【学习日记】《深入浅出:图神经网络》:第一天---图的概述

图的概述

1. 图的基本定义

图由顶点(Vertex)以及连接顶点的边(Edge)构成。其中,顶点表示研究的对象,边表示两个对象之间特定的关系。
图可以表示为顶点和边的集合,记为G=(V,E)
同时,我们设图G的顶点数为N,边数为M。

1.1 图的基本类型

可以分为:

  • 有向图和无向图
  • 加权图和非加权图
  • 连通图和非连通图
  • 二部图
    其中,二部图指的是:我们将G中的顶点集合V拆分成两个子集A和B,如果对于图中的任意一条边eij均有vi属于A,vj属于B,则称G为二部图。
    二部图是一种十分常见的图数据对象,描述了两类对象之间的交互关系,比如:用户与商品、作者与论文等。

1.2 邻居与度
邻居是指:如果vi与vj相连接,则称vi是vj的邻居,反之亦然。我们记vi的所有邻居的集合为N(vi).
以vi为端点的边的数目成为vi的度(Degree),记为deg(vi).

1.3 子图与路径
子图不必再多言。
路径是指,在图G=(V,E)中,从顶点vi出发,沿着一些边到达vj,则称边序列Pij为顶点i到顶点j的一条路径(Path,也称通路)。
路径的长度:路径中边的数目。
顶点的距离:最短路径长度
K阶邻居:若两个顶点之间的距离为K,我们称其为K阶邻居。

2. 图的存储和遍历

2.1 邻接矩阵和关联矩阵

  • 邻接矩阵(Adjacency matrix)
    用邻接矩阵存储图时,我们研究的是顶点之间的关系。如果两顶点之间有边连接,则Aij=1,否则为0。
    需要注意的是,由于在实际的图数据中,邻接矩阵往往会出现大量的0值,因此可以用稀疏矩阵的形式来存储邻接矩阵,这样可以将邻接矩阵的空间复杂度控制在O(M)的范围内。(M是边数)

  • 关联矩阵(Inciednce matrix)
    关联矩阵研究的是顶点与边之间的关系,定义为:当vi与边ej相连时,Bij=1,否则为0。
    用关联矩阵存储图的时候,我们需要两个一维数组分别表示顶点集合和边集合。
    同样的,关联矩阵也可以用稀疏矩阵来存储。

注:在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。

2.2 图的遍历

  • 深度优先(DFS)
  • 广度优先(BFS)

3. 图数据的应用场景

在实际的数据场景中,我们通常将图称为网络(Network),与之对应的,图的两个要素(顶点和边)也被称为节点(Node)和关系(Link),比如我们熟知的社交网络、物流网络等概念名词。
图数据是一类比较复杂的数据类型,存在非常多的类别,这里着重介绍4类:

  • 同构图
    同构图是指图中的节点类型和关系类型都仅有一种。同构图是实际图数据的一种最简化的情况,如由超连接关系所构成的万维网,这类图数据的信息全部包含在邻接矩阵里。

  • 异构图
    与同构图相反,异构图是指图中的节点类型或关系类型多于一种。
    异构图能够更好地贴近现实。

  • 属性图
    相较于异构图,属性图给图数据增加了额外的属性信息。

  • 非显式图
    非显式图是指数据之间没有显式的定义出关系,需要依据某种规则或计算方式将数据的关系表达出来,进而将数据当成一种图数据进行研究。比如计算机3D视觉中的点云数据。

4. 图数据深度学习

  • 图谱理论(Spectral Graph Theory)
    是将图论与线性代数相结合的理论,基于此理论发展而来的谱聚类相关算法,可以用来解决图的分割或者节点的聚合问题

  • 统计关系学习(Statistical Relational Learning)
    是将关系表示与似然表示相结合的机器学习理论,区别于传统的机器学习算法对数据独立同分布(数据对象是同类且独立不相关的)的假设,统计关系学习打破了对数据的上述两种假设,对图数据的学习具有更好的契合度。

  • 异构信息网络(Heterogeneous Information Network)
    为了更加贴合实际场景中的异构图数据,挖掘异构图中更加全面的结构信息和丰富的语义信息。

  • 网络表示学习(Network Embedding)
    为了从复杂的图数据中学习到包含充分信息的向量化表示。

5. 图数据相关任务的分类

  • 节点层面(Node Level)的任务
    节点层面的任务主要包括分类任务和回归任务。
    这类任务虽然是对节点层面的性质进行预测,但显然不应该将模型建立在一个个单独的节点上,节点的关系也需要考虑。
    节点层面的任务有很多,包括学术上使用较多的对论文引用网络中的论文节点进行分类,工业界在线社交网络中用户标签的分类、恶意账户检测等。

  • 边层面(Link Level)的任务
    边层面的任务主要包括边的分类和预测任务。边的分类是指对边的某种性质进行预测;边预测是指给定的两个节点之间是否会构成边。
    常见的应用场景比如在社交网络中,将用户作为节点,用户之间的关注关系建模为边,通过边预测实现社交用户的推荐。目前,边层面的任务主要集中在推荐业务中。

  • 图层面(Graph Level)的任务
    图层面的任务不依赖于某个节点或者某条边的属性,而是从图的整体结构出发,实现分类、表示和生成等任务。目前,图层面的任务主要应用在自然科学研究领域,比如对药物分子的分类、酶的分类等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值