课程链接:CS224W: Machine Learning with Graphs
课程视频:【课程】斯坦福 CS224W: 图机器学习 (2019 秋 | 英字)
这一课主要是讲 子图(subnetworks) 的一些参数。

目录

  • 1. 序:子图(Subnetworks)
  • 2. Subgraphs, Motifs and Graphlets
    • 2.1 Network Motifs
    • 2.2 Graphlets: Node feature vectors
    • 2.3 Finding Motifs and Graphlets
  • 3. Structural Role in Networks
    • 3.1 Role的定义
    • 3.2 Discovering Structural Role in Networks

1. 序:子图(Subnetworks)

子图(subnetworks/subgraph)是网络的局部组成,可以用来辨别和区分网络。(类似于分子中的不同原子结构)

子图的结构可以有很多种,比如有向图的三节点子图(n-node subgraphs,这里n=3)就有如下几种形式:

对于一张网络来说,你可以得到很多个子图,那么什么样的子图是有意义的呢?这就需要一些参数,来衡量子图的重要性。这样,不同的网络就可以表示为以这些子图为基的特征向量。

下面是一些例子:

我们首先看这张图最底下,横坐标,是前面讲到的13种子图的类型,上面的每一行就是不同网络关于这13种子图的一些特征值。可以看到,同领域的网络,它的特征向量其实是相似的。比如最后一行的语言网络,对于英语、发育、西班牙语、日语等不同的语言来说,他们尽管语法不尽相同、词语不同,但是它们的特征是一致的。

那么,我们今天的课程内容就是来看一下怎么去定义这样的“motifs”(可以理解为以子图构成的基底),怎么去得到网络关于这些基的特征值。

2. Subgraphs, Motifs and Graphlets

2.1 Network Motifs

首先,我们先来看一下Network Motifs的定义:

“recurring, significant patterns of interconnections”

Motifs的作用:

  • Help us understand how networks work(帮助我们了解网络是如何工作的)
  • Help us predict operation and reaction of the network in a given situation (帮助我们预测网络在特定情况下的运行和反应)

Motifs的一些例子:

Motifs 图例 出现的网络
Feed-forward loops 前馈环路 这种Motifs会在神经元网络中出现,会用来中和“生物噪音(biological noise)”。(这应该是属于生物信息学中的相关概念)
Parallel loops 平行环路 会在食物链网络中出现
Single-input modules 在基因控制网络中发现

