一.概述
论文及源码获取地址
图嵌入的获取一直都是一个研究热点,其可用于许多图相关的任务,包括链接预测、节点分类和可视化等等。在本篇论文中作者提出了一种名为VERSE的图嵌入(Embedding)生成方法,其从节点相似性的角度来考虑节点嵌入,提出了相关的优化目标。
VERSE的全称是VERtex Similarity Embeddings,该方法的特点是简单、通用和内存高效。
VERSE使用一个单层神经网络来学习嵌入,通过该方法能够有效的保留节点相似性。
VERSE在链接预测、节点分类、节点聚簇、图重建任务上都进行了相关实验并取得了较为理想的性能。
二.详细方法
2.1 优化目标
对于给定图 G = ( V , E ) G=(V,E) G=(V,E),其中 V = ( v 1 , . . . , v n ) V = (v_1,...,v_n) V=(v1,...,vn)表示点集、 E ⊆ ( V × V ) E \subseteq (V \times V) E⊆(V×V)为对应的边集,学习的目的是希望学得图节点的 d d d维表示向量,其中 d < < n d << n d<<n。所有图节点的表示向量组成一个 n × d n \times d n×d维的矩阵 W W W,其用 W v W_v Wv来表示节点 v v v的嵌入。
s
i
m
G
:
V
×
V
→
R
sim_G: V \times V \rightarrow \mathbb{R}
simG:V×V→R表示图的某种相似性,由于需要计算顶点与图中其它所有顶点的相似性,因此其需要满足分布:
∑
u
∈
V
s
i
m
G
(
v
,
u
)
=
1
\sum_{u \in V} sim_G(v,u) = 1
u∈V∑simG(v,u)=1
其中
v
v
v为图中任意节点。
s i m E : V × V → R sim_E: V \times V \rightarrow \mathbb{R} simE:V×V→R表示嵌入空间中节点间的相似性。
基于
s
i
m
G
sim_G
simG和
s
i
m
E
sim_E
simE,作者提出的优化目标是尽量减小两个分布间的KL散度,即:
∑
v
∈
V
K
L
(
sim
G
(
v
,
⋅
)
∥
sim
E
(
v
,
⋅
)
)
(1)
\sum_{v \in V} \mathrm{KL}\left(\operatorname{sim}_{\mathrm{G}}(v, \cdot) \| \operatorname{sim}_{\mathrm{E}}(v, \cdot)\right) \tag{1}
v∈V∑KL(simG(v,⋅)∥simE(v,⋅))(1)
作者通过图1中的例子来说明提出的优化目标的有效性,可以看出VERSE重建的矩阵更好的保留了相似性,可见其优化目标是有效的。
2.2 嵌入模型
假设来自某个分布
P
\mathcal{P}
P的节点
u
u
u和来自分布
s
i
m
G
(
u
,
⋅
)
sim_G(u, \cdot)
simG(u,⋅)的节点
v
v
v,从
Q
(
u
)
Q(u)
Q(u)采集
s
<
<
n
s << n
s<<n个节点
v
~
\tilde{v}
v~,NEC对应的损失利用logistic回归来最小化负对数似然:
L
N
C
E
=
∑
u
∼
P
,
v
∼
sim
(
G
,
⋅
)
[
log
Pr
W
(
D
=
1
∣
sim
E
(
u
,
v
)
)
+
s
E
v
~
∼
Q
(
u
)
log
Pr
W
(
D
=
0
∣
sim
E
(
u
,
v
~
)
)
]
\mathcal{L}_{N C E}=\sum_{u \sim \mathcal{P}, \ v \sim \operatorname{sim}(\operatorname{G}, \cdot)} [\log \operatorname{Pr}_{W}\left(D=1 \mid \operatorname{sim}_{\mathrm{E}}(u, v)\right) + s \mathbb{E}_{\tilde{v} \sim Q(u)} \log \operatorname{Pr}_{W}\left(D=0 \mid \operatorname{sim}_{\mathrm{E}}(u, \widetilde{v})\right)]
LNCE=u∼P, v∼sim(G,⋅)∑[logPrW(D=1∣simE(u,v))+sEv~∼Q(u)logPrW(D=0∣simE(u,v
))]
其中
P
r
W
Pr_W
PrW是根据
W
W
W计算得来的,具体为
W
u
W_u
Wu和
W
v
W_v
Wv经过点积后再代入sigmoid函数
σ
(
x
)
=
(
1
+
e
−
x
)
−
1
\sigma (x) = (1 + e^{-x}) ^ {-1}
σ(x)=(1+e−x)−1,另外计算
s
i
m
E
(
u
,
⋅
)
sim_E(u, \cdot)
simE(u,⋅)时不需要进行归一化。随着噪声样本数量的增加,NCE计算的梯度可以证明收敛到交叉熵的梯度。借助NCE的渐近收敛保证,我们实际上是最小化了来自
s
i
m
G
sim_G
simG的KL发散。NCE的理论保证取决于
s
s
s,但对于很小的值在实践中也能取得很好的结果。
2.3 学习算法
VERSE使用的学习算法的伪代码如下:
算法输入:图 G G G、相似性函数 s i m G sim_G simG、嵌入的维度 d d d。算法会先初始化权重矩阵 W ∼ N ( 0 , 1 d ) W \sim \mathcal{N}(0, \frac{1}{d}) W∼N(0,d1)。然后利用前面提到的NCE算法重复的采样正样本和负样本进行梯度下降以优化目标。
VERSE可以使用任何的相似性函数,作者选择了如下三种:
- Personalized PageRank
- Adjacency similarity
- SimRank
三.结语
这篇论文利用相似性函数的信息来监督一个单层的神经网络学得相应的Embedding,其特点是能够快速的生成质量较高的通用的图嵌入,这确实是其一大优势。
个人观点:虽然需要考虑大图上的扩展性,但感觉一个单层的神经网络的表达能力还是挺有限的。
以上便是本文的全部内容,要是觉得不错的话,可以点个赞或关注一下博主,你们的支持是博主进步的不竭动力,当然要是有问题的话也敬请批评指正!!!