【论文阅读】HGT:Heterogeneous Graph Transformer

摘要

这篇论文提出了用于建模Web规模异质图的异质图转换架构(HGT)。

为了对异质的节点和边进行建模,作者设计了和节点类别、边类别有关的参数,来表征在每个边上的异质性的注意力,这使得HGT可以为不同类型的节点和边生成专用的表示。

HGT还可以处理动态的异质图。作者在HGT中引入相对时间编码技术,可以捕获到任意时间段内的动态结构依赖关系。

为了能够处理Web规模的图数据,还设计了mini-batch图采样算法——HGSampling,实现高效并可扩展的训练。

1 引言

在这里插入图片描述
这篇论文研究异质图神经网络,目的是

  1. 维护节点类型和边类型相关的表示
  2. 捕获网络动态
  3. 避免自定义元路径
  4. 扩展到web规模的图

作者提出HGT架构来解决上述所有问题,具体解决方法如下:

(1)为了处理图的异质性,引入了与节点和边类型相关的注意力机制

与参数化每种类型的边相反,HGT中的异质相互注意力是通过分解基于元关系三元组(即< s s s的节点类型, s s s t t t之间的边 e e e的类型, t t t的节点类型>)的边 e = ( s , t ) e=(s,t) e=(s,t)来定义的。图1说明了异质学术图的元关系。

具体地说,使用元关系来参数化权值矩阵,以计算每条边上的注意力系数。

因此,允许不同类型的节点和边来维护它们特定的表示空间。同时,不同类型的连接节点仍然可以交互、传递和聚合消息,而不受其分布差距的限制。

由于其架构的性质,HGT可以通过跨层传递的消息来合并不同类型的高阶邻居的信息,这可以被视为 “软”元路径(“soft” meta paths)。

也就是说,即使HGT只将其one hop边作为输入而不手动设计元路径,该注意力机制也可以针对不同下游任务自动隐式地学习和提取重要的“元路径”

(2)为了处理动态图,在HGT中引入了相对时间编码(RTE)技术

并不是将输入图按不同的时间戳分片处理,而是将在不同时间出现的所有的边看成一个整体。设计RTE策略,建模任意时间长度的结构性的时间依赖关系,甚至包含不可见的和未来的时间戳。

通过端到端的训练,RTE使得HGT能够自动学习到异质图的时序依赖关系以及异质图随时间的演化

(3)为了处理Web规模的图数据,设计了第一个用于mini-batch的GNN训练的异质子图采样算法——HGSampling

其主要思想是采样不同类型的节点具有相似比例的异质子图,因为直接使用现有的(同质的)GNN采样方法,会导致节点和边类型的高度不平衡。

此外,该方法还可以保持采样子图的密度,以最小化信息的损失

使用HGSampling的采样方法,所有的GNN模型,包括本文的HGT模型,都可以在任意大小的异质图上进行训练和推断。

2 前期准备及相关工作

2.1 异质图挖掘

(1)异质图

有向图 G = ( V , E , A , R ) G=(V,E,A,R) G=(V,E,A,R),类型映射函数 τ ( v ) τ(v) τ(v) V → A V→A VA ϕ ( e ) ϕ(e) ϕ(e) E → R E→R ER

(2)元关系

对于连接源节点 s s s和目标节点 t t t的边 e = ( s , t ) e=(s,t) e=(s,t),其元关系表示为 < τ ( s ) 、 ϕ ( e ) 、 τ ( t ) > <τ(s)、ϕ(e)、τ(t)> <τ(s)ϕ(e)τ(t)> ϕ ( e ) − 1 ϕ(e)^{-1} ϕ(e)1表示 ϕ ( e ) ϕ(e) ϕ(e)的逆。

经典的元路径范式就是这种元关系组成的序列。

请注意,为了更好地建模真实世界中的异质网络,假设不同类型的节点之间可能存在多种类型的关系。例如,在OAG中,通过考虑作者的顺序,作者和论文节点之间存在不同类型的关系,即“第一作者”、“第二作者”等等。

(3)动态异质图

