十三、struc2vec

  1. 几乎所有网络中的顶点都具有一个或者多个角色,这些角色很大程度上决定了顶点在网络中的功能。如:社交网络中的成员具有社交角色或者社会地位,而蛋白质网络中的蛋白质具有特定的功能。直觉上看,这些网络中的不同顶点可能具有相同的角色从而发挥相似的作用。如:公司社交网络中的实习生intern 角色,蛋白质网络中的催化剂catalyst 角色。因此,可以根据顶点在网络中的角色来将顶点划分为等效的类别equivalent classe

    通常识别顶点的角色需要利用顶点的特征或者边的特征,但是仅仅依靠网络结构来识别顶点角色,这更有挑战性。此时,顶点的角色仅仅取决于顶点之间的链接。

    确定顶点结构角色的常用方法是基于距离的方法或者基于递归的方法:

    • 基于距离的方法:根据每个顶点的邻域信息(如邻域大小,邻域形状)来计算每对顶点之间的距离(邻域越相似则距离越小),然后通过聚类、规则匹配等方式来确定顶点的等效类别。
    • 基于递归的方法:构造基于邻域的递归,然后不停迭代直到收敛,并采用最终迭代的结果来确定顶点的等效类别。如 Weisfeiler-Lehman 算法。

    最近一些网络顶点的embedding 学习方法非常成功,这些方法认为相邻的顶点具有相似的 representation 。因此具有结构相似、但是相距很远的两个顶点将不会有相似的 embedding 。如下图所示,顶点 十三、struc2vec - 图1 和顶点 十三、struc2vec - 图2 扮演相似的角色(具有相似的局部结构),但是它们在网络上相距甚远。由于它们的邻域不相交,因此一些最新的embedding 方法无法捕获它们的结构相似性。下图中,顶点 十三、struc2vec - 图3 的度为 5 、连接到 3 个三角形并通过2 个顶点连接到剩余网络;顶点 十三、struc2vec - 图4 的度为 4、连接到2 个三角形并通过2 个顶点连接到剩余网络。

    十三、struc2vec - 图5

    为什么这些embedding 方法(如 DeepWalk/node2vec 在分类任务中大获成功,但是在结构等效structural equivalence 任务中难以奏效?原因是大多数真实网络结构中,很多顶点的特征都表现出很强的同质性。如:两个具有相同政治偏好的博客更有可能被连接,而不是随机性的连接。网络中相邻的顶点更可能具有相同的特征,因此在 embedding 空间中趋于靠近;网络中相距较远的顶点可能具有迥异的特征,因此在embedding 空间中趋于分离。这

    种性质和顶点的局部结构无关,因此这些 embedding 方法无法捕获结构等效性。因此如果任务更依赖于结构等效性而不是同质性,则这些 embedding 方法容易失败。

    论文 《struc2vec: Learning Node Representations from Structural Identity》 提出了一个学习顶点结构等效性的无监督学习框架 struc2vec,它可以根据顶点的局部网络结构来识别structural identity 结构角色。

    struc2vec 的关键思想是:

    • 不依赖于顶点特征、边的特征、顶点的位置,仅仅依赖于顶点的局部结构来衡量顶点之间的结构相似性。我们也不需要网络是连通的,我们可以识别不同连通分量connected componet 中结构相似的顶点。
    • 对结构相似性进行分层 hierarchy ,随着层次的提高结构相似越严格。在层次的底部,degree 相近的顶点之间是结构相似的;在层次的顶部,需要整个网络相似的顶点之间才是结构相似的。
    • 采用加权随机遍历一个 multi-layer 图来生成每个顶点的随机上下文。这个 multi-layer 是根据原始网络生成的,multi-layer 图中的边是根据原始图中顶点结构相似性得到。因此有相似上下文的两个顶点很可能具有相似的结构。
  2. DeepWalk 使用随机游走从网络中生成顶点序列,并基于 SkipGram 学习顶点 embedding 。网络中接近的顶点将具有相似的上下文,因此具有相似的 embedding

    node2vec 通过一个有偏的二阶随机游走模型来扩展了这个想法,从而在生成顶点上下文时提供了更大的灵活性。特别的,可以通过设计边的权重从而尝试捕获顶点的同质性和结构等效性。

    但是 DeepWalknode2vec 等方法的一个基本缺陷是:结构上相似的顶点如何其距离大于 SkipGram 窗口的大小,则它们永远不会共享相同的上下文。

    RolX 是一种仅利用网络结构来明确标识顶点角色的方法。这种无监督方法基于枚举顶点的各种结构特征,然后找到联合特征空间的基向量basis vector,并为每个顶点赋予一个角色分布,这允许顶点具有多个混合的角色。在没有明确考虑顶点结构相似性的情况下,RolX 可能会遗漏结构相似的顶点pair 对。

13.1 模型

  1. 考虑捕获网络中结构相似性的顶点representation 学习方法,它应该具有预期的特点:

    • 顶点之间结构越相似,则顶点的embedding 距离越近。因此如果两个顶点的局部网络结构相同,则它们应该具有相同的 embedding
    • embedding 的学习不依赖于任何顶点的特征、边的特征、顶点的 label、顶点的位置,仅仅依赖于顶点的局部网络结构。

    考虑这两个特点,我们提出了 struc2vec框架,该框架由四个部分组成:

    • 结构相似性度量:确定图中每对顶点之间不同大小邻域的结构相似性。这在结构相似性度量中引入了层次 hierarchy ,从而在不同层次水平上衡量结构相似性。
    • 加权 multi-layer 图:该图的每一层都包含原始图的所有顶点,每一层对应于hierarchy 结构相似性中的某个层级。层内顶点之间边的权重与结构相似度成反比。
    • 上下文生成:基于 multi-layer 图上的有偏随机游走来生成顶点序列,然后为每个顶点生成上下文。这些随机游走序列更可能包含结构相似的顶点。
    • 学习embedding:采用一种技术(如 SkipGram )从顶点序列中学到顶点的 embedding

    struc2vec 非常灵活,它不要求任何特定的结构相似性度量或者表示学习方法。

13.1.1 结构相似性

  1. struc2vec 需要确定两个顶点之间的结构相似性,其中不依赖于任何顶点的特征或者边的特征。

    另外,这种相似性应该是层次的 hierarchical :随着邻域越来越大,捕获的结构相似性越来越精确。直观地,具有相同degree 的两个顶点在结构上相似。但是如果它们的邻居也具有相同的 degree,则它们在结构上会更相似。随着邻居的邻居也参与其中,则相似性会得到进一步提高,即越来越精确。

  2. 十三、struc2vec - 图6 为一个无向无权图,设 十三、struc2vec - 图7 为图的直径(顶点对之间距离的最大值)。定义 十三、struc2vec - 图8 为图中与顶点 十三、struc2vec - 图9 距离为 十三、struc2vec - 图10 的顶点的集合,十三、struc2vec - 图11 。根据该定义,十三、struc2vec - 图12 表示 十三、struc2vec - 图13 的直接邻居顶点的集合,十三、struc2vec - 图14 表示和 十三、struc2vec - 图15 距离为 十三、struc2vec - 图16 的环。

    定义 十三、struc2vec - 图17 为顶点集合 十三、struc2vec - 图18 的有序degree 序列 ordered degree sequence

    通过比较顶点 十三、struc2vec - 图19十三、struc2vec - 图20 的距离为 十三、struc2vec - 图21 的环的有序degree 序列,我们可以得到顶点 十三、struc2vec - 图22十三、struc2vec - 图23 的相似性。根据不同的距离 十三、struc2vec - 图24 ,我们可以得到一个 hierarchy 层次相似性。

  3. 定义 十三、struc2vec - 图25 为顶点 十三、struc2vec - 图26十三、struc2vec - 图27十三、struc2vec - 图28 阶结构距离,我们递归定义为:

    十三、struc2vec - 图29

    其中 十三、struc2vec - 图30 衡量了两个有序 degree 序列 十三、struc2vec - 图31 的距离, 十三、struc2vec - 图32

    其物理意义为:顶点 十三、struc2vec - 图33十三、struc2vec - 图34 阶距离等于它们的 十三、struc2vec - 图35 阶距离加上它们的第 十三、struc2vec - 图36 阶环之间的距离。

    根据定义有:

    • 十三、struc2vec - 图37 是随着 十三、struc2vec - 图38 递增,并且只有当 十三、struc2vec - 图39 各自都存在距离为 十三、struc2vec - 图40 的邻域顶点时才有定义。
    • 十三、struc2vec - 图41 将比较顶点 十三、struc2vec - 图42十三、struc2vec - 图43 各自距离为 十三、struc2vec - 图44 的环的有序 degree 序列。
    • 如果 十三、struc2vec - 图45十三、struc2vec - 图46十三、struc2vec - 图47 阶邻域是 isomorphic 同构 的,则有 十三、struc2vec - 图48
  4. 考虑到两个有序 degree 序列 十三、struc2vec - 图49十三、struc2vec - 图50 可能具有不同的长度,且它们的元素是位于 十三、struc2vec - 图51 之间的任意整数,则如何选择合适的距离函数是一个问题。

    论文采用 Dynamic Time Warping:DTW 算法来衡量两个有序 degree 序列的相似性,该算法可以处理不同长度的序列。

    DTW 算法寻找两个序列 十三、struc2vec - 图52十三、struc2vec - 图53 之间的最佳对齐 alignment,其目标是使得对齐元素之间的距离之和最小。

    假设 十三、struc2vec - 图54 ,则 DTW 算法需要寻找一条从 十三、struc2vec - 图55 出发、到达 十三、struc2vec - 图56 的最短路径。假设路径长度为 十三、struc2vec - 图57 ,第 十三、struc2vec - 图58 个顶点为 十三、struc2vec - 图59 ,则路径需要满足条件:

    • 边界条件:十三、struc2vec - 图60
    • 连续性性:对于下一个顶点 十三、struc2vec - 图61 ,它必须满足 十三、struc2vec - 图62 。即数据对齐时不会出现遗漏。
    • 单调性:对于下一个顶点 十三、struc2vec - 图63,它必须满足 十三、struc2vec - 图64 。即数据对齐时都是按顺序依次进行的。
    • 路径最短:十三、struc2vec - 图65 ,其中 十三、struc2vec - 图66 为单次对齐的距离。

    如下图所示,根据边界条件,该路径需要从左下角移动到右上角;根据单调性和连续性,每一步只能选择右方、上方、右上方三个方向移动一个单位。该问题可以通过动态规划来求解。

    十三、struc2vec - 图67

  5. 考虑到序列 十三、struc2vec - 图68十三、struc2vec - 图69 中的元素为顶点的degree,我们使用以下单次对齐距离:

    十三、struc2vec - 图70

    • 十三、struc2vec - 图71 时,十三、struc2vec - 图72 。因此如果两个degree 序列相同,则每个对齐距离都是零,则序列的距离为零。

    • 如果使用传统的欧式距离,如 十三、struc2vec - 图73 ,则degree 十三、struc2vec - 图74 的距离和 十三、struc2vec - 图75 距离相等。

      实际上 degree 1 vs degree 2 ,相比于 degree 101 vs degree 102 ,前者的差距要大得多。而使用我们定义的 dist 函数有:

      十三、struc2vec - 图76

      这正好是衡量顶点 degree 差异的理想特点。

  6. 虽然论文采用 DTW 来评估两个有序 degree 序列之间的相关性,但是struc2vec 也支持使用任何距离函数。

13.1.2 加权 multi-layer 图

  1. 论文构建了一个 multi-layer 加权图来编码顶点之间的结构相似性。定义 十三、struc2vec - 图77 为一个multi-layer 图,其中 layer 十三、struc2vec - 图78十三、struc2vec - 图79)根据顶点的 十三、struc2vec - 图80 阶邻域来定义。

    layer 十三、struc2vec - 图81 是一个包含顶点集合 十三、struc2vec - 图82 的带权无向完全图,即包含 十三、struc2vec - 图83 条边。每条边的权重由顶点之间的 十三、struc2vec - 图84 阶结构相似性来决定:

    十三、struc2vec - 图85

    • 仅当 十三、struc2vec - 图86 有定义时,layer 十三、struc2vec - 图87 中顶点 十三、struc2vec - 图88 之间的边才有定义。
    • layer 十三、struc2vec - 图89 中边的权重与结构距离(即 十三、struc2vec - 图90 阶相似性)成反比。
    • layer 十三、struc2vec - 图91 中边的权重小于等于1 ,当且仅当 十三、struc2vec - 图92 时权重等于 1
    • 考虑到 十三、struc2vec - 图93 时随着 十三、struc2vec - 图94 的增加单调增加的,因此同一对顶点 十三、struc2vec - 图95multi-layer 图的低层到高层,边的权重是逐渐降低的。
  2. 对于multi-layer 图的不同层之间,我们使用有向边进行连接。每个顶点可以连接上面一层、下面一层对应的顶点。假设顶点 十三、struc2vec - 图96layer 十三、struc2vec - 图97 记作 十三、struc2vec - 图98 ,则 十三、struc2vec - 图99 可以通过有向边分别连接到 十三、struc2vec - 图100

    对于跨 layer 的边,我们定义其边的权重为:

    十三、struc2vec - 图101

    其中 十三、struc2vec - 图102layer 十三、struc2vec - 图103 中,十三、struc2vec - 图104 的所有边的权重大于该层平均边的权重的数量。即:

    十三、struc2vec - 图105

    十三、struc2vec - 图106 为平均权重。因此 十三、struc2vec - 图107 衡量了在layer 十三、struc2vec - 图108 ,顶点 十三、struc2vec - 图109 和其它顶点的相似性。

    • 如果 十三、struc2vec - 图110 在当前层拥有很多结构相似的顶点,则应该切换到更高层进行比较,从而得到更精确的相似性。
    • 根据定义有 十三、struc2vec - 图111 ,因此每个每个顶点连接高层的权重不小于连接低层的权重。
    • 这里采用对数函数,因为顶点 十三、struc2vec - 图112 超过层内平均权重的边的数量取值范围较大,通过对数可以压缩取值区间。
  3. 十三、struc2vec - 图113 具有 十三、struc2vec - 图114 层,每一层有 十三、struc2vec - 图115 个顶点,层内有 十三、struc2vec - 图116 条边,层之间有 十三、struc2vec - 图117 条边。因此multi-layer 图有 十三、struc2vec - 图118 条边。后续会讨论如何优化从而降低生成 十三、struc2vec - 图119 的计算复杂度,以及存储 十三、struc2vec - 图120 的空间复杂度。

