经典论文阅读-9:SDNE

87 阅读14分钟

结构化深度网络嵌入

论文地址:rfp0191-wangAemb.pdf (kdd.org)

摘要

网络嵌入是学习网络中节点低维表示的重要方法,可捕获并保留网络结构信息。几乎所有现有网络嵌入方法采用浅层模型。然而,由于低层网络结构的复杂性,浅层模型不能捕获高度非线性的网络结构,产生的网络表示也是次优的。因此,如何捕获高度非线性网络中的局部和全局结构信息,现在是一个开放的重要问题。为了解决该问题,本文提出 Structural Deep Network Embedding,SDNE 方法。更确切的说,我们首次提出半监督深度模型,具有多层非线性函数,能捕获高度非线性网络结构。然后,我们同时利用一阶、二阶相似性来保留网络结构信息。非监督组件使用二阶相似性来保留全局结构信息。同时,一阶相似性被有监督组件用作监督信息,来保留局部结构信息。通过在半监督模型中同时优化二者,我们的方法可保留网络的局部和全局信息,并对稀疏网络更具鲁棒性。实践上,我们在五个真实网络上进行实验,包括语言网络、引用网络和三个社交网络。将结果与基准相比,我们的模型可以非常好重构原始网络,在三个应用上获得显著提升,例如多标签分类、链路预测、可视化。

简介

如今,网络无处不在,许多应用需要从这些网络中挖掘信息。例如,Twitter 推荐系统需要在社交网络中挖掘用户偏好信息。在线广告目标设定需要在社交网络中对用户分类。因此,挖掘网络信息很重要。其中一个基础问题是如何学习有用的网络表示。一种高效方法是将网络嵌入到低维空间,即学习每个节点的向量表示,然后可以根据节点向量重构原始网络。有了向量表示后,挖掘网络信息,如信息检索、分类、聚类等,都可以直接在低维空间中进行。

学习网络表示面临以下几个重要挑战。

  • 高度非线性。网络的低层结构是高度非线性的,如何让模型捕获该非线性结构是非常困难的。

  • 保留结构。为了支持应用分析网络,网络嵌入需要保留网络结构。然而低层网络结构通常是复杂的,节点相似性依赖与局部和全局网络结构特征。

  • 稀疏性。许多真实网络是稀疏的,只包含有限的观测到的链接,不足以使模型获得令人满意的性能。

过去几十年,人们提出了许多网络嵌入方法,但它们都采用浅层模型,如 IsoMap、拉普拉斯映射 Laplacian Eigenmaps LE,LINE 等。然而,由于浅层模型的有限表示能力,很难用它们捕获高度非线性的网络结构。尽管有些方法采用核技术,核方法本身也是浅层模型,同样不能捕获高度非线性结构。

为了捕获高度非线性网络结构,本文提出一种深度模型来学习网络节点表示。这是被深度学习最近的成功所激起的灵感,深度学习已展示出其强大的对数据复杂结构的建模能力,在处理图像、文本、视频等数据任务上取得重大突破。特别地,我们模型中设计的多层结构包含多个非线性函数,组合这些非线性函数能够将数据映射到高度非线性的潜在空间中,因此能够捕获网络的高度非线性化结构。

为了在深度模型中解决这些保留结构与稀疏性问题,我们进一步提出使用一阶、二阶相似性联合处理模型。一阶相似性只有两个节点间存在连接时才有,可度量网络局部信息。然而由于网络的稀疏性,许多合法连接缺失了。结果导致一阶相似性不足以表示网络结构。因此,进一步提出二阶相似性,指节点邻居结构之间的相似性,可度量网络全局信息。通过一阶、二阶相似性,我们很好的刻画了局部、全局结构特征。为了在深度模型中表示这些特征,我们提出一种半监督架构,其中无监督组件重构二阶相似性来保留全局网络结构,监督组件利用一阶相似性作为监督信息来保留局部网络结构。作为结果,学到的表示可以保留局部、全局网络结构。此外,具有二阶相似性的节点对数量比具有一阶相似性的更多。因此,二阶相似在刻画网络结构上能提供更多信息。结果是,我们的模型具有更强鲁棒性。