为了模拟真实世界(异质)图的动态特性,当在 T T T时刻节点 s s s连接到节点 t t t时,我们为边 e = ( s , t ) e=(s,t) e=(s,t)分配一个时间戳 T T T。如果 s s s是第一次出现的,那么 T T T也被分配给 s s s s s s可以与多个时间戳相关联,如果它随着时间的推移建立了连接。

换句话说,我们假设边的时间戳不变,表示创建边的时间。例如,当在 T T T时间的会议上发表的论文时, T T T将被分配到论文和会议节点之间的边。

相反,可以相应地为一个节点分配不同的时间戳。例如,会议节点 "WWW"可以指定任何年份。WWW@1994意味着我们正在考虑WWW的第一版,它更关注互联网协议和网络基础设施,而WWW@2020意味着即将到来的WWW,它将其研究主题扩展到社会分析、无处不在的计算、搜索和红外、隐私和社会等。

2.2 GNN

一般来说,GNN可以看作是将输入图结构作为消息传递的计算图,在计算过程中,将局部邻域信息进行聚合,得到更符合情境的上下文表示。

假设 H l [ t ] H^l[t] Hl[t]是第 l l l层的节点 t t t的节点表示,从第 l − 1 l-1 l1层到第 l l l层的更新过程为:
在这里插入图片描述
其中, N ( t ) N(t) N(t)表示节点 t t t的所有源节点, E ( s , t ) E(s,t) E(s,t)表示从节点 s s s t t t的所有边。

最重要的GNN运算符是提取( E x t r a c t ( ⋅ ) Extract(·) Extract())和聚合( A g g r e g a t e ( ⋅ ) Aggregate(·) Aggregate())。

E x t r a c t ( ⋅ ) Extract(·) Extract()表示邻居信息提取器。它从源节点的表示 H l − 1 [ s ] H^{l-1}[s] Hl1[s]中提取有用的信息,使用目标节点的表示 H l − 1 [ t ] H^{l-1}[t] Hl1[t]和两个节点之间的边 e e e作为查询。

A g g r e g a t e ( ⋅ ) Aggregate(·) Aggregate()通过一些聚合运算符(如mean,sum和max)收集源节点的邻域信息,同时也可以设计出更复杂的池化和归一化函数。

2.3 异质GNN

(1)已有的一些方法

建模知识图谱的关系图卷积网络(RGCN),为每种类型的边都维护了一个线性的映射权重。

HetGNN为不同类型的节点应用不同的RNNs来整合多模的特征。

HAN为不同的元路径定义的边维护了不同的权重,同时使用了语义级别的注意力机制,有区分性地聚合来源于不同元路径的信息。

(2)这些方法的不足

尽管这些方法都比GCN和GAT表现好,但是它们都没有充分利用异质图的属性信息。都是为边类型和节点类型单独地分配GNN权重矩阵。

但是不同类型的节点数目和不同类型的边的数目差别很大,对于那些共现次数不多的关系类型,就很难为它们学习到准确的权重。

(3)考虑参数共享以实现更好的泛化

为了解决上述问题,提出参数共享。对于给定的边 e = ( s , t ) e=(s,t) e=(s,t),其元关系为 < τ ( s ) 、 ϕ ( e ) 、 τ ( t ) > <τ(s)、ϕ(e)、τ(t)> <τ(s)ϕ(e)τ(t)>。若使用三个交互矩阵分别建模 τ ( s ) 、 ϕ ( e ) 、 τ ( t ) τ(s)、ϕ(e)、τ(t) τ(s)ϕ(e)τ(t)这三个元素,则主要参数就可以共享。

例如,“第一作者”和“第二作者”这两种关系的源节点都是author,目标节点都是paper。从一种关系学习到的author和paper的知识可以快速转换并应用到另一种关系中。

将这种想法整合到Transformer-like的注意力框架中,从而提出了HGT。