13.1.3 上下文生成

  1. 我们通过 multi-layer十三、struc2vec - 图121 来生成每个顶点 十三、struc2vec - 图122 的结构上下文。注意:十三、struc2vec - 图123 仅仅使用顶点的结构信息,而没有采用任何额外信息来计算顶点之间的结构相似性。

    我们也采用随机游走来生成顶点序列,这里我们考虑有偏的随机游走:根据 十三、struc2vec - 图124 中边的权重来在 十三、struc2vec - 图125 中随机游走。假设当前层位第 十三、struc2vec - 图126 层:

    • 首先以概率 十三、struc2vec - 图127 来决定:是在当前 layer 游走还是需要切换 layer 游走。即以概率 十三、struc2vec - 图128 来留在当前layer,以概率 十三、struc2vec - 图129 来跨层。

    • 层间游走:如果需要切换 layer ,则是移动到更上一层、还是移动到更下一层,这由层之间的有向边的权重来决定:

      十三、struc2vec - 图130

      跨层概率正比于层之间的有向边的权重。

    • 层内游走:当随机游走保留在当前层时,随机游走从顶点 十三、struc2vec - 图131 转移到顶点 十三、struc2vec - 图132 的概率为:

      十三、struc2vec - 图133

      其中分母是归一化系数。

      因此随机游走更倾向于游走到与当前顶点结构更相似的顶点,避免游走到与当前顶点结构相似性很小的顶点。最终顶点的上下文中包含的更可能是和它结构相似的顶点。

  2. 对于每个顶点 十三、struc2vec - 图134 ,我们从第 十三、struc2vec - 图135 层开始进行随机游走。每个顶点生成以它为起点的 十三、struc2vec - 图136 条随机游走序列,每条随机游走序列的长度为 十三、struc2vec - 图137

