Adversarial Deep Network Embedding for Cross-network Node Classification
文章目录
题目:基于对抗性深度网络嵌入的跨网络节点分类
作者:Xiao Shen, Quanyu Dai, Fu-lai Chung, Kup-Sze Choi
来源:AAAI 2020
单位:香港理工大学
挑战
现有的域自适应算法普遍无法对网络结构信息进行建模,当前的网络嵌入模型主要针对单网络应用。
方法概述
给定一个具有完全标记节点的源网络和一个具有完全未标记节点的目标网络,我们的目标是学习合适的节点表示,基于这些表示,可以成功地利用来自源网络的大量标记数据来分类目标网络中的节点。为此,提出了一种对抗性跨网络深度网络嵌入(ACDNE)模型,创新性地将深度网络嵌入与对抗性域适应相结合。所提出的深度网络嵌入模块包含两个特征提取器,这两个特征提取器分别基于每个节点自身的属性和由相关联的拓扑邻近度加权的其邻居的属性来学习节点表示。然后,节点之间的属性亲合性和拓扑邻近性可以被很好地保留。利用相同的深度网络嵌入模块(即,共享的可训练参数)来生成源网络和目标网络的节点表示。此外,节点分类器由ACDNE并入,以利用来自源网络的监督信号来使节点表示对于节点分类具有标签区分性。
为了解决跨网络的分布差异,ACDNE结合了域鉴别器来与深度网络嵌入模块竞争。一方面,域鉴别器试图区分源网络的节点表示和目标网络的节点表示。另一方面,深度网络嵌入模块被训练来学习网络不变节点表示,以欺骗域鉴别器。最后,ACDNE可以获得标签区分和网络不变的节点表示,从而有效地解决跨网络节点分类问题。
问题定义
令 G = ( V , E , A , X , Y ) \mathcal{G}=(V,E,A,X,Y) G=(V,E,A,X,Y)表示一个有着节点集合 V V V和边集 E E E的网络。 A ∈ R n × n , X ∈ R n × w , Y ∈ R n × c A \in R^{n \times n}, X\in R^{n \times w}, Y \in R ^{n \times c} A∈Rn×n,X∈Rn×w,Y∈Rn×c 表示 G \mathcal{G} G 的拓扑邻接矩阵、节点属性矩阵和节点标签矩阵,其中 n n n表示节点数, w w w表示节点属性数, c c c表示 G \mathcal{G} G中节点标签的数量。 A , X , Y A,X,Y A,X,Y的第 i i i行用 a i , x i , y i a_i, x_i, y_i ai,xi,yi表示,它们分别表示节点 v i ∈ V v_i \in V vi∈V的拓扑邻接、属性和可观察的标签。在跨网络节点分类问题中,我们有一个完全标记的源网络 G s = ( V s , E s , A s , X s , Y s ) \mathcal{G}^s=(V^s,E^s,A^s,X^s,Y^s) Gs=(Vs,Es,As,Xs,Ys)和一个未标记的目标网络 G t = ( V t , E t , A t , X t ) \mathcal{G}^t=(V^t,E^t,A^t,X^t) Gt=(Vt,Et,At,Xt),其中两个网络的标签类别应当是相同的。另外, G s \mathcal{G}^s Gs和 G t \mathcal{G}^t Gt没有公共节点且两个网络没有边相连。当两个网络没有共享相同的节点属性集时,可以在来自源网络和来自目标网络的属性之间构建联合属性集。然后,跨网络嵌入可以基于联合属性集去学习。注意,网络连接性的数据分布,节点属性和节点标签在跨网络中通常是不同的。跨网络节点分类的目标是学习适当的节点表示,基于这些表示,来自源网络的大量标记信息可以被成功地利用来预测目标网络的节点标记。
ACDNE
Deep Network Embedding
深度网络嵌入模块包含两个特征提取器、串联层和成对约束。
Feature Extractors
FE1 with
l
f
l_f
lf hidden layers is constructed as:
h
f
1
(
k
)
(
x
i
)
=
R
e
L
U
(
h
f
1
(
k
−
1
)
(
x
i
)
W
f
1
(
k
)
+
b
f
1
(
k
)
)
,
1
≤
k
≤
l
f
,
(1)
h^{(k)}_{f_1}(x_i)=ReLU(h^{(k-1)}_{f_1}(x_i)W^{(k)}_{f_1}+b^{(k)}_{f_1}),1\leq k \leq l_f, \tag{1}
hf1(k)(xi)=ReLU(hf1(k−1)(xi)Wf1(k)+bf1(k)),1≤k≤lf,(1)
其中
h
f
1
(
0
)
(
x
i
)
=
x
i
∈
R
1
×
w
h^{(0)}_{f_1}(x_i)=x_i \in R^{1\times w}
hf1(0)(xi)=xi∈R1×w表示输入
v
i
v_i
vi的属性向量。
x
i
k
x_{ik}
xik是
v
i
v_i
vi的第
k
k
k个属性,并且
x
i
k
=
0
x_{ik}=0
xik=0表示
v
i
v_i
vi与第
k
k
k个属性无关。
h
f
1
(
k
)
(
x
i
)
∈
R
1
×
f
(
k
)
,
1
≤
k
≤
l
f
h^{(k)}_{f_1}(x_i) \in R^{1\times f(k)}, 1\leq k \leq l_f
hf1(k)(xi)∈R1×f(k),1≤k≤lf表示
v
i
v_i
vi通过FE1的第
k
k
k个隐藏层学习得到的潜在节点属性表示,
f
(
k
)
f(k)
f(k)是FE1的第
k
k
k个隐藏层的维度。
W
f
1
(
k
)
W^{(k)}_{f_1}
Wf1(k)和
b
f
1
(
k
)
b^{(k)}_{f_1}
bf1(k)表示FE1中第
k
k
k层的待学习的权重和偏参数。
R
e
L
U
(
⋅
)
ReLU(\cdot)
ReLU(⋅)是非线性的激活函数,它以
R
e
L
U
(
x
)
=
max
(
0
,
x
)
ReLU(x)=\max(0,x)
ReLU(x)=max(0,x)为特征。
FE2 with
l
f
l_f
lf hidden layers is constructed as:
h
f
2
(
k
)
(
n
i
)
=
R
e
L
U
(
h
f
2
(
k
−
1
)
(
n
i
)
W
f
2
(
k
)
+
b
f
2
(
k
)
)
,
1
≤
k
≤
l
f
,
(2)
h^{(k)}_{f_2}(n_i)=ReLU(h^{(k-1)}_{f_2}(n_i)W^{(k)}_{f_2}+b^{(k)}_{f_2}),1\leq k \leq l_f, \tag{2}
hf2(k)(ni)=ReLU(hf2(k−1)(ni)Wf2(k)+bf2(k)),1≤k≤lf,(2)
其中
h
f
1
(
0
)
(
n
i
)
=
n
i
∈
R
1
×
w
h^{(0)}_{f_1}(n_i)=n_i \in R^{1\times w}
hf1(0)(ni)=ni∈R1×w表示输入
v
i
v_i
vi的邻居属性向量。为了计算
n
i
n_i
ni,我们通过向更近的邻居分配更高的权重(即,拥有与
v
i
v_i
vi更高的拓扑接近度)来聚集邻居的属性,如下所示:
n
i
k
=
∑
j
=
1
,
j
≠
i
n
a
i
j
∑
g
=
1
,
g
≠
i
n
a
i
g
x
j
k
,
(3)
n_{ik}=\sum^{n}_{j=1,j \neq i}\frac{a_{ij}}{\sum^n_{g=1,g\neq i}a_{ig}}x_{jk},\tag{3}
nik=j=1,j=i∑n∑g=1,g=inaigaijxjk,(3)
其中
a
i
j
a_{ij}
aij表示
v
i
v_i
vi和
v
j
v_j
vj之间的拓扑接近度。在这项工作中,我们遵循(Cao, Lu, and Xu 2016; Shen et al 2019)采用PPMI指标来测量网络中
K
K
K步内节点之间的拓扑邻近性。
a
i
j
a_{ij}
aij的正值越大,表示
v
i
v_i
vi和
v
j
v_j
vj之间的网络关系越密切,而
a
i
j
=
0
a_{ij} = 0
aij=0表示
v
j
v_j
vj在
G
\mathcal{G}
G中的
K
K
K步内不是
v
i
v_i
vi的邻居。
Concatenation Layer
接下来,我们馈送由FE1学习的最深潜在节点属性表示,即
h
f
1
(
l
f
)
(
x
i
)
h^{(l_f)}_{f_1}(x_i)
hf1(lf)(xi),以及由FE2学习的最深潜在邻居属性表示,即
h
f
2
(
l
f
)
(
n
i
)
h^{(l_f)}_{f_2}(n_i)
hf2(lf)(ni)到如下的级联层:
e
i
=
R
e
L
U
(
[
h
f
1
(
l
f
)
(
x
i
)
,
h
f
2
(
l
f
)
(
n
i
)
]
W
c
+
b
c
)
,
(4)
e_i=ReLU([h^{(l_f)}_{f_1}(x_i),h^{(l_f)}_{f_2}(n_i)]W_c+b_c), \tag{4}
ei=ReLU([hf1(lf)(xi),hf2(lf)(ni)]Wc+bc),(4)
其中
e
i
∈
R
1
×
d
e_i\in R^{1\times d}
ei∈R1×d表示ACDNE最终学习的
v
i
v_i
vi的节点表示,
d
d
d是嵌入维数。
- 一方面,通过利用每个节点自己的属性作为FE1的输入,共享相似属性的节点将具有相似的潜在节点属性表示,无论它们是否具有网络连接。
- 另一方面,通过利用邻居的属性作为FE2中的输入,共享相似邻域的节点或其共享相似属性的邻居将具有相似的潜在邻居属性表示。
然后,通过整合由FE1和FE2学习的潜在表示来学习级联层之后的最终节点表示,可以很好地保持节点之间的属性亲和力和拓扑邻近性。
Pairwise Constraint
接下来,我们将以下成对约束合并到节点表示中,以显式保持每个网络中节点之间的拓扑邻近性:
L
p
=
1
n
s
∑
v
i
,
v
j
∈
V
s
a
i
j
∣
∣
e
i
−
e
j
∣
∣
2
+
1
n
t
∑
v
i
,
v
j
∈
V
t
a
i
j
∣
∣
e
i
−
e
j
∣
∣
2
,
(5)
\mathcal{L}_p=\frac{1}{n^s}\sum_{v_i,v_j\in V^s}a_{ij}||e_i-e_j||^2+\frac{1}{n^t}\sum{v_i,v_j\in V^t}a_{ij}||e_i-e_j||^2, \tag{5}
Lp=ns1vi,vj∈Vs∑aij∣∣ei−ej∣∣2+nt1∑vi,vj∈Vtaij∣∣ei−ej∣∣2,(5)
其中
n
s
n_s
ns和
n
t
n_t
nt分别表示
G
s
\mathcal{G}^s
Gs和
G
t
\mathcal{G}^t
Gt的节点数。通过最小化
L
p
\mathcal{L}_p
Lp,源网络或目标网络中连接更强的节点将具有更相似的节点表示。为了简单起见,我们将与前述深度网络嵌入模块相关联的所有可训练参数表示为
θ
e
=
{
{
W
f
1
(
k
)
,
b
f
1
(
k
)
,
W
f
2
(
k
)
,
b
f
2
(
k
)
}
k
=
1
l
f
,
W
c
,
b
c
}
\theta_e=\{\{W^{(k)}_{f_1},b^{(k)}_{f_1},W^{(k)}_{f_2},b^{(k)}_{f_2}\}^{l_f}_{k=1},W_c,b_c\}
θe={{Wf1(k),bf1(k),Wf2(k),bf2(k)}k=1lf,Wc,bc}.
Node Classifier
为了使节点表示区分标签,我们通过在深度网络嵌入模块的顶部添加节点分类器来合并来自源网络的监督信号,如下所示:
y
^
i
=
ϕ
(
e
i
W
y
+
b
y
)
,
(6)
\hat{y}_i = \phi(e_iW_y+b_y), \tag{6}
y^i=ϕ(eiWy+by),(6)
其中
y
^
i
∈
R
1
×
c
\hat{y}_i\in R^{1\times c}
y^i∈R1×c表示
v
i
v_i
vi在
c
c
c个类别标签上的预测概率。
ϕ
(
⋅
)
\phi(\cdot)
ϕ(⋅)是分类器的输出函数,它可以采用Softmax函数用于multi-class分类或者采用Sigmoid函数用于multi-lable分类。
θ
y
=
{
W
y
,
b
y
}
\theta_y=\{W_y,b_y\}
θy={Wy,by}表示与节点分类相关的待训练的参数。通过使用源网络中所有带标签节点进行训练,Softmax交叉熵损失被定义成一个multi-classn节点分类,如下:
L
y
=
−
1
n
s
∑
v
i
∈
V
s
∑
k
=
1
c
y
i
k
log
(
y
^
i
k
)
,
(7)
\mathcal{L}_y = -\frac{1}{n^s}\sum_{v_i \in V^s}\sum^{c}_{k=1}y_{ik}\log(\hat{y}_{ik}), \tag{7}
Ly=−ns1vi∈Vs∑k=1∑cyiklog(y^ik),(7)
其中
y
i
k
y_{ik}
yik表示
v
i
v_i
vi的ground-truth标签,如果
v
i
v_i
vi与标签
k
k
k相关,则
y
i
k
=
1
y_{ik}=1
yik=1,否则
y
i
k
=
0
y_{ik}=0
yik=0。
y
^
i
k
\hat{y}_{ik}
y^ik表示
v
i
v_i
vi的在类别
k
k
k下的预测概率。另外,对于multi-lable节点分类,one-vs-rest Sigmoid交叉熵损失被定义为:
L
y
=
−
1
n
s
∑
v
i
∈
V
s
∑
k
=
1
c
y
i
k
log
(
y
^
i
k
)
+
(
1
−
y
i
k
)
log
(
1
−
y
^
i
k
)
,
(8)
\mathcal{L}_y = -\frac{1}{n^s}\sum_{v_i \in V^s}\sum^{c}_{k=1}y_{ik}\log(\hat{y}_{ik})+(1-y_{ik})\log(1-\hat{y}_{ik}), \tag{8}
Ly=−ns1vi∈Vs∑k=1∑cyiklog(y^ik)+(1−yik)log(1−y^ik),(8)
Adversarial Domain Adaptation
接下来,我们采用一种对抗的域自适应方法来使ACDNE网络学习的节点表示不变。首先,可以将深度网络嵌入模块学习到的节点表示馈送给域鉴别器,以预测节点来自哪个网络,如下:
h
d
(
k
)
(
e
i
)
=
R
e
L
U
(
h
d
(
k
−
1
)
(
e
i
)
W
d
(
k
)
+
b
d
(
k
)
)
,
1
≤
k
≤
l
d
,
d
i
^
=
S
o
f
t
m
a
x
(
h
d
l
d
(
e
i
)
W
d
(
l
d
+
1
)
+
b
d
(
l
d
+
1
)
)
,
(9)
h^{(k)}_d(e_i)=ReLU(h^{(k-1)}_d(e_i)W^{(k)}_d+b^{(k)}_d), 1\leq k\leq l_d, \\ \hat{d_i}=Softmax(h^{l_d}_d(e_i)W^{(l_d+1)}_d+b^{(l_d+1)}_d), \tag{9}
hd(k)(ei)=ReLU(hd(k−1)(ei)Wd(k)+bd(k)),1≤k≤ld,di^=Softmax(hdld(ei)Wd(ld+1)+bd(ld+1)),(9)
其中
h
d
(
0
)
(
e
i
)
=
e
i
,
h
d
(
k
)
(
e
i
)
∈
R
1
×
d
(
k
)
h^{(0)}_d(e_i)=e_i, h^{(k)}_d(e_i) \in R^{1\times d(k)}
hd(0)(ei)=ei,hd(k)(ei)∈R1×d(k)表示
v
i
v_i
vi在域鉴别器的第
k
k
k个隐藏层下所学习到的域表示,
d
(
k
)
d(k)
d(k)是第
k
k
k个隐藏层的维度,
l
d
l_d
ld是域鉴别器中的隐藏层数。
θ
d
=
{
W
d
(
k
)
,
b
d
(
k
)
}
k
=
1
l
d
+
1
\theta_d=\{W^{(k)}_d,b_d^{(k)}\}^{l_d+1}_{k=1}
θd={Wd(k),bd(k)}k=1ld+1表示域鉴别器中待训练的参数。然后,通过使用源网络和目标网络中的节点一同训练,域分类损失被定义成为:
L
d
=
−
1
n
s
+
n
t
∑
v
i
∈
{
V
S
∪
V
t
}
(
1
−
d
i
)
log
(
1
−
d
^
i
)
+
d
i
log
(
d
^
i
)
,
(10)
\mathcal{L}_d = -\frac{1}{n^s+n^t}\sum_{v_i \in\{V^S\cup V^t\}}(1-d_i)\log(1-\hat{d}_i)+d_i\log(\hat{d}_i), \tag{10}
Ld=−ns+nt1vi∈{VS∪Vt}∑(1−di)log(1−d^i)+dilog(d^i),(10)
其中
d
i
d_i
di是
v
i
v_i
vi的ground-truth域标签,如果
v
i
∈
V
t
v_i \in V^t
vi∈Vt则
d
i
=
1
d_i=1
di=1,并且
v
i
∈
V
S
v_i \in V^S
vi∈VS则
d
i
=
0
d_i=0
di=0。
d
^
i
\hat{d}_i
d^i表示
v
i
v_i
vi来自目标网络的预测概率。为了使节点表示网络不变,域鉴别器和深度网络嵌入模块以对抗的方式相互竞争。
- 一方面, min θ d { L d } \min_{\theta_d}\{\mathcal{L}_d\} minθd{Ld}使得域鉴别器能够准确地区分源网络的节点表示和目标网络的节点表示。
- 另一方面, min θ d { − L d } \min_{\theta_d}\{-\mathcal{L}_d\} minθd{−Ld}使得深度网络嵌入模块被训练成通过跨网络不可区分的生成节点表示来欺骗域鉴别器。
Joint Training
通过集成深度网络嵌入、节点分类器和对立域适应,ACDNE的目标是优化以下minimax目标:
min
θ
e
,
θ
y
{
L
y
+
p
L
p
+
λ
max
θ
d
{
−
L
d
}
}
,
(11)
\min_{\theta_e,\theta_y}\{\mathcal{L}_y+p\mathcal{L}_p+\lambda\max_{\theta_d}\{-\mathcal{L}_d\}\}, \tag{11}
θe,θymin{Ly+pLp+λθdmax{−Ld}},(11)
其中
p
,
λ
p,\lambda
p,λ是平衡不同项效果的trade-off参数。在这项工作中,我们遵循(Ganin et al 2016)在深度网络嵌入模块和域鉴别器之间插入梯度反转层(GRL),以便在反向传播期间同时更新它们。GRL对域分类损失
L
d
\mathcal{L}_d
Ld对网络嵌入参数
θ
e
\theta_e
θe的偏导数求逆,并将它们乘以系数
λ
\lambda
λ。然后,可以通过随机梯度下降(SGD)优化ACDNE,如下所示:
θ
e
←
θ
e
−
μ
(
∂
L
y
∂
θ
e
+
p
∂
L
p
∂
θ
e
−
λ
∂
L
d
∂
θ
e
)
,
θ
y
←
θ
y
−
μ
∂
L
y
∂
θ
y
,
θ
d
←
θ
d
−
μ
∂
L
d
∂
θ
d
,
(12)
\theta_{e} \leftarrow \theta_{e}-\mu\left(\frac{\partial \mathcal{L}_{y}}{\partial \theta_{e}}+p \frac{\partial \mathcal{L}_{p}}{\partial \theta_{e}}-\lambda \frac{\partial \mathcal{L}_{d}}{\partial \theta_{e}}\right), \\ \theta_{y} \leftarrow \theta_{y}-\mu \frac{\partial \mathcal{L}_{y}}{\partial \theta_{y}}, \\ \theta_{d} \leftarrow \theta_{d}-\mu \frac{\partial \mathcal{L}_{d}}{\partial \theta_{d}}, \tag{12}
θe←θe−μ(∂θe∂Ly+p∂θe∂Lp−λ∂θe∂Ld),θy←θy−μ∂θy∂Ly,θd←θd−μ∂θd∂Ld,(12)
其中
μ
\mu
μ表示学习率。算法1显示了ACDNE的训练过程。首先,在每个mini-batch中,我们分别从源网络和目标网络中抽取一半的节点。然后,在第3-10行中,使用相同的深度网络嵌入模块来学习两个网络的节点表示。然后,在行11-13中为每个小批量计算成对约束损失、节点分类损失和域分类损失。接下来,ACDNE的可训练参数由第14行中的SGD更新。在ACDNE最终收敛或达到最大训练迭代后,可以使用优化的网络嵌入参数
θ
e
∗
\theta^*_e
θe∗来生成跨网络的标签区分和网络不变的节点表示,即
{
e
i
s
}
i
=
1
n
s
\{e^s_i\}^{n^s}_{i=1}
{eis}i=1ns和
{
e
j
t
}
j
=
1
n
t
\{e^t_j\}^{n^t}_{j=1}
{ejt}j=1nt。接下来,优化的节点分类参数
θ
y
∗
\theta^*_y
θy∗将被用在
{
e
j
t
}
j
=
1
n
t
\{e^t_j\}^{n^t}_{j=1}
{ejt}j=1nt上,以预测目标网络的节点标签。