【论文阅读】HGT:Heterogeneous Graph Transformer

论文介绍了一种名为HGT的架构,用于处理Web规模的异质图,通过异质互注意力和相对时间编码捕捉复杂网络结构。HGT利用元关系参数化权重矩阵,实现动态图的处理,并提出HGSampling算法进行大规模图训练。核心内容包括异质图挖掘、GNN和Heterogeneous Attention Mechanism。

摘要

这篇论文提出了用于建模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作为查询。

### Graph Transformer 模型的工作原理 Graph Transformer 是一种结合图神经网络 (GNN) 和自注意力机制的强大架构,旨在处理结构化数据中的复杂依赖关系。这种模型能够有效地捕获节点间的长期依赖性和复杂的交互模式。 #### 图结构上的自注意力机制 传统的Transformer主要应用于序列数据,在这些场景下,输入被线性排列成一个序列。然而对于图形数据而言,节点之间存在更为丰富的连接方式。为了适应这一特性,Graph Transformer引入了一种新的自注意机制来替代原有的位置编码方案[^1]: - **节点表示学习**:每个节点不仅基于自身的特征进行初始化,还会综合考虑其邻居的信息来进行更新; - **相对距离编码**:考虑到图中任意两点间可能存在多种路径长度不一的情况,采用可训练的位置嵌入向量表征两节点之间的最短路径或其他形式的距离度量; - **多头注意力层**:类似于标准Transformers的设计思路,通过多个平行运行的不同子空间内的注意力计算增强表达能力。 #### 处理异质信息网路(HIN) 当面对包含不同类型实体及其关联关系的数据集时(如社交网络),Heterogeneous Graph Transformers (HGTS),特别是 HGT, 提出了专门针对此类问题的有效解决方案: - 对于每类元关系<源节点类型,边类型,目标节点类型>定义独立的一套投影矩阵用于转换消息传递过程中的查询(Query), 键(Key)以及值(Value)[^4]; - 这样做可以确保即使是在高度多样化的环境中也能精准地区分各种语义角色并维持各自独特的属性; ```python import torch from torch_geometric.nn import GATConv class SimpleGraphTransformer(torch.nn.Module): def __init__(self, input_dim, hidden_dim, output_dim, num_heads=8): super(SimpleGraphTransformer, self).__init__() # 定义一个多头图注意力卷积层 self.conv = GATConv(input_dim, hidden_dim, heads=num_heads, concat=True) def forward(self, x, edge_index): """ 前馈函数 参数: x : 节点特征张量 shape=(num_nodes, input_dim) edge_index : 边索引列表 shape=(2, num_edges) 返回: 经过一层变换后的节点特征张量 """ out = self.conv(x=x, edge_index=edge_index).relu() return out.mean(dim=-1) # 平均汇聚所有头部的结果得到最终输出维度 ``` 上述代码片段展示了一个简化版的单层Graph Transformer实现方法,其中利用了PyTorch Geometric库提供的`GATConv`组件实现了基本功能。实际应用中可能还需要加入更多细节调整以满足具体需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值