13.1.4 学习 embedding

  1. 我们通过 SkipGram 来从随机游走序列中训练顶点 embedding ,训练的目标是:给定序列中的顶点,最大化其上下文的概率。其中上下文由中心窗口的宽度 十三、struc2vec - 图138 来给定。

    • 为了降低计算复杂度,我们采用 Hierarchical Softmax 技巧。
    • 这里也可以不适用 SkipGram ,而似乎用任何其它的文本 embedding 技术。

13.1.5 优化

  1. 为了构建 十三、struc2vec - 图139 我们需要计算每一层每对顶点之间的距离 十三、struc2vec - 图140 ,而 十三、struc2vec - 图141 需要基于 DTW 算法在两个有序 degree 序列上计算。经典的 DTW 算法的计算复杂度为 十三、struc2vec - 图142 ,其快速实现的计算复杂度为 十三、struc2vec - 图143,其中 十三、struc2vec - 图144 为最长序列的长度。

    十三、struc2vec - 图145 为网络中的最大 degree,则对于任意顶点 十三、struc2vec - 图146 和邻域大小 十三、struc2vec - 图147degree 序列的长度满足 十三、struc2vec - 图148

    由于每一层有 十三、struc2vec - 图149 对顶点,因此计算第 十三、struc2vec - 图150 层所有距离的计算复杂度为 十三、struc2vec - 图151

    最终构建 十三、struc2vec - 图152 的计算复杂度为 十三、struc2vec - 图153

    这里我们介绍一系列优化来显著减少计算复杂度和空间复杂度。

  2. 优化一:降低有序 degree 序列的长度。

    为了降低比较长序列距离的代价,我们对有序degree 序列进行压缩:对序列中出现的每个 degree,我们保存它出现的次数。压缩后的有序 degree 序列由该 degree,以及它出现的次数构成的元组来组成。注意:压缩后的有序 degree 序列也是根据 degree 进行排序。

    由于网络中很多顶点往往具有相同的 degree,因此压缩后的有序 degree 序列要比原始序列小一个量级。

    十三、struc2vec - 图154 为压缩后的有序 degree 序列,它们的元素都是元组的形式。则我们在DTW 中的dist 函数修改为:

    十三、struc2vec - 图155

    其中 十三、struc2vec - 图156十三、struc2vec - 图157 都是 degree十三、struc2vec - 图158 都是degree 对应出现的次数。

    注意:使用压缩的 degree 序列会使得具有相同 degree 的原始序列片段之间的比较。原始的 DTW 算法是比较每个 degree,而不是比较每个 degree 片段,因此上式是原始 DTW 的近似。

    由于 DTW 现在在 十三、struc2vec - 图159 上计算,而它们要比 十三、struc2vec - 图160 短得多,因此可以显著加速 DTW 的计算速度。

  3. 优化二:降低成对顶点相似度计算的数量。

    在第 十三、struc2vec - 图161 层,显然没有必要计算每对顶点的相似度。考虑degree 相差很大的一对顶点(如degree=2degree=20 ),即使在十三、struc2vec - 图162 层它们的结构距离也很大。由于顶点之间的结构距离随着 十三、struc2vec - 图163 的增大而增大,因此当 十三、struc2vec - 图164 时它们的结构距离更大。因此这样的一对顶点在 十三、struc2vec - 图165 中的边的权重很小,则随机游走序列不太可能经过这种权重的边,因此在 十三、struc2vec - 图166 中移除这类边不会显著改变模型。

    我们将每一层需要计算相似度的数量限制为:每个顶点最多与 十三、struc2vec - 图167 个顶点计算相似度。令顶点 十三、struc2vec - 图168 需要计算相似度的邻居顶点集合为 十三、struc2vec - 图169 ,则 十三、struc2vec - 图170 需要包含哪些几乎和 十三、struc2vec - 图171 结构相似的顶点,并且应用到所有 layer

    我们取和 十三、struc2vec - 图172degree 最相似的顶点作为 十三、struc2vec - 图173

    • 首先对全网所有顶点的有序 degree 序列进行二分查找,查找当前顶点 十三、struc2vec - 图174degree
    • 然后沿着每个搜索方向(左侧、右侧)获取连续的 十三、struc2vec - 图175 个顶点。

    计算 十三、struc2vec - 图176 的计算复杂度为 十三、struc2vec - 图177,因为我们需要对全网顶点根据 degree 进行排序。

    现在 十三、struc2vec - 图178 每一层包含 十三、struc2vec - 图179 条边 ,而不是 十三、struc2vec - 图180 条边。

  4. 优化三:降低层的数量。

    十三、struc2vec - 图181 中的层的数量由网络直径 十三、struc2vec - 图182 来决定。但是实际上当 十三、struc2vec - 图183 的值足够大时,评估两个顶点之间的结构相似性就没有任何意义。因为当 十三、struc2vec - 图184 接近 十三、struc2vec - 图185 时,十三、struc2vec - 图186十三、struc2vec - 图187 这两个序列都非常短,这使得 十三、struc2vec - 图188十三、struc2vec - 图189 几乎相等。

    因此我们可以将 十三、struc2vec - 图190 的层的数量限制为一个固定的常数 十三、struc2vec - 图191 ,从而仅仅采用最重要的一些层来评估结构相似性。这显著减少了构建 十三、struc2vec - 图192 的计算需求和内存需求。

  5. 尽管上述优化的组合会影响顶点的结构embedding,但是我们实验证明:这些优化的影响非常小,甚至是有益的。因此降低模型计算量和内存需求的好处远远超出了它们的不足。

