SDNE理论
1)理论
SDNE(Structural Deep Network Embedding )是和node2vec并列的工作,均发表在2016年的KDD会议中。可以看作是基于LINE的扩展,同时也是第一个将深度学习应用于网络表示学习中的方法。
之前的Deepwalk,LINE,node2vec,struc2vec都使用了浅层的结构, 浅层模型往往不能捕获高度非线性的网络结构。即产生了SDNE方法, 使用多个非线性层来捕获node的embedding。
SDNE使用一个自动编码器结构来同时优化1阶和2阶相似度(LINE是分别优化的)。简单来说,一阶相似度衡量的是相邻的两个顶点对之间相似性。二阶相似度衡量的是,两个顶点他们的邻居集合的相似程度。
2)优化目标
二阶相似度优化
L 2 n d = ∑ i = 1 n ∣ ∣ x ^ i − x i ∣ ∣ 2 2 L_{2nd}=\sum^n_{i=1}||\hat{x}_i-x_i||^2_2 L2nd=i=1∑n∣∣x^i−xi∣∣22
这里我们使用图的邻接矩阵 S S S进行输入,SDNE直接使用一个深度自编码器,学习网络邻接矩阵的编码与重构。对于第 i i i个顶点,有 x i = s i x_i=s_i xi=si,每一个 s i s_i si所以这样的重构过程能够使得结构相似的顶点具有相似的embedding表示向量。
文章给出的一个方法是使用带权损失函数,对于非零元素具有更高的惩罚系数。 修正后的损失函数为:
L
2
n
d
=
∑
i
=
1
n
∣
∣
(
x
^
i
−
x
i
)
⊙
b
i
∣
∣
2
2
=
∣
∣
(
X
^
i
−
X
i
)
⊙
B
∣
∣
2
2
L_{2nd}=\sum^n_{i=1}||(\hat{x}_i-x_i)\odot {\bf b_i}||^2_2=||(\hat{X}_i-X_i)\odot {\bf B}||^2_2
L2nd=i=1∑n∣∣(x^i−xi)⊙bi∣∣22=∣∣(X^i−Xi)⊙B∣∣22
其中,
⊙
\odot
⊙为逐元素积,
b
i
=
{
b
i
,
j
}
j
=
1
n
{\bf b_i}=\lbrace{b_{i,j}}\rbrace ^n_{j=1}
bi={bi,j}j=1n,若
s
i
,
j
=
0
s_{i,j}=0
si,j=0,则
b
i
,
j
=
1
b_{i,j}=1
bi,j=1,否则
b
i
,
j
=
β
>
1
b_{i,j}=\beta>1
bi,j=β>1
一阶相似度优化
针对一阶相似度的损失函数,其实很直接,因为我们最终是将自编码器的隐层当作最终的节点Embedding。
对于一阶相似度,损失函数定义如下:
L
1
s
t
=
∑
i
,
j
=
1
n
s
i
,
j
∣
∣
y
i
(
K
)
−
y
j
(
K
)
∣
∣
2
2
=
∑
i
,
j
=
1
n
s
i
,
j
∣
∣
y
i
−
y
j
∣
∣
2
2
L_{1st}=\sum^n_{i,j=1}s_{i,j}||{\bf y_i}^{(K)}-{\bf y_j}^{(K)}||^2_2=\sum^n_{i,j=1}s_{i,j}||{\bf y_i}-{\bf y_j}||^2_2
L1st=i,j=1∑nsi,j∣∣yi(K)−yj(K)∣∣22=i,j=1∑nsi,j∣∣yi−yj∣∣22
L
1
s
t
L_{1st}
L1st还可以表示为:
L
1
s
t
=
∑
i
,
j
=
1
n
s
i
,
j
∣
∣
y
i
−
y
j
∣
∣
2
2
=
2
t
r
(
Y
T
L
Y
)
L_{1st}=\sum^n_{i,j=1}s_{i,j}||{\bf y_i}-{\bf y_j}||^2_2=2tr(Y^TLY)
L1st=i,j=1∑nsi,j∣∣yi−yj∣∣22=2tr(YTLY)
其中
L
L
L是图对应的拉普拉斯矩阵,
L
=
D
−
S
L=D-S
L=D−S,
D
D
D是图中顶点的度矩阵,
S
S
S是邻接矩阵,
D
i
,
i
=
∑
j
s
i
,
j
D_{i,i}=\underset{j}{\sum}s_{i,j}
Di,i=j∑si,j
整体优化目标
联合优化的损失函数为 :
L
m
i
x
=
L
2
r
d
+
α
L
1
s
t
+
ν
L
r
e
g
L_{mix}=L_{2rd}+\alpha L_{1st}+\nu L_{reg}
Lmix=L2rd+αL1st+νLreg
L
r
e
g
L_{reg}
Lreg是正则化项,
α
\alpha
α为控制一阶损失的参数,
ν
\nu
ν为控制1阶损失的参数。
L
r
e
g
=
1
2
∑
k
=
1
k
(
∣
∣
W
(
k
)
∣
∣
F
2
+
∣
∣
W
^
(
k
)
∣
∣
F
2
)
L_{reg}=\frac{1}{2}\sum^k_{k=1}(||W^{(k)}||^2_F+||\hat{W}^{(k)}||^2_F)
Lreg=21k=1∑k(∣∣W(k)∣∣F2+∣∣W^(k)∣∣F2)
Graph Embedding——(1)DeepWalk理论
Graph Embedding——(2)LINE理论
Graph Embedding——(3)Node2vec理论
Graph Embedding——(4)Struc2vec理论
Graph Embedding常见类型的理论详解