KDD2016-Structural Deep Network Embedding

Posted 吾仄lo咚锵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KDD2016-Structural Deep Network Embedding相关的知识,希望对你有一定的参考价值。

文章目录

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

介绍


Wang D, Cui P, Zhu W. Structural deep network embedding[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. 2016: 1225-1234.

网络无处不在,许多现实世界中的应用程序都需要挖掘网络中的信息。比如社交网络中推荐好友,在网络集群用户并推荐商品,在蛋白质网络中研究分子等,挖掘网络中的信息是非常重要的。

一个有效的方法就是将网络嵌入到一个低维空间,然后通过学习到的嵌入向量对网络进行重建,也就是用图嵌入的方法学习网络的表示。

但是学习网络表示面临着以下3个挑战:

  1. 高度非线性化
    网络中的潜在结构是高度非线性的,因此设计模型来捕捉这种高度非线性的结构是很困难的。
  2. 如何保留结构
    网络中潜在结构是非常复杂的,节点间的相似性依赖局部和全局网络架构,如何同时保留局部和全局结构也是一个棘手的问题。
  3. 稀疏性问题
    许多真实世界的网络是高度稀疏的,仅利用非常有限的观察到的边不足以达到令人满意的性能。

对于上述三个问题,SDNE分别提出了解决方法:
设计一个深度模型来学习网络中的节点表示,包含多个非线性函数的多层架构,可以将数据映射到高度非线性的潜在空间,从而能够捕获高度非线性的网络结构。
利用一阶临近度和二阶临近度来解决如何保留结构和稀疏性问题,利用一阶临近度和二阶临近度可以分别保留局部和全局网络结构,为此同时保留二者,提出了一个半监督框架来学习表示。

此外,如图1所示,节点间的二阶临近度的数量是远远多于一阶临近度的,因此二阶临近度可以提供更多的信息来描述网络结构。

总的来说,SDNE贡献如下:

  1. 一个结构化深度网络嵌入方法,称为SDNE。可以将数据映射到一个高度非线性潜在空间来保留网络结构,并且对于系数网络也具有鲁棒性。
  2. 一个新的半监督深度模型,同时利用了一阶临近度和二阶临近度,来保留局部和全局网络结构。
  3. 通过实验表明了SDNE的优越性。

SDNE

问题定义


  • 图(Graph)
    定义图 G = ( V , E ) G=(V,E) G=(V,E),其中 V = v 1 , . . . , v n V=v_1,...,v_n V=v1,...,vn表示n个节点, E = e i , j i , j = 1 n E=\\e_i,j\\^n_i,j=1 E=ei,ji,j=1n表示边,其中每条边的权重为 s i , j s_i,j si,j,若节点间不存在边则 s i , j = 0 s_i,j=0 si,j=0;若存在边,对于无权重图 s i , j = 1 s_i,j=1 si,j=1,对于有权重图 s i , j > 1 s_i,j>1 si,j>1

  • 一阶临近度(First-Order Proximity)
    对于任何一对节点,若 s i , j > 0 s_i,j>0 si,j>0则表明节点 v i v_i vi和节点 v j v_j vj之间存在一阶临近度,否则不存在一阶临近度。也就是看邻接矩阵中具体值,一节邻近度描述了两节点是否相连,是否存在边。

  • 二阶临近度(Second-Order )
    给定 N u = s u , 1 , . . . , s u , ∣ v ∣ N_u=\\s_u,1,...,s_u,|v|\\ Nu=su,1,...,su,v表示节点 u u u和其他节点的一阶临近度,节点 u u u和节点 v v v间二阶临近度则是 N u N_u Nu N v N_v Nv的相似性。也就是比较邻接矩阵中的两行,二阶临近度描述了两节点有多少共同邻居。

  • 图嵌入(Network Embedding)
    图嵌入旨在学习一个映射函数 f : v i → y i ∈ R d f:v_i→y_i\\in\\R^d f:viyiRd,其中 d < < ∣ V ∣ d<<|V| d<<V。也就是从高维映射到低维,映射过程称为嵌入,得到映射结果为嵌入向量。

框架



SDNE模型是一个半监督深度学习模型。

对于节点 i i i的输入特征 x i x_i xi(邻接矩阵第 i i i行),经过 K K K层全连接层的编码器(隐含层神经元个数递减),嵌入到一个低维空间,得到嵌入向量 y i ( K ) y_i^(K) yi(K),然后再经过 K K K层的全连接层的解码器(与编码器相反且一一对应),学习到解码后节点 i i i的新特征表示。自编码器中是用的非监督损失函数,最优化二阶临近度,保留全局结构特征(我怀疑图片上标错了)。

对于两个节点 i i i j j j,对拉普拉斯特征值映射进行扩展,使用监督损失函数,最优化一阶临近度,保留局部结构特征。

通过联合优化一阶邻近度和二阶临近度,同时保留图的局部和全局结构特征。下面介绍具体损失函数定义。

损失函数


  • 一阶临近度损失
    使用一阶临近度来保留网络的局部特征,作为监督信息来约束一对顶点的潜在表示的相似性。
    L 1 s t = ∑ i , j = 1 n s i , j ∣ ∣ y i − y j ∣ ∣ 2 2 \\mathcalL_1st=\\sum_i,j=1^ns_i,j||y_i-y_j||^2_2 L1st=i,j=1nsi,j∣∣yiyj∣∣22
    idea源于拉普拉斯特征值映射,当相似节点在嵌入空间中映射得较远时给予惩罚。使由一条边连接的顶点映射到嵌入空间后相近。

  • 二阶临近度损失
    使用二阶临近度来保留网络的全局特征,使有更多相同邻居的节点映射到嵌入空间后更相近。但是直接使用邻接矩阵作为传统自编码器的输入,将更倾向于重建邻接矩阵中的零元素。而这并不是我们所期待的,因此提高了重建非零元素的惩罚权重,如下所示:
    L 2 n d = ∣ ∣ ( X ^ − X ) ⊙ B ∣ ∣ F 2 \\mathcalL_2nd=||(\\hatX-X)\\odot B||^2_F L2nd=∣∣(X^X)B∣∣F2
    其中, b i = b i , j j = 1 n b_i=\\b_i,j\\^n_j=1 bi=bi,jj=1n,当 s i , j = 0 , b i , j = 1 s_i,j=0,b_i,j=1 si,j=0,bi,j=1,否则 b i , j = β > 1 b_i,j=\\beta>1 bi,j=β>1。也就是重建非零元素的权重 β > 1 \\beta>1 β>1大于重建零元素的权重,避免学习到全是0矩阵,以及稀疏矩阵数据不平衡情况。换句话说,如果一个数据集是全连接的话就不需要 B B B了。

  • 正则化损失
    预防过拟合的情况。
    L r e g = 1 2 ∑ k = 1 K ( ∣ ∣ W ( k ) ∣ ∣ F 2 + ∣ ∣ W ^ ( k ) ∣ ∣ F 2 ) \\mathcalL_reg=\\frac12\\sum_k=1^K(||W^(k)||^2_F+||\\hatW^(k)||^2_F) Lreg=21k=1K(∣∣W(k)以上是关于KDD2016-Structural Deep Network Embedding的主要内容,如果未能解决你的问题,请参考以下文章

    文献总结SDNE:Structural Deep Network Embedding

    应用在大规模推荐系统,Facebook提出组合embedding方法 | KDD 2020

    使用 n-deep 包装器类型堆栈获取模式

    N皇后问题

    reinforcement learning和deep learning的区别

    Deep learning网络调参技巧