【论文阅读】HARP: Hierarchical Representation Learning for Networks

157 阅读17分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第19天,点击查看活动详情

前言

Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~   自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖...已保研。 学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!   唯有努力💪  

知其然 知其所以然!

  本文仅记录自己感兴趣的内容

简介

原文链接:ojs.aaai.org/index.php/A…

会议:AAAI (CCF-A)

代码:github.com/GTmac/HARP

年度:2018

Abstract

提出了一种新的学习图节点低维嵌入的方法HARP,该方法保留了高阶结构特征

我们提出的方法通过在嵌入之前对输入图进行压缩来实现这一点,有效地避免了麻烦的嵌入配置(即局部极小值),这可能会给非凸优化带来问题

HARP的工作原理是找到一个更小的图形,它近似于其输入的全局结构

  • 这个简化的图被用来学习一组初始表示,这些初始表示用作学习原始的、详细的图中的表示的良好初始化
  • 我们归纳地扩展了这一思想,通过将图分解成一系列的层次,然后将图的层次结构从最粗的图嵌入到原始图中

HARP是一种通用的元策略( meta-strategy),用于改进所有最先进的图形嵌入神经算法,包括DeepWalk、Line和Node2vec

事实上,我们证明了应用HARP的分层范式可以改进所有这三种方法的实现,在DBLP、BlogCatalog和CiteSeer等真实图形上的分类任务上进行了评估 其中我们比原始实现获得了高达14%的宏F1性能提升

Introduction

从社交网络到万维网,图表是一种无处不在的组织各种现实世界信息的方式

在给定网络结构的情况下,预测与图中每个节点相关的缺失信息(通常称为属性或标签)通常是可取的

这种缺失的信息可以代表数据的各个方面

例如,在社交网络上,它们可以代表一个人所属的社区,或者网络上文档内容的类别

由于许多信息网络可能包含数十亿个节点和边,因此在整个网络上执行复杂的推理过程可能是困难的

已经提出的一种解决这个问题的技术是降维

  • 其核心思想是找到一个映射函数,将图中的每个节点转换为低维的潜在表示
  • 然后,这些表示可以用作图上常见任务的特征,例如多标签分类、聚类和链接预测

传统的图形降维方法(Belkin和Niyogi 2001;Roweis和Saul 2000;Tenenbaum、De Silva和Langford 2000)在小图形上表现得很好

然而,这些方法的时间复杂度在图节点数上至少是二次的,这使得它们不可能在大规模网络上运行

DeepWalk(Perozzi,Al-Rfou和Skiena 2014)在图表示学习方面的最新进展提出了使用神经网络的在线学习方法来解决这一可伸缩性限制

自那以后,许多工作紧随其后(曹,Lu和Xu 2015;Grover和Leskovec 2016;Perozzi等人。2017年;唐等人。2015年)

这些基于神经网络的方法已经被证明具有高度的可扩展性和高性能,在大型网络的分类和链接预测任务中取得了很好的结果

尽管这些方法都取得了成功,但它们都有几个共同的弱点

  • 首先,它们都是局部方法--仅限于紧挨着节点的结构
    • DeepWalk(Perozzi、Al-Rfou和Skiena 2014)和Node2vec(Grover和Leskovec 2016)采用短随机行走来探索节点的本地社区
    • 而LINE(Tang等人2015)关注的是更紧密的关系(节点至多两跳)。这种对局部结构的关注隐含地忽视了远距离的全球关系,学习到的表示可能无法揭示重要的全球结构模式
  • 其次,它们都依赖于使用随机梯度下降解决的非凸优化目标(Goldberg和Levy 2014;Mikolov等人)。2013),这可能会陷入局部极小(例如,可能是由于不良初始化的结果)。换句话说,所有先前提出的用于图表示学习的技术都可能意外地学习到忽略其输入图的重要结构特征的嵌入配置

在这项工作中,我们提出了HARP,一种保留高阶结构特征的嵌入图数据集的元策略

  • HARP将原始图中的节点和边递归合并,得到一系列结构相似的连续较小的图
  • 这些合并的图,每个都有不同的粒度,为我们提供了原始图的全局结构的视图
  • 从最简单的形式开始,每个图被用来学习一组初始表示,作为嵌入下一个更详细的图的良好初始化
  • 重复这个过程,直到我们得到原始图中每个节点的嵌入