(4)HGT和现有方法的主要不同

  1. 与单独处理节点类型和边类型不同,作者使用元关系 < τ ( s ) 、 ϕ ( e ) 、 τ ( t ) > <τ(s)、ϕ(e)、τ(t)> <τ(s)ϕ(e)τ(t)>来分解交互矩阵和转换矩阵,使得HGT在使用等量的参数甚至更少的参数的情况下,捕获不同关系中普通的和特定的信息。

  2. 不需要预先定义好元路径,使用神经网络框架聚合高阶的异质邻居的信息,自动地学习到元路径的重要性程度。

  3. 大多数以往的方法没有考虑到动态图,HGT使用相对时间编码技术考虑到了时序信息。

  4. 现有的异质GNN方法都不能应用在Web-scale的图上,本文提出的HGSampling采样方法可以用于Web-scale图(十亿级别)的训练。

3 HGT

HGT利用异质图的元关系参数化权值矩阵来实现异质的相互注意、消息传递和传播步骤。

3.1 整体HGT架构

图2展示了HGT的整体体系结构。
在这里插入图片描述
图2:给定 t t t为目标节点、 s 1 s_1 s1 s 2 s_2 s2为源节点的采样异质子图,HGT模型以其边 e 1 = ( s 1 , t ) e_1=(s_1,t) e1=(s1,t) e 2 = ( s 2 , t ) e_2=(s_2,t) e2=(s2,t)及其对应的元关系 < τ ( s 1 ) 、 ϕ ( e 1 ) 、 τ ( t ) > <τ(s_1)、ϕ(e_1)、τ(t)> <τ(s1)ϕ(e1)τ(t)> < τ ( s 2 ) 、 ϕ ( e 2 ) 、 τ ( t ) > <τ(s_2)、ϕ(e_2)、τ(t)> <τ(s2)ϕ(e2)τ(t)>作为输入,学习每个节点的上下文表示 H ( L ) H^{(L)} H(L),可用于下游任务。颜色表示节点类型。HGT包括以下三个组件:(1)具有元关系感知能力的异质互注意力,(2)从源节点的异质消息传递,(3)针对特定任务的聚合。

给定采样的异质子图,HGT抽取出了所有有连边的点对, s s s t t t通过 e e e相连。HGT的目标是聚合来自源节点的信息,以获得目标节点 t t t的上下文化表示。这一过程可被分解成3个部分:(1)异质互注意力(Heterogeneous Mutual Attention);(2)异质消息传递(Heterogeneous Message Passing );(3)针对特定任务的聚合(Target-Specific Aggregation)。

H ( l ) H^{(l)} H(l)为第 l l l层的输出,同时也是第 l + 1 l+1 l+1层的输入。堆叠 L L L层,得到整个图的节点表示 H ( L ) H^{(L)} H(L),然后用于端到端的训练或者输入给下游任务。

3.2 异质互注意力(Heterogeneous Mutual Attention)

第一步是计算源节点 s s s与目标节点 t t t的注意力系数。一般的基于注意的GNNs,如下所示:

在这里插入图片描述
可以总结为3个基本的操作:

(1)Attention:评估每个源节点的重要性

(2)Message:从源节点 s s s抽取出信息

(3)Aggregate:使用注意力系数作为权重,聚合邻居的信息

以GAT为例:
在这里插入图片描述
虽然GAT可以有效地给重要节点提供较高的注意值,但它通过使用一个权重矩阵 W W W来假设 s s s t t t具有相同的特征分布。这不适合于异质图,异质图中不同类的节点可能有它自己的特征分布。

鉴于这一局限性,设计了异质的互注意力机制(Heterogeneous Mutual Attention)。给定一个目标节点 t t t,及其所有邻居的 s ∈ N ( t ) s∈N(t) sN(t)(可能有不同的特征分布),我们希望根据它们的元关系( < τ ( s ) 、 ϕ ( e ) 、 τ ( t ) > <τ(s)、ϕ(e)、τ(t)> <τ(s)ϕ(e)τ(t)>三元组)计算它们的相互注意力。

受Transformer的启发,作者将目标节点 t t t映射成Query向量,将源节点 s s s映射为Key向量,计算两者的点积当做attention