13.2 实验

13.2.1 杠铃图

  1. 我们定义 十三、struc2vec - 图193(h,k)-barbell 图:

    • 杠铃图包含两个完全图 十三、struc2vec - 图194十三、struc2vec - 图195 ,每个完全图包含 十三、struc2vec - 图196 个顶点
    • 杠铃图包含一个长度为 十三、struc2vec - 图197 的路径 十三、struc2vec - 图198 ,其顶点记作 十三、struc2vec - 图199 ,该路径连接两个完全图
    • 两个顶点 十三、struc2vec - 图200十三、struc2vec - 图201 作为 bridge ,我们连接 十三、struc2vec - 图202十三、struc2vec - 图203十三、struc2vec - 图204十三、struc2vec - 图205

    杠铃图中包含大量结构身份structural identity 相同的顶点。

    • 定义 十三、struc2vec - 图206 ,则所有的顶点 十三、struc2vec - 图207 为结构身份相同的。
    • 十三、struc2vec - 图208 顶点对之间也是结构身份相同的。
    • 十三、struc2vec - 图209 这对bridge 也是结构身份相同的。

    下图给出了 十三、struc2vec - 图210 杠铃图,其中结构等价的顶点以相同的颜色表示。

    十三、struc2vec - 图211

  2. 我们使用 DeepWalk,node2vec,struc2vec 等模型学习杠铃图中顶点的 embedding 。这些模型都采用相同的参数:每个顶点开始的随机游走序列数量 20、每条游走序列长度 80SkipGram 窗口大小为5 。对于 node2vec十三、struc2vec - 图212

    我们预期 struc2vec

    下图给出了各模型针对 十三、struc2vec - 图213 杠铃图学到的 embedding

    • DeepWalk 无法捕获结构等效性。这是符合预期的,因为 DeepWalk 并不是为结构等效性而设计的。

    • node2vec 也无法捕获结构等效性。实际上它是将图中距离相近的顶点放到 embedding 空间中相近的位置。

    • struc2vec 能够学到间隔良好的等效类别 embedding ,从而将结构等效的顶点放在embedding 空间中相近的位置。

      • struc2vec 还能够捕获结构层次structural hierarchy:虽然顶点 十三、struc2vec - 图214十三、struc2vec - 图215 都不等价,但是在从结构上看 十三、struc2vec - 图216十三、struc2vec - 图217十三、struc2vec - 图218十三、struc2vec - 图219 更相似。表现在 embedding 空间上,十三、struc2vec - 图220十三、struc2vec - 图221 的距离更近。
      • 我们提出的三个优化并为对 embedding 的质量产生任何重大影响。实际上优化一的 embedding 中,结构等效的顶点甚至更加靠近。
    • b 给出了 RolX 的结果。模型一共确定了六个角色,其中角色2和角色4捕获了正确的结构类别,蓝色类别被分配到三个类别(角色1、3、6) ,角色5 包含了剩余的类别。

    十三、struc2vec - 图222