实践方面,我们在五个真实网络数据集和四个真实网络应用上做了实验。结果表明,与基准方法相比,我们方法生成的表示能将原始网络重建的更好,在各种任务和网络上获得重大性能提升。它展示了我们学到的表示处于高度非线性空间,可很好地保留网络结构,对稀疏网络具有鲁棒性。

总之,本文的贡献点如下。

  • 提出 Structural Deep Network Embedding SDNE 方法,来实现网络嵌入。该方法将数据映射到高度非线性潜在空间,可保留网络结构,对稀疏网络具有鲁棒性。据我们所知,我们是首个将深度学习用在网络表示学习上的。

  • 我们提出的半监督学习深度模型,同时优化一阶、二阶相似性。结果是,学到的表示可以保留局部、全局网络结构。

  • 提出的方法广泛用在五个真实网络数据集和四个真实应用场景里,结果显示该方法在多标签分类、网络重建、链路预测和可视化方面有高度可用性。

相关研究

深度神经网络

表示学习长期以来都是重要的机器学习任务。最近深度神经网络方面的研究表明其具有强大的表示能力,能生成各种数据的有用表示。例如,文献 15 提出 7 层卷积网络来生成图像表示来做分类任务。文献 33 提出多模态深度模型来学习图文统一表示,实现跨模态抽取任务。

然而,据我们所知,只有几个深度学习方面的研究针对的网络,尤其是学习网络表示。文献 9 提出受限玻尔兹曼机做协同过滤。文献 30 提出深度自动编码器做图分类。文献 5 提出异构深度模型来做异构图数据嵌入。我们的模型与它们的区别有亮点:第一,目标不同,我们集中于学习低维的可保留结构的网络表示,可用在多任务中。第二,我们同时处理一阶、二阶相似性,保留网络的局部、全局信息。

网络嵌入

本文解决网络嵌入问题,学习网络表示。一些更早的成果,如 Local Linear Embedding LLE,IsoMap,首先构建亲和图,然后求解该图的重点特征向量作为网络表示。更近一点的方法,LINE 设计两个目标函数分别捕获网络的局部、全局结构信息。尽管这些网络嵌入方法各有成果,它们用的都是浅层模型。如我们之前所说,浅层模型很难有效捕获高度非线性结构信息。此外,尽管有些方法尝试使用一阶、二阶相似性,它们分别训练这两种表示又拼接在一起。显然,这种方法与同时将一阶、二阶相似性建模在同一个空间相比是次优选择。

DeepWalk 结合了随机游走和 skip-gram 来学习表示,虽然很有效,它缺少清晰的目标函数来解释保留了多少网络结构。它倾向于只保留二阶相似性。然而,我们的方法设计显示目标函数,能同时保留局部、全局结构。

SDNE

本节,首先定义问题,然后介绍半监督方法 SDNE,最后做一点对模型的分析讨论。

问题定义

图通常定义为 G=(V,E)G=(V,E) ,其中 V={v1,...,vn}V=\{v_1,...,v_n\} 表示 n 个节点,E={ei,j}i,j=1nE=\{e_{i,j}\}_{i,j=1}^n 表示各点之间的连接,每个边 ei,je_{i,j} 关联一个权重 si,j0s_{i,j}\ge 0 。如果两点 vi,vjv_i,v_j 之间没有边,si,j=0s_{i,j}=0

网络嵌入的目标是将图数据映射到低维潜在空间中,每个点表示该空间的一个向量,网络上的计算可之间用向量计算表示。如我们上边所说,局部与全局结构必须被保留。下边我们定义一阶相似性,刻画网络局部结构。

一阶相似性表示节点对之间的相似性。对于每对节点,如果 si,j>0s_{i,j}>0 ,那么表示节点 vi,vjv_i,v_j 之间存在正的一阶相似性。否则,两节点间一阶相似性为 0 。

