02 - Properties of Networks, Random Graph Models

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

1 图(网络)的属性

如何来测量一个网络的属性?这里提出了第一个问题,同时也给出了答案,即四种指标:

  • 度分布 - p(k)
  • 路径长度 - h
  • 簇系数 - C
  • 连通分量 - s

下面对这四种指标方法做一个详细说明。

1.1 度分布

度分布 p(k)是指随机从一个图中选一个结点,其拥有度为k的概率分布。用来刻画一个图的度分布情况,在社交网络研究中有着重要意义,参考 这篇博文 。对于有向图分别有出度分布和入度分布
在这里插入图片描述

1.2 路径

路径 是指从图中某一个点到另外一个点的游走序列。一条路径可以循环遍历某一条边多次,例如对下图来说ACBDCDEG就是一条路径。
在这里插入图片描述

路径中还有一些基本概念需要介绍,包括距离、直径、平均路径长度等。

  • 距离 。也叫 最短路径 ,顾名思义是指两个结点之间所有路径中最短的那条叫做这两个结点之间的距离(如果两个结点不连通,那么距离为∞)。对于有向图,两个结点之间的距离(最短路径)包括两个方向,即从 i 到 j 和从 j 到 i。且往往这两个距离不相等。
  • 直径 。即一个图中任意两个结点的距离(最短路径)中最长的那个。例如上图中A-F或A到G是直径,长度为4。
  • 平均路径长度 。这是针对连通图或强连通有向图来说的。具体计算方法如下图,Emax我们介绍完全图的时候提到过,它是指完全图的边数。这里分母乘2的原因是,分子在计算距离的时候每个结点间计算了两次。需要注意的是我们在计算平均路径长度时会忽略那些∞的边(例如上图A->X,否则那计算出来h没有意义)。
    在这里插入图片描述

1.3 簇系数

  • 簇系数 是针对无向图来说。他表明了某个结点的邻居之间的连通情况,常用作社交网络测度中,例如评估某个人的朋友们之间是否也互为朋友时,可以用簇系数作为评估指标。计算公式如下图,分子为e_i,即结点 i 的邻居之间连接的边的数量;分母为k_i * (k_i - 1)/2,即 k_i 个结点之间的最大边数。
  • 平均簇系数 加和除以结点数即可。
    在这里插入图片描述

1.4 连通性

  • 这里主要介绍如何找一个 最大连通分量
  1. 随机从某个结点开始广度优先搜索;
  2. 标记已经访问过的结点;
  3. 如果所有结点都被访问了,那么这个图(连通分量)就是连通的;
  4. 否则找到任一个未访问的结点重复1-3。

2 在一个真实的图测量上述属性——MSN Message

MSN Message是Jeff教授曾经参与过的一个项目,类似于社交网络。他以这个项目的图作为例子来说明上述四种属性在实际应用中的作用。

  • 度分布 。最开始用是用一个均匀分布的坐标系来表示度分布,发现很多很多点聚集在度为0附近,效果很不好。然后用一个log坐标系(主要思想就是把较小数的尺度拉大)来表示同样的数据时,就可以清晰的看到大多数结点的度都集中在0-10之间,度超过600的点屈指可数。
    在这里插入图片描述
  • 簇系数 。下图表示了对应度的簇系数,这里需要说明的是可能对于一个度k,有Nk个度为k的结点,那么对应度k的簇系数Ck就是这Nk个结点的平均簇系数,用如下公式计算。
    在这里插入图片描述
    可以看到MSN整张图的最终的平均簇系数为0.1140,表示的含义是平均每个结点的邻居之间约有1/10互相认识(有边相连)。
    在这里插入图片描述
  • 连通性 。通过上述计算连通分量的算法,可以计算得到一个图的所有连通分量及其大小(这里的大小我认为指的是结点个数)如下图。可以看到只有一个包含了99%结点数的最大连通分量,而有许多只有不到10个结点的连通分量(类似于孤立点,孤岛一样)。
    在这里插入图片描述
  • 路径 。这里测量了最大连通分量中,任意两个点之间的距离(最短路径),并统计了他们的数量。发现绝大多数距离都集中在5-10hops之间,并且通过计算过程发现90%的结点可以在8hops之内到达。
    在这里插入图片描述
    然后作者又举了另外一个例子,PPI network。其四个属性和MSN其实差不多,那这就说明很多看似完全不着边的图应用,其实他们具有相类似的本质特征。那么此时我们就自然而然想到是不是可以构建一个模型来表示更一般的图结构,也就是从特殊到一般的思想。因此接着作者提出了一个最简单的模型—— 随机图模型

