前言
论文链接:https://arxiv.org/abs/1901.08150
1. Hypergraph Convolution and Hypergraph Attention
1.1 Hypergraph Revisited
一个普通图定义为
G
=
(
V
,
E
)
\mathcal{G}=(V,E)
G=(V,E) ,其中节点集定义为
V
=
{
v
1
,
v
2
,
…
,
v
N
}
V=\{v_1,v_2,\dots,v_N\}
V={v1,v2,…,vN},边集定义为
E
⊆
V
×
V
E \subseteq V \times V
E⊆V×V,该图的邻接矩阵的维度为
A
∈
R
N
×
N
\mathbf{A}\in\mathbb{R}^{N\times N}
A∈RN×N。传统意义上的无向简单图就可以定义为这种形式,但是在现实世界中,实体之间的关系往往更加复杂,因此需要引入新的结构来进行描述,在这里引出了超图的概念。超图相比于简单图来讲最大的特点在于一条边可以连接两个及两个以上的顶点。进而
G
=
(
V
,
E
)
\mathcal{G}=(V,E)
G=(V,E) 代表一个含有
N
N
N 个顶点和
M
M
M 条超边的超图,每一条超边满足
ϵ
∈
E
\epsilon \in E
ϵ∈E ,并且附加一个权重表示
W
ϵ
ϵ
W_{\epsilon\epsilon}
Wϵϵ,进而每一条超边的权重组成该超图的超边权重对角矩阵
W
∈
R
M
×
M
\mathbf{W}\in\mathbb{R}^{M\times M}
W∈RM×M。由于超图的特性,相比于普通图的邻接矩阵,我们可以通过超边关联矩阵来描述超图中的拓扑关系,超边的关联矩阵定义为
H
∈
R
N
×
M
\mathbf{H} \in \mathbb{R}^{N \times M}
H∈RN×M,如果节点
v
i
v_i
vi 包含在超边
ϵ
\epsilon
ϵ 中那么存在
H
i
ϵ
=
1
H_{i\epsilon}=1
Hiϵ=1 否则为 0。基于此,节点的度可以定义为:
D
i
i
=
∑
ϵ
=
1
M
W
ϵ
ϵ
H
i
ϵ
(1)
D_{ii}=\sum_{\epsilon=1}^MW_{\epsilon\epsilon H_{i\epsilon}}\tag{1}
Dii=ϵ=1∑MWϵϵHiϵ(1)
超边的度可以定义为:
B
ϵ
ϵ
=
∑
i
=
1
N
H
i
ϵ
(2)
B_{\epsilon\epsilon}=\sum_{i=1}^NH_{i\epsilon}\tag{2}
Bϵϵ=i=1∑NHiϵ(2)
其中
D
∈
R
N
×
N
,
B
∈
R
M
×
M
\mathbf{D}\in\mathbb{R}^{N\times N},\mathbf{B}\in\mathbb{R}^{M\times M}
D∈RN×N,B∈RM×M 两者都是对角矩阵。
1.2 Hypergraph Convolution
在超图中定义卷积算子的主要障碍是度量两个顶点之间的转移概率,通过这个概率,每个顶点的嵌入(或特征)可以在图神经网络中传播。为了实现这一点,作者提出了两个假设
- 1)由公共超边连接的顶点之间需要进行更多的传播
- 2)权重较大的超边在这种传播中需要更多的置信度。然后将超图卷积的一步定义为
x i ( l + 1 ) = σ ( ∑ j = 1 N ∑ ϵ = 1 M H i ϵ H j ϵ W ϵ ϵ x j ( l ) P ) (3) x_i^{(l+1)}=\sigma(\sum_{j=1}^N\sum_{\epsilon=1}^{M}H_{i\epsilon}H_{j\epsilon}W_{\epsilon\epsilon}x_j^{(l)}\mathbf{P})\tag{3} xi(l+1)=σ(j=1∑Nϵ=1∑MHiϵHjϵWϵϵxj(l)P)(3)
矩阵形式表示为:
X
(
l
+
1
)
=
σ
(
H
W
H
T
X
(
l
)
P
)
(4)
\mathbf{X}^{(l+1)}=\sigma(\mathbf{HWH^TX}^{(l)}\mathbf{P})\tag{4}
X(l+1)=σ(HWHTX(l)P)(4)
其中的维度关系为
X
(
l
)
∈
R
N
×
F
(
l
)
,
X
(
l
+
1
)
∈
R
N
×
F
(
l
+
1
)
\mathbf{X}^{(l)}\in\mathbb{R}^{N\times F^{(l)}},\mathbf{X}^{(l+1)}\in\mathbb{R}^{N\times F^{(l+1)}}
X(l)∈RN×F(l),X(l+1)∈RN×F(l+1)。这种形式没有考虑到频域中卷积操作导致数值的不稳定性,并增加爆炸/消失梯度的风险。因此,适当的规范化是必要的
X ( l + 1 ) = σ ( D − 1 2 H W B − 1 H T D − 1 2 X ( l ) P ) (4) \mathbf{X}^{(l+1)}=\sigma(\mathbf{D^{-\frac{1}{2}}HWB^{-1}H^TD^{-\frac{1}{2}}X}^{(l)}\mathbf{P})\tag{4} X(l+1)=σ(D−21HWB−1HTD−21X(l)P)(4)
这种形式其实与 HGNN 提出的超图卷积方式是一致的
1.3 Hypergraph Attention
受启发于 GAT ,相比于普通图中的邻域节点,在作者提出的 HyperGAT 中计算注意力的对象是同一条超边中的其他节点
H
i
j
=
e
x
p
(
σ
(
s
i
m
(
x
i
P
,
x
j
P
)
)
)
∑
k
∈
N
i
e
x
p
(
σ
(
s
i
m
(
x
i
P
,
x
k
P
)
)
)
(5)
H_{ij}=\frac{exp(\sigma(sim(x_i\mathbf{P},x_j\mathbf{P})))}{\sum_{k\in\mathcal{N}_i}exp(\sigma(sim(x_{i}\mathbf{P},x_k\mathbf{P})))}\tag{5}
Hij=∑k∈Niexp(σ(sim(xiP,xkP)))exp(σ(sim(xiP,xjP)))(5)
其中
s
i
m
(
⋅
)
sim(\cdot)
sim(⋅) 代表注意力系数计算公式,形式如下
s
i
m
(
x
i
,
x
j
)
=
a
T
[
x
i
∣
∣
x
j
]
(6)
sim(x_i,x_j)=\mathbf{a^T}[x_i||x_j]\tag{6}
sim(xi,xj)=aT[xi∣∣xj](6)
我们可以在每一层的开始处理数据时先通过attention作用,将关联矩阵变成类似概率矩阵,即每个元素就是attention得分,然后通过与H相乘,得到加权后的矩阵,最后再嵌入convolution中。
2. Experiments