自然地,有必要在网络嵌入中保留一阶相似性,因为这表示两节点在真实网络中有显示边相连。例如,如果一篇论文引用另一片篇论文,它们应该有相同主题。然而,真实数据集通常是稀疏的,观测到的边只占小部分。存在许多点,它们之间相似却没有边相连。因此,只捕获一阶相似性不够,接下来介绍二阶相似性,捕获网络全局结构。

二阶相似性表示节点对邻居之间的相似性。让 Nu={su,1,...,su,V}N_u=\{s_{u,1},...,s_{u,|V|}\} 表示节点 vuv_u 与其他所有点的一阶相似性,那么二阶相似性是 Nu,NvN_u,N_v 之间的相似性。

直觉上,二阶相似性假设,如果两节点有许多共同邻居,它们应该是相似的。这种假设在许多领域都证明其有意义。例如,语言学中,相似单词通常具有相似上下文。具有许多相同朋友的人,更可能成为朋友。二阶相似性是度量节点相似的很好的指标,即使两节点没有关系连接,因此可以高度丰富节点的关系,缓解稀疏性问题。

有了一阶、二阶相似性,如何在学习嵌入时整合它们,同时保留局部、全局结构特征成了问题,该问题定义如下。

给定网络 G=(V,E)G=(V,E) ,网络嵌入的目标是学习 f:viyiRdf:v_i\mapsto \mathbb y_i\in R^d 映射,其中 dVd\ll |V| 。要求目标函数中 yi,yjy_i,y_j 的相似性显示保留 vi,vjv_i,v_j 的一阶、二阶相似性。

模型

框架

本文,提出一种半监督深度模型来做网络嵌入,框架如图所示。

pic1.png

其中,为了捕获高度非线性网络结构,模型组合了多个非线性函数,将数据映射到高度非线性潜在空间。此外,为了解决结构保留和稀疏性问题,使用可同时利用一阶、二阶相似性的半监督模型。对每个节点,我们能够获取其邻居,即一阶相似性,然后,设计无监督模型从其邻居中计算二阶相似性。

损失函数

定义损失函数前,先定义一些后边会用到的术语和标记。注意带有 ^ 的参数是解码器的参数。

pic2.png

现在介绍半监督模型的损失函数,首先描述该模型中无监督组件如何利用二阶相似性来保留全局网络结构。

二阶相似性指节点对邻居之间的相似性。因此为了建模二阶相似性,需要建模每个节点的邻居。给定网络 G=(V,E)G=(V,E) ,可获得其邻接矩阵 SS ,包含 n 个实例 s1,...,sns_1,...,s_n ,每个实例 si={si,j}j=1n,si,j>0s_i=\{s_{i,j}\}_{j=1}^n,s_{i,j}>0 。有了 SS ,我们扩展传统自动编码器来保留二阶相似性。

考虑到论文的自包含,我们简要介绍深度自动编码器的关键思想。它是一种组合编码器和解码器的无监督模型。编码器包含多层非线性函数,将数据映射到向量空间。解码器包含多层非线性函数,将向量空间中的向量映射到数据。对于给定输入 xix_i ,各层隐藏表示计算如下。

yi(1)=σ(W(1)xi+b(1))yi(k)=σ(W(k)yi(k1)+b(k)),k=2,3,...,Ky_i^{(1)}=\sigma(W^{(1)}x_i+b^{(1)}) \\ y_i^{(k)}=\sigma(W^{(k)}y_i^{(k-1)}+b^{(k)}),k=2,3,...,K

得到 yi(k)y_i^{(k)} 后,可翻转编码计算过程得到输出 x^i\hat x_i 。自动编码器的目标是最小化输入和重构输出之间的重构误差,损失函数如下。

L=i=1nx^ixi22L=\sum_{i=1}^n||\hat x_i - x_i||_2^2

虽然最小化重构误差不能显式保留样本间相似性,重构条件可以平滑地捕获数据流型,因此保留样本间相似性。现在考虑我们的问题,如果使用邻接矩阵 SS 作为输入,即 xi=six_i=s_i ,每个实例 sis_i 刻画节点的邻居结构,重构过程会使具有相似邻居结构的点具有相似潜在表示。

