MetaPath2Vec
论文名称:metapath2vec: Scalable Representation Learning for Heterogeneous Networks
论文地址:https://ericdongyx.github.io/papers/KDD17-dong-chawla-swami-metapath2vec.pdf
我们研究是解决异构网络模型的学习问题。当前卷积操作不适合处理多种类型的节点和边。我们开发了两种可扩展的表示学习模型,称作metapath2vec 和metapath2vec++ 。metapath2vec利用随机游走的方式构建节点的异构邻居,然后利用skipgram模型学习节点embedding。metapathvec++同时进行异构网路结构和语义关系的学习。这个embedding不仅可以用于节点的分类输入、聚类或者相似度搜索,而且可以学习不同网络结构和语义信息。
1 PROBLEM DEFINITION
Heterogeneous Network是指图
G
=
(
V
,
E
,
T
)
G=(V,E,T)
G=(V,E,T)中的每个节点
v
v
v和边
e
e
e存在如下的映射函数:
?
(
v
)
:
V
→
T
V
\phi(v):V\rightarrow T_V
?(v):V→TV?和
?
(
e
)
:
E
→
T
E
\phi(e):E\rightarrow T_E
?(e):E→TE?。
T
V
T_V
TV?和
T
E
T_E
TE?是指节点和边类型的集合,其中
∣
T
V
∣
+
∣
T
E
∣
>
2
|T_V|+|T_E|\gt 2
∣TV?∣+∣TE?∣>2。
Heterogeneous Network Representation Learning: 给定异构网络G,任务是学习隐向量
X
∈
R
∣
V
∣
×
d
,
d
?
∣
V
∣
\mathrm{X} \in \mathbb{R}^{|V| \times d}, d \ll|V|
X∈R∣V∣×d,d?∣V∣,以捕捉它们之间的结构和语义的关系。
对于异构网络学习的挑战在于邻居节点的定义和为了有效地学习多种类型接节点之间的结构和语义关系,如何进行模型的优化两个方面。
2 THE METAPATH2VEC FRAMEWORK
这个框架的主要目的是在考虑节点和边的类型的情况下,学习异构网络的节点表示,最大化网路概率。
2.1 Homogeneous Network Embedding
DeepWalk和Node2Vec将文本中word-context应用到网络中。采用随机游走获得上下文,然后使用skip-gram模型学习节点的表征,也可以用于上下文节点结构预测(网络中,我们称作邻居节点)。给定
G
=
(
V
,
E
)
G=(V,E)
G=(V,E), 我们的目标是根据局部的结构最大化网络概率:
arg
?
max
?
θ
∏
v
∈
V
∏
c
∈
N
(
v
)
p
(
c
∣
v
;
θ
)
(1)
\arg \max _{\theta} \prod_{v \in V} \prod_{c \in N(v)} p(c \mid v ; \theta)\tag{1}
argθmax?v∈V∏?c∈N(v)∏?p(c∣v;θ)(1) 其中,
N
(
v
)
N(v)
N(v)是指在网络
G
G
G中,节点
v
v
v的邻居节点的数量,邻居的定义存在多种方式,例如节点
v
v
v的one-hop邻居。
p
(
c
∣
v
;
θ
)
p(c|v;\theta)
p(c∣v;θ)是指在给定节点
v
v
v, 上下文存在节点
c
c
c的条件概率。
2.2 Heterogeneous Network Embedding: metapath2vec
为了对节点的异构邻居进行建模,methpath2vec引进异构skip-gram模型。为了将异构网络使用skip-gram模型,我们提出在异构网络中meta-path-based随机游走方式。
Heterogeneous Skip-Gram. 在metapath2vec中,我们使用skip-gram学习异构网络
G
=
(
V
,
E
,
T
)
G=(V,E,T)
G=(V,E,T)的节点表示,其中
∣
T
V
∣
>
1
|T_V|>1
∣TV?∣>1, 在给定节点
v
v
v, 最大化异构上下文
N
t
(
v
)
,
t
∈
T
v
N_t(v),t\in T_v
Nt?(v),t∈Tv?:
arg
?
max
?
θ
∑
v
∈
V
∑
t
∈
T
V
∑
c
t
∈
N
t
(
v
)
log
?
p
(
c
t
∣
v
;
θ
)
(2)
\arg \max _{\theta} \sum_{v \in V} \sum_{t \in T_{V}} \sum_{c_{t} \in N_{t}(v)} \log p\left(c_{t} \mid v ; \theta\right)\tag{2}
argθmax?v∈V∑?t∈TV?∑?ct?∈Nt?(v)∑?logp(ct?∣v;θ)(2) 其中,
N
t
(
v
)
N_t(v)
Nt?(v)是指节点
v
v
v的
t
t
h
t^{th}
tth类型的邻居节点。
p
(
c
t
∣
v
;
θ
)
p(c_t|v;\theta)
p(ct?∣v;θ)通常是softmax方程:
p
(
c
t
∣
v
;
θ
)
=
e
X
c
t
?
X
v
∑
u
∈
V
e
X
u
?
X
v
p\left(c_{t} \mid v ; \theta\right)=\frac{e^{X_{c_{t}} \cdot X_{v}}}{\sum_{u \in V} e^{X_{u}} \cdot X_{v}}
p(ct?∣v;θ)=∑u∈V?eXu??Xv?eXct???Xv??,其中
X
v
X_v
Xv?是
X
X
X的
v
t
h
v^{th}
vth行,代表节点节点
v
v
v的embedding。如Figure2(a),authors节点
a
4
a_4
a4?的邻居靠近其他authors
e
.
g
.
a
2
,
a
3
&
a
5
e.g. a_2,a_3\&a_5
e.g.a2?,a3?&a5?, venues (
e
.
g
.
,
A
C
L
&
K
D
D
e.g., ACL \& KDD
e.g.,ACL&KDD),organizations (
C
M
U
&
M
I
T
CMU\&MIT
CMU&MIT)和papers (
e
.
g
.
,
p
2
&
p
3
e.g., p_2\&p_3
e.g.,p2?&p3?)。
为了更加高效地优化,我们采用了负采样,只有一小部分节点会从网络采样出来,然后进行softmax。我们负采样数量为
M
M
M, Eq.2可以更新为如下形式
log
?
σ
(
X
c
t
?
X
v
)
+
∑
m
=
1
M
E
u
m
~
P
(
u
)
[
log
?
σ
(
?
X
u
m
?
X
v
)
]
\log \sigma\left(X_{c_{t}} \cdot X_{v}\right)+\sum_{m=1}^{M} \mathbb{E}_{u^{m} \sim P(u)}\left[\log \sigma\left(-X_{u^{m}} \cdot X_{v}\right)\right]
logσ(Xct???Xv?)+m=1∑M?Eum~P(u)?[logσ(?Xum??Xv?)] 其中,
σ
(
x
)
=
1
1
+
e
?
x
\sigma(x)=\frac{1}{1+e^{-x}}
σ(x)=1+e?x1?,
P
(
u
)
P(u)
P(u)是预定义的分布, 会从中采样出M个负样本节点
u
m
u^m
um。metapath2vec将不同类型的节点看作同质的,构建节点的频率分布,没有考虑他们的节点类型。
Meta-Path-Based Random Walks. 如何在图上使用skip-gram,DeepWalk和Node2Vec使用random walkers将游走的路径合并到neighborhood function.
如果我们将random walkers应用到异构网络中,产生的路径包含多种类型的节点。在step
i
i
i, 转移概率
p
(
v
i
+
1
∣
v
i
)
p(v^{i+1}|v^i)
p(vi+1∣vi)是基于节点
v
i
v^i
vi产生的标准化概率,没有考虑节点类型。但是,Sun et al提出,随机游走会使得结果偏向那些经常在路径中出现的节点,这些少数的节点会主导路径节点占比。
考虑到这个问题,我们设计meta-path-based 随机游走方式,用来捕捉不同类型节点之间语义和结构信息,将异构网络结构应用到metapath2vec的skip-gram中。
形式上,一个meta-path scheme
P
\mathcal{P}
P定义为如下形式:
V
1
?
R
1
V
2
?
R
2
?
V
t
?
R
t
V
t
+
1
?
?
R
l
?
1
V
l
V_{1} \stackrel{R_{1}}{\longrightarrow} V_{2} \stackrel{R_{2}}{\longrightarrow} \cdots V_{t} \stackrel{R_{t}}{\longrightarrow} V_{t+1} \cdots \stackrel{R_{l-1}}{\longrightarrow} V_{l}
V1??R1??V2??R2???Vt??Rt??Vt+1???Rl?1??Vl? 其中,
R
=
R
1
°
R
2
°
?
°
R
l
?
1
R=R_{1} \circ R_{2} \circ \cdots \circ R_{l-1}
R=R1?°R2?°?°Rl?1?是节点
V
1
V_1
V1?和
V
l
V_l
Vl?之间复合关系。以Figure 2(a)为例,meta-path “APA”代表两者作者
(
A
)
(A)
(A)是论文
(
P
)
(P)
(P)的共同作者,两者是coauther关系。"APVPA"代表两个作者
(
A
)
(A)
(A)在同一地点
(
V
)
(V)
(V)发表论文
(
P
)
(P)
(P)。基于异构网络,使用meta-paths可以挖掘很多有价值的信息。
接下来,我们使用meta-paths去引导random walkers在异构网络上进行随机游走。异构网络为
G
=
(
V
,
E
,
T
)
G=(V,E,T)
G=(V,E,T),meta-path scheme
P
:
V
1
?
R
1
V
2
?
R
2
?
V
t
?
R
t
V
t
+
1
?
?
R
l
?
1
V
l
\mathcal{P}: V_{1} \stackrel{R_{1}}{\longrightarrow} V_{2} \stackrel{R_{2}}{\longrightarrow} \cdots V_{t} \stackrel{R_{t}}{\longrightarrow} V_{t+1} \cdots \stackrel{R_{l-1}}{\longrightarrow} V_{l}
P:V1??R1??V2??R2???Vt??Rt??Vt+1???Rl?1??Vl?, 在
i
i
i 步转移概率定义如下:
p
(
v
i
+
1
∣
v
t
i
,
P
)
=
{
1
∣
N
t
+
1
(
v
t
i
)
∣
(
v
i
+
1
,
v
t
i
)
∈
E
,
?
(
v
i
+
1
)
=
t
+
1
0
(
v
i
+
1
,
v
t
i
)
∈
E
,
?
(
v
i
+
1
)
≠
t
+
1
0
(
v
i
+
1
,
v
t
i
)
?
E
(3)
p\left(v^{i+1} \mid v_{t}^{i}, \mathcal{P}\right)=\left\{\begin{array}{cl} \frac{1}{\left|N_{t+1}\left(v_{t}^{i}\right)\right|} & \left(v^{i+1}, v_{t}^{i}\right) \in E, \phi\left(v^{i+1}\right)=t+1 \\ 0 & \left(v^{i+1}, v_{t}^{i}\right) \in E, \phi\left(v^{i+1}\right) \neq t+1 \\ 0 & \left(v^{i+1}, v_{t}^{i}\right) \notin E \end{array}\right.\tag{3}
p(vi+1∣vti?,P)=??????∣Nt+1?(vti?)∣1?00?(vi+1,vti?)∈E,?(vi+1)=t+1(vi+1,vti?)∈E,?(vi+1)?=t+1(vi+1,vti?)∈/?E?(3) 其中,
v
t
i
∈
V
t
v_t^i \in V_t
vti?∈Vt?,
N
t
+
1
(
v
t
i
)
N_{t+1}(v_t^i)
Nt+1?(vti?)指节点
v
t
i
v_t^i
vti? 邻居中为
V
t
+
1
V_{t+1}
Vt+1?类型的节点集合。换句话说,
v
i
+
1
∈
V
t
+
1
v^{i+1}\in V_{t+1}
vi+1∈Vt+1?, walker的流程取决于预定义的meta-path
P
\mathcal{P}
P。除此之外,meta-paths通常是对称的,第一个节点类型
V
1
V_1
V1?和最后一个节点类型
V
l
V_l
Vl?是相同的,这样可以对random walkers进行循环引导,举例来说:
p
(
v
i
+
1
∣
v
t
i
)
=
p
(
v
i
+
1
∣
v
1
i
)
,
?if?
t
=
l
(4)
p\left(v^{i+1} \mid v_{t}^{i}\right)=p\left(v^{i+1} \mid v_{1}^{i}\right), \text { if } t=l\tag{4}
p(vi+1∣vti?)=p(vi+1∣v1i?),?if?t=l(4) 基于meta-path-based随机游走策略, 使用skip-gram模型能够学习到不同节点类型的语义关系。举例来说,如Figure 2, 在传统的随机游走模型, walker在节点
a
4
a_4
a4?, 从CMU节点转移过来,
a
4
a_4
a4?的周围存在
a
2
,
a
3
,
a
5
,
p
2
,
p
3
,
C
M
U
a_{2}, a_{3}, a_{5}, p_{2}, p_{3}, CMU
a2?,a3?,a5?,p2?,p3?,CMU, 在meta-path scheme “OAPVPAO”,由于
a
4
a_4
a4?的节点类型为A, 下一步walker更偏向paper nodes(P)。
2.3 metapath2vec++
在Eq.2 中, 当构建邻居方程
N
t
(
v
)
N_t(v)
Nt?(v)时, metapath2vec会根据给定的节点类型区分上下文节点。然而,softmax函数忽略了节点类型。换句话说,给定节点
v
v
v, 推测特定类型的上下文节点
c
t
∈
N
t
(
v
)
c_t\in N_t(v)
ct?∈Nt?(v), metapath2vec实际使用所有类型的邻居节点,包括
t
t
t类型和其他类型的节点。
Heterogeneous negative sampling. 我们更建议使用metapath2vec++框架,因为softmax函数是根据上下文节点
c
t
c_t
ct?的类型进行标准化的。特别地,
p
(
c
t
∣
v
;
θ
)
p(c_t|v;\theta)
p(ct?∣v;θ)是根据节点类型
t
t
t进行如下调整:
p
(
c
t
∣
v
;
θ
)
=
e
X
c
t
?
X
v
∑
u
t
∈
V
t
e
X
u
t
?
X
v
(5)
p\left(c_{t} \mid v ; \theta\right)=\frac{e^{X_{c_{t}} \cdot X_{v}}}{\sum_{u_{t} \in V_{t}} e^{X_{u_{t}}} \cdot X_{v}}\tag{5}
p(ct?∣v;θ)=∑ut?∈Vt??eXut???Xv?eXct???Xv??(5) 其中,
V
t
V_t
Vt?是网络中
t
t
t类型的节点集合。metapath2vec++为skipgram模型的输出层中每种类型的邻居节点指定一组多项式分布。metapath2vec、node2vec和DeepWalk输出多项式分布维度等于网络中节点的数量。然而,metapath2vec++的skip-gram模型 ,
t
t
t 类型的节点维度受
t
t
t类型节点数量的影响。如Figure2?所示,
a
4
a_4
a4?作为输入层的目标节点。metapath2vec++输出4种多项式分布集合,每一种和他们的邻居类型对应-venues V, authors A, organizations O, 和papers P.
受PTE的启发, 抽样的分布也是根据预测的邻居节点
c
t
c_t
ct?指定的,如
P
t
(
?
)
P_t(\cdot)
Pt?(?),因此存在如下目标函数:
O
(
X
)
=
log
?
σ
(
X
c
t
?
X
v
)
+
∑
m
=
1
M
E
u
t
m
~
P
t
(
u
t
)
[
log
?
σ
(
?
X
u
t
m
?
X
v
)
]
(6)
O(\mathrm{X})=\log \sigma\left(X_{c_{t}} \cdot X_{v}\right)+\sum_{m=1}^{M} \mathbb{E}_{u_{t}^{m} \sim P_{t}\left(u_{t}\right)}\left[\log \sigma\left(-X_{u_{t}^{m}} \cdot X_{v}\right)\right]\tag{6}
O(X)=logσ(Xct???Xv?)+m=1∑M?Eutm?~Pt?(ut?)?[logσ(?Xutm???Xv?)](6)
梯度推导如下:
?
O
(
X
)
?
X
u
t
m
=
(
σ
(
X
u
t
m
?
X
v
?
I
c
t
[
u
t
m
]
)
)
X
v
?
O
(
X
)
?
X
v
=
∑
m
=
0
M
(
σ
(
X
u
t
m
?
X
v
?
I
c
t
[
u
t
m
]
)
)
X
u
t
m
(7)
\begin{array}{l} \frac{\partial O(\mathrm{X})}{\partial X_{u_{t}^{m}}}=\left(\sigma\left(X_{u_{t}^{m}} \cdot X_{v}-\mathbb{I}_{c_{t}}\left[u_{t}^{m}\right]\right)\right) X_{v} \\ \frac{\partial O(\mathrm{X})}{\partial X_{v}}=\sum_{m=0}^{M}\left(\sigma\left(X_{u_{t}^{m}} \cdot X_{v}-\mathbb{I}_{c_{t}}\left[u_{t}^{m}\right]\right)\right) X_{u_{t}^{m}} \end{array}\tag{7}
?Xutm???O(X)?=(σ(Xutm???Xv??Ict??[utm?]))Xv??Xv??O(X)?=∑m=0M?(σ(Xutm???Xv??Ict??[utm?]))Xutm???(7) 其中,
I
c
t
[
u
t
m
]
\mathbb{I}_{c_t}[u_t^m]
Ict??[utm?]是指示函数,用来表示
u
t
m
u_t^m
utm?是否是上下文邻居节点
c
t
c_t
ct?, 当
m
=
0
,
u
t
0
=
c
t
m=0, u_t^0=c_t
m=0,ut0?=ct?,模型采用随机梯度下降法进行优化,metapath2vec++伪代码如Algorithm 1所示。
|