Subgraphs, Motifs and Graphlets

  • 主题(motif):反复出现的、显著的相互连接的模式
    • Pattern:小的生成子图(对于一个结点集合,集合中所有的边与原图中的边完全重合,不多不少)
  • Motifs的作用
    • 帮助我们理解网络的工作机制
    • 帮助我们预测网络产生的效果等
    • 例子:

image.png

  • Motifs
    • 生成子图示例:

image.png

  • 重复出现(Recurrence):motifs是允许重叠出现的,并不要求完全一致
    • 比如下图中motif出现了4次

image.png

  • 显著性(Significance):比较子图在真实网络中出现的频率与在随机网络中出现的频率,若真实网络中出现的频率明显较高,则我们认为它是显著的
    • Motifs在网络中是被过度表示的
    • Motifs and Structrual Roles in Networks - 图4的值表明了motif i的显著程度,它是一个度量标准,不受网络大小等因素的影响:

image.png

  1. - Network significance profile (SP):将所有![](https://cdn.nlark.com/yuque/__latex/93b7642f7578154cf2b822056155b50f.svg#card=math&code=Z_i&height=18&width=16)做了归一化处理,转化为一个向量。SP注重子图之间相对的显著性,这样就可以更好地比较不同大小的网络。一般来说,大的网络Z值也会更高

image.png

  • Configuration Model(随机构造网络的算法):根据结点度的序列(使结点数、边数与原图相同)随机生成一张图。非常巧妙、非常简单。首先我们把所有结点想象成一个轮辐,即一个结点拥有与它的度数量相同的触手。之后,我们将序列中的每个结点进行处理,一个结点的度是几,那么给它画出多少小结点。之后,我们将序列中的所有小结点随机地两两相连,汇总连通信息后,我们就得到了最终的图。

image.png

  • Switching(对图继续进行随机再造):随机地两两交换边的终端,但这种方法比前者要慢

image.png

  • 侦测motif的步骤:
  1. 在真实网络中计算子图i的出现次数
  2. 在随机生成的网络(通常生成几百几千个)中计算子图i的出现次数(随机网络的结点数、边数、度分布与原始网络完全一致)
  3. 计算i的Z-score,若得分很高,则子图i是原图的一个motif

    Graphlets:Node feature vectors

  • Graphlet:连通且不同构的生成子图,用于获取结点级别的子图标准。motif是全图级别的子图标准。

image.png

  • 在一个图中,结点所处的位置可以是独特的,也可以是多个结点共有的,比如对G1而言,结点在图中的位置只有两个,要么在两边,要么在中间。
  • 既然结点的度代表了一个结点与多少条边关联,那么我们也可以类比一下,Graphlet degree vector代表了一个结点与多少graphlets相关联。比方说对G9而言,结点可以接触3个位置。
  • Graphlet degree vector(GDV):一个结点所在位置的频率组成的向量。通过计算一个节点所在的Graphlets中不同的非对称位置,可以对节点附近的局部结构进行衡量。
    • 对于下图,我们可以点v对于每个位置的GDV,即多少graphlets可以在v的位置是x时出现。a、b很明显,但c是0,因为graphlet是生成子图,若点v在c的位置,另外两个点是不应该相连的,然而在图G中两个点是连着的。
    • 若我们对图中一个结点考虑2-5个结点的graphlet,那么我们可以得到73维度的的一个向量,因为有73个位置。它表示了结点邻居(长度为4的距离内)的拓朴结构。
    • GDV给出了一个节点附近的拓扑结构的衡量。

image.png

Finding Motifs and Graphlets

  • 查找给定网络中大小为k的motifs或graphlets有两个挑战:
    • 枚举所有大小为k的连通子图
    • 计算每个子图的出现次数(np完全问题)计算时间指数级上升,可行的motif大小通常在3-8之间
  • ESU算法
    • 建立两个集合:子图结点集合(目前建立的子图)、扩展集合(可扩展motif的候选节点集合)
    • 从一个结点v开始,把满足以下两个条件(u结点的id大于v;u只与一些新加入的结点邻接,且它不是任何在子图节点集合的结点)的结点加入扩展集合
    • 递归树示例:

image.png
image.png

  • 找出具有一定结点数的子图后,我们对子图进行分类

image.png

  • 判定两个图是否同构是np完全问题,只能通过暴力完成

    Structral Roles in Networks

  • Roles是在一个网络中结点起到的作用,例如食物链中的各个种族,公司中的每一个人。

  • Roles的定义:具有相似结构属性的节点集合。与组或社区不同,组或社区是通过邻接,可达性定义的。Roles与社区相互补充。
    • 例如考虑一个计算机学院的社交网络:
      • Roles由教员、工作人员、学生组成
      • 社区由AI研究室、信息研究室、理论研究室组成
  • 结构等价:若节点 u 和节点 v 与所有其他节点拥有相同的关系,则称节点 u 和节点 v 结构等价。
    • 如下图,u和v是结构等价的

image.png

Discovering Structrual Roles in Networks

  • RoIX:自动检测网络中结点的structural roles。一种无监督学习方法
    • 步骤:

image.png

  • Recursive feature extraction(递归特征抽取):通过递归特征抽取,将节点转化为特征向量,该特征向量包含了该节点本身、节点的邻居,以及它与什么样的节点向量的信息。
    • local特征:有关结点的度,可能包含出度、入度、带权信息
    • Egonet(自我中心网络)特征:在自我中心网络上进行计算,包括网络中的边,以及网络与外部相连的边等等
    • 递归特征:结点与什么类型的结点相连?

image.png

  • 算法步骤:
  1. 以基础特征集作为开始
  2. 使用当前节点特征集生成新特征:使用mean和sum两种聚类。如计算一个结点周围unweighted dgree的均值,或计算所有现有特征的均值或总和。
  3. 重复2
  • 随着每次递归迭代,生成特征的数量呈指数增长。故可以使用剪枝减少特征数量:
    • 寻找高度相关的特征对
    • 当两个特征的相关性超过用户定义的阈值时,删除其中一个特征

image.png