最近正在学习超图理论,本文对论文 HGNN+: General Hypergraph Neural Networks (TPAMI 2022) 进行详细的讲解。欢迎讨论!
论文地址:HGNN+
超图是一种图的推广形式,是一种高效的特征表示学习方法。在超图中,一条超边不仅可以连接两个顶点,还可以连接多个顶点,从而更好地捕捉复杂的高阶关系。在超图中,顶点表示对象,超边表示对象之间的高阶关联。例如,在一个社交网络中,一个超边可以表示多个用户之间的群组关系,而不仅仅是成对的好友关系。超图因其灵活性和丰富的表达能力,广泛应用于社交网络分析、生物信息学、推荐系统、视觉等领域,能够更有效地建模和分析复杂的多层次数据关联。
1. 超边的构建
在没有原生的超图结构的情况下,论文介绍如何从原始数据中构建一个灵活的超图结构。超图结构用于建模数据关联。为了更好地利用数据之间的高阶关联,生成一个良好的超图结构是非常重要的。需要注意的是,大多数情况下并不存在显式的超图结构。因此,我们需要使用不同的策略来生成超图。
通常,从零开始生成超图的情况可以分为三种情形,即具有图结构的数据、没有图结构的数据以及具有多模态/多类型表示的数据。给定数据,本文介绍了三种超边生成策略,分别是使用成对边、 k k k-hop和特征空间中的邻居:
- 使用成对边和 k k k-hop的方法用于从具有图结构的数据中生成超边组
- 使用特征空间中的邻居的方法用于从没有图结构的数据中生成超边组。
1.1 数据关联具有图结构的情况
在某些场景中,存在可用的成对数据关联,例如数据的现有图结构。这里我们用 G s = ( V s , E s ) \mathcal{G}_s=\left(\mathcal{V}_s, \mathcal{E}_s\right) Gs=(Vs,Es) 表示图结构,其中 v i ∈ V s v_i \in \mathcal{V}_s vi∈Vs 是一个顶点, e s i j ∈ E s e_{s_{i j}} \in \mathcal{E}_s esij∈Es 是图中连接 v i v_i vi 和 v j v_j vj 的边。令 A A A 表示 G s \mathcal{G}_s Gs 的邻接矩阵。给定这样的图结构,可以生成两种类型的超边组如下:
-
使用成对边的超边组( E pair \mathcal{E}_{\text{pair}} Epair)。 E pair \mathcal{E}_{\text{pair}} Epair 旨在将图结构直接转换为一组 2-一致性超边,如图4a顶部所示,其中该组中的每个超边 e i j e_{ij} eij 只连接图 G s \mathcal{G}_s Gs 中对应边的两个顶点 v i v_i vi 和 v j v_j vj:
E pair = { { v i , v j } ∣ ( v i , v j ) ∈ E s } 。 \mathcal{E}_{\text{pair}}=\left\{\left\{v_i, v_j\right\} \mid\left(v_i, v_j\right) \in \mathcal{E}_s\right\}。 Epair={{vi,vj}∣(vi,vj)∈Es}。 E pair \mathcal{E}_{\text{pair}} Epair 能够完全覆盖图结构中的低阶(成对)关联,这是高阶关联建模所需的基本信息。这就像是在一个已有的网络中,每两个有直接连接的节点都被看作是一组。比如,在一个社交网络中,每对好友之间的关系都被单独看作一组。
-
使用 k k k-hop邻居的超边组( E hop \mathcal{E}_{\text{hop}} Ehop)。 E hop \mathcal{E}_{\text{hop}} Ehop 旨在通过图结构中的 k k k-跳可达位置找到中心顶点的相关顶点,如图4a底部所示。图 G s \mathcal{G}_s Gs 中顶点 v v v 的 k k k-跳邻域定义为: N hop k ( v ) = { u ∣ A w w k ≠ 0 , u ∈ V s } N_{\text{hop}_k}(v)=\left\{u \mid \mathbf{A}_{w w}^k \neq 0, u \in \mathcal{V}_s\right\} Nhopk(v)={u∣Awwk=0,u∈Vs}。这里 k k k 的取值可以在 [ 2 , n v ] \left[2, n_v\right] [2,nv] 范围内变化,其中 n v n_v nv 是 G s \mathcal{G}_s Gs 中的顶点数。具有 k k k-跳的超边组 E hop \mathcal{E}_{\text{hop}} Ehop 可以写成:
E hop k = { N hop k ( v ) ∣ v ∈ V } 。 \mathcal{E}_{\text{hop}_k}=\left\{N_{\text{hop}_k}(v) \mid v \in \mathcal{V}\right\}。 Ehopk={Nhopk(v)∣v∈V}。 E hop \mathcal{E}_{\text{hop}} Ehop 通过扩展图结构中的搜索半径,能够为中心顶点找到外部相关顶点,从而生成顶点组而不仅仅是两个顶点的超边。相比于 E pair \mathcal{E}_{\text{pair}} Epair 中的成对关联,它可以提供更丰富的关联信息。这相当于在一个网络中,不仅考虑直接连接的好友关系,还考虑了“朋友的朋友”甚至“朋友的朋友的朋友”的关系。这样可以找到更多与某个节点相关的节点组。
1.2 数据关联没有图结构的情况
当数据没有可用的图结构时,我们需要采用不同的方法来构建它。通常,对于每个主体可能有两种类型的数据:一种是属性类数据,另一种是与每个顶点相关的特征。
-
使用属性的超边组( E attribute \mathcal{E}_{\text{attribute}} Eattribute)。给定属性类数据,例如地理位置、时间和其他不同主体共享的特定信息,可以生成使用属性空间中邻居的超边组,如图4b顶部所示,其中每个超边代表一个属性 a a a(或该属性的一个子类型,如果可用)并连接所有共享相同属性的主体。共享属性 a a a 的顶点子集可以表示为 N att ( a ) N_{\text{att}}(a) Natt(a)。 A \mathcal{A} A 是包含所有属性或属性子类型的集合。来自属性的这一组超边可以写成:
E attribute = { N att ( a ) ∣ a ∈ A } 。 \mathcal{E}_{\text{attribute}}=\left\{N_{\text{att}}(a) \mid a \in \mathcal{A}\right\}。 Eattribute={Natt(a)∣a∈A}。 E attribute \mathcal{E}_{\text{attribute}} Eattribute 可以从群组级别建模属性空间中的关联。这类似于将拥有相同属性(例如住在同一地区或在同一时间段活动)的所有个体归为一组。比如,所有居住在同一个邮政编码区域的人被看作是一组。
-
使用特征的超边组( E feature \mathcal{E}_{\text{feature}} Efeature)。给定每个顶点的特征,第二种类型的 E feature \mathcal{E}_{\text{feature}} Efeature 可以通过在特征空间中找到每个顶点的邻居来生成。在这里可以采用不同的策略。给定一个顶点作为中心点,在特征空间中其 k k k-近邻可以通过一个超边连接,或者可以选择所有在距离 d d d 以内的邻居(包括中心点),如图4b底部所示。
{ E feature K N N k = { N K N N k ( v ) ∣ v ∈ V } E feature distance d = { N dis d ( v ) ∣ v ∈ V } 。 \left\{ \begin{array}{l} \mathcal{E}_{\text{feature}}^{\mathrm{KNN}_k}=\left\{N_{\mathrm{KNN}_k}(v) \mid v \in \mathcal{V}\right\} \\ \mathcal{E}_{\text{feature}}^{\text{distance}_d}=\left\{N_{\text{dis}_d}(v) \mid v \in \mathcal{V}\right\} \end{array}。 \right. {EfeatureKNNk={NKNNk(v)∣v∈V}Efeaturedistanced={Ndisd(v)∣v∈V}。 这种类型的超边旨在寻找顶点特征背后的关系。它可以设置为多尺度,例如在邻居查找过程中使用不同的 k k k 或 d d d 值。这就像是在一个特征空间中,根据特征的相似度,将彼此相似的顶点归为一组。例如,在一个社交网络中,兴趣爱好相似的用户可以被归为一组。你可以选择最近的几个用户( k k k-近邻)或在某个距离范围内的所有用户(距离 d d d)来形成这些组。
2. 超图的构建(超边组的融合)
在使用上述策略生成多个超边组之后,无论这些超边组是通过策略生成的还是天然存在的,我们都需要将它们进一步组合以生成最终的超图。这相当于是多模态数据的融合:每种生成的超边的方法都会生成一个超边组,每个组相当于是一种模态,我们需要联合处理所有模态的数据,所以要进行多模态数据融合,即超边组融合。
假设有 K K K 个超边组 { E 1 , E 2 , ⋯ , E K } \left\{\mathcal{E}_1, \mathcal{E}_2, \cdots, \mathcal{E}_K\right\} {E1,E2,⋯,EK},我们可以分别得到 K K K 个关联矩阵 H k ∈ { 0 , 1 } N × M k \mathbf{H}_k \in \{0,1\}^{N \times M_k} Hk∈{0,1}N×Mk。构建超图 G \mathcal{G} G 的最简单的融合方式是直接将所有超边组的关联矩阵拼接起来,如下所示: H = H 1 ∥ H 2 ∥ ⋯ ∥ H K \mathbf{H}=\mathbf{H}_1 \| \mathbf{H}_2 \| \cdots \| \mathbf{H}_K H=H1∥H2∥⋯∥HK,其中 ∥ \| ∥ 是矩阵拼接操作。超图的超边权重矩阵可以赋值为 1,以便平等对待每个超边。我们将这种最简单的融合方式称为等权融合(Coequal Fusion)。
然而,考虑到不同超边组的信息丰富度差异很大,简单的等权融合无法充分利用多模态混合的高阶关联。因此,本文提出了一种超边组融合的自适应策略,即自适应融合(Adaptive Fusion)。具体来说,每个超边组都关联一个可训练参数,该参数可以自适应地调整多个超边组对最终顶点嵌入的影响。定义如下:
{
w
k
=
copy
(
sigmoid
(
w
k
)
,
M
k
)
W
=
diag
(
w
1
1
,
⋯
,
w
1
M
1
,
⋯
,
w
K
1
,
⋯
,
w
K
M
K
)
,
H
=
H
1
∥
H
2
∥
⋯
∥
H
K
\left\{ \begin{array}{l} \mathbf{w}_k=\operatorname{copy}\left(\operatorname{sigmoid}\left(w_k\right), M_k\right) \\ \mathbf{W}=\operatorname{diag}\left(\mathbf{w}_1^1, \cdots, \mathbf{w}_1^{M_1}, \cdots, \mathbf{w}_K^1, \cdots, \mathbf{w}_K^{M_K}\right), \\ \mathbf{H}=\mathbf{H}_1 \| \mathbf{H}_2 \| \cdots \| \mathbf{H}_K \end{array} \right.
⎩
⎨
⎧wk=copy(sigmoid(wk),Mk)W=diag(w11,⋯,w1M1,⋯,wK1,⋯,wKMK),H=H1∥H2∥⋯∥HK 其中,
w
k
∈
R
\mathbf{w}_k \in \mathbb{R}
wk∈R 是一个由超边组
k
k
k 内部所有超边共享的可训练参数。
sigmoid
(
⋅
)
\operatorname{sigmoid}(\cdot)
sigmoid(⋅) 是逐元素归一化函数。向量
w
k
=
(
w
k
1
,
⋯
,
w
k
M
k
)
∈
R
M
k
\mathbf{w}_k = \left(\mathbf{w}_k^1, \cdots, \mathbf{w}_k^{M_k}\right) \in \mathbb{R}^{M_k}
wk=(wk1,⋯,wkMk)∈RMk 表示生成的超边组
k
k
k 的权重向量。
copy
(
a
,
b
)
\operatorname{copy}(a, b)
copy(a,b) 函数返回一个大小为
b
b
b 的向量,该向量的值通过复制
a
a
a 共
b
b
b 次填充。令
M
=
M
1
+
M
2
+
⋯
+
M
K
M=M_1+M_2+\cdots+M_K
M=M1+M2+⋯+MK 表示所有超边组中超边的总和。
W
∈
R
M
×
M
\mathbf{W} \in \mathbb{R}^{M \times M}
W∈RM×M 是一个对角矩阵,表示超图的权重矩阵,其中每个元素
W
i
i
\mathbf{W}^{ii}
Wii 表示对应超边
e
i
e_i
ei 的权重。
H
∈
{
0
,
1
}
N
×
M
\mathbf{H} \in \{0,1\}^{N \times M}
H∈{0,1}N×M 表示通过拼接多个超边组的关联矩阵生成的超图的关联矩阵。
通俗地讲解上面的内容,假设我们已经生成了几组超边,无论是通过上面介绍的方法生成的,还是自然存在的。为了构建最终的超图,我们需要将这些超边组合起来。最简单的方法是将它们的关联矩阵直接拼接在一起。这就像是把不同的拼图块组合成一个完整的图形。为了简单起见,我们可以认为每个超边的重要性都是一样的,因此我们给它们的权重都赋值为1,这种方法叫做等权融合。
但是,不同的超边组包含的信息量可能不同,简单的等权融合无法充分利用这些信息。因此,我们提出了一种更灵活的融合方法,叫做自适应融合。这种方法给每个超边组分配一个可调整的权重,这个权重可以通过训练来调整,确保每个超边组对最终结果的影响是合适的。这就像是给每块拼图一个动态调整的权重,使得每块拼图在组合成完整图形时的贡献是最优的。
3. 空间域上的超图卷积(Spatial Hypergraph Convolution)
1.1 空间域卷积的定义
在图像处理中,每个像素表示一个顶点,且每个顶点只与其周围的邻居顶点相连。空间卷积可以看作是中央顶点通过聚合其邻居顶点的特征(经过特征变换后)来更新自身特征的过程。对于简单图,空间卷积通过聚合其邻居顶点的特征来得到中央顶点的新表示。在简单图中,消息传递从邻居顶点到中央顶点,这个过程符合“路径”的定义,即一个顶点序列,其中每个顶点与其相邻顶点相连。
1.2 超图上的空间卷积
在超图中,我们定义的“路径”称为超路径(hyperpath),它在两个不同的顶点
v
1
v_1
v1 和
v
k
v_k
vk 之间是一系列的顶点和超边的序列:
P
(
v
1
,
v
k
)
=
(
v
1
,
e
1
,
v
2
,
e
2
,
…
,
v
k
−
1
,
e
k
,
v
k
)
P(v_1, v_k) = (v_1, e_1, v_2, e_2, \ldots, v_{k-1}, e_k, v_k)
P(v1,vk)=(v1,e1,v2,e2,…,vk−1,ek,vk) 其中,
v
j
v_j
vj 和
v
j
+
1
v_{j+1}
vj+1 属于同一超边
e
j
e_j
ej 指定的顶点子集。显然,超路径中相邻的两个顶点由一个超边分隔。消息在超图中的传播通过相关的超边进行,这利用了超边中包含的高阶关系。
1.3 互邻关系(Inter-neighbor Relation)
在超图卷积中,我们需要定义一些基本概念来描述顶点和超边之间的关系,以及如何通过这些关系进行消息传递和聚合。这些定义是理解超图卷积操作的基础。以下是对这几个定义的详细解释:
定义 1: 互邻关系(Inter-neighbor Relation)
定义:互邻关系
N
⊆
V
×
E
N \subseteq \mathcal{V} \times \mathcal{E}
N⊆V×E 描述了顶点集合
V
\mathcal{V}
V 和超边集合
E
\mathcal{E}
E 之间的连接关系。它定义为:
N
=
{
(
v
,
e
)
∣
H
(
v
,
e
)
=
1
,
v
∈
V
,
e
∈
E
}
N = \{(v, e) \mid \mathbf{H}(v, e) = 1, v \in \mathcal{V}, e \in \mathcal{E}\}
N={(v,e)∣H(v,e)=1,v∈V,e∈E} 解释:
- 这里的 H \mathbf{H} H 是超图的关联矩阵(incidence matrix),维度为 ∣ V ∣ × ∣ E ∣ |\mathcal{V}| \times |\mathcal{E}| ∣V∣×∣E∣。
- 如果 H ( v , e ) = 1 \mathbf{H}(v, e) = 1 H(v,e)=1,表示顶点 v v v 属于超边 e e e。
- 互邻关系 N N N 包含了所有的顶点-超边对,即每个顶点和其所属的所有超边。
定义 2: 顶点互邻集(Vertex Inter-neighbor Set)
定义:超边
e
e
e 的顶点互邻集
N
v
(
e
)
\mathcal{N}_v(e)
Nv(e) 定义为:
N
v
(
e
)
=
{
v
∣
v
N
e
,
v
∈
V
,
e
∈
E
}
\mathcal{N}_v(e) = \{v \mid v N e, v \in \mathcal{V}, e \in \mathcal{E}\}
Nv(e)={v∣vNe,v∈V,e∈E} 解释:
- 这个定义描述了与某个超边 e e e 直接相连的所有顶点。
- 如果顶点 v v v 和超边 e e e 之间存在互邻关系 v N e v N e vNe,则顶点 v v v 属于超边 e e e 的顶点互邻集 N v ( e ) \mathcal{N}_v(e) Nv(e)。
定义 3: 超边互邻集(Hyperedge Inter-neighbor Set)
定义:顶点
v
v
v 的超边互邻集
N
e
(
v
)
\mathcal{N}_e(v)
Ne(v) 定义为:
N
e
(
v
)
=
{
e
∣
v
N
e
,
v
∈
V
,
e
∈
E
}
\mathcal{N}_e(v) = \{e \mid v N e, v \in \mathcal{V}, e \in \mathcal{E}\}
Ne(v)={e∣vNe,v∈V,e∈E} 解释:
- 这个定义描述了与某个顶点 v v v 直接相连的所有超边。
- 如果顶点 v v v 和超边 e e e 之间存在互邻关系 v N e v N e vNe,则超边 e e e 属于顶点 v v v 的超边互邻集 N e ( v ) \mathcal{N}_e(v) Ne(v)。
1.4 消息传递和聚合
在超图卷积层中,对于一个顶点 α ∈ V \alpha \in \mathcal{V} α∈V,我们通过其超边互邻集 N e ( α ) \mathcal{N}_e(\alpha) Ne(α) 聚合消息。为了获得这些超边的消息,对于每个在超边互邻集 N e ( α ) \mathcal{N}_e(\alpha) Ne(α) 中的超边 β \beta β,我们从其顶点互邻集 N v ( β ) \mathcal{N}_v(\beta) Nv(β) 聚合消息。
这个两步超图卷积形成了一个从顶点特征集合 X t X^t Xt 到 X t + 1 X^{t+1} Xt+1 的闭合消息传递循环。两个步骤如下:
Stage1: 从顶点到超边的消息传递:
-
首先,对于每个超边 β \beta β,从其顶点互邻集 N v ( β ) \mathcal{N}_v(\beta) Nv(β) 中聚合消息。聚合结果 m β t m_\beta^t mβt 表示为:
m β t = ∑ α ∈ N v ( β ) M v t ( x α t ) m_\beta^t = \sum_{\alpha \in \mathcal{N}_v(\beta)} M_v^t(x_\alpha^t) mβt=α∈Nv(β)∑Mvt(xαt) 这里, M v t ( ⋅ ) M_v^t(\cdot) Mvt(⋅) 是顶点消息函数,用于将顶点特征 x α t x_\alpha^t xαt 转换为超边消息。 -
使用超边更新函数 U e t ( ⋅ ) U_e^t(\cdot) Uet(⋅) 更新超边特征 y β t y_{\beta}^t yβt,结合超边权重 w e w_e we 和中间特征 m β t m_{\beta}^t mβt。
y β t = U e t ( w β , m β t ) y_\beta^t = U_e^t(w_\beta, m_\beta^t) yβt=Uet(wβ,mβt)
Stage 2: 从超边到顶点的消息传递:
-
然后,对于每个顶点 α \alpha α,从其超边互邻集 N e ( α ) \mathcal{N}_e(\alpha) Ne(α) 中聚合消息。聚合结果 m α t + 1 m_\alpha^{t+1} mαt+1 表示为:
m α t + 1 = ∑ β ∈ N e ( α ) M e t ( x α t , y β t ) m_\alpha^{t+1} = \sum_{\beta \in \mathcal{N}_e(\alpha)} M_e^t(x_\alpha^t, y_\beta^t) mαt+1=β∈Ne(α)∑Met(xαt,yβt)
这里, M e t ( ⋅ ) M_e^t(\cdot) Met(⋅) 是超边消息函数,用于将顶点特征 x α t x_\alpha^t xαt 和超边特征 y β t y_\beta^t yβt 转换为顶点消息。 -
使用顶点更新函数 U v t ( ⋅ ) U_v^t(\cdot) Uvt(⋅) 更新顶点特征 x α t + 1 x_{\alpha}^{t+1} xαt+1,结合当前顶点特征 x α t x_{\alpha}^t xαt 和中间特征 m α t + 1 m_{\alpha}^{t+1} mαt+1。
x α t + 1 = U v t ( x α t , m α t + 1 ) x_\alpha^{t+1} = U_v^t(x_\alpha^t, m_\alpha^{t+1}) xαt+1=Uvt(xαt,mαt+1) 综上,在第 t t t 层的空间超图卷积定义为:
{ m β t = ∑ α ∈ N v ( β ) M v t ( x α t ) y β t = U e t ( w β , m β t ) (Stage 1) { m α t + 1 = ∑ β ∈ N e ( α ) M e t ( x α t , y β t ) x α t + 1 = U v t ( x α t , m α t + 1 ) (Stage 2) \left\{ \begin{aligned} m_\beta^t &= \sum_{\alpha \in \mathcal{N}_v(\beta)} M_v^t\left(x_\alpha^t\right) \\ y_\beta^t &= U_e^t\left(w_\beta, m_\beta^t\right) \end{aligned} \right. \quad \text{(Stage 1)}\\ \\ \left\{ \begin{aligned} m_\alpha^{t+1} &= \sum_{\beta \in \mathcal{N}_e(\alpha)} M_e^t\left(x_\alpha^t, y_\beta^t\right) \\ x_\alpha^{t+1} &= U_v^t\left(x_\alpha^t, m_\alpha^{t+1}\right) \end{aligned} \right. \quad \text{(Stage 2)} ⎩ ⎨ ⎧mβtyβt=α∈Nv(β)∑Mvt(xαt)=Uet(wβ,mβt)(Stage 1)⎩ ⎨ ⎧mαt+1xαt+1=β∈Ne(α)∑Met(xαt,yβt)=Uvt(xαt,mαt+1)(Stage 2) 其中: -
x α t x_\alpha^t xαt 是顶点 α \alpha α 在第 t t t 层的输入特征向量, x α t + 1 x_\alpha^{t+1} xαt+1 是更新后的顶点特征。
-
m β t m_\beta^t mβt 是超边 β \beta β 的消息, w β w_\beta wβ 是与超边 β \beta β 关联的权重。
-
m α t + 1 m_\alpha^{t+1} mαt+1 是顶点 α \alpha α 的消息, y β t y_\beta^t yβt 是超边 β \beta β 的特征。
-
M v t ( ⋅ ) M_v^t(\cdot) Mvt(⋅) 是顶点消息函数, U e t ( ⋅ ) U_e^t(\cdot) Uet(⋅) 是超边更新函数, M e t ( ⋅ ) M_e^t(\cdot) Met(⋅) 是超边消息函数, U v t ( ⋅ ) U_v^t(\cdot) Uvt(⋅) 是顶点更新函数。
这些函数可以灵活地为特定应用定义。
1.5 H G N N + \mathrm{HGNN}^{+} HGNN+ 卷积层配置
论文中介绍了一个简单的空间超图卷积层(称为 HGNNConv + ^{+} +),通过指定消息更新函数(顶点消息函数 M v t ( ⋅ ) M_v^t(\cdot) Mvt(⋅)、超边更新函数 U e t ( ⋅ ) U_e^t(\cdot) Uet(⋅)、超边消息函数 M e t ( ⋅ ) M_e^t(\cdot) Met(⋅) 和顶点更新函数 U v t ( ⋅ ) U_v^t(\cdot) Uvt(⋅))来实现。
消息更新函数的定义
这些函数用于实现超图中的消息传递和特征更新。具体定义如下:
-
顶点消息函数 M v t ( ⋅ ) M_v^t(\cdot) Mvt(⋅):
M v t ( x α t ) = x α t ∣ N v ( β ) ∣ M_v^t\left(x_\alpha^t\right) = \frac{x_\alpha^t}{\left|\mathcal{N}_v(\beta)\right|} Mvt(xαt)=∣Nv(β)∣xαt- 这里 x α t x_\alpha^t xαt 是顶点 α \alpha α 在第 t t t 层的特征。
- N v ( β ) \mathcal{N}_v(\beta) Nv(β) 是与超边 β \beta β 相关联的顶点集合。
- 该函数将顶点特征标准化,以防止特征值过大。
-
超边更新函数 U e t ( ⋅ ) U_e^t(\cdot) Uet(⋅):
U e t ( w β , m β t ) = w β ⋅ m β t U_e^t\left(w_\beta, m_\beta^t\right) = w_\beta \cdot m_\beta^t Uet(wβ,mβt)=wβ⋅mβt- w β w_\beta wβ 是超边 β \beta β 的权重。
- m β t m_\beta^t mβt 是超边 β \beta β 在第 t t t 层的聚合消息。
- 该函数将顶点特征消息加权合并到超边特征中。
-
超边消息函数 M e t ( ⋅ ) M_e^t(\cdot) Met(⋅):
M e t ( x α t , y β t ) = y β t ∣ N e ( α ) ∣ M_e^t\left(x_\alpha^t, y_\beta^t\right) = \frac{y_\beta^t}{\left|\mathcal{N}_e(\alpha)\right|} Met(xαt,yβt)=∣Ne(α)∣yβt- y β t y_\beta^t yβt 是超边 β \beta β 在第 t t t 层的特征。
- N e ( α ) \mathcal{N}_e(\alpha) Ne(α) 是与顶点 α \alpha α 相关联的超边集合。
- 该函数将超边特征标准化,以便于顶点特征的更新。
-
顶点更新函数 U v t ( ⋅ ) U_v^t(\cdot) Uvt(⋅):
U v t ( x α t , m α t + 1 ) = σ ( m α t + 1 ⋅ Θ t ) U_v^t\left(x_\alpha^t, m_\alpha^{t+1}\right) = \sigma\left(m_\alpha^{t+1} \cdot \boldsymbol{\Theta}^t\right) Uvt(xαt,mαt+1)=σ(mαt+1⋅Θt)- m α t + 1 m_\alpha^{t+1} mαt+1 是顶点 α \alpha α 在第 t + 1 t+1 t+1 层的聚合消息。
- Θ t \boldsymbol{\Theta}^t Θt 是第 t t t 层的可训练参数矩阵。
- σ ( ⋅ ) \sigma(\cdot) σ(⋅) 是非线性激活函数,例如 ReLU。
- 该函数通过线性变换和激活函数更新顶点特征。
矩阵形式的快速前向传播
为了加速在 GPU/CPU 设备上的前向传播,我们将上述操作重写为矩阵形式。具体过程如下:
-
超边特征的生成:
-
输入顶点特征集合为 X t \mathbf{X}^t Xt。
-
根据定义 1 和 2,关联矩阵 H ⊤ \mathbf{H}^{\top} H⊤ 控制了每个顶点特征的超边互邻关系。
-
我们使用关联矩阵 H \mathbf{H} H 和超边度矩阵 D e \mathbf{D}_e De 来指导顶点特征的聚合,生成超边特征集合 Y t \mathbf{Y}^t Yt:
Y t = W D e − 1 H ⊤ X t \mathbf{Y}^t = \mathbf{W} \mathbf{D}_e^{-1} \mathbf{H}^{\top} \mathbf{X}^t Yt=WDe−1H⊤Xt
-
-
顶点特征的更新:
- 更新后的顶点特征集合
X
t
+
1
\mathbf{X}^{t+1}
Xt+1 从超边特征集合
Y
t
\mathbf{Y}^t
Yt 中生成:
X t + 1 = σ ( D v − 1 H Y t Θ t ) \mathbf{X}^{t+1} = \sigma\left(\mathbf{D}_v^{-1} \mathbf{H} \mathbf{Y}^t \boldsymbol{\Theta}^t\right) Xt+1=σ(Dv−1HYtΘt)
- 更新后的顶点特征集合
X
t
+
1
\mathbf{X}^{t+1}
Xt+1 从超边特征集合
Y
t
\mathbf{Y}^t
Yt 中生成:
-
矩阵形式的 HGNNConv + ^{+} +:
- 结合以上两个步骤,可以将 HGNNConv
+
^{+}
+ 的前向传播过程表示为:
X t + 1 = σ ( D v − 1 H W D e − 1 H ⊤ X t Θ t ) \mathbf{X}^{t+1} = \sigma\left(\mathbf{D}_v^{-1} \mathbf{H W} \mathbf{D}_e^{-1} \mathbf{H}^{\top} \mathbf{X}^t \boldsymbol{\Theta}^t\right) Xt+1=σ(Dv−1HWDe−1H⊤XtΘt)
- 结合以上两个步骤,可以将 HGNNConv
+
^{+}
+ 的前向传播过程表示为: