03 - Motifs and structural Roles in Networks

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

  • 官网:http://snap.stanford.edu/class/cs224w-2019/
  • 课程视频:http://snap.stanford.edu/class/cs224w-videos-2019/
  • 课程笔记(英文):https://snap-stanford.github.io/cs224w-notes/

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

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等等。如果你还能找出另一个形状的子图那么它一定和下面某一个子图是同构的

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

  1. 斯坦福密码学课程-笔记-01-Introduction绪论

    斯坦福密码学课程笔记 01-绪论 Introduction Course Overview Cryptography is everywhere Secure communication Secure ...

  2. 斯坦福密码学课程-笔记-02-Stream Ciphers流密码

    斯坦福密码学课程笔记 02-流密码 Stream Ciphers The One Time Pad Symmetric Ciphers: definition The One Time Pad (Ve ...

  3. NeurIPS 2021论文接收结果统计:Oral级论文不足3%,图神经网络火到进前三

    丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI NeurIPS 2021已放榜. 今年大会共收到了9122篇有效投稿,最终2344篇论文被接收,接收率为26%,达到了近几年来最高水平. 这 ...

  4. 图神经网络(GNN)入门之旅(三)-拉普拉斯矩阵与GCN

    知乎专栏:图神经网络 第三篇: https://zhuanlan.zhihu.com/p/344005023

  5. 香侬科技GNN-LM:基于全局信息的图神经网络语义理解模型笔记

    LM任务 T a s k : L a n g u a g e M o d e l i n g ( L M ) 任 务 i n p u t c t = ( w 1 , w 1 - , w t − 1 ) ...

  6. 图神经网络(CS224w)学习笔记2Traditional Methods for ML on Graphs

    文章目录 前言 一.传统基于节点特征方法: 1.1.节点的度 Node degree 1.2.节点中心性 Node centrality 1.2.1.特征向量中心 Eigenvector centra ...

  7. 2021斯坦福CS224N课程笔记~7

    7. 机器翻译,序列到序列.注意力机制 参考文献: https://zhuanlan.zhihu.com/p/430709084 https://zhuanlan.zhihu.com/p/147310 ...

  8. 转:深度学习斯坦福cs231n 课程笔记

    http://blog.csdn.net/dinosoft/article/details/51813615 前言 对于深度学习,新手我推荐先看UFLDL,不做assignment的话,一两个晚上就可 ...

  9. 【图神经网络论文整理】(三)—— HOW TO FIND YOUR FRIENDLY NEIGHBORHOOD:SuperGAT

    ICLR 2021 Dongkwan Kim & Alice Oh 论文地址 本文介绍的论文是<HOW TO FIND YOUR FRIENDLY NEIGHBORHOOD: GRAPH ...

最新文章

  1. java8异步_Java8新特性之:CompletableFuture
  2. bit_length
  3. Spring Cloud Gateway 突发高危漏洞,下一代云原生网关恰逢其时?
  4. 获取数组中连续相同的元素
  5. Datatable/Dataset 转 JSON方法
  6. Tensorflow源码解析2 -- 前后端连接的桥梁 - Session 1
  7. 利用正则获取url传递的数据
  8. Spring Boot开发
  9. C++ 堆栈结构(超详解)
  10. 复杂脑网络之图论参数计算(BCT工具包)
  11. martyr2s提出的计算机练手小项目(未翻译)
  12. getinfo()java,Java Provider getInfo()用法及代碼示例
  13. git 提交错误:The requested URL returned error: 502
  14. 游戏Call技术-绑定主线程调用CALL技术(反游戏检测call)
  15. VM虚拟机安装使用OBS直播录屏软件图文教程及注意事项
  16. 不用u盘如何在小米电视上安装电视直播软件
  17. Android数据存储(内部,外部,SharedPreferences,SQlite)
  18. 深入浅出使用python编程_深入浅出Python元编程
  19. Python-opencv的指针检测、表盘识别算法案例分析
  20. force语句的使用

热门文章

  1. Revit开发 - 选择实体(PickObject)
  2. Unit03: URL 、 HTTP 协议 、 HTTP优化
  3. 简体中文影子系统2.8版(电脑的保护神)
  4. UE4 常用函数使用方法
  5. 苹果5概念机_一加 9 Pro概念渲染图来了;小米手环5即将发布;明天,红米第一款WiFi 6路由器登场;苹果智能眼镜细节曝光...
  6. 【龙印】用龙芯1c的硬件pwm产生单个脉冲来驱动步进电机
  7. python程序设计课程设计_《Python程序设计》课程教学大纲
  8. 个人码免签支付系统搭建
  9. 【经验】Ceph对象存储运维的惊魂72小时
  10. Dell shareplex 与HVR数据复制软件