【论文阅读|深读】SDNE:Structural Deep Network Embedding【2】

1,199 阅读9分钟

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

前言

Hello!

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

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

昵称:海轰

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

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

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

唯有努力💪  

知其然 知其所以然!

本文只记录感兴趣的部分

3. STRUCTURAL DEEP NETWORK EMBEDDING

3.1 Problem Definition

DEFINITION 1.

  • G=(V,E)G=(V, E)
  • 权重:si,js_{i,j}
    • 无权图:viv_ivjv_j之间有边,si,j=1s_{i,j} = 1,没有边,si,j=0s_{i, j}=0
    • 有权图:viv_ivjv_j之间有边,si,js_{i,j}为权重,没有边,si,j=0s_{i, j}=0

DEFINITION 2.

First-Order Proximity:一阶接近描述顶点之间的两两接近

对于任意顶点对

  • 如果si,j>0s_{i,j} > 0, 则viv_ivjv_j之间存在正的一阶接近
  • 否则,viv_ivjv_j的一阶接近度为0。

DEFINITION 3.

Second-Order Proximity:两个顶点之间的二阶邻近性描述了两个顶点的邻域结构的邻近性

Nu={su,1suV}N_u = \{s_{u,1},…, s_{u,|V|}\}表示vuv_u与其他顶点的一阶接近

然后,二阶接近度由NuN_uNvN_v的相似度决定


DEFINITION 4.

Network Embedding:给定图G=(V,E)G = (V, E),网络嵌入的目的是学习一个映射函数f:viyiRdf: v_i \rightarrow y_i∈R^d,其中d<<Vd << |V|

该函数的目的是使yiy_iyjy_j之间的相似性显式地保持viv_ivjv_j的一阶和二阶接近

3.2 The Model

3.2.1 Framework

SDNE框架如图2所示

在这里插入图片描述


为了捕获高度非线性的网络结构

  • 提出了一种深度架构,该架构由多个非线性映射函数组成,将输入数据映射到一个高度非线性的潜在空间,以捕获网络结构

为了解决结构保持和稀疏性问题

  • 提出了一个半监督模型,利用二阶和一阶接近

对于每个顶点,我们可以获得它的邻域。因此,我们设计了无监督分量,通过重建每个顶点的邻域结构来保持二阶邻近性

同时,对于一小部分节点对,我们可以得到它们的成对相似性,即一阶近邻。

因此,我们设计监督组件来利用一阶邻近性作为监督信息来细化潜在空间中的表示。

通过在半监督深度模型中对它们进行联合优化,SDNE可以很好地保持高度非线性的局部-全局网络结构,对稀疏网络具有鲁棒性。

3.2.2 Loss Functions

一些术语和符号

在这里插入图片描述

注意,参数上面的ˆˆ表示解码器的参数。


我们首先描述无监督组件如何利用二阶邻近性来保持全局网络结构

二阶邻近性是指一对顶点的邻域结构有多相似

因此,要对二阶邻近度进行建模,就需要对每个顶点的邻域进行建模

  1. 给定一个网络G=(V,E)G = (V, E),我们可以得到它的邻接矩阵SS,它包含nn个实例s1,sns_1,…, s_n

  2. 对于每个实例si={si,j}j=1n,si,j>0s_i = \{s_{i,j}\}^n_{j=1}, s_{i,j} > 0当且仅当viv_ivjv_j之间存在连接

  3. 因此,sis_i描述了顶点viv_i的邻域结构,SS提供了每个顶点的邻域结构信息

利用SS,我们扩展了传统的深度自编码器[23],以保持二阶邻近性


考虑到深度自编码器的独立性,我们简要回顾了深度自编码器的关键思想

它是一个无监督模型,由编码器和解码器两部分组成。

  • 编码器由多个非线性函数组成,它们将输入数据映射到表示空间

  • 解码器还包含多个非线性函数,将表示空间中的表示映射到重构空间

然后给定输入xix_i,每层的隐藏表示如下2所示

在这里插入图片描述 得到yi(K)y^{(K)}_i后,反转编码器的计算过程,得到输出x^i\hat x_i

自动编码器的目标是使输出和输入的重构误差最小化。损失函数如下所示:

在这里插入图片描述

[23]证明,虽然最小化重构损失并不能显式地保持样本之间的相似性,但重构准则可以平滑地捕获数据流形,从而保持样本之间的相似性


然后考虑到我们的情况,如果我们用邻接矩阵S作为自编码器的输入,即xi=six_i = s_i

由于每个实例sis_i表征了顶点viv_i的邻域结构,重建过程将使具有相似邻域结构的顶点具有相似的潜在表示

然而,由于网络的某些特定特性,这样的重构过程并不能直接应用于我们的问题

在网络中

  • 我们可以观察到一些链接,但同时却看不到许多合法的链接,这意味着顶点之间的链接确实表明了它们的相似性,但没有链接并不一定表明它们的不同。
  • 此外,由于网络的稀疏性,S中非零元素的数量远小于零元素的数量。

那么如果我们直接使用S作为传统自动编码器的输入,它更容易重构S中的零元素。然而,这并不是我们想要的。

为了解决这一问题,我们对非零元素的重构误差施加了比零元素重构误差更大的惩罚。修正后的目标函数如下:

在这里插入图片描述

