前言
目前大部分关于 GNN 的工作都是集中于处理无符号网络,本文所针对处理的数据类型为有向符号网络,本文基于相应的社会学理论提出了一种学习有向符号网络中节点嵌入的方法,具体来说该模型关注了网络中边的正向/负向信号、边的方向、有向带符号的三角形关系。
论文链接:https://arxiv.org/pdf/2101.02390.pdf
github:https://github.com/huangjunjie95/SiGAT
平衡理论的用处在于使人们可以用“最小努力原则”来预计不平衡所产生的效应,使个体尽可能少地改变情感关系以恢复平衡结构。
1. Introduction
随着线上社交媒体的发展,用户之间的许多关系随着产生,从社会计算研究的角度来说建模并且理解这些用户之间的复杂关系非常重要,这些关系的大多数为 positive 例如朋友、信任、喜欢、支持、赞同等。与此同时,网络上的冲突无处不在,形成了表示敌意、不信任、仇恨、不同意和不赞同的负面链接。基于这些事实,专门有一类图结构来建模这些关系称为 signed network,简单来说就是图中的边被赋予了属性代表正向或者负向。signed network的用处非常广泛,假设存在一个用户群体,他们被建模成 signed network中的节点,要研究他们之间的情感倾向就可以用带有符号的边来表示,进而就可以扩展成社交网络用户的分析研究。
因为这些关系来源于人群并且反映了人群的态度和心理情况,因此社会心理学的相关研究(如 status theory、balance theory)揭示了 signed network 的社会机制。这两种理论被广泛应用于 signed network 的分析。
在 signed network 分析中,边的符号预测就是给出一条边来判断边的符号也就是一个预测问题这也是来验证 signed network 嵌入效果常用的下游任务。signed network 的嵌入学习就是期望将网络中的节点特征映射成一个低维的向量表示,现有的研究同时也大量基于社会学理论
近年来关于图神经网络的理论大量被提出,包括频域和空域的方法,如果高度概括来说就是一系列信息传播和特征更新框架,例如经典的 GCN、GAT、GAE等,但是这些方法都是被设计用于处理无符号图数据的,不能直接进行应用。
因此一些基于图神经网络的方法被提出,例如 SGCN 将传统 GCN 推广到 signed network 并且结合社会学中的 balance theory 设计了一个新的信息聚合器,SNEA 利用 self-attention 机制来加强 signed network 嵌入的效果。上述的方法在建模和处理的时候考虑到了 balance theory 来考虑边的符号,但是没有考虑到方向信息,但是方向信息对于 signed graph 建模来说是非常重要的。
因此本文尝试利用 Signed Directed Graph Neural Networks(SDGNN)来建模有向符号图。相较于其他的基于图神经网络的有向符号图的处理方法,本文的优势在于基于相应的社会学理论并且重新设计了聚合器函数和损失函数。具体来说,对于 signed directed networks,作者定义了四种不同的带有符号的有向关系。并且提出了一种符号关系 GNN 来完成 signed networks 中节点特征信息的传播与聚合
本文的主要创新点如下:
- 在回顾了符号网络分析的两个基本社会心理学理论之后,作者在五个现实数据集上对这些理论进行了实证分析。
- 本文提出了一种 有向符号关系 GNN 层在不同的有向符号关系定义下完成节点特征信息的传播与聚合。并且在基于社会学的两种理论:status theory 和 balance theory 的条件下,损失函数由重建符号、方向和三角形组成。
2.Related Work
2.1 Signed Network Embedding
SNE、SiNE、SIDE、SIGNet、BESIDE(SOTA)
这些方法致力于定义一个融合社会学理论的目标函数,然后使用机器学习技术(例如:(采样和随机漫步)来优化嵌入。
2.2 Graph Neural Networks
现有的所有 GNN 模型可以被认为是信息传播框架包括一个信息传播函数和节点信息更新函数,因为现有的处于非欧式空间的图结构数据无法使用常用的 RNN 或者 CNN 结构进行处理。通过使用图神经网络,一些技术可以应用在非欧式空间中的图结构数据中,例如卷积操作、注意力机制、LSTM等等。尤其是 GAE,其希望映射图中的每一个节点变为低维的向量表示,进而用来重构原始的图结构,其核心思想是自动编码器是一种无监督的算法。与网络嵌入方法相比,GNNs 有部分相同的地方,但其使用了深度学习方法,而不是矩阵分解和随机游走,相比于矩阵分解和随机游走,深度学习方法能够更好地描述网络结构和节点特征。
但是现有的大部分 GNN 方法是针对于无符号图设计的,如果推广 GNN 到有向符号图面临许多困难例如如何建模负向的边和描述节点之间的有向连接。SGCN 基于社会学中的 balance 理论设计了一种新的信息传播和聚合机制,并且利用了一种平均采样的理论来学习节点嵌入(类似于 GraphSAGE)。SiGAT 首先提出用 GAT 的思想基于社会学理论来处理有向符号图,并且设计了一种基于主题的 GNN 来进行建模。但是 SiGAT 使用了 38 种 motifs,导致计算代价高昂,并且在目标函数中仅包含了符号的相关信息而忽略了其他的重要特征例如方向信息和三元对象的三角关系。
3. Problem Definition
有向符号图定义为
G
=
(
V
,
E
,
s
)
\mathcal{G=(V,E,s)}
G=(V,E,s),其中
V
\mathcal{V}
V 代表图
G
G
G 中的节点集,
E
\mathcal{E}
E 代表边的集合包含了符号
s
\mathcal{s}
s 和方向信息。其中符号信息具体可以表示为
E
+
⋂
E
−
=
∅
\mathcal{E}^+ \bigcap \mathcal{E}^- =\emptyset
E+⋂E−=∅,其中
E
+
\mathcal{E}^+
E+ 和
E
−
\mathcal{E}^-
E− 分别代表正向和负向标号的节点集合。这种标号信息可以通过该图的邻接矩阵
A
A
A 来表示,具体来说邻接矩阵中存在三种关系
A
i
j
=
1
,
A
i
j
=
−
1
,
A
i
j
=
0
A_{ij}=1,A_{ij}=-1,A_{ij}=0
Aij=1,Aij=−1,Aij=0,这三种情况分别代表节点
u
i
u_i
ui 和
u
j
u_j
uj 之间存在正向链接、负向连接、无连接。给出一个符号图
G
=
(
V
,
E
,
s
)
\mathcal{G=(V,E,s)}
G=(V,E,s),有向图嵌入的目标就是映射图中的所有节点
u
∈
V
u \in \mathcal{V}
u∈V 到低维的向量表示
z
u
∈
R
d
z_u \in\mathbb{R}^d
zu∈Rd,上述过程可以表示为:
f
(
A
)
→
Z
(1)
f(A)\rightarrow Z\tag{1}
f(A)→Z(1)
其中
Z
∈
R
∣
V
∣
×
d
Z \in \mathbb{R}^{|\mathcal{V}|\times d}
Z∈R∣V∣×d,代表共有
V
\mathcal{V}
V 个节点被嵌入到
d
d
d 维的的向量表示。
f
(
⋅
)
f(\cdot)
f(⋅) 代表转换函数。
4. Sociological Theroy
社会学理论(balance theroy 和 status theroy)对于分析和建模有向符号图来说非常重要
4.1 Balance Theory
平衡理论涉及到一个认知对象与二个态度对象之间的三角形关系。例如, 用符号 P 来表示认知的主体,用符号 O 与 X 表示二个态度对象。 O 与 X 称为处于一个单元中的二个对象。认知主体 P 对构成一体的两对象 O 与 X 的评价是带有情绪性的,喜恶、赞成与反对。
通常,认知主体对单元中两对象的态度是趋向一致的,如喜欢某人,则对某人的工作也很赞赏;不喜欢某人,则认为他的朋友也不是好东西。
例如:P 为学生,X 为爵士音乐,O 为P所尊敬的师长。如果P喜欢爵士音乐,听到 O 赞美爵士音乐,P—O—X 模式中三者的关系皆为正号,P 的认知体系呈现平衡状态。如果 P 喜欢爵士音乐,又听到 O 批判爵士音乐,P—O—X 模式中,三者的关系二正一负,这时 P 的认知体系呈现不平衡状态,不平衡状态会导致认知体系发生变化。
Balance Theory 起源于20世纪50年代,最初的目的是作为无向有符号网络的模型。具有偶数条负边的三合体为平衡的。在图1(a)中,有三个正号的三角形和只有一个正号的三角形(即图1(a)中的前两个三角)是平衡的。平衡理论认为,平衡的三合会比不平衡的三合会更合理——因此在现实网络中应该更普遍。它例证了这样一个原则:我朋友的朋友就是我的朋友,我敌人的敌人就是我的朋友。该理论被广泛应用于 signed networks。
4.2 Status Theory
Status Theory 是另一个重要的社会学理论,它为有符号链接的有向网络提供了一种不同的组织原则。它假设一个积极的定向链接 “+” 表示链接的创建者认为接收者具有更高的地位;而一个负面的指向链接 “-” 表示接收者被认为具有较低的地位。地位可以表示相对的声望、等级或声誉。例如,从 A 到 B 的正链接不仅意味着 B 是 A 的朋友,而且 B 的地位也高于 A。对于图1(B)中的三角形,前两个三角满足地位顺序,但后两个不满足。对于第一个三元组,当 Status(j) > Status(i) 和Status(k) > Status(j) 时,有Status(k) > Status(i)。
4.3 Comparison of Balance Theory and Status Theory
Balance Theory 关注的是无向有符号网络,尽管它已经被用于有向网络,只是简单地忽略了方向。而 Status Theory 通常反映的是两个用户之间的关系,这种关系是基于方向的。在某些情况下,这两种理论可以与预测相一致。这一现象受到了研究人员的广泛关注。作者因此验证在本文中使用的五个真实世界的数据集上满足平衡和/或状态理论的三元组合的百分比。从表1中可以发现只有很小一部分三角形不满足这两种理论。大约 70% 的三合会与这两种理论一致。这些不满足任何理论的三角形可能是有符号网络嵌入表示的噪声。此外,Balance Theory 建模了三个顶点之间的关系,和 Status Theory 捕捉两个顶点之间的关系与传递性质。这两种理论的互补是有符号有向网络表示学习的关键。
5. SDGNN
5.1 SDGNN Layer
在信息传播框架的构建上,本文的作者主要参考 GraphSAGE 和 GAT 两种经典的空域图卷积模型。对于一个有向信号图,方向和符号信息反应了两个节点之间不同的关系和语义信息,因此不同的邻居之间的不同关系应该区分开来。基于此作者定义了四种节点之间的关系(对应于两种不同的信号:正向和反向、两种不同的方向:A -> B 和 B -> A)。表示为
u
→
+
v
,
u
→
−
v
,
u
←
+
v
,
u
←
−
v
u \rightarrow^+ v,u\rightarrow^- v,u\leftarrow^+v,u\leftarrow^-v
u→+v,u→−v,u←+v,u←−v。基于不同的有向符号关系 signed directed relation (SDR)
r
i
r_i
ri 我们可以得到该种关系下对应的邻居
N
r
i
\mathcal{N}_{r_i}
Nri,基于此我们可以应用不同的 SDR GNN 信息聚合器来聚合来自不同邻居的信息,并使用 MLP 对这些信息进行编码加入到节点嵌入中。GNN 的聚合器可以是 mean aggregators (均值聚合器)、attention aggregators (注意力聚合器)等。对于均值聚合器来说,节点信息传播框架定义如下:
X
r
i
l
(
u
)
=
σ
(
W
r
i
l
⋅
M
E
A
N
(
{
z
u
l
}
∪
{
z
v
l
,
∀
u
∈
N
r
i
(
u
)
}
)
)
z
u
l
+
1
=
M
L
P
(
C
O
N
C
A
T
(
X
l
(
u
)
,
X
r
1
l
(
u
)
,
…
,
X
r
i
l
(
u
)
)
)
(2)
X_{r_i}^l(u)=\sigma(\mathbf{W}^l_{r_i}\cdot MEAN(\{z_u^l\}\cup\{z^l_v,\forall u \in\mathcal{N}_{r_i}(u)\}))\\z_u^{l+1}=MLP(CONCAT(X^l(u),X_{r_1}^l(u),\dots,X_{r_i}^l(u)))\tag{2}
Xril(u)=σ(Wril⋅MEAN({zul}∪{zvl,∀u∈Nri(u)}))zul+1=MLP(CONCAT(Xl(u),Xr1l(u),…,Xril(u)))(2)
其中
z
u
z_u
zu 代表节点
u
u
u 的嵌入,
N
r
i
(
u
)
\mathcal{N}_{r_i}(u)
Nri(u) 代表在关系
r
i
r_i
ri 条件下节点
u
u
u 的邻居集合。
W
\mathbf{W}
W 代表可训练的权重参数,
σ
(
⋅
)
\sigma(\cdot)
σ(⋅) 代表激活函数。
对于注意力聚合器来说,首先需要计算节点
u
u
u 和
v
v
v 之间的归一化注意力系数
α
u
v
r
i
\alpha_{uv}^{r_i}
αuvri,本文中采用 LeakyReLU 作为非线性激活函数其中 (negative input slope
α
=
0.2
\alpha=0.2
α=0.2)。计算过程如下:
α
u
v
r
i
=
e
x
p
(
L
e
a
k
y
R
e
L
U
(
α
⃗
r
i
T
[
W
r
i
l
z
u
l
∣
∣
W
r
i
l
z
v
l
]
)
)
∑
k
∈
N
r
i
(
u
)
e
x
p
(
L
e
a
k
y
R
e
L
U
(
α
⃗
r
i
T
[
W
r
i
l
z
u
l
∣
∣
W
r
i
l
z
k
l
]
)
)
(3)
\alpha_{uv}^{r_i}=\frac{exp(LeakyReLU(\vec{\alpha}_{r_i}^T[\mathbf{W}_{r_i}^lz_u^l || \mathbf{W}_{r_i}^lz_v^l]))}{\sum_{k \in \mathcal{N}_{r_i}(u)exp(LeakyReLU(\vec{\alpha}_{r_i}^T[\mathbf{W}_{r_i}^lz_u^l || \mathbf{W}_{r_i}^lz_k^l]))}}\tag{3}
αuvri=∑k∈Nri(u)exp(LeakyReLU(αriT[Wrilzul∣∣Wrilzkl]))exp(LeakyReLU(αriT[Wrilzul∣∣Wrilzvl]))(3)
其中
⋅
∣
∣
⋅
\cdot || \cdot
⋅∣∣⋅ 代表级联操作。在得到节点之间在关系
r
i
r_i
ri 下的注意力系数之后,可以基于此生成关系
r
i
r_i
ri 下的节点信息和最终的节点表示:
X
r
i
l
(
u
)
=
∑
v
∈
N
r
i
(
u
)
α
u
v
r
i
W
r
i
z
v
l
z
u
l
+
1
=
M
L
P
(
C
O
N
C
A
T
(
X
l
(
u
)
,
X
r
1
l
(
u
)
,
…
,
X
r
i
l
(
u
)
)
)
(4)
X_{r_i}^l(u)=\sum_{v \in \mathcal{N}_{r_i}(u)}\alpha_{uv}^{r_i}\mathbf{W}_{r_i}z_v^l\\z_u^{l+1}=MLP(CONCAT(X^l(u),X_{r_1}^l(u),\dots,X_{r_i}^l(u)))\tag{4}
Xril(u)=v∈Nri(u)∑αuvriWrizvlzul+1=MLP(CONCAT(Xl(u),Xr1l(u),…,Xril(u)))(4)
5.2 Loss Function
由于在有向符号图的建模和信息传播过程中主要考虑三个问题分别是:边的符号预测、边的方向预测、三角关系预测。因此最终的损失函数分别由这三部分组成。
首先对于边的符号预测,我们使用交叉熵损失函数来评估两个节点之间的符号预测:
L
s
i
g
n
(
u
,
v
)
=
−
y
u
,
v
l
o
g
(
σ
(
z
u
T
z
v
)
)
−
(
1
−
y
u
,
v
)
l
o
g
(
1
−
σ
(
z
u
T
z
v
)
)
L
s
i
g
n
=
∑
e
u
,
v
∈
E
L
s
i
g
n
(
u
,
v
)
(5)
\mathcal{L}_{sign}(u,v)=-y_{u,v}log(\sigma(z_u^Tz_v))-(1-y_{u,v})log(1-\sigma(z_u^Tz_v))\\\mathcal{L}_{sign}=\sum_{e_{u,v}\in\mathcal{E}}\mathcal{L}_{sign}(u,v)\tag{5}
Lsign(u,v)=−yu,vlog(σ(zuTzv))−(1−yu,v)log(1−σ(zuTzv))Lsign=eu,v∈E∑Lsign(u,v)(5)
其中 y u , v y_{u,v} yu,v 代表节点 u u u 和 v v v 之间边的符号的真实标签, E \mathcal{E} E 代表带有符号的边的集合。
在社会学理论中,status theroy 体现在 signed networks 中的边的方向,因此对于一个节点对
u
u
u 和
v
v
v 定义一个 status ranking 函数表示为
s
(
z
u
)
s(z_u)
s(zu) 和
s
(
z
v
)
s(z_v)
s(zv)。基于此,使用下面的平方损失函数来测量边
e
u
v
e_{uv}
euv 的预测状态关系值
s
(
z
u
)
−
s
(
z
v
)
s(z_u)−s(z_v)
s(zu)−s(zv) 与真实值
q
u
v
q _{uv}
quv 之间的差异:
L
d
i
r
e
c
t
i
o
n
(
u
→
v
)
=
(
q
u
v
−
(
s
(
z
u
)
−
s
(
z
v
)
)
)
2
q
u
v
=
{
m
a
x
(
s
(
z
u
)
−
s
(
z
v
)
,
γ
)
=
u
→
v
:
−
m
i
n
(
s
(
z
u
)
−
s
(
z
v
)
,
γ
)
=
u
→
v
:
+
L
d
i
r
e
c
t
i
o
n
=
∑
e
u
,
v
∈
E
L
d
i
r
e
c
t
i
o
n
(
u
→
v
)
(6)
\mathcal{L}_{direction}(u\rightarrow v)=(q_{uv}-(s(z_u)-s(z_v)))^2\\ q_{uv}=\left\{ \begin{aligned} max(s(z_u)-s(z_v),\gamma) & = & u \rightarrow v:- \\ min(s(z_u)-s(z_v),\gamma) & = & u \rightarrow v:+ \end{aligned} \right.\\\mathcal{L}_{direction}=\sum_{e_{u,v}\in\mathcal{E}}\mathcal{L}_{direction}(u\rightarrow v)\tag{6}
Ldirection(u→v)=(quv−(s(zu)−s(zv)))2quv={max(s(zu)−s(zv),γ)min(s(zu)−s(zv),γ)==u→v:−u→v:+Ldirection=eu,v∈E∑Ldirection(u→v)(6)
其中在本文中
s
(
z
)
=
s
i
g
m
o
i
d
(
W
⋅
z
+
b
)
s(z)=sigmoid(W\cdot z+b)
s(z)=sigmoid(W⋅z+b) 代表一个对于向量
z
z
z 的评分函数,
γ
=
0.5
\gamma=0.5
γ=0.5 代表判断方向的阈值。
对于三元关系,作者希望模型可以从真实的三元分布中进行学习(也就是 balance theory 表示最可能的三元关系是负向边的个数为偶数),对于一个三元关系
△
i
,
j
,
k
,
i
→
+
j
,
i
→
+
k
,
k
→
+
j
\triangle_{i,j,k},i\rightarrow^+j,i\rightarrow^+k,k\rightarrow^+j
△i,j,k,i→+j,i→+k,k→+j,希望最大化这样的可能性,表示为:
J
△
i
,
j
,
k
=
P
(
+
∣
e
i
j
)
∗
P
(
+
∣
e
i
k
)
∗
P
(
+
∣
e
k
j
)
(7)
J_{\triangle_{i,j,k}}=P(+|e_{ij})*P(+|e_{ik})*P(+|e_{kj})\tag{7}
J△i,j,k=P(+∣eij)∗P(+∣eik)∗P(+∣ekj)(7)
基于此可以定义三元关系目标函数为:
J
t
r
i
=
∏
△
∈
T
J
△
L
t
r
i
a
n
g
l
e
=
−
l
o
g
J
t
r
i
=
∑
△
∈
T
−
l
o
g
J
△
=
∑
△
∈
T
L
△
(8)
J_{tri}=\prod_{\triangle\in T}J_{\triangle}\\ \mathcal{L}_{triangle}=-logJ_{tri}=\sum_{\triangle\in T}-logJ_{\triangle}=\sum_{\triangle\in T}\mathcal{L}_\triangle\tag{8}
Jtri=△∈T∏J△Ltriangle=−logJtri=△∈T∑−logJ△=△∈T∑L△(8)
其中
T
T
T 是根据 balance theory 和 status theory 划分的三元关系集合。可以用三个顶点构造一个三角形(
i
,
j
,
k
i,j,k
i,j,k):
L
△
i
,
j
,
k
=
L
i
j
+
L
i
k
+
L
j
k
L
i
j
=
−
y
i
,
j
l
o
g
P
(
+
∣
e
i
j
)
−
(
1
−
y
i
,
j
)
l
o
g
(
1
−
P
(
+
∣
e
i
j
)
)
=
−
y
i
,
j
l
o
g
(
σ
(
z
i
T
z
j
)
)
−
(
1
−
y
i
,
j
)
l
o
g
(
1
−
σ
(
z
i
T
z
j
)
)
(9)
\mathcal{L}_{\triangle_{i,j,k}}=\mathcal{L}_{ij}+\mathcal{L}_{ik}+\mathcal{L}_{jk}\\ \mathcal{L}_{ij}=-y_{i,j}logP(+|e_{ij})-(1-y_{i,j})log(1-P(+|e_{ij}))\\=-y_{i,j}log(\sigma(z_i^Tz_j))-(1-y_{i,j})log(1-\sigma(z_i^Tz_j))\tag{9}
L△i,j,k=Lij+Lik+LjkLij=−yi,jlogP(+∣eij)−(1−yi,j)log(1−P(+∣eij))=−yi,jlog(σ(ziTzj))−(1−yi,j)log(1−σ(ziTzj))(9)
其中 y i j y_{ij} yij 代表边 e i j e_{ij} eij 的符号标签,通过式(8)和(9),利用边的二值化交叉熵损失函数重构三角形。边损失函数的权值是三角形中边的数量。
根据符号、方向和三角形损失函数,总体目标函数为:
L
l
o
s
s
=
L
s
i
g
n
+
λ
1
L
d
i
r
e
c
t
i
o
n
+
λ
2
L
t
r
i
a
n
g
l
e
(10)
\mathcal{L}_{loss}=\mathcal{L}_{sign}+\lambda_1\mathcal{L}_{direction}+\lambda_2\mathcal{L}_{triangle}\tag{10}
Lloss=Lsign+λ1Ldirection+λ2Ltriangle(10)
其中
λ
1
,
λ
2
\lambda_1,\lambda_2
λ1,λ2 代表损失函数组成部分的权重,该损失函数被设计用来重建有向符号网络的各种特性。
6. Experiments