3 随机图模型

首先什么是随机图模型(Random Graph Model)。RGM是一个有n个结点的无向图,图中的每条边出现的概率都是p,且是独立同分布的。
在这里插入图片描述
这里如何来理解呢?我认为可以看作是多次伯努利试验来连接任意两个结点之间的边,每次实验都是独立同分布的,按照概率p来决定是否连接某一条边。这样经过多次实验(准确是n*(n-1)/2次),那么就会生成一个图,这个图就是随机图。

注意这样生成的图是不唯一的,因为以概率p选边,同一条边在多次实验中可能被选,也可能没有被选上。
在这里插入图片描述
下面就是来计算一下RGM的四种属性,看他们与MSN和PII网络的属性是否相似。

  1. 度分布与真实世界不同。真实世界的图的度主要集中在较小的一块,成冲击状;而G_np的度分布类似于正态分布,集中于k均值;
  2. 在现实世界中的最大连通分量通常不是通过相变产生的;
  3. 没有局部结构——也就是说大多数结点周围的邻居结点之间的联系很少,即簇系数很低。
    在这里插入图片描述
    虽然G_np效果不好,但其还是很有用的(具体体现在什么地方后面会讲到)。简单来说,我们可以根据实际网络的特性来修改随机图来适应实际网络的需要。

4 小世界图模型

由第三节的随机图模型的结论可以得出,其簇系数非常低,但是同时平均路径长度很小。通过对比真实世界的图结构会发现,其簇系数较高,且平均路径长度较低。这表明真实世界的图具有局部结构,但同时任意两个结点之间的联系(距离)都不会太远。这里举一个简单的例子来解释上述两个属性。

假如你是一个博学多才、求学海外的青年才俊,你在国内有很多从小玩到大的伙伴,并且大家互相都认识(一个局部结构,簇系数较高);出国之后,你又认识了许多国外友人,并且你们在一个大学,彼此也都认识(另一个局部结构)。显然你中国的朋友和国外的友人都互不认识,但是这里你就很关键了。如果没有你那么他们八辈子都不会有关系,但是有了你,他们可以通过你很快的认识彼此,相当于他们之间只隔了一个你(具有较短的路径)。这就是我们真实世界的图结构!

那么我们就自然而然地提出这样一个问题:我们是否可以构建一个图模型——具有较高簇系数的同时其平均路径长度较低呢?这样岂不是能够很好地模拟真实世界的图?

按照一般的经验,簇系数和平均路径长度这两个属性是同增长的。即如果簇系数很大,那么也会造成平均路径长度很长;相反如果簇系数很低,那么平均路径长度也很低。如下图所示。
在这里插入图片描述
然而通过上面随机图模型的研究,我们可以得到这样两条“经验”——(1)聚合会导致边的局部性;(2)随机会导致较短路径。因此我们可以这样得到一个”小世界图模型“。

  1. 从一个低维的环状规则图开始,如下图所示,其具有较高的簇系数(平均路径长度也很高)。
    在这里插入图片描述
  2. 然后我们会在上述的图中进行 重新连边 。即对于每一条边,我们固定其中一个端点,以概率p决定将这条边的另一个端点移动到剩余随机的某个结点(重新连的这条边类似于你出国了),这样我们就可以在不降低簇系数的基础上,缩短了结点之间的路径长度。
    在这里插入图片描述
    因此这样我们就能将两种图的优势相结合。
    在这里插入图片描述
    通过改变p的值(即随机程度),我们发现当仅仅引入一点点随机性后(即较小的p)就可以使得平均路径长度明显降低,但簇系数却并没有怎么减小。这完全是我们所预期的!
    在这里插入图片描述