这里有三个关键词:

  • Pattern:motifs的模式是小的诱导子图(small induced subgraph。这里需要厘清诱导子图的定义(子图、诱导子图和生成子图)
  • recurring:需要在网络中重复很多次;并且重复的Motifs里会有相同的单元(节点)。
  • significant:比想象中出现得更加频繁。这里可以由一个关键点来衡量——Subgraphs that occur in a real network much more often than in a random network have functional significance(也就是说,定义的motifs在真实网络中出现的频率要比在随机图中出现的频率要高得多)。【可以看这篇文章:在论文中经常读到的motifs是什么意思?】这里需要注意的是用来做检测的随机网络需要和真实网络有相同的 #(nodes), #(edges), #(degree distribution),#表示数目。

我们怎样去计算这个significance(显著性)呢?设ZiZ_iZi​表示motif iii的统计显著性。
Zi=(Nireal−N‾irand)/std(Nirand)Z_i=(N{^{real}_i}-\overline{N}{^{rand}_i})/std(N{^{rand}_i})Zi​=(Nireal​−Nirand​)/std(Nirand​)

这里NirealN{^{real}_i}Nireal​是指在真实网络GrealG^{real}Greal中motif iii出现的次数,NirandN{^{rand}_i}Nirand​是指在随机网络GrandG^{rand}Grand中motif iii出现的次数。

那么,网络的motif iii的显著性(Network Significance Profile, SPSPSP)由标准化后的ZiZ_iZi​表示:
SPi=Zi/∑jZj2SP_i=Z_i/\sqrt{\sum_j Z{^2_j}}SPi​=Zi​/j∑​Zj2​​

SPSPSP更强调不同子图之间的相对显著性,这对于不同规模的网络比较十分有意义,因为一般来说网络规模越大,Z-score越高,而标准化处理则可以降低尺度效应的影响。

这里有个问题,就是我们怎么得到随机网络GrandG^{rand}Grand呢(Configuration model)?并且这个随机网络GrandG^{rand}Grand需要和真实网络有相同的 #(nodes), #(edges), #(degree distribution)。

这里介绍两种方式。

第一种方式,我们可以通过给定的节点数量和节点的度序列(degree sequence k1,k2,⋯,kNk_1,k_2,\cdots,k_Nk1​,k2​,⋯,kN​)来生成随机图:

注意,这里为了保留随机性,不会遍历所有的搭配可能;并且可以看到,因为我们会忽略自环和双边,最后生成的随机图中节点B的度为3(给定的度为4)。

第二种方式称为Switching。

我们从一个给定的图开始(这个图和真实的网络有相同的度),重复以下步骤Q⋅∣E∣Q \cdot |E|Q⋅∣E∣次,QQQ会取一个较大的值(如100)来使整个过程达到收敛:

  • 随机选取一条边(例如A->B,C->D)
  • 将边的终点随机改变。注意的是新生成的边不能构成自环或者双边。

总结一下上面的内容:

关于Motifs也有很多其他形式表示的定义:

2.2 Graphlets: Node feature vectors

Graphlets(图元,connected non-isomorphic subgraphs)是指大规模网络中那些节点数目较少的连通诱导子图。

Graphlets反映了网络的局部拓扑,所以它是重要的网络特征。


图元通常会用来比较网络之间的相似和差异。基于图元,我们来介绍Graphlet Degree Vector(GDV) 方法。

Graphlet Degree Vector(GDV)方法是Przulj在2003年提出的利用图元及图元向量来刻画网络中节点邻域关系的方法,具体指在小连通非同构子图中计算每个节点的自同构轨道,即每个节点所接触的图形数量。这种方法基于网络拓扑和邻域定义了一系列非同构子图和图向量,用于识别网络中结构相似的模块。

——宋祥帅, 杨伏长, 谢江,等. Graphlet Degree Vector方法的优化与并行[J]. 计算机应用, 2020, 40(2):398-403.



Graphlet Degree Vector(GDV)是一个向量,表示每个轨道位置具有该节点的频率。它刻画的是每个节点接触的图元数量。

我们看下面这个例子:

我们有三种不同的轨道(orbit),轨道上有a、b、c、d四种节点位置(orbit position)。对于节点vvv来说,其在轨道位置a上有2个图元,在轨道位置b上有1个图元,在轨道位置c上没有图元,在轨道位置d上有2个图元。这里需要注意的是图元是诱导子图。

因此,Graphlet Degree Vector(GDV)的实际意义在于:

  • Graphlet degree vector counts #(graphlets) that a node touches at a particular orbit. 刻画了某个节点所接触的图元(某个特殊的轨道位置的图元)的数量。
  • Graphlet degree vector provides a measure of a node’s local network topology. 刻画了网络中节点的局部属性。

2.3 Finding Motifs and Graphlets

第一步,找到所有的子图:Counting Subgraphs——Exact subgraph enumeration (ESU)算法

ESU算法中有两个重要的集合:
VsubgraphV_{subgraph}Vsubgraph​——表示当前创建的子图(motif)。
VextensionV_{extension}Vextension​——表示可以用来扩展motif的节点集合。

ESU的基本思想是:从一个节点vvv出发,从VextensionV_{extension}Vextension​中添加满足下面两个条件的节点uuu——①节点uuu的编号要大于节点vvv的编号;②节点uuu可以是当前新增点www的邻居节点,但不能是已经在VsubgraphV_{subgraph}Vsubgraph​集中的节点的邻居节点。

ESU算法的伪代码如下:

ESU算法是通过递归实现的,算法的过程可以看成是深为kkk的递归树——ESU树。

第二步:对找到的子图进行统计:Count the graphs


将ESU树叶子节点上的子图分成k阶不同构的各种类别。这里涉及到怎么判断图之间是否同构,采用的是McKay的方法。

3. Structural Role in Networks

3.1 Role的定义

Roles are “functions” of nodes in a network

区别Role和Group/Communities:

  • role是指在网络中具有相似功能的节点:例如不同项目组中的研究员,这些研究员在网络中可能并没有连接(互不认识),但他们从事同样的一份工作。即role取决于相似性而不是相互连接性
  • group/community则是互相连接的个体(节点),核心在于连接性。

我们来给role一个更严谨的定义。属于相同role的节点具有结构等价性(structural equivalence)——Nodes uuu and vvv are structurally equivalent if they have the same relationships to all other nodes.

3.2 Discovering Structural Role in Networks

Why are Roles important?

方法:RoIX——Automatic discovery of nodes’ structural roles in networks [Henderson, et al. 2011b]
该方法的特点:

  • Unsupervised learning approach 无监督学习方法
  • No prior knowledge required 不需要任何先验知识
  • Assigns a mixed-membership of roles to each node 为每个节点分配角色的混合成员关系
  • Scales linearly in #(edges) 算法的复杂度随着网络中的边的数量线性增长


RoIX方法流程图:

cs224w 图神经网络 学习笔记(三)Motifs and Structural Roles in Networks相关推荐

  1. CS224W-图神经网络 笔记3.1:Motifs and Structural Roles in Networks - 网络的结构(Motifs and Graphlet)

    CS224W-图神经网络 笔记3.1:Motifs and Structural Roles in Networks - 网络的结构(Motifs and Graphlet) 本文总结之日CS224W ...

  2. CS224W-图神经网络 笔记3.2:Motifs and Structural Roles in Networks - 网络的结构(Structural Roles)

    CS224W-图神经网络 笔记3.2:Motifs and Structural Roles in Networks - 网络的结构(Structural Roles) 本文总结之日CS224W Wi ...

  3. 2、Motifs and Structural Roles in Networks

    Motifs and Structural Roles in Networks Network motifs Configuration Model Graphlets Finding Motifs ...

  4. 图神经网络学习笔记-01基础

    图神经网络-01基础-图与图学习 文章目录 图神经网络-01基础-图与图学习 图是什么 图的定义 图的基本表示方法 e.g 图的存储 图的类型和性质 图算法 1. 寻路和图搜索算法 1). 搜索算法 ...

  5. tensorflow(神经网络)学习笔记(三)之调参数实战(笔记)

    tensorboard # 指定目录 LOG_DIR = '.' run_label = 'run_vgg_tensorboard_fine_tune' run_dir = os.path.join( ...

  6. 2023.2.3,周五【图神经网络 学习记录17】二部图——BiNE算法:显式关系,隐式关系;新的随机游走方式 特点:随机游走次数 是跟节点中心性相关的,在随机游走的过程中 添加一个停止随机游走的概率

    声明:仅学习使用~ 前情提要: 2023.2.2,周四[图神经网络 学习记录16]异构图Graph Embedding算法--GATNE(异构图多属性 多边 类型算法),不建议普通PC跑-PyChar ...

  7. 【笔记整理】图神经网络学习

    [笔记整理]图神经网络学习 文章目录 [笔记整理]图神经网络学习 一.GNN简介 1.图结构 & 图基础算法 1)引言("非欧几何, 处理图数据的NN") 2)图基本概念 ...

  8. 神经网络学习笔记-02-循环神经网络

    神经网络学习笔记-02-循环神经网络 本文是根据WildML的Recurrent Neural Networks Tutorial写的学习笔记. 循环神经网络 循环神经网络适用于处理序列化信息,比如: ...

  9. 【论文解读】Graph Normalization (GN):为图神经网络学习一个有效的图归一化

    作者|平安产险视觉计算组 编辑丨极市平台 本文为极市开发者投稿,转载请获授权. 极市专栏 论文推荐:在图神经网络里面,应该如何选择更好的归一化技术?本文将介绍一种为图神经网络学习有效的图归一化的方式. ...

