目录
- 前言
- 简介
- ABSTRACT
- I. INTRODUCTION
- II. RELATED WORK
- A. NETWORK EMBEDDING
- B. TRADITIONAL METHODS FOR STRUCTURAL IDENTIFY
- C. NETWORK EMBEDDING FOR STRUCTURAL IDENTIFY
- III. THE PROPOSED MODEL
- A. NOTATIONS
- B. DEFINITIONS
- C. METHODOLOG
- D. ROLE FEATURE EXTRACTION
- E. GCN
- F. AUTO-ENCODER
- G. DECODER AND JOINT TRAINING
- H. COMPUTATIONAL COMPLEXITY ANALYSIS
- IV. EXPERIMENTS
- A. DATASET
- B. BASELINES AND PARAMETER SETTINGS
- C. VISUALIZATION
- D. STRUCTURAL ROLE CLASSIFICATION
- E. PARAMETERS SENSITIVITY
- F. CASE STUDY
- V. CONCLUSION
- 读后总结
- 2022/07/12 第一次阅读
- 结语
前言
Hello!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研。
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
唯有努力💪
知其然 知其所以然!
本文仅记录自己感兴趣的内容
简介
期刊:IEEE Access
年度:2019/12/09
ABSTRACT
网络嵌入(Network Embedding, NE)是复杂网络中最常用的学习方法之一
它旨在学习网络中节点的低维表示,并已应用于各种网络分析任务
现有的网络拓扑优化方法大多仅利用局部邻近性、高阶邻近性或全局邻近性来保留网络结构
因此,他们不能完全捕捉节点的结构身份,这是一个由网络结构及其与其他节点的关系定义的对称概念
现有的NE模型有两个局限性
- 首先,不同时考虑局部和全局节点依赖信息
- 其次,没有足够的框架可以揭示每个节点的角色属性
在本文中,我们提出了一种直观而统一的深度学习框架DMER (deep Mutual Encode for Embedding的缩写),从结构标识中学习节点嵌入
在我们的模型中
- 采用图卷积网络(GCN)从全局的角度对节点之间的依赖关系进行建模
- 提出了一种自动编码器(Auto-Encoder, AE)框架来重构节点特征,该框架能够从网络结构中最终揭示节点的结构身份
- 该模型通过整合GCN和AE组件的共享约束机制,实现了从结构标识出发的节点嵌入互增强
I. INTRODUCTION
复杂网络可以用来对各种复杂系统进行建模,应用广泛,如社交网络[1]、生物网络[2]、信息网络[3]等
如何学习和找到复杂网络的有效特征表示是非常重要的
网络嵌入(Network Embedding, NE)是目前最流行的一类学习方法,旨在学习网络中节点的低维表示
这些表示可用于推进广泛的网络分析任务,如节点分类、团体检测、链路预测和可视化[4]
最近有大量的NE方法[3]、[5]、[6]被开发出来,如DeepWalk[7]、LINE[8]、SDNE[9]等
这些方法大多是利用网络的局部和全局相似性来设计的,以保持网络的结构。
因此,网络中连接或相邻的节点具有相似的嵌入
因此,网络中“近”的节点在潜在空间中往往是相似的,而网络中“远”的节点在潜在表征中往往是差异的
但是,网络中的节点除了邻近相似性外,还具有结构相似性,即如果两个节点与其他节点具有相似的局部连接模式,则应该是角色相似性,即使它们在网络中相距很远
一般来说,角色相同或结构相似的节点具有相同的同源功能[10]
例如,如图1所示
- 从邻近相似度的角度来看,黄色节点、蓝色节点和红色节点的嵌入应该是相似的,因为它们之间有链接
- 而节点1和节点2的嵌入应该在潜在空间中距离较远
- 而节点1和节点2在角色相似或结构认同的情况下,会根据其在网络中的局部连接结构,有相似的表示
一般来说,结构标识[11]或角色发现[12]可以定义为:
- 根据网络中的节点的网络结构及其与其他节点的关系,将网络中的节点划分为若干个不相交的集合
- 每个集合中的节点具有相同的角色,每个节点具有相似的相邻结构模式
需要强调的是,这个问题与社区检测[13]有本质上的联系,但又有本质上的区别
- 角色发现主要关注每个节点及其相邻节点的局部结构
- 而社区检测主要发现网络[14]中内部链接紧密的子图
在过去的几十年里,已经有了一些关于结构认同和角色发现的研究,尤其是数学社会学家首先引入了社会网络中个体的结构认同[15]
如今,随着网络科学的发展,结构识别作为一种有用的工具,在在线社交网络、技术网络、生物网络、网络图等[11]环境中受到越来越多的关注
但是,根据网络的浅层结构来有效地推断网络的结构等价性是不容易的
如图1所示,节点1和节点2在网络中相隔很远,但它们周围都有红色节点作为邻居,因此可以认为是相同的角色
以往的结构识别方法主要是基于两步策略来解决这一问题
- 首先提取节点的结构特征
- 然后通过基于矩阵分解[16]的方法和因子图模型等聚类算法发现节点的结构标识或角色
此外,还有一些结构标识的方法,首先将图转换为一个排他性向量表示,然后利用节点特征之间的距离来计算节点的角色,如块模型[17]、[18]和启发式优化方法[19]
但这些方法通常具有较高的计算复杂度,难以推广到大规模网络中
近年来,一些基于学习角色嵌入的网元方法被提出
其中,随机游走是最广泛用于刻画节点角色的技术
- Node2vec[20]向DeepWalk引入了额外的超参数,用于调优随机漫步的深度和广度,从而保持节点之间的相似性和结构属性
- Struct2vec[21]通过在多层图上的一系列行走来学习节点结构身份的表示
- Role2vec[22]首先将每个节点映射到一个类型,然后学习基于带属性的随机游走捕获结构相似性的节点表示
然而,这些基于随机游走的方法很难对复杂网络的非线性结构进行建模
- DRNE[23]通过利用一层规范化LSTM来学习具有规则等价性的节点嵌入。然而,它忽略了每个节点与其邻居节点之间的重要依赖关系
上述基于角色的嵌入方法虽然考虑了结构身份,但仍面临以下挑战:
- 相同结构的节点通常不连接。如图1中的节点1和节点2所示,结构相似的节点在网络中可能相距很远
- 现有的基于角色的嵌入方法大多只利用局部信息,而忽略了全局视角下节点间的依赖关系
- 很难从网络结构中获取节点隐含的角色特征。现有的基于呼吸优先搜索(BFS)的方法只提取一般特征,而忽略了结构识别的固有局部特征
- 不同角色的节点之间的链接机制具有不同的方式,应以不同的方式识别
为了解决上述问题,我们提出了一个统一的、相互学习的结构标识框架,命名为深度嵌入互编码(DMER)
它包含四个核心组件:角色特征提取、图卷积网络(GCN)、自编码(AE)和共享解码器
特别的是
- 首先提出提取节点特征,能够最终表明其在网络中的角色信息
- 其次,我们采用图卷积网络从全局的角度对节点之间的依赖关系进行建模,并使用自编码器重构节点的特征
- 然后,我们提出了一种基于参数共享的互学习机制
- 一方面,AE组件仅使用高维稀疏特征信息而忽略了网络节点的依赖关系,而GCN组件可以从全局的角度利用节点之间的依赖关系来增强AE的嵌入
- 另一方面,AE的重构过程可以缓解GCN引起的网络嵌入过拟合问题
- 最后,我们提出了统一的损失函数,该损失函数可以用随机梯度下降法进行有效优化
本文的主要贡献可归纳如下:
- 我们提出了一种基于结构特征的深度学习网络嵌入模型。我们的模型既考虑了节点之间的结构相似性,又考虑了基于网络的结构对称性
- 我们的深度学习框架集成了GCN和AE组件,它们的编码相互受益,使我们的模型既能保留全局信息,又能保留局部结构。
- 基于角色分类和可视化的实验结果表明,与最先进的基线方法相比,我们的模型取得了更好的性能
II. RELATED WORK
A. NETWORK EMBEDDING
为了学习节点的低维表示,已经提出了许多相关的网络嵌入方法
一般来说,现有的方法可以分为三类:
- 基于随机游走的方法
- 基于矩阵分解的方法
- 基于深度学习的方法。
基于随机游走的方法
- 首先利用随机游走将网络转化为一组节点序列
- 然后通过节点上下文的结构关系保持两个节点的高阶相似性来学习嵌入
DeepWalk[7]、Node2vec[20]和DDRW[24]是最具代表性的基于随机漫步的方法
基于矩阵分解的方法
- 以矩阵的形式保留节点之间的连接
- 根据矩阵的性质采用不同的方法进行矩阵分解,得到节点嵌入
如果得到的矩阵是半定矩阵,可以采用特征值分解,如GraRep[25]和LLE[26]
如果得到的矩阵是非结构化矩阵,可以使用其他优化方法来获得嵌入,如M-NMF[27]和DMF[28]
基于深度学习的方法
- 主要是利用各种神经网络模型来学习网络中节点的复杂且高度非线性的表示
DNGR[29]、SDNE[9]和DDNE[30]是基于深度学习的代表性方法
B. TRADITIONAL METHODS FOR STRUCTURAL IDENTIFY
传统的结构识别方法通常直接从图表示法中定义角色,图表示法通常以邻接矩阵的形式表示
区块模型是传统社会网络分析中最受欢迎的一类角色技术
块模型通常通过一种称为角色交互图(或图像矩阵)的紧凑表示来表示网络,其中节点表示角色,边是角色之间的交互
例如
- conor[31]作为第一个提出的使用blockmodel进行结构识别的方法,首先计算邻接矩阵的相关性,然后利用之前的相关性矩阵来计算相关性矩阵,这个过程会不断重复,直到所有条目都是1或−1
- 随机块模型(SBM)[17]通过使用随机等价来学习结构识别表示,它表示将节点组织成角色,对于相同角色的节点,使节点连接到图中所有其他节点的概率是相同的
- 混合成员随机块模型(MMSB)[18],它放宽了节点只属于单一角色的假设,使用块模型实例化并与混合成员结合。
- 还有其他各种各样的模型,比如以邻接矩阵的形式表示结构标识的潜在空间模型[32]。
也有其他的方法根据邻接矩阵各行之间的各种相似范式来获取角色,通常需要两个步骤:
- 首先由邻接矩阵中的每对行计算相似度
- 然后利用相似矩阵对节点进行聚类
其中,层次聚类和MDS (multi-dimensional scaling)[33]是最常用的方法
尽管如此,仍有一些研究集中在邻接矩阵的特征向量上
例如,Golub等人[34]利用图的邻接矩阵计算奇异值分解(Singular Value Decomposition, SVD)
然后根据入边或出边识别出两类星中心节点作为权威节点和枢纽节点
此外,还有一些方法通过将图表示转化为特征表示来导出节点的角色,然后根据一些特征相等的概念分配角色。
- Lee等人[35]定义了结构特征集合的一致性,即等价于结构。这种间接方法根据特征值度量节点的等价性
- 尽管如此,[36]还是提出了一个结构上等价的不相似性度量来获得特征表示
- RolX[37]是一种广泛使用的方法,它可以通过网络结构来显式地标识节点的角色。RolX是一种基于枚举节点的各种结构特征的无监督学习方法
在我们的论文中,我们采用Rolx来提取节点的高维特征表示
C. NETWORK EMBEDDING FOR STRUCTURAL IDENTIFY
近年来,为了获得网络的结构特征,少数基于角色嵌入的网元方法被提出。
- Deepwalk的灵感来自自然语言处理[38]中的Skip-Gram模型。它假设网络也是一个语言模型,然后使用随机游走从网络中生成一个节点序列来学习网络表示
- Node2vec[20]通过设计两个超参数来控制随机游走,在创建顶点的上下文时提供了更大的灵活性。特别是,通过改变两个超参数来驱动有偏随机游走的边缘权值可以同时获得顶点同质性和结构等效性。然而,这种方法的一个基本限制是,如果具有类似结构的节点的距离(跳数)大于Skip-Gram窗口,它们将永远不会共享相同的上下文。
- 而基于谱图理论和相关投影方案的SPaE[10]能同时保持网络结构的接近性和等价性
- Struc2vec[21]首先构造一个多层的完全图,然后对其进行随机游走以保持结构的一致性
- HOPE[39]采用了一种全局的植根PageRank矩阵分解,从网络结构对结构标识进行建模
- SDNE[9]设计了一种基于自编码器的深度学习结构,以保持网络的一阶和二阶邻近性
- Role2Vec[40]提出了带属性的随机游走的概念,作为通过随机游走推广现有方法的基础
此外,还有一些归纳方法,通过递归地为每个节点训练一组聚合器,以集成相邻节点的内容
- REGE[41]通过迭代搜索两个节点邻居之间的最佳匹配来获得结构标识
- VertexSim[42]使用线性代数的递归方法构造结构同一性的相似性度量
但由于规则等价计算的复杂性较高,很难推广到处理大规模复杂网络。
III. THE PROPOSED MODEL
A. NOTATIONS
B. DEFINITIONS
Definition 1 (Structural Identity)
根据节点的网络结构及其与其他节点的关系,Structural Identity一般可以定义为节点的角色
设和分别为节点和的角色类,则有:
其中
- 为相似度(或距离度量:)
- 和分别表示节点和的嵌入程度
这里的u、v是粗体,表示向量(S(.) 中的 u、v)
Definition 2 (Regular Equivalence)
给定节点的角色类
从正则等价的角度,我们有
这个定义似乎在之前的文章中看到过,大概意思就是u、v的角色一样,那么其各自邻域的角色也是一样的(反之一样,本篇文章开头说了: 节点1和节点2在网络中相隔很远,但它们周围都有红色节点作为邻居,因此可以认为是相同的角色 )
C. METHODOLOG
在这一小节中,我们报告了关于我们提出的模型,深度互编码嵌入(DMER)的详细描述
我们的模型分为四个部分
- 角色特征编码器根据角色提取节点的特征
- GCN编码器根据邻接矩阵获取节点之间的依赖关系
- AutoEncoder模块从提取的角色特征中学习节点的深度表示
- 统一模块通过参数共享共同训练GCN模块和自编码器模块
基于联合模块,可以从结构特性上增强节点嵌入
我们在图2中展示了所提议模型的整体架构
D. ROLE FEATURE EXTRACTION
在我们的方法中,我们认为两个节点和如果具有相似的结构身份特征,则具有相同的角色
但是如上所述,相同角色的节点可能不被连接,如图1所示
考虑到由邻接矩阵导出的特征存在稀疏性问题,不能获取角色特征,因此引入了先提取角色特征的方法
在这里,我们采用了一种应用广泛的角色特征提取方法RolX[37],它可以递归地自动、充分地总结大型图中节点的角色行为
具体来说
- 给定一个节点, RolX根据连接到的链接数量(加权和非加权),以及的egonet内部和邻近的节点来提取局部和egonet特征
- 它还以递归的方式聚合基于egonet的特性,直到没有信息特性可以添加为止
- 这些递归特征包括egonet内边缘的数量,以及它们的聚合度(例如,平均/最大邻居度)
- 因此,它不仅可以提取和组合局部特征和邻域特征,而且可以通过递归的方式聚合邻域特征,从而从网络中获得足够的角色特征
E. GCN
通过RolX提取节点的角色特征,在本节中引入GCN[43]技术,尽管网络中节点之间存在依赖特性
GCN是针对图形数据的cnn的泛化,它可以提取多尺度的局部空间特征,并将其组合,构建高度表达的表示,它在许多机器学习领域带来了突破
它开启了深度学习的新纪元
通过多个图卷积层,我们可以从网络中得到节点之间的关系
因此,我们定义了一种基于节点的单跳(one - hop)邻域的分层传播,将节点编码到一个基于邻接矩阵的低维表示空间中
其中,网络的全局信息记为,由网络的邻接矩阵得到
然后计算每层的隐藏表示如下:
其中
- 通过GCN得到的节点的节点嵌入可以表示为中的第行,记为
- 是维单位矩阵
- 是RolX[37]得到的网络中节点的角色特征矩阵
- 为滤波器参数矩阵(为每个嵌入节点的维数)
- 因此,每一行表示节点的嵌入向量,表示GCN中隐藏层数
F. AUTO-ENCODER
虽然GCN可以捕捉到节点之间的依赖关系,但在学习节点嵌入时,会陷入过拟合
我们需要利用RolX特征中的高维稀疏特征信息来增强GCN,避免过拟合
因此,我们对深度自编码器[9]进行扩展,从重构的角度增强GCN,以缓解过拟合问题
自编码器是一种神经网络模型,可以学习有效的数据表示在无监督的方式
自动编码器试图从尽可能接近原始输入的简化编码生成一个表示
在这个过程中,我们可以从RolX特征中压缩高维稀疏特征信息,从而有效地揭示结构身份
编码器由多层感知组成,将角色特征编码到低维表示空间中
具体来说,给定通过特征提取方法RolX得到的节点的高维特征,每一层的隐藏表示如下:
其中和分别是权重矩阵和第层权重矩阵的偏差
G. DECODER AND JOINT TRAINING
我们的方法的目标是通过互编器从GCN和AE中获得低维表示
我们首先使用一个参数共享解码器,将GCN和AE的重构信息分别进行组合
由于GCN和AE编码器可以学习到不同的节点表示形式,因此二者会相互增强,为此我们定义了二者的联合损失函数:
之后,我们需要根据GCN编码器和AE编码器重构图矩阵(即特征矩阵和相邻矩阵)
这两种解码器都是多层感知机范式
具体来说,AE的解码器过程如下(不失一般性,我们有):
第一行公式应该是错的吧 感觉 应该是 而不是
使用参数共享解码器,对GCN的解码过程如下(不失一般性,我们有):
我们的模型是AE和GCN结合在一起的联合优化方式。最终损失函数设计如下:
H. COMPUTATIONAL COMPLEXITY ANALYSIS
略
IV. EXPERIMENTS
A. DATASET
…
B. BASELINES AND PARAMETER SETTINGS
…
C. VISUALIZATION
D. STRUCTURAL ROLE CLASSIFICATION
E. PARAMETERS SENSITIVITY
F. CASE STUDY
V. CONCLUSION
结构同一性是网络中基于网络结构来识别节点的一种对称概念
这个概念与节点在网络中所起的功能或作用密切相关
这也是社交网络中的一个重要问题
在本文中,我们提出了一个基于结构标识的节点嵌入框架——深度互编码嵌入框架
该框架可用于复杂网络中的角色发现和可视化
- 该模型将GCN和AE结合在一起,采用共享和约束机制
- 实现了从结构标识出发的节点嵌入互增强
基于参数敏感性的实验表明,我们的模型确实能使GCN和AE在节点嵌入上相互改进
基于结构角色发现和可视化的实验结果表明,我们的模型比目前最先进的技术如struct2vec、role2vec和DRNE更有效
读后总结
2022/07/12 第一次阅读
文章思路比较简单
大概步骤就是
- 利用邻接矩阵,借助GCN获取全局结构信息(起一个编码的作用)
- 同时利用RolX提取原图每个节点的特征矩阵,利用普通的编码器对其进行编码
- 然后使用解码器分别对其进行解码,注意这里两个解码器的参数是共享的,也就是每层的权重和偏置都一样,得到邻接矩阵和特征矩阵的重构和
- GCN和AE训练的损失函数为
结语
文章仅作为个人学习笔记记录,记录从0到1的一个过程
希望对您有一点点帮助,如有错误欢迎小伙伴指正