我们在图1中通过可视化现有方法的二维嵌入(Line(Tang et al.2015)以及我们对其的改进,HARP(LINE)

在这里插入图片描述

图1:对于两个不同的图,从直线和我们提出的方法进行的二维嵌入的比较 观察HARP的嵌入如何更好地保留环和平面的高阶结构

我们考虑的每个小图形都有一个明显的全局结构(global structure)(环(1a)和网格(1d)),这很容易通过力定向布局暴露出来(Hu 2005)

  • 中心图形表示环(1b)和网格(1e)通过line线获得的二维嵌入,在这些嵌入中,全局结构丢失(即,环和平面是无法识别的)
  • 然而,通过使用我们的元策略来改进LINE(右)所产生的嵌入清楚地捕获了给定图(1c,1f)的局部和全局结构

a、d是原始图 b、e是通过LINE得到的二维嵌入图 c、f是使用HARP(利用LINE作为嵌入算法)得到的二维嵌入图


我们的贡献如下:

  • 新的表征学习范式。我们提出了HARP,一种新的多层次图表示范式,它无缝地融合了图绘制(Fruchterman和Reingold 1991)和图表示学习(Perozzi,Al-Rfou和Skiena 2014;Tang等人)的思想。2015;Grover和Leskovec 2016)社区来构建更好的图嵌入。
  • 改进的优化原语。我们证明了我们的方法导致了所有最先进的图表示学习方法的改进实现,即DeepWalk(DW)、Line和Node2vec(N2V)。我们对这些流行的学习潜在表示的方法的改进说明了我们的分层方法的广泛适用性
  • 更好地嵌入下游任务。我们证明了HARP(DW)、HARP(LINE)和HARP(N2V)在几个真实网络上的分类任务上始终优于原始的HARP(DW)、HARP(LINE)和HARP(N2V),改进幅度高达14%的宏F1。

Problem Formulation

我们希望学习图中节点的潜在表示

形式上,设G=(VE)G=(V,E)是一个图,其中

  • VV是节点集
  • EE是边集

图表示学习的目标是开发一个映射函数ΦVRV×dd<<VΦ:V→R^{|V|×d},d << |V|

  • 该映射Φ定义了每个节点vVv∈V的潜在表示(或嵌入)

学习Φ参数的流行方法(Perozzi,Al-Rfou和Skiena,2014;Tang等人。Grover和Leskovec 2016)有两个主要缺点:

  • (1)高阶图的结构信息没有被建模
  • (2)它们的随机优化可能会成为不良初始化的牺牲品

针对这些困难,我们引入了图的层次表示学习问题

在它的核心,我们试图找到一个图Gs=(VsEs)G_s=(V_s,E_s)

它捕捉了GG的本质结构,但比我们的原始图(即Vs<<VEs<<E|V_s|<<|V|,|E_s|<<|E|)要小

由于两个原因,GsG_s很可能会更容易嵌入

  • 首先,有很多较少的成对关系(Vs2|V_s|^2V2|V|^2)可以在空间中表示。随着样本空间的缩小,训练样本的变化较小-这可以产生更平滑的目标函数,更容易优化
  • 其次,GsG^s的直径可能小于GG,因此具有局部焦点的算法可以利用图的全局结构

综上所述,我们将图中的层次表示学习问题定义如下:

  1. 给定一个大图G(VE)G(V,E)和一个使用初始化θθ嵌入G的函数ffG×θΦGf,f:G×θ→Φ_G
  2. 将G简化为一系列连续较小的图G0,...,GLG_0,...,G_L
  3. 学习粗略嵌入ΦGL=f(GL,∅)Φ_{G_L}=f(G_L,∅)
  4. 通过迭代应用ΦGi=f(GiΦGi+1)0<i<LΦ_{G_i}=f(G_i,Φ_{G_{i+1}}),0< i <L来细化到G中的粗略嵌入

Method

在这里,我们提出了用于图形表示学习的分层范例

在对该方法进行一般性讨论之后,针对其最关键的步骤--图粗化,我们提出了一种保持结构的算法

Algorithm: HARP

我们的多层图表示学习方法HARP在算法1中提出

在这里插入图片描述

它由图粗化、图嵌入和表示求精三部分组成,我们详细描述如下:

  1. 图粗化(第1行):在给定一个图GG的情况下,图粗化算法创建一个由连续较小的图G0G1GLG_0、G_1、···、G_L组成的层次结构,其中G0=GG_0=G。较粗(较小)的图保留了原始图的全局结构,但节点和边明显较少。下面将详细讨论用于生成该层次图的算法。
  2. 最粗图(第2-3行)上的图嵌入:利用所提供的图嵌入算法,在最粗图GLG_L上获得图嵌入。由于GLG_L的大小通常很小,因此更容易获得高质量的图形表示
  3. 图形表示、延长和细化(第4-7行):我们将图形表示从最粗的延长和细化到最精细的图形。对于每个图GiG_i,我们延长了Gi+1G_{i+1}的图表示作为其初始嵌入Φ的GiG_i。然后,将嵌入算法Emed()应用于(GiΦGi)(G_i,Φ^‘_{G_i}),进一步细化Φ的GiG_i,得到细化后的嵌入ΦGiΦ_{G_i}。我们将在下面的嵌入扩展部分讨论这一步骤。
  4. 原始图形的图形嵌入(第8行):我们返回ΦG0Φ_{G_0},这是原始图形的图形嵌入

