【图神经网络】——“斯坦福CS224W”课程笔记(三)

本文探讨了图机器学习中的子图结构,如motifs和graphlets,及其在网络分析中的重要性。通过对子图的频率分析,可以揭示网络的结构特征。此外,文章还介绍了网络中的节点角色,如中心型、抱团型和外围型节点,以及如何通过结构等价性发现这些角色。
摘要由CSDN通过智能技术生成

03 - Motifs and structural Roles in Networks

本文是我在学习斯坦福大学2019年秋季课程 “图机器学习”(图神经网络) 时所记录的笔记。课程资源如下列出,其中slides都可在官网找到;另斯坦福CS224w课程的学生记录了部分笔记在github上开源,可以作为学习参考。

本节课主要讨论子图分解在图分析中的重要作用。

1 简介

图可以看作是由许多子图(subgraph)构建而成的。这些子图能够刻画和区分不同的图。例如下面这个电路图可以分解为许多子图。
在这里插入图片描述
有一些固定的子图结构,这些子图反应了某种特殊的结构特征,因此我们需要了解和熟悉它们。这里列举了13种包含3个结点的有向子图(非同构的)。
在这里插入图片描述
我们用一个“重要性”系数来表示某个子图在一个图中出现的频率程度(后面会有严格定义)。如果是正数表明出现频率很高(over-representation);否则出现频率较低(under-representation)。例如下图对于1号子图,在Language networks类图中出现频率就很高,而在其他三种类型图中出现频率较低。并且属于同一种类型图的模型具有相似的子图重要性表现(例如英文和法文同属Language networks)。
在这里插入图片描述
那么子图如何来定义?“重要性”又是如何计算得到的?如何通过局部结构来刻画图?这些问题会在下面一一介绍。

2 基本定义

2.1 motifs

如何来定义motifs?我理解的motifs就是具有一定模式结构并且频繁出现的子图。这里用“模式”、“重复出现”和“重要性”三个指标来刻画motifs。它可以帮助我们去理解网络是如何工作的,帮助我们预测某种特定情况下网络的动作和反应。
在这里插入图片描述

  • 模式。我们要在一个图中匹配某个模式子图时,一定是有相同的结点数、边数和连接方向。例如下面红色框内的子图就不匹配,因为多了一条边;而右边的则匹配。
    在这里插入图片描述
  • 重复出现。即某个模式在图中可以匹配多次。注意这里允许多个匹配的子结构重叠,例如下图motifs匹配右图,中间的矩形在四个子结构中均出现,但这可以算做4次出现。
    在这里插入图片描述
  • 重要性。这里给出了重要性的数学定义。它其实是与同类型的随机图模型做比较得出的。即对于某一个motifs,计算目标图中motifs出现的次数,以及对应随机图(可能有多个随机图)中motifs出现次数的均值,相减后除以随机图中motifs出现次数的标准差。而SP则是将Z-score归一化,使得对于不同网络计算得到的Z-score值都处于0-1之间,便于比较。
    在这里插入图片描述

2.2 构建随机图

那么现在问题主要就是如何构造对应的随机图?随机图具有和目标图一样结点数边数对应结点的度分布。前两者很好构造,关键在于第三者。主要有两种方法来构建。

  1. Configuration model(配置模型)。我们可以从目标图中获取每个结点的度k_i;然后我们将每个结点扩展为k_i个结点,随机地连接任意两个结点,得到和目标图同样数量的边;最后将每个框内结点再聚合为一个结点,就能得到一个随机图。这里有个问题:对于某些结点之间可能生成两条边(或更多),我们仅选择其中一条边,如下图A->B有两条边,但是我们只选择其中一条。对于自环边,我们将其忽略

    Jure教授也讲到选择将其忽略的原因是对于大型图这种情况的出现概率是比较小的,因此我们可以将其看作是噪音;虽然存在一种方法可以避免双向边和自环的出现,就是在随机连边时加入一些限制,例如同框内结点不能相连、任意两框之间只能连一条边等,但是这样破坏了随机性,最终生成的图就不是随机图了,因此不可取。
    在这里插入图片描述

  2. switching(交换边)。另外一种生成随机图的方法,在给定图中做Q*|E|次交换操作,Q是选定的一个数,|E|是给定图的边的个数。交换操作定义如下图所示。通过多次交换,整个图可以收敛,此时生成一个随机图。
    在这里插入图片描述
    最后这里举了一个栗子来梳理一下计算motifs重要性的过程,可以作为总结。
    在这里插入图片描述
    Motifs也有很多变种,主要包含对motifs本身定义的变种、以及对于一些概念(例如重要性的度量、随机图的限制等)的变种。如下图总结。
    在这里插入图片描述

