【网络表示学习】SDNE

SDNE是KDD 2016上提出的一种将深度学习应用于网络表示学习的方法,通过自动编码器结构同时优化1阶和2阶相似度,保留局部和全局结构。它解决了LINE分别优化的问题,对稀疏网络有鲁棒性。模型由监督的1阶相似度模块和无监督的深层自编码器组成,用于2阶相似度建模。最终,中间层的向量作为节点的网络表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:Structural Deep Network Embedding

作者:Daixin Wang, Peng Cui, Wenwu Zhu

来源:KDD 2016

源码:https://github.com/suanrong/SDNE

SDNE是第一个将深度学习应用于网络表示学习中的方法。SDNE使用一个自动编码器结构来同时优化1阶和2阶相似度(LINE是分别优化的),学习得到的向量表示能够保留局部和全局结构,并且对稀疏网络具有鲁棒性。

和之前使用浅层神经网络的方法(deepwalk)不同, SDNE使用深层神经网络对节点表示间的非线性进行建模。整个模型可以被分为两个部分: 一个是由 Laplace 矩阵监督的建模第一级相似度的模块, 另一 个是由无监督的深层自编码器对第二级相似度关系进行建模. 最终 SDNE 算法将深层自编码器的中间层作为节点的网络表示。

模型

相似度定义

SDNE可以看做是基于LINE的扩展,相似度定义和LINE是一样的。1阶相似度衡量的是相邻的两个顶点对之间相似性(本地网络结构)。2阶相似度衡量的是,两个顶点他们的邻居集合的相似程度(全局网络结构)。

SDNE是一个半监督模型,其中无监督的部分通过重建每个节点的邻居结构保留图的二阶相似度;对于小部分节点对,利用其一阶相似度作为监督信息进行优化。

二阶相似度优化目标

L = ∑ i = 1 n ∥ x ^ i − x i ∥ 2 2 \mathcal{L}=\sum_{i=1}^{n}\left\|\hat{\mathbf{x}}_{i}-\mathbf{x}_{i}\right\|_{2}^{2} L=i=1nx^ixi22

这里我们使用图的邻接矩阵进行输入,对于第 i i i 个顶点,有 x i = s i x_i = s_i xi=si,每一个 s i s_i si 都包含了顶点 i i i 的邻居结构信息,所以这样的重构过程能够使得结构相似的顶点具有相似的embedding。

这里存在的一个问题是由于图的稀疏性,邻接矩阵 S S S中的非零元素是远远少于零元素的,那么对于神经网络来说只要全部输出0也能取得一个不错的效果,这不是我们想要的。

文章给出的一个方法是使用带权损失函数,对于非零元素具有更高的惩罚系数。 修正后的损失函数为
L 2 n d = ∑ i = 1 n ∥ ( x ^ i − x i ) ⊙ b i ∥ 2 2 = ∥ ( X ^ − X ) ⊙ B ∥ F 2 \begin{aligned} \mathcal{L}_{2 n d} &=\sum_{i=1}^{n}\left\|\left(\hat{\mathbf{x}}_{i}-\mathbf{x}_{i}\right) \odot \mathbf{b}_{\mathbf{i}}\right\|_{2}^{2} \\ &=\|(\hat{X}-X) \odot B\|_{F}^{2} \end{aligned} L2nd=i=1n(x^ixi)bi22=(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值