【论文笔记】struc2vec: Learning Node Representations from Structural Identity【3】

300 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情

前言

Hello!

非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~  

自我介绍 ଘ(੭ˊᵕˋ)੭

昵称:海轰

标签:程序猿|C++选手|学生

简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖...已保研。

学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!  

唯有努力💪  

知其然 知其所以然!

本文只记录感兴趣的部分

3. STRUC2VEC

3.4 Learning a language model

使用Skip-Gram模型,为了将其应用到网络中,采用人工生成的节点序列代替词句

这些节点序列由在多层图M上进行有偏随机游动产生

3.5 Complexity and optimizations

为了构造M,必须计算每一层每一节点对之间的结构距离,即fk(u,v)f_k(u,v)

其中

  • u,vVu,v \in V
  • 0kk0 \leq k \leq k^*

fk(u,v)f_k(u,v)的定义是

在这里插入图片描述

主要开销为计算g(,)g(*,*)g(,)g(*,*)使用DTW算法

传统DTW的复杂度是O(l2)O(l^2)

ll是指较长序列的长度

而快速DTW的复杂度可以达到O(l)O(l)


dmaxd_{max}为网络中的最大度数

dmaxkd_{max}^k表示第kk层中的最大度数

s(Rk(u))min(dmaxk,n)|s(R_k(u))| \leq min(d_{max}^k,n)

一层有(2n)(^n_2)条边,每一层计算g(*)的复杂度为O(n2min(dmax,n))O(n^2 min(d_{max},n))

计算整个图M的复杂度为O(kn3)O(k * n^3)


优化

  1. 减少度序列的长度(OPT1)
  2. 减少成对相似度计算的次数(OPT2)
  3. 减少层数(OPT3)

OPT1:减少度序列的长度

虽然第k层的度序列的长度以min(dmaxk,n)min(d^k_{max}, n)为界,但对于某些网络,即使k很小,这个长度也可能相当大(例如,对于k = 3,序列已经是O(n)O(n)

对有序度序列进行如下压缩

  • 对于序列中的每个度,计算该度出现的次数
  • 压缩有序度序列是一个具有度数和出现次数的元组

就是将序列压缩为:度+此度出现的系数

由于网络中的许多节点往往具有相同的度,在实践中压缩有序度序列可以比原来的小一个数量级

ABA',B'为压缩后的A,BA, B度系列

修改DTW算法

dist(a,b)=(max(a0,b0)min(a0,b0)1)max(a1,b1)dist(a,b) = (\frac{max(a_0, b_0)}{min(a_0, b_0)}-1)max(a1,b1)

其中a=(a0,a1)A,b=(b0,b1)Ba=(a_0, a_1)\in A', b=(b_0,b_1)\in B'

  • a0,b0a_0,b_0为度
  • a1,b1a_1,b_1为度出现的次数

OPT2:减少成对相似度计算的次数

对于第k层,限制每个节点的两两相似度计算的数量为Θ(log n)

JuJ_u表示在图M中与节点u最有可能为邻居的节点序列(不再需要与图中所有顶点进行连接||JuJ_u在每一层都是相同的)

为了确定JuJ_u,选取与节点u有最相似度的节点与u连接(图M中)

对网络中所有节点的有序度序列(节点u的度)进行二值搜索,取每个方向上连续的logn\log{n}个节点

所以计算JuJ_u复杂度为Θ(logn)Θ(\log n)

计算每一层所有节点的JJ复杂度为Θ(nlogn)Θ(n\log n)


OPT3:减少层数

图M的层数为kk^*,其值是原图的直径

然而,对于许多网络来说,其直径可以比平均距离大得多

此外,对于任意大的k值,评估两个节点之间结构相似性的重要性也会降低

特别地,当kk接近kk^*时,度序列的长度变得相对较短,因此fk(u,v)f_k (u, v)fk1(u,v)f_{k−1}(u, v)相差不大

因此,我们将M中的层数限制为一个混合常数k<kk ' < k^*,以捕获最重要的层来评估结构相似性

当k特别大时,图M中靠近最大层kk^*的那些层会非常相似 可以限制层k的大小 尽量使得每一层之间结构相似性差异大一点

4. EXPERIMENTAL EVALUATION

4.1 Barbell graph

在这里插入图片描述

4.2 Karate network

在这里插入图片描述 Figure 4:

  • (a) Mirrored Karate network. Identical colors correspond to mirrored nodes. 镜像空手道网络。相同的颜色对应镜像节点
  • (b) Roles identi€ed by RolX RolX确定的角色 在这里插入图片描述

4.3 Robustness to edge removal

我们说明了在噪声存在下,该框架在有效地表示结构一致性方面的潜力。特别是,我们从网络中随机移除边缘,直接改变其结构。我们采用精简边采样模型实例化两个结构相关的网络[15]。

边采样模型:对于图G中的每一条边,使用概率s进行抽取,得到图G1G_1

同样,再以概率s进行边抽取,得到图G2G_2

  • 当概率s=1s=1时,G1G_1G2G_2同构

  • 当概率s=0s=0时,G1G_1G2G_2失去了原图全部的结构信息

使用边采样策略应用到数据集Facebook (224 nodes, 3192 edges, max degree 99, min degree 1)

使用不同的概率s采样得到图G1G_1G2G_2

G2G_2中进行重新标记(避免与G1有相同的标记)

然后把G1G_1G2G_2的并集作为输入,输入到struc2vec框架

这个并集得到的图需要

  • 至少需要两个连接的组件(用于连接G1G_1G2G_2
  • G1G_1中的节点与G2G_2中的节点有连接

4.4 Classification

在这里插入图片描述

4.5 Scalability

为了说明它的可伸缩性,我们对Erd̈os-Ŕenyi随机图模型的实例应用了带有前两个优化的struc2vec(使用128维,每个节点10次行走,行走长度80,Skip-Gram窗口10)

计算从100到1,000,000个节点和平均度为10的图上10次独立运行的平均执行时间

使用带负采样[13]的Skip-Gram

在这里插入图片描述

图8显示了执行时间(以对数-对数尺度表示),表明struc2vec的尺度超线性

5. CONCLUSION

结构同一性是网络中基于网络结构来识别节点的一种对称概念

struc2vec

  • 一个新的和灵活的框架来学习表示,捕获节点的结构身份网络
  • 通过考虑由节点有序度序列决定的层次度量来评估节点对的结构相似性,并使用加权多层图来生成上下文

读后感

深读一篇文章还是非常难的

粗略看时其实思路不复杂

但是自己水平还是太低

仔细看时还是很多概念、算法不清楚

之后还是得学仔细一点 不能囫囵吞枣!

笔记仅用作个人记录

结语

文章仅作为个人学习笔记记录,记录从0到1的一个过程

希望对您有一点点帮助,如有错误欢迎小伙伴指正

在这里插入图片描述