5 Kronecker图模型

这是本次课程的最后一个图模型,提出的主要动机是如何生成真实世界的较大规模的图结构。

首先要介绍一个新概念,叫做 自相似性 。什么意思呢?回想我们学过化学里面的物质组成,比如晶体结构,都是由一些最基本的元素或结构重复迭代而成的。也就是说很多物体和其本身的一部分是非常相似的。那么对于图也是一样,一些较大规模的图和其部分结构是类似的,或者可以说其实较大规模的图是由很多具有相似结构的小图迭代而成的。例如下图所示。
在这里插入图片描述
来看一个Kronecker图生成的例子,他是通过递归的调用相似的子图来生成更大的图。
在这里插入图片描述

如何来生成这样的图?具体方法是 Kronecker积 。例如NxM的矩阵A与KxL的矩阵B求Kronecker积,具体方法就是将矩阵B与A的每个元素对应相乘(相乘的结果还是一个矩阵),最终得到的N K x M L维矩阵。
在这里插入图片描述
而Kronecker图则是利用一个初始的矩阵K1,进行不断的Kronecker积操作,最终得到一张图。乘积的过程可以用递归的方式实现。
在这里插入图片描述
这里来举两个简单的例子来说明不同的初始矩阵K1会对最终生成的图产生怎样的影响。
在这里插入图片描述
我们发现上述初始矩阵K1的每个元素都是0/1,而生成的大网络每个元素也是0/1,造成了在某些局部多个重复的值,引起“阶梯效应”,参考
这篇论文 。并且这样的图也不能很好的表征真实世界中的图。解决方案是引入 边的概率分布 ,即边的随机性。初始矩阵K1的每个元素表示了某条边出现在K1图中的概率,那么经过Kronecker积后的Kn矩阵中的每个元素就表示了Kn图中的某条边出现的概率。
在这里插入图片描述
但是这样的计算方式达到O(n^2),因此需要找一种更快的算法来进行计算。
在这里插入图片描述
最终将Kronecker图和真实的图作比较,发现Kronecker图可以很好地表示真实的图的一些性质,即两者很相似。
在这里插入图片描述
这节课的内容有点多,需要反复看来消化~