我们可以很容易地看到,这个范例是独立于算法的,只依赖于提供的函数emed()

因此,只需最少的努力,这个范例就可以合并到任何现有的图形表示学习方法中,从而产生该方法的多级别版本

Graph Coarsening

在算法2中,我们提出了一种混合图粗化方案,该方案保留了不同尺度上的全局图结构信息

在这里插入图片描述

它的两个关键部分,即

  • 边折叠(Edge Collapsing)
  • 星形折叠(Star Collapsing)

分别保持了一阶邻近性和二阶邻近性(Tang et al.2015年)

  • 一阶邻近度是指在输入图中保留观察到的边
  • 而二阶邻近度是基于节点的共享邻域结构

Edge Collapsing

边折叠(Hu 2005)是一种保持一阶邻近性的有效算法

  • 它选择EEE‘⊆E,这样E’中没有两条边与相同的顶点关联
  • 然后,对于每个(uivi)E(u_i,v_i)∈E‘,它将(uivi)(u_i,v_i)合并成单个节点wiw_i,并合并与uiu_iviv_i关联的边

因此,较粗糙图中的节点数至少是原始图中节点数的一半

如图2a所示,边折叠算法将节点对(v1v2)(v_1,v_2)(v3v4)(v_3,v_4)分别合并为超节点v12v_{1,2}v34v_{3,4},从而产生具有2个节点和1条边的更粗糙的图

在这里插入图片描述

这种折叠意思就是:折叠之后的v1,2v_{1,2}v3,4v_{3,4}在原图中边的数量小于2 合并的顺序是任意的 我们发现不同的合并顺序在实践中会导致非常相似的节点嵌入

现实世界的图表通常是无比例的,这意味着它们包含大量的星形结构

STAR由一个连接到许多外围节点的常用中心节点(有时称为集线器)组成

虽然边折叠算法简单有效,但它不能充分压缩图中的星形结构

考虑图2B中的图形片段,其中唯一的中心节点v7v_7连接到所有其他节点

在这里插入图片描述

假设中心结点的度为kk,很明显,边折叠方案只能将该图压缩成具有k1k−1个结点的粗化图

因此,当k较大时,粗化过程可以任意缓慢,只需O(k)O(k)步而不是O(logk)O(log_k)

对星形结构的一个观察是,外围节点之间有很强的二阶相似性,因为它们共享相同的邻域

这导致了我们的星形折叠方案,该方案将具有相同邻居的节点合并为超级节点

因为它们彼此相似

如图2C所示,(v1v2)(v3v4)(v_1,v_2)、(v_3,v_4)(v5v6)(v_5,v_6)被合并为超节点,因为它们共享相同的邻居(v7v_7),从而生成仅具有k/2k/2个节点的粗化图

在这里插入图片描述


Hybrid Coarsening Scheme

通过将边折叠和星形折叠相结合,我们在算法2中提出了一种混合的图粗化方案,并在所有测试图上都采用了该方案

  • 在每个粗化步骤中,混合粗化方案首先对具有星形折叠的输入图进行分解
  • 然后采用边折叠方案生成合并图
  • 我们重复这个过程,直到得到一个足够小的图(具有少于100个顶点)

在这里插入图片描述

Embedding Prolongation

在学习了Gi+1G_{i+1}的图表示之后,我们将其延长为GiG_i的初始表示

Gi+1G_{i+1}更粗略 GiG_i更精细

我们观察到,每个节点vGi+1v∈G_{i+1}

  • 要么是更精细表示(vGi)(v∈G_i)的成员
  • 要么是(v1v2vk)Gi(v_1,v_2,···,v_k)∈G_i合并的结果

在这两种情况下,我们只需重复使用父节点vGiv∈G_i的表示(子节点通过渐变更新快速分隔)

Complexity Analysis

在这一部分中,我们讨论了HARP(DW)和HARP(LINE)的时间复杂度,并分别与DeepWalk和LINE的时间复杂度进行了比较

HARP(N2V)具有与HARP(DW)相同的时间复杂度,因此不包括在下面的讨论中

在这里插入图片描述

在这里插入图片描述

Experiment

Datasets

在这里插入图片描述

Baseline Methods

  • DeepWalk
  • LINE
  • Node2vec

Parameter Settings

...

Graph Coarsening

在这里插入图片描述

Visualization

在这里插入图片描述

Multi-label Classification

在这里插入图片描述

在这里插入图片描述

Scalability

在这里插入图片描述

Related Work

相关工作主要集中在图形表示学习和图形绘制两个方面,我们在这里简要介绍一下

Graph Representation Learning