其中\odot表示哈达玛积(Hadamard product) bi={bi,j}j=1n={bi,j=1si,j=1bi,j=β>1elseb_i = \{b_{i,j}\}^n_{j=1}=\begin{cases} b_{i,j} = 1 \quad s_{i,j} = 1\\ b_{i,j} = \beta > 1 \quad else \end{cases} 在这里插入图片描述

现在,通过使用以邻接矩阵SS为输入的修正深度自编码器,将具有相似邻域结构的顶点映射到表示空间的附近,并由重构准则保证。

再原来的基础上 ,对非零元素施加更大的惩罚,修正损失函数

换句话说,我们的模型的无监督组件可以通过重建顶点之间的二阶邻近性来保持全局网络结构。

通过使用修正后深度自编码器在保持二阶邻近性


不仅要保护全局网络结构,而且要抓住局部结构

我们用第一接近度来表示局域网络结构

一阶接近度可以看作是约束一对顶点潜在表示相似度的监督信息。

因此,我们设计监督组件利用一阶接近。这个目标的损失函数定义如下3

在这里插入图片描述

公式4的目标函数借用了拉普拉斯特征映射[1]的思想

  • 当相似顶点在嵌入空间的远处映射时,会产生一个惩罚
  • 一些关于社交网络[13]的作品也使用了类似的想法
  • 我们在深度模型中引入了这种思想,使由边连接的顶点在嵌入空间中被映射到附近
  • 因此,该模型保持了一阶接近。

为了同时保持一阶和二阶的接近性,我们提出了一个半监督模型,最小化以下目标函数: 在这里插入图片描述

其中LregL_{reg}是防止过拟合的L2L2范数正则化项,其定义如下:

在这里插入图片描述

3.2.3 Optimization

通过对参数进行初始化,利用随机梯度下降法对深度模型进行优化

需要注意的是,由于模型的高非线性,它在参数空间中会有许多局部最优

因此,为了找到一个好的参数空间区域,我们首先使用Deep Belief Network在[11]处对参数进行预训练,这在文献[7]中已经被证明是深度学习的一个必要的参数初始化。

完整的算法步骤如下: 在这里插入图片描述

3.3 Analysis and Discussions

New vertexes

网络嵌入的一个实际问题是如何学习新到达顶点的表示

对于新顶点的表示是一个问题

1) 对于一个新顶点vkv_k,如果已知它与现有顶点的连接

  • 我们可以得到它的邻接向量x={s1,ksn,k}x = \{s_{1,k},…, s_{n,k}\},其中si,ks_{i,k}表示已有顶点viv_i与新顶点vkv_k的相似度

  • 然后我们可以简单地将xx输入到我们的深度模型中,并使用训练好的参数θθ来得到vkv_k的表示。该过程的复杂度为O(1)O(1)

2)如果viv_i和网络中现有的顶点之间不存在连接

  • 我们的方法和最先进的网络嵌入方法无法处理
  • 对于这种情况,我们可以求助于其他方面的信息,比如新顶点的内容特征,我们留给以后的工作

Training Complexity

模型的训练复杂度为O(ncdI)O(ncdI)

  • 其中nn为顶点数
  • dd为隐藏层的最大维数,通常与嵌入向量的维数有关,而与顶点的个数n无关。
  • cc为网络的平均度,在实际应用中,它通常可以被视为一个常数
  • II为迭代次数,与n无关

整体训练复杂度与网络中的顶点数量成线性关系

4. EXPERIMENTS

4.1 Datasets

  • BLOGCATALOG [27], FLICKR [27] and YOUTUBE [28]
  • ARXIV GR-QC
  • 20-NEWSGROUP

在这里插入图片描述

4.2 Baseline Algorithms

  • DeepWalk
  • LINE
  • GraRep
  • Laplacian Eigenmaps (LE)
  • Common Neighbor

4.3 Evaluation Metrics

在我们的实验中,我们完成了重建、链接预测、多标签分类和可视化的任务。

对于重建和链路预测,我们使用precision@k和平均精度(Mean Average Precision, MAP)来评估性能。它们的定义如下:

在这里插入图片描述

对于多标签分类任务,我们采用了MicroF1Micro - F1MacroF1Macro - F1的定义如下

在这里插入图片描述

在这里插入图片描述

4.4 Parameter Settings

本文提出了一种多层深度结构,层数随数据集的不同而不同。

各层的维度如表3所示

  • 神经网络有三层用于BLOGCATALOG、ARXIV GR-QC和20-NEWSGROUP
  • 四层用于FLICKR和YOUTUBE

在这里插入图片描述

如果我们使用更深层次的模型,性能几乎保持不变,甚至变得更差。

4.5 Experiment Results

4.5.1 Network Reconstruction

图3显示了precision@k上的结果

在这里插入图片描述

MAP的结果如表4所示 在这里插入图片描述

4.5.2 Multi-label Classification

在这里插入图片描述 在这里插入图片描述

4.5.3 Link Prediction

在这里插入图片描述

4.5.4 Visualization

可视化图如图7所示

在这里插入图片描述

我们使用Kullback-Leibler散度作为定量评价指标

  • KL散度越低,性能越好

结果如表6所示

在这里插入图片描述

4.6 Parameter Sensitivity

评估了不同的嵌入维数和不同的超参数α和β值对结果的影响

  • L2ndL_{2nd}含有超参数β\beta
  • L1stL_{1st}含有超参数α\alpha

在这里插入图片描述

读后总结

总目标优化函数

在这里插入图片描述

其中

  • L2ndL_{2nd}是利用自编码器对输入输出的一个损失计算(这里是修改了一下损失函数,是无监督的)
  • L1stL_{1st}是对自编码器中每一个隐层中对应的yiy_i与其余节点对应的yjy_j的损失计算(借助拉普拉斯特征映射的思想,是监督的)
  • LregL_{reg}是为了防止过拟合引入的一个损失计算

总体思路不是很难,利用编码器,依据重构损失和其中隐层变量的损失构成最终的目标函数

寻找到最优参数即可

结语

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

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

在这里插入图片描述