13.2.2 Karate 网络

  1. Zachary's Karate Club 是一个由34 个顶点、78 条边组成的网络,其中每个顶点代表俱乐部成员、边表示两个成员是否在俱乐部以外产生互动,因此边通常被解释为成员之间的好友关系。

    我们的网络由该网络的两个拷贝 十三、struc2vec - 图223 组成,其中 十三、struc2vec - 图224 都有一个镜像顶点 十三、struc2vec - 图225 。我们还通过在镜像顶点对 (1,37) 之间添加一条边来连通 十三、struc2vec - 图226 。尽管 struc2vec 可以建模分离的连通分量,但是 DeepWalknode2vec 无法训练。为了与DeepWalk/node2vec 基准方法进行公平的比较,我们添加了这条边。

    下面给出了镜像网络,其中结构相等的顶点采用相同的颜色表示。

    十三、struc2vec - 图227

  2. 我们使用 DeepWalk,node2vec,struc2vec 等模型学习镜像图中顶点的 embedding 。这些模型都采用相同的参数:每个顶点开始的随机游走序列数量 5、每条游走序列长度 15SkipGram 窗口大小为3 。对于 node2vec十三、struc2vec - 图228

    • DeepWalknode2vec 学习的 embedding 可视化结果如下图所示。可以看到,它们都无法识别结构等效的顶点。

    • struc2vec 成功的学到顶点的结构特征,并正确捕获到结构等效性。镜像顶点pair 对在embedding 空间中距离很近,并且顶点以一个复杂的结构层次聚合在一起。

      另外,顶点134 在网络中具有类似领导者的角色,struc2vec 成功捕获了它们的结构相似性,即使它们之间不存在边。

    • RolX 一共识别出28 个角色。注意:顶点1/34 被分配到不同角色中,顶点1/37 也被分配到不同角色中。一共34 对镜像顶点pair 对中仅有 7 对被正确分配。

      十三、struc2vec - 图229

      十三、struc2vec - 图230

      十三、struc2vec - 图231

      十三、struc2vec - 图232

  3. 我们测量了每个顶点和它的镜像顶点之间的距离、每个顶点和子图内其它顶点的距离,下图给出 node2vecstruc2vec 学到的embedding 的这两种距离分布。横轴为距离,纵轴为超过该距离的顶点对的占比。

    • 对于 node2vec,这两个分布几乎相同。这表明node2vec 并未明显的区分镜像顶点pair 对和非镜像顶点pair 对,因此 node2vec 无法很好识别结构等效性。

    • 对于 struc2vec,这两个分布表现出明显的差异。94% 的镜像pair 对之间的距离小于 0.25 ,而68% 的非镜像 pair 对之间的距离大于 0.25

      非镜像pair 对的平均距离是镜像 pair 对平均距离的 5.6 倍,而node2vec 这一比例几乎为 1

    十三、struc2vec - 图233

  4. 接下来我们评估所有顶点对之间的距离(通过 十三、struc2vec - 图234 来衡量),以及它们在 embedding 空间中的距离(通过欧式距离来衡量)的相关性。我们分别计算 Spearman 相关系数和 Pearson 相关系数,结果如下图所示。

    这两个系数表明:对于每一层这两个距离都存在很强的相关性。这表明 embedding 确实刻画了顶点之间的结构相似性。

    十三、struc2vec - 图235

13.2.3 分类任务

  1. 我们考虑一个空中交通网络,它是一个无权无向图,每个顶点表示机场,每条边表示机场时间是否存在商业航班。我们根据机场的活跃水平来分配label,其中活跃水平根据航班流量或者人流量为衡量。

  2. 数据集:

    • 巴西空中交通网络:包含 20161月到201612月从国家民航局 ANAC 收集的数据。该网络有131个顶点、1038条边,网络直径为5。机场活跃度是通过对应年份的着陆总数与起飞总数来衡量的。
    • 美国空中交通网络:包含 20161 月到 201610 月从美国运输统计局收集的数据。该网络有 1190 个顶点、13599 条边,网络直径为 8 。机场活跃度是通过对应年份的人流量来衡量的。
    • 欧洲空中交通网络:包含 20161 月到 201611 月从欧盟统计局收集的数据。该网络包含 399 个顶点、5995 条边,网络直径为 5 。机场活跃度是通过对应年份的着陆总数与起飞总数来衡量的。

    对于每个机场,我们将其活跃度的标签分为四类:对每个数据集我们对活跃度的分布进行取四分位数从而分成四组,然后每一组分配一个类别标签。因此每个类别的样本数量(机场数量)都相同。

    另外机场类别更多的与机场角色密切相关。

  3. 我们使用 struc2vecnode2vec 来学习每个网络的顶点 embedding ,其中我们通过 grid search 来为每个模型选择最佳的超参数。

    然后我们将学到的embedding 视为特征来训练一个带 L2 正则化的 one-vs-rest 逻辑回归分类器。我们还考虑直接将顶点的 degree 作为特征来训练一个逻辑回归分类器,从而比较使用原生特征和embedding 特征的区别。

    由于每个类别的规模相同,因此我们这里使用测试准确率来评估模型性能。我们将分类模型的数据随机拆分为80% 的训练集和 20% 的测试集,然后重复实验10 次并报告平均准确率。

    结论:

    • struc2vec 模型学到的 embedding 明显优于其它方法,并且其优化几乎没有产生影响。
    • node2vec 模型学到的 embedding 的平均性能甚至略低于直接使用顶点 degree,这表明在这个分类任务中,顶点的结构相似性起到了重要作用。

    十三、struc2vec - 图236

