SNDE 算法原理
SNDE 可以看作是基于 LINE 的扩展,同时也是第一个将深度学习应用于网络表示学习中的方法。 不清楚 LINE 的同学可以参考
SDNE 使用一个自动编码器结构来同时优化 1 阶和 2 阶相似度 (LINE 是分别优化的),学习得到的向量表示能够保留局部和全局结构,并且对稀疏网络具有鲁棒性。 这个想法不错
相似度定义
SDNE 中的相似度定义和 LINE 是一样的。
- 一阶相似度衡量的是相邻的两个顶点对之间相似性
- 二阶相似度衡量的是,两个顶点他们的邻居集合的相似程度。
二阶相似度优化目标
L2nd=n∑i=1‖ˆxi−xi‖22
输入:邻接矩阵
对于第 i 个顶点,有 xi=si,每个 si 都包含了顶点 i 的邻居结构信息。
L2nd=n∑i=1‖(ˆxi−xi)⊙bi‖22=‖(ˆX−X)⊙B‖2F
bi={bi,j}nj=1,若 si,j=0,则 bi,j=1 ,否则 bi,j=β>1
一阶相似度优化目标
L1st=n∑i,j=1si,j‖y(K)i−y(K)j‖22=n∑i,j=1si,j‖yi−yj‖22
L1st=n∑i,j=1‖yi−yj‖22=2tr(YTLY)
整体优化目标
Lmix=L2nd+αL1st+νLreg
v1.5.2