最近正在学习超图理论,本文对论文 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
超图神经网络详解

最低0.47元/天 解锁文章
1594