大多数早期的方法将表征学习视为对拉普拉斯矩阵和邻接矩阵进行降维(Belkin和Niyogi 2001;Cox和Cox 2000;Tenenbaum,de Silva和Langford 2000)

这些方法在小图上效果很好,但这些算法的时间复杂度对于今天经常遇到的大规模图来说太高了

最近,人们提出了基于神经网络的方法来构造大规模图中的节点表示

  • Deepwalk(Perozzi,Al-Rfou和Skiena 2014)提出了一种用于图形表示学习的两阶段算法
  • 在第一阶段,Deepwalk通过在图上随机行走来采样每个节点的相邻节点序列
  • 然后,通过训练Skip-gram模型来学习节点表示(Mikolov等人。2013)在随机漫步

已经提出了许多方法来扩展这一想法

  • 首先,几种方法使用不同的策略对相邻节点进行采样
    • Line(唐等人)2015)学习了既保持图中一阶邻近度又保持二阶邻近度的图嵌入
    • Walklet(Perozzi等人2017)通过从图邻接矩阵的高次方中采样边来捕获图上的多尺度节点表示
    • Node2vec(Grover和Leskovec 2016)在随机游走框架内结合了类似DFS和BFS的探索
  • 其次,还提出了矩阵分解方法和深度神经网络(曹,Lu,and Xu 2015;Ou等人。2016年;Wang、崔和朱2016年;Abu-El-Haija、Perozzi和Al-Rfou 2017年),作为学习潜在表征的Skip-gram模型的替代模型。

虽然这些方法具有很高的可伸缩性,但它们都依赖于优化一个非凸目标函数

在对图没有先验知识的情况下,通常用随机数或零来初始化潜在表示

在这样的初始化方案下,这些方法有可能收敛到一个较差的局部极小值

HARP通过引入用于图形表示学习的多层次范例来克服这一问题

Graph Drawing

多级布局算法是图形绘制领域中流行的方法,其中使用分层近似来解决原始布局问题(Fruchterman和Reingold 1991;Hu 2005;Walshaw 2003)

使用原始图形的近似值有两个优点--不仅近似值通常更容易求解,而且它还可以扩展为解决原始问题的良好初始化

除了力有向图的绘制,多层框架(Walshaw 2004)已经在各种图论问题中被证明是成功的,包括旅行商问题(Walshaw 2001)和图划分(Karypis And Kumar 1998)。

HARP将多层布局的思想扩展到神经表示学习方法

我们通过将HARP与三种最新的表示学习方法相结合来说明该范例的实用性

Conclusion

最近关于图表示学习的文献旨在优化非凸函数

由于没有对图的先验知识,这些方法很容易由于初始化不佳而陷入错误的局部最小值

此外,这些方法大多着眼于保持图中的局部邻近性,而忽略了图的全局结构

在本文中,我们提出了一个多层图表示学习范式来解决这些问题。

  • 通过递归地将输入图合并成更小但结构相似的图,HARP捕获输入图的全局结构
  • 通过学习这些较小图上的图表示,得到了一种很好的输入图初始化方案
  • 这种多层次范例进一步与最先进的图形嵌入方法相结合,即DeepWalk、Line和Node2vec。在各种真实图形上的实验结果表明,对于这三种方法,引入HARP都能产生更高质量的图形嵌入

在未来,我们希望将HARP与其他图表示学习方法相结合

具体地说,由于Skipgram是一种浅层表示学习方法,因此看看HARP是否也适用于深度表示学习方法将是有趣的

另一方面,我们的方法也可以应用于语言网络,可能产生更好的单词嵌入

读后总结

2022/07/28 第一次阅读

阅读完,只能说:作者确实厉害 思路独特

文章提供了了一个框架,用于网络嵌入

重点不是研究具体的嵌入方式,而是提供一个嵌入框架,嵌入方法可以使用其他的方法

HARP步骤:

在这里插入图片描述

  1. 对G进行粗化,得到G0G1...GLG_0,G_1...,G_L
    • 先进行星折叠
    • 再进行边折叠
  2. 利用GLG_L开始,使用嵌入算法得到嵌入ΦL\Phi_L
    • 先用0初始化ΦL\Phi_L'
    • 再使用嵌入算法得到嵌入ΦL\Phi_L
  3. 利用ΦL\Phi_L,依次得到ΦL1...Φ0\Phi_{L-1}...\Phi_0
    • 先利用GLG_LΦL\Phi_L,以及GL1G_{L-1},延长ΦL\Phi_L,得到ΦL1\Phi_{L-1}'
    • 然后再利用GL1G_{L-1}ΦL1\Phi_{L-1}',结合嵌入算法得到嵌入ΦL1\Phi_{L-1}
  4. 不停迭代,得到最终的嵌入

对于从粗略的嵌入到精细的嵌入的延长,这一部分还需要仔细研读!

结语

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

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

在这里插入图片描述