不过,该重构过程不能直接用在我们的问题上,因为网络有一些特殊特性。在网络中,我们可以看到一些边,但同时有许多合法边是看不到的,这意味着节点之间的关系不能表示其相似性,而节点之间没有关系也不能说明其没有相似性。而且,由于网络是稀疏的,SS 中非零元素数量远小于零元素数量。如果我们直接使用 SS 作为输入,那模型会倾向于构造零元素,这不是我们想要的。为了解决该问题,我们提出误差函数惩罚项,来约束零元素的权重。修改后的目标函数如下。

L2nd=i=1n(x^ixi)bi22=(X^X)BF2L_{2nd}=\sum_{i=1}^n||(\hat x_i-x_i)\odot b_i||_2^2=||(\hat X-X)\odot B||_F^2

其中 \odot 表示 Hadamard 积,bi={bi,j}j=1nb_i=\{b_{i,j}\}_{j=1}^n 如果 si,j=0,bi,j=1s_{i,j}=0,b_{i,j}=1 否则,bi,j=β>1b_{i,j}=\beta>1 。现在通过使用修正后的深度自动编码器,以邻接矩阵 SS 为输入,具有相似邻居的节点会被嵌入到表示空间的相邻位置,这是由重构条件保证的。换句话说,模型的无监督组件可以保留网络的全局结构,通过重构节点间的二阶相似性。

不只需要保留全局网络结构,捕获局部结构也很有必要。我们使用一阶相似性来表示局部结构。一阶相似性可当作监督信息来约束节点对表示之间相似度。因此我们设计监督组件来利用一阶相似性。损失函数如下。

L1st=i,j=1nsi,jyi(K)yj(K)22L_{1st}=\sum_{i,j=1}^ns_{i,j}||y_i^{(K)}-y_j^{(K)}||_2^2

该目标函数的思想来自拉普拉斯映射,在节点表示的距离较远时,增大惩罚项。一些关于社交网络的研究使用相似思想。我们与其不同之处在于,组合该思想到深度模型中,让具有连接的节点之间嵌入的位置更接近。结果是,该模型保留了一阶相似性。

为了同时保留一阶、二阶相似性,我们提出半监督模型,能够同时优化上述目标函数。

Lmin=L2st+αL1st+νLregL_{min}=L_{2st}+\alpha L_{1st} + \nu L_{reg}

其中 Lreg=12k=1K(W(k)F2+W^(k)F2)L_{reg}=\frac {1}{2} \sum_{k=1}^K(||W^{(k)}||_F^2 + ||\hat W^{(k)}||_F^2)

优化目标函数

为了优化上述模型,要最小化关于 θ\theta 的函数 LminL_{min} 的值。具体地,关键步骤是计算偏导数 Lmin/W^(k)\partial L_{min}/\partial \hat W^{(k)}Lmin/W(k)\partial L_{min}/\partial W^{(k)} 。具体计算过程由反向传播实现。

有了各参数的偏导数后,模型的优化可使用随机梯度下降完成。由于模型的高度非线性,优化时有许多局部最优解。因此,为了找到参数的优良区域,我们使用深度信念网络预训练这些参数。

pic3.png

分析与讨论

本节讨论一下 SDNE 的细节。

关于新节点,一个关于网络嵌入的实际问题是,如何学习新添加的节点的表示。对于新建节点 vkv_k ,如果其和已有节点之间的连接已知,可通过其邻接向量计算表示。如果关于该节点的连接未知,我们的模型是无法处理的。为了解决该问题,我们得诉诸其他侧面信息,如该节点的内容特征。

关于训练复杂度,不难得到该模型训练复杂度为 O(ncdI)O(ncdI) ,其中 n 是节点数量,d 是隐藏层维度,c 是网络平均度,I 是迭代次数。参数 d 通常与嵌入向量维度有关,与节点数 n 无关。I 也与节点数 n 无关。对于 c ,通常将其视为常量。例如,社交网络中人的朋友数量是有上限的。因此整个训练复杂度只与节点数 n 线性相关。

实验

总结