与Transformer的区别在于:Transformer为所有的单词使用一组映射;而本文的方法中,每个元关系都有一组不同的映射矩阵

为了最大程度地实现参数共享,同时仍然保持不同关系的特征,作者提出将交互操作的权重矩阵参数化为:源节点映射,边映射,目标节点映射

具体来说,通过如下方法为每个边 e = ( s , t ) e=(s,t) e=(s,t)计算 h − h e a d h-head hhead的注意力:
在这里插入图片描述
(1)对于第 i i i个 attention head A T T − h e a d i ( s , e , t ) ATT-head^i(s,e,t) ATTheadi(s,e,t),通过线性映射 K − L i n e a r τ ( s ) i K-Linear^i_{τ(s)} KLinearτ(s)i R d → R d h \mathbb{R^d}→\mathbb{R^{\frac{d}{h}}} RdRhd将类别为 τ ( s ) τ(s) τ(s)的源节点 s s s映射成第 i i i个Key向量 K i ( s ) K^i(s) Ki(s)

其中, h h h是 attention head 的数量, d h \frac{d}{h} hd是每个head的向量维度。

注意, K − L i n e a r τ ( s ) i K-Linear^i_{τ(s)} KLinearτ(s)i以源节点的类型作为索引,这意味着每种类型的节点都有一个唯一的线性映射,以实现最大程度建模不同类型节点的分布差异性。

同样的,对目标节点 t t t也使用线性映射 Q − L i n e a r τ ( t ) i Q-Linear^i_{τ(t)} QLinearτ(t)i,将其映射成第 i i i个Query向量

(2)接下来,计算 Q i ( t ) Q^i(t) Qi(t) K i ( s ) K^i(s) Ki(s)之间的相似性。由于异质图中边类型多样(一对节点之间可能有不同类型的边),所以不同于原始的Transformer直接对Query和Key向量进行内积操作,而是为每种类型的边 ϕ ( e ) ϕ(e) ϕ(e)维护不同的矩阵 W ϕ ( e ) A T T ∈ R d h × d h W_{ϕ(e)}^{ATT}∈\mathbb{R^{\frac{d}{h}×\frac{d}{h}}} Wϕ(e)ATTRhd×hd。这样,就可以捕获节点对之间不同的语义关联。

然而,不同类型的边对目标节点的贡献度不同,所以添加一个先验张量 μ ∈ R ∣ A ∣ × ∣ R ∣ × ∣ A ∣ μ∈\mathbb{R^{|\mathcal{A}|×|\mathcal{R}|×|\mathcal{A}|}} μRA×R×A表示对每个元关系三元组的一般化的重要性,作为对注意力的自适应缩放(adaptive scaling)。

(3)最后, h h h个attention head拼接起来得到每个节点对的注意力向量。然后,对于每个目标节点 t t t,聚合它所有邻居的注意力向量,并通过一层softmax,使得每个head的注意力系数加起来为1( ∑ ∀ s ∈ N ( t ) A t t e n t i o n H G T ( s , e , t ) = 1 h × 1 \sum{}_{∀s∈N(t)}\bold{Attention}_{HGT}(s,e,t)=1_{h×1} sN(t)AttentionHGT(s,e,t)=1h×1)。

3.3 异质消息传递(Heterogeneous Message Passing)

在计算异质互注意力的同时,将信息从源节点传递到目标节点,如图2(2)所示。

目标是将不同边的元关系合并到消息传递过程中,来缓解不同类型的节点和边分布的差异性。

对于节点对 e = ( s , t ) e=(s,t) e=(s,t),multi-head的Message可以计算为:
在这里插入图片描述
为了得到第 i i i个 message head M S G − h e a d i ( s , e , t ) MSG-head^i(s,e,t) MSGheadi(s,e,t),首先使用线性映射 M − L i n e a r τ ( s ) i M-Linear^i_{τ(s)} MLinearτ(s)i R d → R d h \mathbb{R^d}→\mathbb{R^{\frac{d}{h}}} RdRhd将类型为 τ ( s ) τ(s) τ(s)的源节点 s s s映射成第 i i i个message向量