本文是我在学习斯坦福大学2019年秋季课程 “图机器学习”(图神经网络) 时所记录的笔记。课程资源如下列出,其中slides都可在官网找到;另斯坦福CS224w课程的学生记录了部分笔记在github上开源,可以作为学习参考。官网:http://snap.stanford.edu/class/cs224w-2019/课程视频:http://snap.stanford.edu/class/cs224w-videos-2019/课程笔记(英文):https://snap-stanford.github.i
转自http://blog.csdn.net/pennyliang/article/details/6838956 Clustering coefficient的定义有两种;全局的和局部的。 全局的 算法 基于triplet。triplet分为开放的triplet(open triplet)和封闭的triplet(closed triplet)两种(A triplet is three nodes...
本人毕业设计是关于复杂网络的,之前完全没听说过的概念,于是就在网上找了一些论文来看,顺便做下 笔记 ,这篇文章主要讲了复杂网络的一些基础概述。 这里的网络不是(不仅仅是)计算机网络这门课中的网络,它表示的是任何一个可以用节点和节点之间连线来代表的一个系统,如:神经系统可以看做是大量神经细胞通过神经纤维相互连接形成的网络。 拓扑结构就是们把网络不依赖于节点的具体位置 和边的具体形态就能
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、为什么要选择 进行 机器学习 ?(起源)1.现代 深度学习 工具的不足 神经网络 定义1.引入库2.读入数据总结 提示:这里可以添加本文要记录的大概内容: 本章主要介绍了 神经网络 的起源、定义、应用与总结。 课程 建议先修知识点: 1. 机器学习 、2. 算法 论、3.概率论与数理统计 一、为什么要选择 进行 机器学习 ?(起源) 是用于描述并分析有关联/互动的实体的一种普适语言。它不将实体视为一系列孤立的点,而认为其互相之间.
本节课主要讨论子 分解在 分析中的重要作用。 可以看作是由许多子 (subgraph)构建而成的。这些子 能够刻画和区分不同的 。例如下面这个电路 可以分解为许多子 。 有一些固定的子 结构,这些子 反应了某种特殊的结构特征,因此我们需要了解和熟悉它们。这里列举了13种包含3个结点的有向子 (非同构的)。 我们用一个“重要性”系数来表示某个子 在一个 中出现的频率程度(后面会有严格定义)。如果是正数表明出现频. CS224W 课程 笔记 。 这些注释使用Markdown编写,并使用Jekyll编译为HTML。 请直接将您的更改添加到Markdown源代码中。 此仓库未配置任何额外的Jekyll插件,因此可以直接由GitHub Pages进行编译。 因此,对Markdown文件的任何更改都将自动反映在实时网站中。 要对此仓库进行任何更改,请先分叉此仓库。 进行所需的更改,然后将其推送到此存储库的自己的分叉副本中。 最后,返回GitHub网站以创建请求请求,以将您的更改带入snap-stanford/ cs224w -notes回购中。 如果要在将更改推送到master分支之前在本地测试更改,则可以在自己的计算机上本地运行Jekyll。 为了安装Jekyll,您可以按照其网站( )上发布的说明进行操作。 然后,从此仓库的克隆版本的根目录执行以下操作: 对Markdown 斯坦福 大学计算机学院的副教授,也是graph2vec和GraphSAGE的作者之一. 在Google Scholar上,Jure有近45000篇论文被引用,H指数为84。这是什么意思? 在美国,研究型大学必须获得永久教授职位。H指数一般为10到12,晋升教授的人数约为18人。成为美国科学院院士一般在45岁以上,中位数为57。Jure 84的H指数意...
在实际的聚类应用中,通常使用k-均值和k-中心化 算法 来进行聚类分析,这两种 算法 都需要输入簇数,为了保证聚类的质量,应该首先确定最佳的簇数,并使用轮廓系数来评估聚类的结果。 一,k-均值法确定最佳的簇数 通常情况下,使用肘方法(elbow)以确定聚类的最佳的簇数,肘方法之所以是有效的,是基于以下观察:增加簇数有助于降低每个簇的簇内方差之和,给定k>0,计算簇内方差和var(k),...
病理 像分类常用的深度卷积 神经网络 包括: 1. VGGNet:由 Oxford 的研究人员提出,是一个经典的深度卷积 神经网络 ,在 ImageNet 大规模视觉识别竞赛中获得了 像分类的第一名。 2. ResNet:由微软亚洲研究院的研究人员提出,是一个非常深的卷积 神经网络 ,通过引入残差模块(Residual Block)有效解决了深度 神经网络 中的梯度消失问题。 3. Inception:由 Google 的研究人员提出,是一个非常复杂的卷积 神经网络 ,通过并行多个分支提取特征,并使用 1x1 卷积层进行特征融合,在 像分类、目标检测等领域均取得了不错的效果。 4. DenseNet:由 斯坦福 大学的研究人员提出,与 ResNet 类似,也是一个非常深的卷积 神经网络 ,通过使用密集连接(Dense Connection)有效提高了网络的特征重用能力,进而提升了网络的性能。 以上这些深度卷积 神经网络 在病理 像分类任务中均有应用,并取得了不错的效果。
【论文】Closing the Sim-to-Real Loop: Adapting Simulation Randomization with Real World Experience 【论文】Closing the Sim-to-Real Loop: Adapting Simulation Randomization with Real World Experience TieOne: 博主,请问这篇文章对哪些物理参数进行随机化的呢 【剑指Offer刷题】——复杂链表的复制(35) 不吃西红柿丶: 写的挺不错的,要持续稳定输出哦~