3 Graphlets

这里又要介绍一个新的概念——Graphlets,但是也没有多新,和上面motifs很类似,也是用来表示子图结构。

3.1 什么是Graphlets

Graphlets是指连通的异构子图。对于不同结点数的连通子图,通常存在确定数量的异构子图,如下图所示。

例如对于结点数为3的子图,就存在2个Graphlets;结点数为4的子图存在6个Graphlets等等。如果你还能找出另一个形状的子图那么它一定和下面某一个子图是同构的 😃

图中标的数字的含义代表在一个子图中拥有不同位置的结点的编号(用orbits表示)。例如对于G1,所有不同位置的结点就是1和2,而2下面那个黑色结点所站的位置其实和1是相同的,因此就不再考虑;对于G2,三个黑色结点位置其实是等价的,因此仅标记一个。
在这里插入图片描述

  • Graph Degree Vector (GDV)。我们用GDV来计算某个结点能够匹配的到的graphlets的个数。例如对于下面这张图,对于结点v,对于不同graphlets,v可能站在不同的orbits位置处,那么这个vector就计算了它所在图中周围结点符合对应orbits的个数。注意对于d只有2个,而不是4个…
  • 我们可以用一个长73的向量来存储一个结点的GDV,这样可以在4步的距离内确定一个子图。
  • GDV的作用在于如果我们得到两个结点的GDV,并且发现它们非常类似,那么就可以判定这两个结点的局部网络拓扑结构是类似的
    在这里插入图片描述
    这里给出了一个例子来让我们看到GDV长什么样子。
    在这里插入图片描述

3.2 如何找出一个图的Graphlets

找出一个大小为k的motifs或者说graphlets需要解决两个问题:

  1. 找出所有大小为k的连通子图;
  2. 从中数出有几个graphlets。(可能有同构子图)

这个问题是比较难的计算问题,并且计算复杂度随motif的大小指数增加。

这里主要介绍了一种简单的算法——ESU算法

ESU算法的关键是构造两个集合,一个是已经构造的子图的结点集合;另一个是可选待加入的结点集合。
对于任意加入v_extension的结点u,有两个限制:1)是u的node_id必须比v的node_id大,这是避免重复计算子图;2)u必须是刚加入的结点w的邻居,但是不能是v_subgraph中的结点或v_subgraph的邻居结点,这也是为了避免重复计算,在下面的ESU-Tree中就会看到,重复计算的情况在第一层的靠后就会考虑到。
在这里插入图片描述
算法的伪代码如下所示。首先是一个循环,每次从任一结点v出发,最开始只是将v的邻居加入v_extension,然后就调用递归函数extend_subgraph进行递归计算。

递归函数的终止条件是当子图大小达到k时,此时输出所有子图并返回;而当V_extension中还有结点时(意味着还可以扩展子图),从中任选一个结点出来,并按照上面的两个约束重新生成v_extension,然后递归调用函数。下面绿色字重新说明了上述的约束,必须不能是v_subgraph中的结点或邻居结点。
在这里插入图片描述
用一个ESU-Tree来展示算法的执行过程就很清楚了。
在这里插入图片描述
然后第二步就是数出所有子图的个数,对于上图的情况一共有两种Graphlets,因为那个像勾勾一样的子图有很多同构子图,他们本质上都是一种图,数量分别为5和1。
在这里插入图片描述
所以这里剩下唯一的问题就是如何判断两个子图的同构的,采用McKay’s nauty algorithm

4 网络中的角色

角色被定义为网络中具有某种特定“功能的结点”。例如下图中一个物种在生物系统中就是一个角色,一个职位在公司的系统中就是一个角色。一般来说网络中有三种角色的结点,1)中心型结点;2)抱团型结点;3)外围型结点
在这里插入图片描述
在这里插入图片描述

  • 角色社区的区别。主要在连通性上,相同角色的结点可能是互联的也可能不是(可能相距很远);而对于社区中的结点都是相邻的或是可达的,距离较近的一个群体。下面这张图就比较清楚了。
  • 在这里插入图片描述
  • 更正式一点来定义角色,就是结构等价性。即任意两个结点如果拥有和剩余结点相同的关系,那么这两个结点是结构等价的。如下图u和v就是结构等价的。
    在这里插入图片描述
    在这里插入图片描述
  • 如何来发现一个图中的所有角色呢?这里提供了一种方法——RoIX,是一种无监督学习的方法,建议阅读论文,这里讲的也不是很清楚,所以就不展开了。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唯与痴想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值