然后再对特定类型的边维护一个参数矩阵 W ϕ ( e ) M S G ∈ R d h × d h W_{ϕ(e)}^{MSG}∈\mathbb{R^{\frac{d}{h}×\frac{d}{h}}} Wϕ(e)MSGRhd×hd

最后将 h h h个 message head 拼接,得到每个节点对的 M e s s a g e H G T ( s , e , t ) \bold{Message}_{HGT}(s,e,t) MessageHGT(s,e,t)

3.4 针对特定任务的聚合(Target-Specific Aggregation)

如图2(3)所示,聚合上两步得到的信息

使用attention向量作为权重,对来自源节点的相应信息进行平均,得到更新后的向量:
在这里插入图片描述
这一步将来自不同特征分布的所有邻居(源节点)的信息聚合到目标节点 t t t

最后一步是以目标节点的类别 τ ( t ) τ(t) τ(t)为索引,将目标节点 t t t的向量映射回对应类别的分布。为此,对更新后的向量 H ~ ( l ) [ t ] \tilde{H}^{(l)}[t] H~(l)[t]使用线性映射 A − L i n e a r τ ( t ) A-Linear_{τ(t)} ALinearτ(t),还有前一层的 t t t的原始向量作为残差连接:
在这里插入图片描述
这样,就得到了目标节点 t t t在第 l l l层的输出 H ( l ) [ t ] H^{(l)}[t] H(l)[t]

堆叠 L L L层( L L L是一个很小的值)就可以为每个节点得到有丰富信息的上下文表示 H ( L ) H^{(L)} H(L) H ( L ) H^{(L)} H(L)可作为下游任务的输入,例如图节点分类和链接预测任务。

总结

整个框架高度依赖于元关系—— < τ ( s ) 、 ϕ ( e ) 、 τ ( t ) > <τ(s)、ϕ(e)、τ(t)> <τ(s)ϕ(e)τ(t)>来参数化权重矩阵。与普通Transformer相比,本文的模型区分了不同关系的运算,从而更有能力处理异质图中的分布差异。和现有的为每个元路径维护一个矩阵的方法相比,HGT的三元组参数可以更好地利用异质图的schema来实现参数共享。

一方面,这样的参数共享有助于利用出现频次较少的类型的边,从而实现快速的自适应和泛化。

另一方面,使用较少的参数,仍然实现了保留不同类型边的特征。

3.5 相对时间编码(Relative Temporal Encoding)

提出相对时间编码(RTE)技术处理动态图。

传统的方法是为每个小时间片(time slot)构建一个单独的图,但这种方法会丢失大量的不同时间片间的结构依赖信息。一个节点在时间 t t t的表示可能依赖于在其他时间片中发生的边。因此,建模动态图的一种正确方法是维护在不同时间发生的所有边,并允许具有不同时间戳的节点和边相互交互。

在此基础上,本文提出了RTE来建模异质图中的动态依赖关系。RTE受Transformer的位置编码(position embedding)启发,该方法已经成功捕获了长文本中单词的顺序依赖关系。
在这里插入图片描述
具体地说,给定源节点 s s s和目标节点 t t t以及它们对应的时间戳 T ( s ) T(s) T(s) T ( t ) T(t) T(t),定义相对时间间隔为 Δ T ( t , s ) = T ( t ) − T ( s ) ΔT(t,s)=T(t)-T(s) ΔT(t,s)=T(t)T(s),作为得到相对时间编码 R T E ( Δ T ( t , s ) ) RTE(ΔT(t,s)) RTE(ΔT(t,s))的索引。

注意训练集不会覆盖到所有可能的时间间隔,因此RTE要具有泛化到不可见的时间和时间间隔的能力。作者采取了一组固定的正弦函数作为偏置,并使用了可微调的线性映射 T − L i n e a r ∗ T-Linear* TLinear R d → R d \mathbb{R}^d→\mathbb{R}^d RdRd,构成RTE:
在这里插入图片描述
最后,将相对于目标节点 t t t的时间编码加入到源节点 s s s的表示中:
在这里插入图片描述
这样,时间增广的表示 H ^ ( l − 1 ) \hat{H}^{(l-1)} H^(l1)就可以捕获到源节点 s s s和目标节点 t t t的相对时间信息。RTE的流程如图3所示。

