题目:BiNE: Bipartite Network Embedding
作者:Ming Gao, Leihui Chen, Xiangnan He & Aoying Zhou
来源:SIGIR 2018
源码:https://github.com/clhchtcjj/BiNE
当前的许多网络表示学习方法主要是针对同质网络的,忽略了二部图的特殊性质。本文提出一种的专门针对二部图的网络表示学习方法 。通过有偏随机游走,生成的节点序列很好地保留节点在原始二部图中的长尾分布。本文基于节点的显式联系和隐式联系,提出一种新的优化方法。
传统NE方法对于二部图而言不是最优的理由:
(1)没有考虑节点类型。与同质网络不同,二部图中有两种类型节点,虽然同类型节点之间不存在边,但是具有隐式联系。传统的随机游走方法虽然能够捕捉高阶隐式联系,但是不够高效。
(2)产生的序列可能无法保留二部图的特性。例如经过deepwalk随机游走采样后的序列,节点度并不满足幂律分布。而幂律分布是二部图的一个重要特性。
模型
总体流程
(1)通过原始的二部图分别生成U和V两张图
(2)在U和V上分别进行有偏随机游走,得到序列集合
D
U
D^U
D U ,
D
V
D^V
D V
(3)SGA更新代表节点
u
i
u_i
u i 和
v
j
v_j
v j 的embedding向量
u
→
i
\overrightarrow{\mathbf{u}}_{i}
u
i 和
v
→
j
\overrightarrow{\mathbf{v}}_{j}
v
j
我们定义一个二部图
G
=
(
U
,
V
,
E
)
G=(U, V, E)
G = ( U , V , E ) ,其中
U
U
U 和
V
V
V 分别代表两种类型节点集合。
E
⊆
U
×
V
E \subseteq U \times V
E ⊆ U × V 表示边,每条边有一个非负权值
w
i
j
w_{ij}
w i j ,其中
W
=
[
w
i
j
]
∈
R
∣
U
∣
×
∣
V
∣
\mathbf{W}=\left[w_{i j}\right] \in \mathbb{R}^{|U|\times|V|}
W = [ w i j ] ∈ R ∣ U ∣ × ∣ V ∣ 。以下使用
u
→
i
\overrightarrow{\mathbf{u}}_{i}
u
i 和
v
→
j
\overrightarrow{\mathbf{v}}_{j}
v
j 代表节点
u
i
u_i
u i 和
v
j
v_j
v j 的embedding向量,模型将二部图上的所有节点都映射成一个
d
d
d 维的embedding向量。
f
:
U
∪
V
→
R
d
f : U \cup V \rightarrow \mathbb{R}^{d}
f : U ∪ V → R d
建模显式关系
二部图中,存在于两种类型节点之间的边提供了显式关系。与LINE建模一阶相似度类似,本文将二部图节点的显式关系建模为两个相连节点的局部相似性,
u
i
u_i
u i 和
v
j
v_j
v j 联合概率为(经验分布):
(1)
P
(
i
,
j
)
=
w
i
j
∑
e
i
j
∈
E
w
i
j
P(i, j)=\frac{w_{i j}}{\sum_{e_{i j} \in E} w_{i j}}{\tag 1}
P ( i , j ) = ∑ e i j ∈ E w i j w i j ( 1 ) 用
u
i
u_i
u i 和
v
j
v_j
v j embedding的内积来估计局部相似性(重建分布)
(2)
P
^
(
i
,
j
)
=
1
1
+
exp
(
−
u
→
i
T
v
→
j
)
\hat{P}(i, j)=\frac{1}{1+\exp \left(-\overrightarrow{\mathbf{u}}_{i}^{T} \overrightarrow{\mathbf{v}}_{j}\right)}{\tag 2}
P ^ ( i , j ) = 1 + exp ( − u
i T v
j ) 1 ( 2 ) 用KL散度衡量两个分布的差异,通过最小化该目标函数,学习得到表示
(3)
minimize
O
1
=
K
L
(
P
∥
P
^
)
=
∑
e
i
j
∈
E
P
(
i
,
j
)
log
(
P
(
i
,
j
)
P
^
(
i
,
j
)
)
∝
−
∑
e
i
j
∈
E
w
i
j
log
P
^
(
i
,
j
)
\begin{aligned} \text { minimize } O_{1} &=K L(P \| \hat{P})=\sum_{e_{i j} \in E} P(i, j) \log \left(\frac{P(i, j)}{\hat{P}(i, j)}\right) \\ & \propto-\sum_{e_{i j} \in E} w_{i j} \log \hat{P}(i, j) \end{aligned}{\tag 3}
minimize O 1 = K L ( P ∥ P ^ ) = e i j ∈ E ∑ P ( i , j ) log ( P ^ ( i , j ) P ( i , j ) ) ∝ − e i j ∈ E ∑ w i j log P ^ ( i , j ) ( 3 ) 以上部分与LINE一阶相似度相同
建模隐式关系
两个同类型节点之间没有边直接连接,但是如果存在节点间存在路径,则二者之间存在某种隐式关系;其中路径的数目和长度表明该隐式关系的强度。直接计算两个节点之间的路径计算开销大,在大规模网络中难以实现。本文采用DeepWalk等工作中采用的随机游走策略。具体地,首先通过执行随机游走将二分图转换为两个顶点序列语料库; 然后从语料库中学习嵌入。
构建节点序列语料库
由于周期性的原因,二分图上没有静态的随机游走分布,所以直接在二分图上执行随机游走可能失败。为了解决该问题,我们考虑在两个具有同类型节点二阶节点相似度的同质图上进行随机游走。
定义两个节点的二阶相似度如下:
(4)
w
i
j
U
=
∑
k
∈
V
w
i
k
w
j
k
;
w
i
j
V
=
∑
k
∈
U
w
k
i
w
k
j
w_{i j}^{U}=\sum_{k \in V} w_{i k} w_{j k} ; \quad w_{i j}^{V}=\sum_{k \in U} w_{k i} w_{k j}{\tag 4}
w i j U = k ∈ V ∑ w i k w j k ; w i j V = k ∈ U ∑ w k i w k j ( 4 ) 相当于
w
i
j
U
=
w
i
⋅
⋅
w
j
⋅
w_{i j}^{U} = w_{i\cdot} \cdot w_{j \cdot}
w i j U = w i ⋅ ⋅ w j ⋅ ;使用矩阵
W
U
=
[
w
i
j
U
]
∈
R
∣
U
∣
×
∣
U
∣
\mathbf{W}^{U}=\left[w_{i j}^{U}\right] \in \mathbb{R}^{|U|\times|U|}
W U = [ w i j U ] ∈ R ∣ U ∣ × ∣ U ∣ 和
W
V
=
[
w
i
j
V
]
∈
R
∣
V
∣
×
∣
V
∣
\mathbf{W}^{V}=\left[w_{i j}^{V}\right] \in \mathbb{R}^{|V|\times|V|}
W V = [ w i j V ] ∈ R ∣ V ∣ × ∣ V ∣ 分别表示两个同质网络。
此时可以使用截断随机游走分别生成两个语料以训练得到高阶隐式关系。但是为了保留真实二部图的节点分布特征,本文提出使用一种有偏、自适应的随机游走方法 。
随机游走
【1】从某个节点开始进行随机游走的次数,与该节点的重要性正相关 。节点重要性可由中心度(centrality)衡量。
【2】设置每一步随机游走停止的概率 。deepwalk及其他方法中使用的是固定长度的游走序列,本文的游走序列是可变长度的,目的是为了与自然语言中句子长度可变的事实更接近。
随机游走的具体算法如下:
建模隐式关系
隐式关系与LINE二阶相似度定义相同,如果两个节点上下文相似,则两个节点存在隐式关系。
二部图中有U和V两种节点,其中以U为例,令
D
U
D^{U}
D U 为U节点序列构成的语料,
C
S
(
u
i
)
C_{S}\left(u_{i}\right)
C S ( u i ) 代表节点
u
i
u_i
u i 的上下文节点;最大化下列条件概率
(5)
maximize
O
2
=
∏
u
i
∈
S
∧
S
∈
D
U
∏
u
c
∈
C
S
(
u
i
)
P
(
u
c
∣
u
i
)
\text { maximize } O_{2}=\prod_{u_{i} \in S \wedge S \in D^{U}} \prod_{u_{c} \in C_{S}\left(u_{i}\right)} P\left(u_{c} | u_{i}\right){\tag 5}
maximize O 2 = u i ∈ S ∧ S ∈ D U ∏ u c ∈ C S ( u i ) ∏ P ( u c ∣ u i ) ( 5 ) 同理对于V节点
(6)
maximize
O
3
=
∏
v
j
∈
S
∧
S
∈
D
V
∏
v
c
∈
C
S
(
v
j
)
P
(
v
c
∣
v
j
)
\text { maximize } O_{3}=\prod_{v_{j} \in S \wedge S \in D^{V}} \prod_{v_{c} \in C_{S}\left(v_{j}\right)} P\left(v_{c} | v_{j}\right){\tag 6}
maximize O 3 = v j ∈ S ∧ S ∈ D V ∏ v c ∈ C S ( v j ) ∏ P ( v c ∣ v j ) ( 6 ) 类似于LINE,使用内积和softmax来定义条件概率
(7)
P
(
u
c
∣
u
i
)
=
exp
(
u
→
i
T
θ
c
→
)
∑
k
=
1
∣
U
∣
exp
(
u
→
i
T
θ
k
→
)
,
P
(
v
c
∣
v
j
)
=
exp
(
v
→
j
T
ϑ
→
c
)
∑
k
=
1
∣
V
∣
exp
(
v
→
j
T
θ
k
→
)
P\left(u_{c} | u_{i}\right)=\frac{\exp \left(\overrightarrow{\mathbf{u}}_{i}^{T} \overrightarrow{\boldsymbol{\theta}_{c}}\right)}{\sum_{k=1}^{|U|} \exp \left(\overrightarrow{\mathbf{u}}_{i}^{T} \overrightarrow{\boldsymbol{\theta}_{k}}\right)}, \quad P\left(v_{c} | v_{j}\right)=\frac{\exp \left(\overrightarrow{\mathbf{v}}_{j}^{T} \overrightarrow{\boldsymbol{\vartheta}}_{c}\right)}{\sum_{k=1}^{|V|} \exp \left(\overrightarrow{\mathbf{v}}_{j}^{T} \overrightarrow{\boldsymbol{\theta}_{k}}\right)}{\tag 7}
P ( u c ∣ u i ) = ∑ k = 1 ∣ U ∣ exp ( u
i T θ k
) exp ( u
i T θ c
) , P ( v c ∣ v j ) = ∑ k = 1 ∣ V ∣ exp ( v
j T θ k
) exp ( v
j T ϑ
c ) ( 7 )
负采样
跟LINE相同,式(7)计算复杂度太高,使用负采样。首先根据节点的邻居,使用局部敏感哈希(LSH)将节点分桶。给定一个中心节点,就从其他桶里随机挑选一个节点作为负样本。该方法可以保证得到高质量、多样化的负样本。
负样本条件概率如下:
(8)
p
(
u
c
,
N
S
n
s
(
u
i
)
∣
u
i
)
=
∏
z
∈
{
u
c
}
∪
N
S
n
s
(
u
i
)
P
(
z
∣
u
i
)
p\left(u_{c}, N_{S}^{n s}\left(u_{i}\right) | u_{i}\right)=\prod_{z \in\left\{u_{c}\right\} \cup N_{S}^{n s}\left(u_{i}\right)} P\left(z | u_{i}\right){\tag 8}
p ( u c , N S n s ( u i ) ∣ u i ) = z ∈ { u c } ∪ N S n s ( u i ) ∏ P ( z ∣ u i ) ( 8 ) 式(7)中的联合概率分布可以简化为:
P
(
z
∣
u
i
)
=
{
σ
(
u
→
i
T
θ
⃗
z
)
,
if
z
is a context of
u
i
1
−
σ
(
u
→
i
T
θ
⃗
z
)
,
z
∈
N
S
n
s
(
u
i
)
P\left(z | u_{i}\right)=\left\{\begin{array}{ll}{\sigma\left(\overrightarrow{\mathbf{u}}_{i}^{T} \vec{\theta}_{z}\right),} & {\text { if } z \text { is a context of } u_{i}} \\ {1-\sigma\left(\overrightarrow{\mathbf{u}}_{i}^{T} \vec{\theta}_{z}\right),} & {z \in N_{S}^{n s}\left(u_{i}\right)}\end{array}\right.
P ( z ∣ u i ) = ⎩ ⎨ ⎧ σ ( u
i T θ
z ) , 1 − σ ( u
i T θ
z ) , if z is a context of u i z ∈ N S n s ( u i ) 定义和LINE中相同,注意sigmid函数的特性
σ
(
−
x
)
=
1
−
σ
(
x
)
\sigma(-x) = 1-\sigma(x)
σ ( − x ) = 1 − σ ( x )
联合优化
联合优化总体目标函数:
(9)
maximize
L
=
α
log
O
2
+
β
log
O
3
−
γ
O
1
\text { maximize } L=\alpha \log O_{2}+\beta \log O_{3}-\gamma O_{1} {\tag 9}
maximize L = α log O 2 + β log O 3 − γ O 1 ( 9 ) 使用梯度上升算法(SGA)优化联合,考虑到上式三个部分对一个训练实例的定义不同,采用以下的梯度更新方式:
Setp1 :对于一个隐式关系,通过最大化上式最后一个部分
L
1
=
−
γ
O
1
L_{1}=-\gamma O_{1}
L 1 = − γ O 1 ,更新
u
→
i
\overrightarrow{\mathbf{u}}_{i}
u
i 和
v
→
j
\overrightarrow{\mathbf{v}}_{j}
v
j
(10)
u
→
i
=
u
→
i
+
λ
{
γ
w
i
j
[
1
−
σ
(
u
→
i
T
v
→
j
)
]
⋅
v
→
j
}
{\overrightarrow{\mathbf{u}}_{i}=\overrightarrow{\mathbf{u}}_{i}+\lambda\left\{\gamma w_{i j}\left[1-\sigma\left(\overrightarrow{\mathbf{u}}_{i}^{T} \overrightarrow{\mathbf{v}}_{j}\right)\right] \cdot \overrightarrow{\mathbf{v}}_{j}\right\}}{\tag{10}}
u
i = u
i + λ { γ w i j [ 1 − σ ( u
i T v
j ) ] ⋅ v
j } ( 1 0 )
(11)
v
→
j
=
v
→
j
+
λ
{
γ
w
i
j
[
1
−
σ
(
u
→
i
T
v
→
j
)
]
⋅
u
→
i
}
{\overrightarrow{\mathbf{v}}_{j}=\overrightarrow{\mathbf{v}}_{j}+\lambda\left\{\gamma w_{i j}\left[1-\sigma\left(\overrightarrow{\mathbf{u}}_{i}^{T} \overrightarrow{\mathbf{v}}_{j}\right)\right] \cdot \overrightarrow{\mathbf{u}}_{i}\right\}}{\tag{11}}
v
j = v
j + λ { γ w i j [ 1 − σ ( u
i T v
j ) ] ⋅ u
i } ( 1 1 )
Setp2 :将
u
i
u_i
u i 和
v
j
v_j
v j 作为中心节点,用SGA最大化目标函数
L
2
=
α
log
O
2
L_{2}=\alpha \log O_{2}
L 2 = α log O 2 和
L
3
=
β
log
O
3
L_{3}=\beta \log O_{3}
L 3 = β log O 3 ,可以最大化保留隐式关系。对于给定的中心节点
u
i
u_i
u i (或
v
j
v_j
v j )以及上下文节点
u
c
u_c
u c 和
v
c
v_c
v c ,更新它们的embedding:
(12)
u
→
i
=
u
→
i
+
λ
{
∑
z
∈
{
u
c
}
∪
N
S
n
s
(
u
i
)
α
[
I
(
z
,
u
i
)
−
σ
(
u
→
i
T
θ
⃗
z
)
]
⋅
θ
⃗
z
}
\overrightarrow{\mathbf{u}}_{i}=\overrightarrow{\mathbf{u}}_{i}+\lambda\left\{\sum_{z \in\left\{u_{c}\right\} \cup N_{S}^{n s}\left(u_{i}\right)} \alpha\left[I\left(z, u_{i}\right)-\sigma\left(\overrightarrow{\mathbf{u}}_{i}^{T} \vec{\theta}_{z}\right)\right] \cdot \vec{\theta}_{z}\right\}{\tag{12}}
u
i = u
i + λ ⎩ ⎨ ⎧ z ∈ { u c } ∪ N S n s ( u i ) ∑ α [ I ( z , u i ) − σ ( u
i T θ
z ) ] ⋅ θ
z ⎭ ⎬ ⎫ ( 1 2 )
(13)
v
→
j
=
v
→
j
+
λ
{
∑
z
∈
{
v
c
}
∪
N
n
s
(
v
i
)
β
[
I
(
z
,
v
j
)
−
σ
(
v
j
→
T
ϑ
⃗
z
)
]
⋅
ϑ
⃗
z
}
\overrightarrow{\mathbf{v}}_{j}=\overrightarrow{\mathbf{v}}_{j}+\lambda\left\{\sum_{z \in\left\{v_{c}\right\} \cup N^{n s}\left(v_{i}\right)} \beta\left[I\left(z, v_{j}\right)-\sigma\left(\overrightarrow{\mathbf{v}_{j}}^{T} \vec{\vartheta}_{z}\right)\right] \cdot \vec{\vartheta}_{z}\right\}{\tag{13}}
v
j = v
j + λ ⎩ ⎨ ⎧ z ∈ { v c } ∪ N n s ( v i ) ∑ β [ I ( z , v j ) − σ ( v j
T ϑ
z ) ] ⋅ ϑ
z ⎭ ⎬ ⎫ ( 1 3 )
其中
I
(
z
,
u
i
)
I\left(z, u_{i}\right)
I ( z , u i ) 是指示函数用来判断节点
z
z
z 是否为
u
i
u_i
u i 的上下文。同理更新上下文向量
(14)
θ
z
→
=
θ
z
→
+
λ
{
α
[
I
(
z
,
u
i
)
−
σ
(
u
i
→
T
θ
→
z
)
]
⋅
u
→
i
}
\overrightarrow{\boldsymbol{\theta}_{z}}=\overrightarrow{\boldsymbol{\theta}_{z}}+\lambda\left\{\alpha\left[I\left(z, u_{i}\right)-\sigma\left(\overrightarrow{\mathbf{u}_{i}}^{T} \overrightarrow{\boldsymbol{\theta}}_{z}\right)\right] \cdot \overrightarrow{\mathbf{u}}_{i}\right\}{\tag{14}}
θ z
= θ z
+ λ { α [ I ( z , u i ) − σ ( u i
T θ
z ) ] ⋅ u
i } ( 1 4 )
(15)
ϑ
⃗
z
=
ϑ
⃗
z
+
λ
{
β
[
I
(
z
,
v
j
)
−
σ
(
v
j
→
T
ϑ
→
z
)
]
⋅
v
→
j
}
\vec{\boldsymbol{\vartheta}}_{z}=\vec{\boldsymbol{\vartheta}}{z}+\lambda\left\{\beta\left[I\left(z, v_{j}\right)-\sigma\left(\overrightarrow{\mathbf{v}_{j}}^{T} \overrightarrow{\boldsymbol{\vartheta}}_{z}\right)\right] \cdot \overrightarrow{\mathbf{v}}_{j}\right\}{\tag{15}}
ϑ
z = ϑ
z + λ { β [ I ( z , v j ) − σ ( v j
T ϑ
z ) ] ⋅ v
j } ( 1 5 )
总体训练过程如下:
实现
预训练
联合优化函数eq(9)是一个非凸函数,所以初始化对于找到合适的解非常重要。本文通过预训练eq(9)得到节点embedding初始值。
计算复杂度
总结
相比于传统的同质图NE方法,BiNE能够有效地利用二部图(异质图)的特点,生成不同类型节点的embedding。效果更好
异质图NE的SOTA方法Metapath++认为显式联系和隐式联系的作用相等,并且忽略了图上节点之间的权重信息;而BiNE考虑了限制联系和隐式联系分别的作用,并且很好地利用了权重信息。
本文提出的随机游走生成方法,每个节点采样的游走序列数与节点的重要性相关,并且序列长度不固定。更符合图的原始分布。
Q&A
二部图的特点
节点符合幂律分布
Suchit Pongnumkul and Kazuyuki Motohashi. A bipartite fitness model for online music streaming services. Physica A: Statistical Mechanics and its Applications, 490:1125–1137, 2018.
deepwalk采样序列节点度不满足幂律分布,对二部图结果造成影响的分析
随机游走停止概率p的设置,什么时候句子长,什么时候句子短
负采样方法,LSH和loguniform分布采样,哪个好
LSH挑选其他桶的样本,保证负样本与当前节点不相似;O(1)时间复杂度,O(n)空间复杂度
loguniform分布采样,根据热度采样,惩罚热门节点 ;O(1)时间复杂度,O(1)空间复杂度
采样时间复杂度?
参考资料
二部图节点排序
Xiangnan He, Ming Gao, Min-Yen Kan, and Dingxian Wang. Birank: Towards ranking on bipartite graphs. TKDE, 29(1):57–71, 2017