13-传统的图生成模型
之前都是图的模型都是已知的:这节开始研究如何用模型生成这样的图:图生成模型问题的研究动机,以前都是假设图是已知的;
图机器学习(传统的图生成模型)
1. 前言
之前都是图的模型都是已知的:
这节开始研究如何用模型生成这样的图:
图生成模型问题的研究动机,以前都是假设图是已知的;但我们也会想通过graph generative model人工生成与真实图类似的synthetic graph,这可以让我们:
- 了解图的形成过程。
- 预测图的演化。
- 生成新的图实例。
- 异常检测:检测一个图是否异常。
2. Properties of Real-world Graphs
1. 常见衡量真实图数据的属性有:
- 度分布
- 聚类系数
- 连通分量
- 路径长度
2. 度分布(Degree distribution)
-
随机选择的节点拥有度为k的概率为:p(k)p(k)p(k)
-
有NkN_kNk个节点拥有度k则有P(k)=NkNP(k)=\frac{N_k}{N}P(k)=NNk
3. Clustering coefficient
聚类系数,用来衡量节点iii的邻居的相互连接程度,记节点iii的度为kik_iki,则聚集系数为:Ci=2eiki(Ki−1),Ci∈[0,1]C_i=\frac{2e_i}{k_i(K_i-1)},C_i\in[0,1]Ci=ki(Ki−1)2ei,Ci∈[0,1]
eie_iei是邻居之间的边,不含节点iii与邻居的边。整个图的聚集系数是求所有节点的聚集系数后进行平均:C=1N∑iNCiC=\frac{1}{N}\sum_i^NC_iC=N1∑iNCi
4. Connectivity
就是最大连通分量,找出下图的最大连通分量:
步骤:
- 从随机一个节点开始做BFS
- 标记访问过的节点
- 如果所有节点均能访问,则该图是连通图,否则重新找一个未访问的节点从步骤1开始,直到所有图中节点都被访问
5. Path Length
图的直径:图中任意节点对的最大的最短路径长度
对于连通无向图或强连通有向图而言,图的平均路径长度为:h‾=12Emax∑i,j≠ihij\overline h=\frac{1}{2E_{max}}\sum_{i,j\ne i}h_{ij}h=2Emax1∑i,j=ihij
hijh_{ij}hij是两个节点之间的距离;
Emax=n(n−1)2E_{max}=\frac{n(n-1)}{2}Emax=2n(n−1)是图中可包含的最大边数量
通常在计算过程中,我们会忽略掉路径长度为无穷的值,从而计算出正确的平均路径长度。
6. 举例:MSN Graph
MSN Messenger: 只包含 1 活动月份,基本信息如下:
2.45亿用户 登录、1.8亿用户参与对话、 超过300亿次对话、超过2550亿次交换消息。
原始度分布,平均度为14.4:
横纵坐标log后的度分布
聚集系数:0.114
连通分量,最大那个基本涵盖99%的用户。
路径长度,平均路径长度为6.6,有90%的节点可以在8跳内相互访问。
以上信息没有对比也无法知道这些指标是否偏高或者正常,下面引入三个生成随机图的方法,将生成图与MSN网络进行对比
3. 生成随机图一:Erdös-Renyi (ER【1】)
ER方法主要有两种形式:
GnpG_{np}Gnp:表示一个有n个节点的无向图,其中每个节点对(u,v)是否有边,是按i.i.d(独立同分布)的概率p进行设置的。
GnmG_{nm}Gnm:表示一个有n个节点的无向图,其中随机选择m个节点对形成边。
我们主要用第一种形式,它有两个变量来控制生成图的形式:
【1】在图论的数学理论部分中,ER模型(Erdős–Rényi model)可指代两个密切相关的随机图生成模型中的任意一个。这两个模型的名称来自于数学家Paul Erdős(保尔•厄多斯)和Alfréd Rényi(阿尔弗烈德•瑞利),他们在1959年首次提出了其中一个模型,而另一个模型则是Edgar Gilbert(埃德加•吉尔伯特)同时并且独立于Erdős和Rényi提出的。在Erdős和Rényi的模型中,节点集一定、连边数也一定的所有图是等可能的;在Gilbert的模型中,每个连边存在与否有着固定的概率,与其他连边无关。在概率方法中,这两种模型可用来证明满足各种性质的图的存在,也可为几乎所有图的性质提供严格的定义。
1. Degree distribution of GnpG_{np}Gnp
其实度分布是一个二项分布:
上面的n−1表示是除了当前节点外,从n−1个节点中选出k个节点,让这k个节点与当前节点以概率p的方式相连。
该二项分布的均值和方差为:
k‾=p(n−1)σ=p(1−p)(n−1) \overline k=p(n-1)\\ \sigma=p(1-p)(n-1) k=p(n−1)σ=p(1−p)(n−1)
看图基本就是高斯分布:
2. Clustering Coefficient of GnpG_{np}Gnp
由于图中的边是按i.i.d.(独立同分布)的概率p进行设置的。因此,对于节点i度为kik_iki而言,其邻居之间出现边的期望可以表示为:
E[ei]=pki(Ki−1)2E[e_i]=p\frac{k_i(K_i-1)}{2}E[ei]=p2ki(Ki−1)
从而根据原始的聚集系数公式得到期望聚集系数为:
E[ei]=p⋅ki(Ki−1)ki(Ki−1)=p=k‾n−1≈k‾n E[e_i]=\frac{p\cdot k_i(K_i-1)}{k_i(K_i-1)}=p=\frac{\overline k}{n-1}\approx \frac{\overline k}{n} E[ei]=ki(Ki−1)p⋅ki(Ki−1)=p=n−1k≈nk
上式中最后的等号有均值公式转化得来。
随机图的聚集系数比较小,如果用固定的度k或者p=k‾n−1p=\frac{\overline k}{n-1}p=n−1k来生成图,随着图节点数n越大,聚集系数越小。
3. GnpG_{np}Gnp的连通分量
保证图中节点数量不变,将生成边的概率从0变到1,图结构则有下面的变化:
当p = 0 ,表示不会有边生成,空图
当p = 1,表示每个节点对100%生成边,完全图
k‾=p(n−1)\overline k=p(n-1)k=p(n−1),因此当p=1n−1p=\frac{1}{n-1}p=n−11时,k‾=1\overline k=1k=1,意味每个节点都会有一条边相连,意味着开始出现较大连通分量,如果边小于节点数量,也就是k‾<1\overline k<1k<1意味着有节点是没有边相连的。基于这个理论,我们可以得到giant component:出现的临界点就是节点平均度为1,写成数学表达就是:
p=k‾n−1ork‾=2En p=\frac{\overline k}{n-1}or\quad \overline k=\frac{2E}{n} p=n−1kork=n2E
当节点平均度小于1时:k = 1 − ε ,所有连通分量大小上限是:Ω ( log n )
当节点平均度大于1时:k = 1 + ε,有一个连通分量大小上限是:Ω ( n ) ,其他连通分量大小上限是:Ω ( log n )
此时每个节点的期望边数至少为1,在可视化后就是:
这个图也对应了上一张图的理论推断,可以看到,平均度大于1时,最大连通量中的节点急剧增加,当平均度为2的时候,80%的节点都在最大连通分量中了。
4. Expansion(扩展系数)
这里补充一个图G(V,E)的扩展系数α:
中间黑线就是# edges leaving S ,扩展系数用来衡量一个图的鲁棒性,要断开L个节点,需要去掉$≥ α ⋅ l $条边。
上面的几个图例中,真实图一般介于第一和第二个之间。社区内部鲁棒性强,社区间的鲁棒性差。
这个新的定义和下面要将的路径长度有关。
定理:对于一个包含n个节点的图,若其扩展系数为α则所有节点对的路径长度为:O(lognα)O(\frac{\log n}{\alpha})O(αlogn)
也就是说,当图规模变大,那么log n会变大,但同时α 也会变大,因此路径长度相对而言不一定会变大。
对于一个随机图GnpG_{np}Gnp,存在以下关系:logn>np>c(常数)\log n>np>c(常数)logn>np>c(常数)
其直径为:diam(Gnp=O(lognlog(np)))diam(G_{np}=O(\frac{\log n}{\log (np)}))diam(Gnp=O(log(np)logn))
从上面的式子可以知道,随机图GnpG_{np}Gnp 的直径是节点数量的对数,因此随机图GnpG_{np}Gnp 有比较好的扩展性,可以在对数级步数内BFS所有节点
5. Shortest Path of GnpG_{np}Gnp
有了上面扩展系数的基础,我们可以知道,GnpG_{np}Gnp随机图可以在拥有很大规模的情况下,仍然保持很短的最短路径(图直径很小)。
当我们将节点的平均度设置不变:k‾=np=c(常数)\overline k=np=c(常数)k=np=c(常数)那么GnpG_{np}Gnp的直接就变成:diam(Gnp=O())diam(G_{np}=O())diam(Gnp=O())
实验可以证明:
6. MSN VS GnpG_{np}Gnp
4. 生成随机图二:The Small-World Model
通过上面ER的方法我们看到,GnpG_{np}Gnp随机图两种平均路径长度较长(o(logn)≈8.2o(\log n)\approx8.2o(logn)≈8.2),聚集系数低。我们希望能找到一种高聚集系数且平均路径较短的随机图,使其更接近真实图:
因为在相同平均节点度的情况下,真实图比起随机图而言,平均路径较短(其实差不多),聚集系数更大
一般来说,平均路径和聚集系数两个不可同时得到,因此要想在二者之间做权衡利弊,就是Small-world graph的思想:
1. 创建步骤
- Start with a low-dimensional regular lattice(这里用环形代替lattice)
此时的图拥有高聚集系数
- Rewire: Introduce randomness (“shortcuts”)
重新连接节点对,对每个节点对,以概率p将其终点重新接到另外的随机节点上。
2.结果及分析
可以看到随着随机rewire的概率p pp趋近1,中间状态就是我们的目标网络结构。把聚集系数画出来:
可以看到当随机rewire概率趋向于1的时候,聚集系数才会变很小,但是很小随机rewire概率,就可以获得很多shortcut,使得平均路径变短。(注意看上图中的横坐标不是等值的。)
小结:只需要很少的rewire操作,就可以让随机图获得较高的聚集系数,使其比较接近真实图,但是其度分布却不正确(这里应该补个图才有说服力)。
5. 生成随机图三:Kronecker Graph Model
第三种生成随机图的方式,是用递归的方式来生成图结构。
具体方法是先根据给定的小矩阵K1K_1K1,通过克罗内克积【2】得到K2=K1⊗K1K_2=K_1\otimes K_1K2=K1⊗K1
图的克罗内积是对两个图的邻接矩阵求克罗内积,以其值作为新图的邻接矩阵。
当然可以重复以上步骤:
1. 生成步骤
先定义初始化矩阵,初始化矩阵可以包含多个矩阵,这些矩阵大小可以不一样。
例如:
上面有两组不同的图,图的邻接矩阵,3次克罗内克积结果:K3K_3K3。
具体创建Stochastic Kronecker graphs步骤如下:
- 创建N1×N1N_1\times N_1N1×N1的概率矩阵Θ1\Theta_1Θ1
- 计KthK^{th}Kth的克罗内克积Θk\Theta_kΘk
- 对于最后的结果Θk\Theta_kΘk中每个元素puvp_{uv}puv代表KkK_kKk有puvp_{uv}puv的概率生成边(u,v)
2. 快速版生成步骤
上面的步骤中,如果得到了生成有向边的概率矩阵,要对矩阵中的n2n^2n2个元素依次生成边,相当于计算了n2n^2n2次,可以用另外一种快速生成方式,时间复杂度为边的线性复杂度O(E)O(E)O(E)。
掉边法
上图中间是正常计算结果,右边是把结果看成四个小块,相当于原来的Θ\ThetaΘ
里面的每个元素可以继续分,直到不能分解为止
具体的描述如下:
快速克罗内克生成器算法,针对生成有向图。在有n=2mn=2^mn=2m 个节点的图G中插入一条边,步骤如下:
- 创建归一化矩阵:
- 进行循环:
1.从x=0,y=0开始
2.概率LuvL_{uv}Luv选择对应的象限(u,v)
3.将象限进行分解,知道对应图G中的第i个元素:
- 为图G添加边
3. 小结
上面步骤中的m就是克罗内克积的次数,就是把矩阵分形了多少次,最终结果可以根据初始化矩阵和m直接用公式算出来,如果一个图有E条边,直接算E次即可,所以全图生成时间复杂度为O(E)O ( E )O(E)。这种生成方式可能会在两个节点生成多条边,因为在步骤2中可能选择到相同结果。
更多推荐
所有评论(0)