4 Web规模的HGT训练

本节介绍了HGT用动态信息训练Web规模异质图的策略,包括异质mini-batch图采样算法——HGSampling和一种归纳式(inductive)时间戳分配方法。

4.1 HGSamling

full-batch的GNN训练需要在每层计算所有节点的表示,不能扩展到Web-scale的图上。为了解决这个问题,提出了不同的基于采样的方法来在节点子集上训练GNNs。然而,直接将它们用于异质图很容易得到关于不同节点类型的非常不平衡的子图,因为每种类型的度分布和节点总数可能会有显著差异。

本文提出HGSampling方法,可以使HGT和传统的GNNs都能够处理Web规模的异质图。它可以实现:

(1)对于每种类型的节点和边,采样的数量大致相似

(2)保持采样的子图的稠密性,以最小化信息损失,减少样本方差
在这里插入图片描述
上述算法1概述了HGSampling算法。基本思想是对每个节点类型 τ τ τ维护一个 node budget B [ τ ] B[τ] B[τ],并使用重要性采样策略,为每个类型采样相等数量的节点,以减小方差。
在这里插入图片描述
给定已被采样的节点 t t t,使用算法2将它所有的一阶邻居加入到对应的budget中,并将 t t t的归一化的度与这些邻居相加(如算法2的line 8所示),之后将被用于计算采样概率。

这样的归一化等价于 累计每个被采样的节点到其邻居的random walk概率,从而避免了采样过多的度数高的节点。

直观来看,这个值越大,和当前被采样节点相关联的节点就越有可能是候选节点,应该被赋予更大的采样概率。

在budget更新后,计算采样概率(如 算法1的line 9所示),我们计算了每个budget中每个节点 s s s的累积归一化度的平方,使用这种采样概率可以减小采样的方差。

然后使用上面计算得到的概率,采样 n n n个类型为 τ τ τ的节点。将它们加入到输出节点集合 O S OS OS中,将它们的邻居更新到budget中,并将它们自己从budget中移除。(如 算法1的line12-15所示)

将这个过程重复 L L L次,从初始节点得到一个具有 L L L深度的采样子图。

最后,利用采样到的节点重构邻接矩阵。

通过使用上述算法,采样到的子图中每个类别都有相似数量的节点(基于各自的node budget),并且具有足够的密度来减少抽样方差(基于归一化度和重要性抽样),就可以在Web-scale的异质图上训练GNN了。

4.2 归纳式时间戳分配方法( Inductive Timestamp Assignment)

目前为止,作者假定每个节点 t t t都被分配了一个时间戳 T ( t ) T(t) T(t)。然而,在现实世界中许多节点不止和一个时间戳有关,所以需要为节点分配不同的时间戳。我们将这些节点表示为 plain nodes。例如,WWW会议在1974年和2019年都有举办,这两年的WWW节点有不同的研究主题。因此,我们需要决定要连接到WWW节点的时间戳。

异质图中也存在只有一个时间戳的 event nodes,比如paper节点,和其发表日期相关。

作者提出归纳式时间戳分配算法(inductive timestamp assignment algorithm ),基于和 plain nodes 相连的 event nodes,为其分配时间戳。如算法2的 line 6 所示。思想是:计划节点继承 event nodes 的时间戳。

首先检查候选的源节点是否是一个 event nodes ,如果是的话(例如 paper在某一年被发表)则保留它的时间戳用于捕获时序依赖关系;如果不是的话(例如conference可以和任意的时间戳有关),则为其分配相关节点的时间戳(例如conference中的paper发表的年份)。这样就可以在子图采样过程中自适应地为节点分配时间戳。

5 实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考博客:https://blog.csdn.net/byn12345/article/details/105081338

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值