13.2.4 健壮性和可扩展性

  1. 为了说明struc2vec 对噪音的健壮性,我们从网络中随机删除边从而直接修改其网络结构。

    给定图 十三、struc2vec - 图237 ,我们以概率 十三、struc2vec - 图238 随机采样 十三、struc2vec - 图239 图中的边从而生成新的图 十三、struc2vec - 图240,这相当于图 十三、struc2vec - 图241 的边以概率 十三、struc2vec - 图242 被删除。

    我们从 Facebook 网络中随机采样,该网络包含 224 个顶点、3192 条边,顶点 degree 最大为 99 最小为 1 。我们采用不同的 十三、struc2vec - 图243 来生成两个新的图 十三、struc2vec - 图244十三、struc2vec - 图245 ,我们重新标记 十三、struc2vec - 图246 中的顶点从而避免两个顶点编号相同。因此这里也存在一种“镜像”关系:原始Facebook 网络中的顶点会同时出现在 十三、struc2vec - 图247十三、struc2vec - 图248 中。

    我们将这两个子图的并集来作为 struc2vec 的输入。下图给出了不同的 十三、struc2vec - 图249 值,struc2vec 学到的所有顶点 pair 对之间的距离分布。其中 x 标记的是镜像顶点 pair 对之间的距离,+ 标记的是所有顶点 pair 对之间的距离。

    • 十三、struc2vec - 图250 时,两个距离分布明显不同。所有顶点pair 对之间的平均距离要比镜像顶点 pair 对之间的平均距离大 21 倍。

    • 十三、struc2vec - 图251 时,两个距离分布仍然非常不同。进一步减小 十三、struc2vec - 图252 不会显著影响所有顶点 pair 对的距离分布,但是会缓缓改变镜像顶点pair 对的距离分布。

    • 即使在 十三、struc2vec - 图253 时,这意味着原始边同时出现在 十三、struc2vec - 图254十三、struc2vec - 图255 中的概率为 0.09struc2vec 仍然会将镜像顶点pair 对进行很好的区分。

      这表明即使在存在结构噪音的情况下,struc2vec 在识别结构等效性方面仍然具有很好的鲁棒性。

    十三、struc2vec - 图256

    十三、struc2vec - 图257

  2. 我们将采用优化一、优化二的 struc2vec 应用于 Erd¨os-R´enyi 图,我们对每个顶点采样10 个随机游走序列,每个序列长度为 80SkipGram 窗口为 10embedding 维度为 128 。为加快训练速度,我们使用带负采样的 SkipGram .

    为评估运行时间,我们在顶点数量从100100万 、平均degree10 的图上训练 struc2vec。每个实验我们独立训练10 次并报告平均执行时间。其中 training time 表示训练 SkipGram 需要的额外时间。

    下图给出了log-log 尺度的训练时间,这表明 struc2vec 是超线性的,但是接近 十三、struc2vec - 图258 (虚线)。因此尽管struc2vec 在最坏情况下在时间和空间上都是不利的,但是实际上它仍然可以扩展到非常大的网络。

    十三、struc2vec - 图259