赞
踩
《Metapath2vec:Scalable Representation Learning for Heterogeneous Networks》—— 结构化深度网络特征表示
图嵌入是一种将图数据映射为低维稠密向量的过程,如下图。图嵌入需要捕捉到图的拓扑结构,顶点与顶点的关系,以及其他的信息 (如子图,连边等)。如果有更多的信息被表示出来,那么下游的任务将会获得更好的表现。在嵌入的过程中存在着一种共识:向量空间中保持连接的节点彼此靠近。
总的来说图嵌入技术大致可以分为两种:节点嵌入和图嵌入。当需要对节点进行分类,节点相似度预测,节点分布可视化时一般采用节点的嵌入;当需要在图级别(graph-level)
上进行预测或者整个图结构越策,需要将整个图表示为一个向量进行嵌入表示。
图是一种易于理解的表示形式,除此之外出于下面的原因需要对图进行嵌入表示:
graph
上直接进行机器学习具有一定的局限性。我们都知道图是由节点和边构成,这些向量关系一般只能使用数学,统计或者特定的子集进行表示,但是嵌入之后的向量空间具有更加灵活和丰富的计算方式;|V| x |V|
,其中|V|
是图中节点的个数。矩阵中的每一列和每一行都代表一个节点。矩阵中的非零值表示两个节点已连接。将邻接矩阵用用大型图的特征空间几乎是不可能的。一个具有1M
节点和1Mx1M
的邻接矩阵的图该怎么表示和计算呢?但是嵌入可以看做是一种压缩技术,能够起到降维的作用;但是图嵌入也需要满足一定的要求:
在本篇论文提出之前。绝大部分论文研究图嵌入都集中在同质网络中,同质网络比异质网络简单,同质网络中节点类型唯一,边的类型也唯一。但是这种办法并不使用与一般的社交网络或者推荐系统等场景中,因为这些网络的本质上是异质的网络结构,网络中的节点类型和边类型是多种多样的,因此异质网络是一个很具有研究意义的场景。但是这也导致异质网络表示学习的挑战在于怎么有效表示网络中不同类型的节点和不同类型的边关系;
异质图的意思是每个点的类型是不相同的,上图中的第一幅图可以理解为异质图,图中的点有多种类型,有建筑物,有时间,有地点等,这幅图有点像NLP中的知识图谱,但是这个图没有知识图谱的图复杂;
上图中的第二幅图和论文的研究内容很像,这个图称为academic graph,这个图中有三种点类型,第一种类型的点为author,第二种类型点为paper,第三种类型点为venue;author和paper的连线表示论文paper的作者为该author;paper和venue的连线表示paper发表在该venue会议上,可以发现不同边的意义也不同;
上图中的第三个图为二部图,这个图中有两种类型的点,一种为user,一种为item,这种图中user之间没有连线,item之间也没有连线,在user和item之间有连线,这种图称为二部图;
总结一下各种图
在传统的图嵌入(Graph embedding)
模型研究中将异质网络中不同类型的节点和边看做同种类型的节点和边,这导致异质网络中不同类型的节点和不同类型的边没有区分度,不能包含有效的类别信息,因此这些传统的图嵌入(Graph embedding)
模型不能有效地解决异构网络的学习问题;
异质网络表示学习的目的是同时学习多种类型顶点的低维 embedding
,本篇论文首先形式化异质网络的表示学习问题,定义了异构网络,基于meta-path
随机游走规则和word2vec
算法中的skip-gram
模型提出了 metapath2vec
框架来解决异质网络的表示学习问题,metapath2vec
的目标是最大化的保留给定异质网络的结构关系和语义关系;同时根据网络中存在不同类型的节点,metapath2vec ++
在 metapath2vec
的基础上使用了一种基于异质负采样的方法,对softmax
函数进行改进提出了扩展的 metapath2vec ++
框架来解决异质网络的表示学习问题。
论文进行的大量实验表明,metapath2vec
和 metapath2vec ++
不仅能够超越各种异质网络挖掘任务的 SOA
的 embedding
模型,还能够识别不同顶点之间的结构相关性和语义相关性。
论文中定义异质网络是一个图,其表示形式为:
G
=
(
V
,
E
,
T
)
G=(V,E,T)
G=(V,E,T)
图中的每个节点和节点之间的边分别关联一个映射函数: ϕ ( v ) : V → T V ϕ ( e ) : E → T E \phi(v): V \rightarrow T_{V} \quad \phi(e): E \rightarrow T_{E} ϕ(v):V→TVϕ(e):E→TE公式中的 T V T_V TV表示节点类型,公式中的 T E T_E TE表示边的类型;
同时,论文中定义了: ∣ T V ∣ + ∣ T E ∣ > 2 \left|T_{V}\right|+\left|T_{E}\right|>2 ∣TV∣+∣TE∣>2
在同质网络中默认节点类型和边的类型相同,所以在同质网路网络中 T V = 1 T_V=1 TV=1, T E = 1 T_E=1 TE=1,可以得到: ∣ T V ∣ + ∣ T E ∣ = 2 \left|T_{V}\right|+\left|T_{E}\right|=2 ∣TV∣+∣TE∣=2
在异质网络中,因为节点的类型或者边的类型肯定不唯一(如果唯一则是同质网络),所以可以得到上述公式: ∣ T V ∣ + ∣ T E ∣ > 2 \left|T_{V}\right|+\left|T_{E}\right|>2 ∣TV∣+∣TE∣>2
给定一个异质网络G
,异质网络的Embedding
目标是学习一个d
维的潜在表示
X
∈
R
d
×
∣
V
∣
\mathbf{X} \in \mathbb{R}^{d \times|V|}
X∈Rd×∣V∣,其中
d
≪
∣
V
∣
d \ll|V|
d≪∣V∣,使得该表示能够捕获网络的结构关系以及语义关系。任务的输出是一个低维矩阵
X
X
X,其第v
列对应一个d
维向量 ,即顶点的embedding
向量 。尽管图嵌入矩阵
X
X
X中存在不同类型的节点,但是各种类型节点的embedding
都被映射到相同的潜在空间中,虽然不同类型之间的嵌入维度相同,但是其不同节点之间的信息已经内含到嵌入向量中;学到的节点 embedding
矩阵可以应用于各种异质网络挖掘任务,如顶点分类、聚类、相似性查找等。
异质网络的表示学习问题的挑战来自于网络异质性。网络embedding
模型的基本假设是:在embedding
空间保持顶点及其邻居(上下文)之间的邻近性。但是在异质网络中,如何定义和建模 “顶点 - 邻居” 的概念?另外模型如何优化,其中该模型有效维护多种类型顶点和边的结构关系和语义关系?
Metapath2vec整体上可可分为两部分,一是meta-path随机游走,二是异质 skip-gram
模型 Heterogeneous Skip-Gram
,下面简单对这两个算法进行分析。
DeepWalk算法基于随机游走(random walk
)产生一些随机游走路径(random walk paths
),经过多次采样,可能得到大量的随机路径,这些路径可以类比于NLP
中的句子。在NLP
领域中应用word2vec
模型和大量语料可以训练得到每个词的词嵌入向量,同理,当我们得到大量同质网络的随机游走路径数据,应用word2vec
模型可以训练得到每个结点的嵌入向量,也就是可以得到上图中最后的输出:节点嵌入矩阵
X
X
X。
模型的输入为 G = ( V , E ) G=(V,E) G=(V,E),输出为每个点的d维向量表示;
同质网络中的随机游走是简单的随机游走,对于当前节点,其下一步可以选择与其相邻的任一邻居节点,比如对于某一节点,其邻居节点有5个,则其下一步访问其任一邻居的概率相等吗,都为 1 / 5 1/5 1/5。
本论文提出了一个通用的异质网络embedding
学习框架metapath2vec
,其目标是在考虑多种类型的顶点和边的情况下,最大化网络的概率,并获得节点的嵌入矩阵表示。
metapath2vec和传统的deepwalk算法的不同点在于,在生成路径数据的信息不再采用随机游走,为什么在异质网络中不能使用简单的随机游走呢?这里我们简单想象一下在异质网络中采用随机游走会发生什么问题:
在异质网络中引入随机游走,在随机游走的第i
步,我们定义转移概率
p
(
v
<
i
+
1
>
∣
v
<
i
>
)
p\left(v^{<i+1>} \mid v^{<i>}\right)
p(v<i+1>∣v<i>)为:在顶点
v
<
i
>
v^{<i>}
v<i>的邻域上的归一化概率分布,其中忽略顶点类型。然后将生成的游走序列作为 node2vec
和 DeepWalk
的输入。前人已经证明异质随机游走偏向于高度可见的顶点类型(即那些在路径中频繁出现的顶点类型),以及中心顶点(即那些出现频繁出现在关键路径中的顶点)。
这里我们也可以举个例子,给定如下的异质网络:
该异质网络中存在四种不同的节点,其中Author
的节点数量较大,当采用随机游走时,得到的路径更多地采集到Author
的信息,这样会导致节点数量少的节点信息更难收集到。
因此在metapath2vec
中抛弃了随机游走,提出了meta-path
随机游走,meta-path
就是人为地定义可行的游走路径形式,如下图中假设了三种可能的随机游走类型:APA
、APVPA
、OAPVPAO
;在APA
中,当当前节点为A中的某一个节点时,下一个结点为P中与其存在边的某一个结点,这是人为定义的随机游走规则;
基于 meta-path
的随机游走,生成能够捕获不同类型顶点之间的语义相关性和结构相关性的游走序列,从而有助于我们将异质网络结构转化为异质 skip-gram
。
形式化描述meta-path随机游走
一个 meta-path
范式 定义为一个路径:
V
1
⟶
R
1
V
2
⟶
R
2
⋯
V
t
⟶
R
t
V
t
+
1
⟶
R
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} \stackrel{R_{t+1}}{\longrightarrow} \cdots \stackrel{R_{l-1}}{\longrightarrow} V_{l}
V1⟶R1V2⟶R2⋯Vt⟶RtVt+1⟶Rt+1⋯⟶Rl−1Vl
公式中
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
l
V_{1}, \cdots \cdot V_{l}
V1,⋯⋅Vl之间的一个组合关系。以下图为例:meta-path:APA
代表两个作者 A 在同一论文 P 上的 co-author 关系;meta-path:APVPA
代表两个作者 A 在同一个会议 V 的不同论文 P 上的 co-venue 关系。
这里我们展示如何利用 meta-path
来指导异质 random walker
:
给定一个异质网络
G
=
(
V
,
E
,
T
)
G=(V,E,T)
G=(V,E,T)以及一个 meta-path 范式
P
P
P ,在随机游走的第
i
i
i步的转移概率定义为:
p
(
v
<
i
+
1
>
∣
v
t
<
i
>
,
P
)
=
{
1
∣
N
t
+
1
(
v
t
⟨
⟩
)
∣
,
(
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
p\left(v^{<i+1>} \mid v_{t}^{<i>}, \mathcal{P}\right)=\left\{1|Nt+1(v⟨⟩t)|,(v⟨i+1>,v<i>t)∈E,ϕ(v<i+1>)=t+10,(v<i+1>,v<i>t)∈E,ϕ(v<i+1>)≠t+10,(v<i+1>,v<i>t)∉E\right.
p(v<i+1>∣vt<i>,P)=⎩⎪⎨⎪⎧∣∣Nt+1(vt⟨⟩)∣∣1,0,0,(v⟨i+1>,vt<i>)∈E,ϕ(v<i+1>)=t+1(v<i+1>,vt<i>)∈E,ϕ(v<i+1>)=t+1(v<i+1>,vt<i>)∈/E公式中的
v
t
<
i
>
∈
V
t
v_t^{<i>}\in V_{t}
vt<i>∈Vt表示第
i
i
i步的顶点,
N
t
+
1
(
v
t
<
i
>
)
\mathcal{N}_{t+1}\left(v_{t}^{<i>}\right)
Nt+1(vt<i>)表示顶点
v
t
<
i
>
v_t^{<i>}
vt<i>的类型为
V
t
+
1
V_{t+1}
Vt+1的邻居节点;
meta-path
的随机游走策略可以确保不同类型节点之间的语义关系可以正确的合并到skip-gram
中;meta-path
的范式OAPVPAO中
,下一个节点倾向于Paper
中的节点
{
p
2
,
p
3
}
\{p_2,p_3\}
{p2,p3},从而保持路径的语义。在同质网络中根据随机游走得到的路径数据,然后使用word2vec
模型训练就能得到节点的embedding
矩阵,在异质网络中,考虑到不同节点的类型不同,基于word2vec
提出异质skip-gram
模型,下面我们简单分析一下这两种算法:
给定同质网络 G = ( V , E ) G=(V,E) G=(V,E),模型的目标是根据局部结构来最大化网络概率: arg max θ ∏ v ∈ V ∏ c ∈ N ( v ) p ( c ∣ v ; θ ) \arg \max _{\theta} \prod_{v \in V} \prod_{c \in \mathcal{N}(v)} p(c \mid v ; \theta) argθmaxv∈V∏c∈N(v)∏p(c∣v;θ)其中 N ( v ) \mathcal{N}(v) N(v)为网络 G G G中顶点 v v v的邻域,它可以由不同的方式定义,比如为 v v v的直接相连的顶点集合;
p ( c ∣ v , θ ) p(c|v,\theta) p(c∣v,θ)定义了给定顶点 v v v的条件下,上下文 c c c出现的条件概率: p ( c ∣ v ; θ ) = e X c ⋅ X v ∑ u ∈ V e X u ⋅ X v p\left(c \mid v ; \theta\right)=\frac{e^{X_{c} \cdot X_{v}}}{\sum_{u \in V} e^{X_{u} \cdot X_{v}}} p(c∣v;θ)=∑u∈VeXu⋅XveXc⋅Xv这里和NLP中Word2vec的训练过程类似,具体原理可以参考NLP中的原理分析;
在metapath2vec
中,给定异质网络
G
=
(
V
,
E
,
T
)
G=(V,E,T)
G=(V,E,T),其中
T
V
T_V
TV表示节点类型,
T
E
T_E
TE表示边的类型,
∣
T
V
∣
>
1
|T_V|>1
∣TV∣>1。论文通过最大化给定节点
v
v
v的条件下,异质上下文
N
t
(
v
)
,
t
∈
T
V
\mathcal{N}_{t}(v), t \in T_{V}
Nt(v),t∈TV的条件概率,使得
s
k
i
p
−
g
r
a
m
skip-gram
skip−gram能够学习异质网络
G
G
G的有效节点的向量表示:
arg
max
θ
∑
v
∈
V
∑
t
∈
T
V
∑
c
t
∈
N
t
(
v
)
log
p
(
c
t
∣
v
;
θ
)
\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)
argθmaxv∈V∑t∈TV∑ct∈Nt(v)∑logp(ct∣v;θ)
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∈VeXu⋅XveXct⋅Xv公式中的
N
t
(
v
)
\mathcal{N}_{t}(v)
Nt(v)表示顶点
v
v
v的第
t
t
t种类型的邻域顶点;
为了有效优化目标函数,提高训练效率,Milkolov
等人引入了负采样,它从网络中随机采样不属于邻域节点的一组节点作为一组训练数据,并建立二分类模型来代替softmax
的作用;在metapath2vec
中也采用了相同的负采样,给定一个负采样数据集
M
M
M,则定义:
log
p
(
c
t
∣
v
;
θ
)
=
log
σ
(
x
→
c
t
⋅
x
→
v
)
+
∑
m
=
1
M
E
u
(
m
)
∼
P
(
u
)
[
log
σ
(
−
x
→
u
(
m
)
⋅
x
→
v
)
]
\log p\left(c_{t} \mid v ; \theta\right)=\log \sigma\left(\overrightarrow{\mathbf{x}}_{c_{t}} \cdot \overrightarrow{\mathbf{x}}_{v}\right)+\sum_{m=1}^{M} \mathbb{E}_{u^{(m)} \sim P(u)}\left[\log \sigma\left(-\overrightarrow{\mathbf{x}}_{u^{(m)}} \cdot \overrightarrow{\mathbf{x}}_{v}\right)\right]
logp(ct∣v;θ)=logσ(x
ct⋅x
v)+m=1∑MEu(m)∼P(u)[logσ(−x
u(m)⋅x
v)]公式中的
σ
(
x
)
=
1
1
+
e
x
p
(
−
x
)
\sigma(x)=\frac{1}{1+exp(-x)}
σ(x)=1+exp(−x)1,负采样部分的
P
(
u
)
P(u)
P(u)为预定义的顶点分布函数,metapath2vec根据该分布采样M个负样本顶点
u
(
m
)
u^{(m)}
u(m),metapath2vec
无视顶点类型来构建顶点的频率分布;
在训练的时候,我们希望属于当前节点邻域的节点出现的概率最大,同时负采样得到的不属于当前节点邻域的随机采样节点不出现的概率最大,这样就得到了上面的负采样计算公式;
metapath2vec
的整体框架如下所示:
其模型框架和node2vec&DeepWalk
是相似的,主要不同在于metapath2vec
是运用在异质网络中,使用基于meta
的随机游走和异质skip-gram
模型;
我们现在来看一下metapath2vec
中可能存在的问题,在上面介绍了metapath2vec的训练过程:
arg
max
θ
∑
v
∈
V
∑
t
∈
T
V
∑
c
t
∈
N
t
(
v
)
log
p
(
c
t
∣
v
;
θ
)
\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)
argθmaxv∈V∑t∈TV∑ct∈Nt(v)∑logp(ct∣v;θ)
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∈VeXu⋅XveXct⋅Xv从公式中可以看到在计算的时候metapath2vec
根据上下文节点的类型来区分节点
v
v
v的上下文节点,但是在进行softmax
变换的时候没有统计节点类型信息。即在给定顶点
v
v
v的条件下,为了推断来自邻域
N
t
(
v
)
\mathcal{N}_{t}(v)
Nt(v)中上下文的
c
t
c_t
ct的节点类型时,metapath2ve
c实际上采用了所有类型的负样本,包括相同类型
t
t
t的负样本,以及其他类别的负样本。
基于metapath2vec
存在的问题,该论文提出了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
;
θ
)
=
exp
(
x
→
c
t
⋅
x
→
v
)
∑
u
t
∈
V
t
exp
(
x
→
u
t
⋅
x
→
v
)
p\left(c_{t} \mid v ; \theta\right)=\frac{\exp \left(\overrightarrow{\mathbf{x}}_{c_{t}} \cdot \overrightarrow{\mathbf{x}}_{v}\right)}{\sum_{u_{t} \in V_{t}} \exp \left(\overrightarrow{\mathbf{x}}_{u_{t}} \cdot \overrightarrow{\mathbf{x}}_{v}\right)}
p(ct∣v;θ)=∑ut∈Vtexp(x
ut⋅x
v)exp(x
ct⋅x
v)公式中的
V
t
V_t
Vt为类型为
t
t
t的顶点集合;
因为在metapath2vec
中修改了softmax
的计算方法,因此在metapath2vec
中其输出层也发生了改变:
如上图,metapath2vec++
会为skip-gram
模型输出层中的每种邻域类型定义一组softmax
分布,我们可以看出metapath2vec++
与metapath2vec
、node2vec
、DeepWalk
的输出层的区别,如下图:
在上图中,metapath2vec
、node2vec
、DeepWalk
中,输出softmax
分布的维度等于网络的顶点数量
∣
V
∣
|V|
∣V∣,但是在metapath2vec++
中,输出softmax
分布的维度由类型为
t
t
t的节点数量
∣
V
t
∣
|V_t|
∣Vt∣决定;
对于softmax
做出的修改,在metapath2vec
中也对负采样做出了修改,metapath2vec
在负采样的过程中同样根据邻居节点
c
t
c_t
ct的类型进行调整,因此可以得到改进后的负采样函数为:
L
=
log
σ
(
x
→
c
t
⋅
x
→
v
)
+
∑
m
=
1
M
E
u
t
(
m
)
∈
P
t
(
u
t
)
[
log
σ
(
−
x
→
u
t
(
m
)
⋅
x
→
v
)
]
\mathcal{L}=\log \sigma\left(\overrightarrow{\mathbf{x}}_{c_{t}} \cdot \overrightarrow{\mathbf{x}}_{v}\right)+\sum_{m=1}^{M} \mathbb{E}_{u_{t}^{(m)} \in P_{t}\left(u_{t}\right)}\left[\log \sigma\left(-\overrightarrow{\mathbf{x}}_{u_{t}^{(m)}} \cdot \overrightarrow{\mathbf{x}}_{v}\right)\right]
L=logσ(x
ct⋅x
v)+m=1∑MEut(m)∈Pt(ut)[logσ(−x
ut(m)⋅x
v)]公式中的
p
t
(
u
t
)
p_t(u_t)
pt(ut)为类型为
t
t
t的顶点的分布函数;
论文中给出了上述函数的梯度计算公式: ∂ L ∂ x → u t ( m ) = σ ( x → u t ( m ) ⋅ x → v − I c t [ u t ( m ) ] ) × x → v \frac{\partial \mathcal{L}}{\partial \overrightarrow{\mathbf{x}}_{u_{t}^{(m)}}}=\sigma\left(\overrightarrow{\mathbf{x}}_{u_{t}^{(m)}} \cdot \overrightarrow{\mathbf{x}}_{v}-\mathbb{I}_{c_{t}}\left[u_{t}^{(m)}\right]\right) \times \overrightarrow{\mathbf{x}}_{v} ∂x ut(m)∂L=σ(x ut(m)⋅x v−Ict[ut(m)])×x v ∂ L ∂ x → v = ∑ m = 0 M σ ( x → u t ( m ) ⋅ x → v − I c t [ u t ( m ) ] ) × x → u t ( m ) \frac{\partial \mathcal{L}}{\partial \overrightarrow{\mathbf{x}}_{v}}=\sum_{m=0}^{M} \sigma\left(\overrightarrow{\mathbf{x}}_{u_{t}^{(m)}} \cdot \overrightarrow{\mathbf{x}}_{v}-\mathbb{I}_{c_{t}}\left[u_{t}^{(m)}\right]\right) \times \overrightarrow{\mathbf{x}}_{u_{t}^{(m)}} ∂x v∂L=m=0∑Mσ(x ut(m)⋅x v−Ict[ut(m)])×x ut(m)公式中的 I c t [ u t ( m ) ] \mathbb{I}_{c_{t}}\left[u_{t}^{(m)}\right] Ict[ut(m)]为一个示性函数,用于指示 u t ( m ) u_t^{(m)} ut(m)是否为邻域上下文节点 c t c_t ct,并且当 m = 0 m=0 m=0时 u t ( m ) = c t u_t^{(m)}=c_t ut(m)=ct,最终可以通过随机梯度下降算法来对模型进行优化求解。
简单分析metapath2vec++
与metapath2vec
的区别主要在于针对不同类别的节点进行细分计算,不再是针对整个节点集合计算softmax
和进行负采样;
输入:
输出:
算法步骤:
初始化节点的嵌入矩阵 X X X;
迭代 w w w次,迭代步骤为:
遍历异构图
V
V
V中的每个节点
v
v
v,执行以下两个函数:
M
P
=
M
e
t
a
P
a
t
h
R
a
n
d
o
m
W
a
l
k
(
G
,
P
,
v
,
l
)
MP = MetaPathRandomWalk(G,P,v,l)
MP=MetaPathRandomWalk(G,P,v,l)
X
=
H
e
t
e
r
o
g
e
n
e
o
u
S
k
i
p
G
r
a
m
(
X
,
k
,
M
P
)
X = HeterogeneouSkipGram(X,k,MP)
X=HeterogeneouSkipGram(X,k,MP)
返回 X X X
MetaPathRandomWalk算法:
HeterogeneousSkipGram算法:
该论文进行了三种异质网络挖掘任务,包括顶点分类任务、顶点聚类任务、顶点相似性查找问题,并且通过tensorflow的embedding可视化来观察异质网络中学习的节点嵌入向量。
Aminer Computer Science(CS)dataset
包含2016年之前举行的3883个计算机科学venue(包含会议conference和期刊journal)的9323739名科学家,以及3194405篇论文。该论文使用该数据集构建了一个异构网络,该网络包含三种类型的顶点:作者Author、论文Paper、会议Venue;
Database and Information Systems(DBIS) dataset:包含464个会议,以及其中top-5000个作者,以及对应的72902篇论文;
对于所有模型,使用相同的参数:
作者使用第三方的 label 来确定每个顶点的类别。
首先将 Google Scholar 中的八个会议的研究类别与 AMiner 数据中的会议进行匹配:
Computational Linguistics, Computer Graphics, Computer Networks & Wireless Communication, Computer Vision & Pattern Recognition, Computing Systems, Databases & Information Systems, Human Computer Interaction, Theoretical Computer Science
每种类别20 个会议。在这 160 个会议中,有 133 个已经成功匹配并进行相应的标记。
然后,对于这 133 个会议的论文的每位作者,将他/她分配给他/她大部分论文的类别,如果论文类别分布均匀则随机选择一个类别。最终有 246678 位作者标记了研究类别。
从完整的 AMiner 数据集中学到顶点的 embedding ,然后将上述顶点标记以及对应的顶点 embedding 一起作为逻辑回归分类器的输入。实验将训练集规模从标记样本的 5% 逐渐增加到 90% ,并使用剩下顶点进行测试。将每个实验重复十轮,并报告平均的 macro-F1 和 micro-F1 。
下表给出了 Venue 类型顶点的分类结果。
下表给出了 Author 类型顶点的分类结果:
结论:
对metapath2vec ++ 的几个通用参数进行超参数敏感性分析。实验中变化其中的一个超参数,然后固定其它的超参数。
结论:
论文采用与上述分类任务中使用的相同的八个类别的 author 顶点和 venue 顶点,针对这些顶点的 embedding 进行聚类。实验使用 k-means 聚类算法,并通过归一化的互信息 NMI 来评估聚类效果。所有聚类实验均进行十次,并报告平均性能,结果如下表所示。
结论:
- 总体而言,metapath2vec 和 metapath2vec ++ 优于其它所有方法。
- 从 venue 顶点聚合结果可以看到,大多数方法的NMI 都较高,因此该任务相对容易。而 author 顶点聚类指标都偏低,因此任务更难。
NMI 指标:给定随机变量 X , Y X,Y X,Y,则归一化的互信息定义为: NMI ( X ; Y ) = I ( X ; Y ) H ( X ) = H ( X ) − H ( X ∣ Y ) H ( X ) = ∑ x ∑ y p ( x , y ) log p ( x , y ) p ( x ) × p ( y ) − ∑ x p ( x ) log x \operatorname{NMI}(X ; Y)=\frac{I(X ; Y)}{H(X)}=\frac{H(X)-H(X \mid Y)}{H(X)}=\frac{\sum_{x} \sum_{y} p(x, y) \log \frac{p(x, y)}{p(x) \times p(y)}}{-\sum_{x} p(x) \log x} NMI(X;Y)=H(X)I(X;Y)=H(X)H(X)−H(X∣Y)=−∑xp(x)logx∑x∑yp(x,y)logp(x)×p(y)p(x,y)
和分类实验的步骤相同,这里研究了聚类任务中 metapath2vec ++ 的参数敏感性,衡量指标为 NMI 。
- 从图 a 和 b 可以看到,author 顶点和 venue 顶点在
l
=
100
,
w
=
800
1000
l=100,w=800~1000
l=100,w=800 1000时可以在效果和计算效率之间取得平衡。
- 从图 c 和 d 可以看到,对于 author 顶点,
d
d
d和
k
k
k与聚类性能呈负相关;而对于venue 顶点,
d
d
d也与聚类性能负相关,但是
k
k
k增加时聚类 NMI 先增加后减小。对于 author 顶点和 venue 顶点,当
d
=
128
,
k
=
7
d=128,k=7
d=128,k=7时,生成的 embedding 可以得到较好的聚类结果。
作者从 AMiner 数据集选择 16 个不同领域的顶级 CS 会议,然后通过余弦相似度选择这些会议顶点的 top 10 相似度结果。
结论:
类似的,我们从 DBIS 数据中选择另外的 5 个 CS 会议,然后通过余弦相似度选择这些会议顶点的 top 10 相似度结果。结论也类似。
我们从 DBIS 数据中选择一个会议顶点、一个作者顶点,然后比较不同 embedding 方法找出的 top-5 相似度的结果。结果如下表所示,其中 metapath2vec ++ 能够针对不同类型的 query 顶点获得最佳的 top-5 相似顶点。
我们使用 tensorflow embedding 2 维 PCA 来进一步可视化模型学到的顶点 embedding 。我们从 AMiner 数据集选择 16 个不同领域的顶级 CS 会议,以及对应的顶级作者进行可视化。
下图通过 t-SNE 可视化了metapath2vec++ 学到的AMiner 数据集不同领域的顶级 CS 会议,一共48 个会议、16个领域,每个领域 3 个会议。
metapath2vec/metapah2vec ++ 可以使用和 word2vec/node2vec 中相同的机制来并行化。我们对 AMiner 数据集进行实验,实验在 Quad 12(48) core 2.3 GHz Intel Xeon CPUs E7-4850 上进行。我们实现不同的线程数 {1,2,4,8,16,24,32,40} ,每个线程使用一个 CPU core 。
下面给出了metapath2vec/metapath2vec++ 的加速比。最佳加速比由虚线 y = x y=x y=x表示。我们的这两种方法都可以达到能够接受的亚线性加速比,它们都接近于虚线。
具体而言,在使用 16 个 core 时,它们可以实现 11-12 倍的加速比;使用 40 个 core 时,它们可以实现 24-32 倍加速比。
在使用 400 个 core 时,metapath2vec ++ 的学习过程只需要 9 分组即可训练整个 AMS CS 网络的 embedding ,该网络由 900 万以上的作者、3300 多个 venue、300 万篇论文组成。
总体而言,对于具有数百万个顶点的大规模异质网络,metapath2vec/metapath2vec++ 是有效的且 scalable 的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。