最新文章

  1. python 代码转成 c_如何将此C代码转换为Python?
  2. Windows 10截屏动画失效怎么恢复?
  3. 文件操作的常用命令 -- grep, cut, sed
  4. 解决Python memory error的问题--扩充虚拟内存
  5. 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - A. 网友年龄
  6. php上个月的最后一天,在PHP中查找上个月的最后一天
  7. gitpython git diff_Python全栈开发-git常用命令
  8. 暴力/图论 hihoCoder 1179 永恒游戏
  9. Git小结---So far.......
  10. 安装CentOS报错dracut-initqueue timeout
  11. 小百的java安装包——————百度网盘
  12. 【python】词云图制作
  13. php-fpm 开机启动,mac系统,php-fpm加入开机启动项
  14. vue项目结合 Element插件
  15. Python2视频教程
  16. iPhone/iPad/Touch苹果设备型号对应名称表
  17. 2015年4月9号和4月11号
  18. jsp新代码第45课
  19. android 监测鼠标滑轮,android2.3 监控鼠标滑动事件
  20. python 实现管理员登录(面向对象)

热门文章

  1. 深入理解Kafka必知必会(1)
  2. 论文学习随记:Unsupervised 3D Shape Completion through GAN Inversion
  3. 万用表 示波器 逻辑分析仪使用场合 CAN数据波形测量 以及使用方法
  4. html背景颜色中药制剂,中药制剂
  5. android 插入耳机 使用自身mic录音_讯飞智能耳机评测:职场人的最佳耳机外设,iPhone得力助手...
  6. 关于acm素数题解的思考
  7. 计算机考研专业课真题,计算机考研专业课 408 真题 20092013完美打印版.pdf
  8. 【Python游戏】Python各大游戏合集(3):飞翔的小鸟、俄罗斯方块、24点小游戏、吃豆豆小游、扫雷 | 附带源码
  9. 深度学习——(12)Knowledge distillation(Demo)
  10. nutz mysql druid_在Nutz中给Druid配置数据库加密