【HGT】文献精讲:Heterogeneous Graph Transformer

【HGT】文献精讲:Heterogeneous Graph Transformer

标题: Heterogeneous Graph Transformer
(异构图Transformer)
作者团队: 加利福尼亚大学Yizhou Sun
摘要: 近年来,图神经网络(GNN)在结构化数据建模方面取得了成功。然而,大多GNN是为同质图设计的,其中所有节点和边都属于同一类型,这使得表示异构结构变得不可行。本文提出了异构图转换器(HGT)架构来建模web规模的异构图。为了建模异构性,本文设计了节点和边缘类型相关的参数来表征每个边缘上的异构注意力,使HGT能够为不同类型的节点和边缘维护专用表示。为了处理web规模的图数据,文章设计了异构小批图采样算法——HGSampling,以实现高效和可扩展的训练。在包含1.79亿个节点和20亿个边的开放学术图上进行的大量实验表明,所提出的HGT模型在各种下游任务上的性能始终优于所有最先进的GNN基线9%-21%。

文献链接: https://dl.acm.org/doi/abs/10.1145/3366423.3380027
代码链接: https://github.com/acbull/pyHGT

1. 背景

过去尝试采用GNN与异构网络进行学习的工作往往面临着以下几个问题:

  • 大多数涉及为每种类型的异构图设计元路径或者变体,需要特定的领域知识;
  • 要么简单地假设不同类型的节点和边共享相同的特征和表示空间,要么单独为节点类型或边类型保留不同的非共享权重,使得它们不足以捕获异构图的属性;
  • 它们固有的设计和实现使得它们无法对web规模的异构图进行建模。

鉴于以上这些限制,本文设计了研究异构图的神经网络HGT,目标是保持节点和边类型的依赖表示,同时避免自定义元路径,并且可以扩展到web规模的异构图。

为了处理图的异构性,文章引入了依赖于节点和边类型的注意力机制,HGT中的异构相互注意不是参数化每种类型的边,而是通过基于其元关系三元组分解每个边 e = < s , t > e=<s,t> e=<s,t>来定义,其中s、t表示节点类型,e表示s与t之间的边类型。具体来说,HGT使用这些元关系来参数化权重矩阵,以计算每条边的注意力分数。因此,这样允许不同类型的节点和边保持其特定的表示空间。与此同时,不同类型的连接节点人若干可以交互、传递和聚合消息,不受其分布间隙的限制。
由于其体系结构的性质,HGT可以通过跨层的消息传递来合并来自不同类型的高阶邻居的信息,这也被称为“软”元路径。也就是说HGT只把它的一跳边作为输入,而不用手动设计元路径,所提出的注意力机制也可以自动和隐式地学习和提取对不同下游任务很重要的元路径

2.方法

在这里插入图片描述

上图显示了HGT的整体架构。给定一个采样的异构子图,HGT提取所有连接的节点对,其中目标节点t通过边e被源节点s连接,HGT的目标是聚合来自s的信息,以获得节点目标t的上下文表示。该过程主要是三个组件:异构互注意力、异构消息传递和目标特定聚合

2.1 Heterogeneous Mutual Attention 异构互注意力

将第 l l l个HGT层的输出表示为 H ( l ) H^{(l)} H(l),同时也作为第 l + 1 l+1 l+1个HGT层的输入。通过堆叠L层,可以得到整个图 H ( L ) H^{(L)} H(L)的节点表示,可以用于端到端训练或馈送到下游任务。
第一步首先是计算源节点 s s s与目标节点 t t t之间的相互注意力分数。在基于注意力的GNN中,有
H l [ t ] ← A g g r e g a t e ∀ s ∈ N ( t ) , ∀ e ∈ E ( s , t ) ( A t t e n t i o n ( s , t ) ⋅ M e s s a g e ( s ) ) H^{l} [t]\gets \underset{\forall s\in N(t),\forall e\in E(s,t)}{\mathbf{Aggregate } }(\mathbf{Attention}(s,t)\cdot \mathbf{Message}(s) ) Hl[t]sN(t),eE(s,t)Aggregate(Attention(s,t)Message(s))
其中三个基本的运算符:

  • A t t e n t i o n \mathbf{Attention} Attention用于计算每个源节点的重要性
  • M e s s a g e \mathbf{Message} Message用于使用源节点来提取消息
  • A g g r e g a t e \mathbf{Aggregate } Aggregate通过关注权重对邻居信息进行聚合
    例如,图注意力网络(GAT)采用了一种加性机制作为 A t t e n t i o n \mathbf{Attention} Attention,使用相同的权重来计算 M e s s a g e \mathbf{Message} Message,并利用简单平均和非线性激活函数来进行 A g g r e g a t e \mathbf{Aggregate } Aggregate步骤。形式上来看,GAT有:
    A t t e n t i o n G A T ( s , t ) = ∀ s ∈ N ( t ) ( a ⃗ ( W H l − 1 [ t ] ∥ W H l − 1 [ s ] ) ) M e s s a g e G A T ( s ) = W H l − 1 [ s ] A g g r e g a t e G A T ( ⋅ ) = σ ( Mean ⁡ ( ⋅ ) ) \begin{aligned} \mathbf{ Attention }_{G A T}(s, t) & =\underset{\forall s \in N(t)}{ }\left(\vec{a}\left(W H^{l-1}[t] \| W H^{l-1}[s]\right)\right) \\ \mathbf { Message }_{G A T}(s) & =W H^{l-1}[s] \\ \mathbf { Aggregate }_{G A T}(\cdot) & =\sigma(\operatorname{Mean}(\cdot)) \end{aligned} AttentionGAT(s,t)MessageGAT(s)AggregateGAT()=sN(t)(a (WHl1[t]WHl1[s]))=WHl1[s]=σ(Mean())
    虽然GAT对重要节点给予高关注度是有效的,但是它通过使用一个权重矩阵 W W W来假设节点 s s s和节点 t t t具有相同的特征分布,这种假设对于异构图来说通常是不正确的,因为每种类型的节点都会有自己的特征分布。基于此,作者设计了异构互注意力机制。
    给定一个目标节点 t t t,以及它所有的邻居节点 s ∈ N ( t ) s \in N(t) sN(t) ,它们可能属于不同的分布,根据它们的元关系计算它们的相互注意力,即 < τ ( s ) , ϕ ( e ) , τ ( s ) > <\tau(s), \phi(e), \tau(s)> <τ(s),ϕ(e),τ(s)>三元组。
    作者将目标节点 t t t映射为一个Query向量,将源节点 s s s映射为一个Key向量,并计算它们的点积作为注意力。其与普通的Transformer的关键区别在于,普通Transformer对所有单词使用一组投影,而在HGT中,每个元关系都有一组不同的投影权重。为了最大限度地实现参数共享,同时保持不同关系地特定特征,作者提出将交互算子地权重矩阵参数化为源节点投影、边投影和目标节点投影。具体来说,通过以下公式为每条边 e = ( s , t ) e=(s,t) e=(s,t)计算 h h h个头注意力:
    A t t e n t i o n H G T ( s , e , t ) = Softmax ⁡ ∀ s ∈ N ( t ) ( ∏ i ∈ [ 1 , h ] A T T − head  i ( s , e , t ) ) A T T − head  i ( s , e , t ) = ( K i ( s ) W ϕ ( e ) A T T Q i ( t ) T ) ⋅ μ ⟨ τ ( s ) , ϕ ( e ) , τ ( t ) ⟩ d K i ( s ) = K-Linear  τ ( s ) i ( H ( l − 1 ) [ s ] ) Q i ( t ) = Q-Linear  τ ( t ) i ( H ( l − 1 ) [ t ] ) \begin{aligned} \mathbf{Attention}_{H G T}(s, e, t) & =\underset{\forall s \in N(t)}{\operatorname{Softmax}}\left(\prod_{i \in[1, h]} A T T-\text { head }^{i}(s, e, t)\right) \\ A T T-\text { head }^{i}(s, e, t) & =\left(K^{i}(s) W_{\phi(e)}^{A T T} Q^{i}(t)^{T}\right) \cdot \frac{\mu_{\langle\tau(s), \phi(e), \tau(t)\rangle}}{\sqrt{d}} \\ K^{i}(s) & =\text { K-Linear }_{\tau(s)}^{i}\left(H^{(l-1)}[s]\right) \\ Q^{i}(t) & =\text { Q-Linear }_{\tau(t)}^{i}\left(H^{(l-1)}[t]\right) \end{aligned} AttentionHGT(s,e,t)ATT head i(s,e,t)Ki(s)Qi(t)=sN(t)Softmax i[1,h]ATT head i(s,e,t) =(Ki(s)Wϕ(e)ATTQi(t)T)d μτ(s),ϕ(e),τ(t)⟩= K-Linear τ(s)i(H(l1)[s])= Q-Linear τ(t)i(H(l1)[t])
    首先,对于第 i i i个注意的头 A T T − h e a d i ( s , e , t ) ATT-head^i(s,e,t) ATTheadi(s,e,t),通过线性函数 $K-Linear_{\tau(s)}^{i}:\mathbb{R} ^{d} \to \mathbb{R} ^{\frac{d}{h} } $ 将源节点 τ ( s ) \tau (s) τ(s)投影到第 i i i个键向量 K i ( s ) K^i(s) Ki(s),其中 h h h是注意力头的数量, d h \frac{d}{h} hd是每个头的向量维度。注意, K − L i n e a r τ ( s ) i K-Linear_{\tau(s)}^{i} KLinearτ(s)i是由源节点 s s s的类型 τ ( s ) \tau (s) τ(s)索引的,这意味着每种类型的节点都有一个唯一的线性投影,以最大限度地模拟分布差异。类似地,通过线性函数 Q − L i n e a r τ ( t ) i Q-Linear _{\tau(t)}^{i} QLinearτ(t)i将目标节点 t t t投影到第 i i i个查询向量中。
    接下来,计算查询向量 Q i ( t ) Q^i(t) Qi(t)和键向量 K i ( s ) K^i(s) Ki(s)的相似性。异构图的一个独特之处就是有可能存在不同边类型之间的一堆节点类型,例如 τ ( s ) \tau(s) τ(s) τ ( t ) \tau(t) τ(t)。因此仍然为每种类型的边 ϕ ( e ) \phi(e) ϕ(e)使用独特的边缘权重矩阵 W ϕ ( e ) A T T ∈ R d h × d h W^{ATT}_{\phi (e)} \in \mathbb{R}^{\frac{d}{h} \times \frac{d}{h}} Wϕ(e)ATTRhd×hd。这样一来,即使在相同的节点类型对之间,模型也可以捕获不同的语义关系。另外,由于并非所有关系对目标节点的贡献相同,作者添加一个先验张量 μ ∈ R ∣ A ∣ × ∣ R ∣ × ∣ A ∣ \mu \in \mathbb{R}^{|\mathcal{A} |\times |\mathcal{R} | \times |\mathcal{A} |} μRA×R×A来表示每个元关系三元组的一般意义,作为对注意力的自适应缩放。
    最后,将 h h h个注意力头连接在一起,等到每个节点对的注意向量。随后对于每个目标节点 t t t,从它的邻居节点 N ( t ) N(t) N(t)收集所有的注意力向量,并使用softmax函数,使其满足 $ { \sum_{\forall s\in N(t)}}\mathbf{Attention} _{HGT} (s,e,t)=\mathbf{1} _{h\times 1} $.

2.2 Heterogeneous Message Passing 异构消息传递

与第一步计算异构互注意力并行,将信息从源节点传递到目标节点。对于一对节点 e = ( s , t ) e=(s,t) e=(s,t),通过以下公式计算其多头消息:
Message ⁡ H G T ( s , e , t ) = ∥ i ∈ [ 1 , h ] MSG-head  i ( s , e , t ) M S G − head  i ( s , e , t ) = M-Linear  τ ( s ) i ( H ( l − 1 ) [ s ] ) W ϕ ( e ) M S G \begin{array}{l} \operatorname{Message}_{H G T}(s, e, t)=\|_{i \in[1, h]} \text { MSG-head }^{i}(s, e, t) \\ M S G-\text { head }^{i}(s, e, t)=\text { M-Linear }{ }_{\tau(s)}^{i}\left(H^{(l-1)}[s]\right) W_{\phi(e)}^{M S G} \end{array} MessageHGT(s,e,t)=i[1,h] MSG-head i(s,e,t)MSG head i(s,e,t)= M-Linear τ(s)i(H(l1)[s])Wϕ(e)MSG
为了得到第 i i i个消息头 M S G − h e a d i ( s , e , t ) MSG-head^i(s,e,t) MSGheadi(s,e,t),首先使用线性函数$M-Linear_{\tau(s)}^{i}:\mathbb{R} ^{d} \to \mathbb{R} ^{\frac{d}{h} } 将 将 \tau(s) 型源节点 型源节点 型源节点s 投影到第 投影到第 投影到第i 个消息向量中。随后使用矩阵 个消息向量中。随后使用矩阵 个消息向量中。随后使用矩阵W^{MSG}{\phi (e)} \in \mathbb{R}^{\frac{d}{h} \times \frac{d}{h}} 合并边缘依赖性。最后连接所有 合并边缘依赖性。最后连接所有 合并边缘依赖性。最后连接所有h 个消息头以获取每个节点对的 个消息头以获取每个节点对的 个消息头以获取每个节点对的\mathbb{Message}{HGT}(s,e,t)$

2.3 Target-Specific Aggregation 目标特定聚合

最后将计算的异构多头注意力和消息从源节点聚合到目标节点。在计算异构互注意力过程中softmax已经使每个目标节点 t t t的注意力向量汇聚成了一个和。因此此时可以简单地使用注意力向量作为权重来平均来自源节点的对应消息,并得到更新的向量 H ~ ( l ) [ t ] \widetilde{H}^{(l)}[t] H (l)[t]为:
H ~ ( l ) [ t ] = ⊕ ∀ s ∈ N ( t ) ( A t t e n t i o n H G T ( s , e , t ) ⋅ M e s s a g e H G T ( s , e , t ) ) \widetilde{H}^{(l)}[t]=\underset{\forall s \in N(t)}{\oplus}\left(\mathbf { Attention }_{H G T}(s, e, t) \cdot \mathbf { Message }_{H G T}(s, e, t)\right) H (l)[t]=sN(t)(AttentionHGT(s,e,t)MessageHGT(s,e,t))
以此将不同特征分布的源节点所有的邻居节点的信息聚合到目标节点 t t t
最后再将目标节点 t t t的向量由其节点类型 τ ( t ) \tau(t) τ(t)的索引映射回其特定类型的分布。为此,使用线性函数 A − L i n e a r τ ( t ) A-Linear_{\tau(t)} ALinearτ(t)来更新向量 H ~ ( l ) [ t ] \widetilde{H}^{(l)}[t] H (l)[t],然后进行非线性激活和残差连接为:
H ~ ( l ) [ t ] = σ ( A − L i n e a r τ ( t ) H ~ ( l ) [ t ] ) + H ~ ( l − 1 ) [ t ] \widetilde{H}^{(l)}[t]=\sigma(A-Linear_{\tau(t)\widetilde{H}^{(l)}[t]})+\widetilde{H}^{(l-1)}[t] H (l)[t]=σ(ALinearτ(t)H (l)[t])+H (l1)[t]
这样得到目标节点 t t t的第 l l l个HGT层的输出 H ( l ) [ t ] H^{(l)}[t] H(l)[t],将 l l l层的HGT块堆叠,使每个节点在整个图中达到不同类型和关系的节点的很大比例,即HGT为每个节点生成一个高度情境化的表示 H ( L ) H^{(L)} H(L),该表示可以输送到任何模型中进行下游异构网络任务,如节点分类和链路预测。

2.4 HGSampling 小批图采样算法

作者还提出一种高效的异构小批图采样算法—HGSampling——使HGT和传统GNN都能处理web规模的异构图。HGSampling能够为每种类型保持相似数量的节点和边,同时还能采样子图的密度,以最小化信息损失和样本方差。
在这里插入图片描述

以上为HGSampling的伪代码。其基本思想是为每种节点类型 τ \tau τ保持一个单独的节点预算 B [ τ ] B[\tau] B[τ],并使用重要采样策略对每种类型的节点进行相同数量的采样以减小方差。

3. 结果

最终在OAG数据集中进行节点分类任务发现,HGT模型远优于当前其他模型。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/9341.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

书客、柏曼、爱德华护眼台灯护眼效果怎么样?真实测评告诉你真相

现在的孩子学习压力很大&#xff0c;在学校课程已经塞满了大半天&#xff0c;课后的作业更是不少&#xff0c;空闲时间还需要去课后补习班的数不胜数。用眼的次数非常的高&#xff0c;眼睛很容易感到疲惫&#xff0c;这时候我们的护眼台灯大有作用&#xff0c;好的护眼台灯可以…

(一)<江科大STM32>——软件环境搭建+新建工程步骤

一、软件环境搭建 &#xff08;1&#xff09;安装 Keil5 MDK 文件路径&#xff1a;江科大stm32入门教程资料/Keil5 MDK/MDK524a.EXE&#xff0c;安装即可&#xff0c;路径不能有中文。 &#xff08;2&#xff09;安装器件支持包 文件路径&#xff1a;江科大stm32入门教程资料…

Springboot 整合 Java DL4J 打造文本摘要生成系统

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

外排序之文件归并排序实现

1. 外排序 外排序&#xff08;External sorting&#xff09;是指能够处理极⼤量数据的排序算法。通常来说&#xff0c;外排序处理的数据不能 ⼀次装⼊内存&#xff0c;只能放在读写较慢的外存储器(通常是硬盘)上。外排序通常采⽤的是⼀种“排序-归并”的策略。在排序阶段&…

校园官网练习---web

HTML&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>西安工商学院</title><…

JAVA-08-继承

继承 父类&#xff1a;被继承的类 子类&#xff1a;继承父类的类&#xff0c;可以访问父类的公有和保护成员。 extends:使用 extends 关键字来表示一个类继承另一个类。 方法重写:子类可以重写父类的方法&#xff0c;以提供特定的实现。重写的方法必须与父类中的方法具有相…

Trimble X12三维激光扫描仪正在改变游戏规则【上海沪敖3D】

Trimble X12 三维激光扫描仪凭借清晰、纯净的点云数据和亚毫米级的精度正在改变游戏规则。今天的案例我们将与您分享&#xff0c;X12是如何帮助专业测量咨询公司OR3D完成的一个模拟受损平转桥运动的项目。 由于习惯于以微米为单位工作&#xff0c;专业测量机构OR3D是一家要求…

SpringBoot框架下的资产管理创新

4系统概要设计 4.1概述 系统设计原则 以技术先进、系统实用、结构合理、产品主流、低成本、低维护量作为基本建设原则&#xff0c;规划系统的整体构架. 先进性&#xff1a; 在产品设计上&#xff0c;整个系统软硬件设备的设计符合高新技术的潮流&#xff0c;媒体数字化、压缩、…

统信UOS开发环境支持Perl

UOS凭借广泛的编程语言支持,为开发者构建了一个高效灵活的开发环境,无需担心环境兼容性问题。 文章目录 一、环境部署1. Perl开发环境安装2. Perl开发环境配置环境变量配置模块管理器编辑器集成调试工具二、代码示例文件处理Web开发三、常见问题1. 依赖管理问题2. 性能问题3.…

qt QClipboard详解

1、概述 QClipboard是Qt框架中的一个类&#xff0c;它提供了对窗口系统剪贴板的访问能力。剪贴板是一个临时存储区域&#xff0c;通常用于在应用程序之间传递文本、图像和其他数据。QClipboard通过统一的接口来操作剪贴板内容&#xff0c;使得开发者能够方便地实现剪切、复制和…

机器学习在时间序列预测中的应用与实现——以电力负荷预测为例(附代码)

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 随着数据采集技术的发展&#xff0c;时间序列数据在各个领域中的应用越来越广泛。时间序列预测旨在基于过去的时间数据来…

强大的吾店云建站平台介绍

经过多年在WordPress建站领域的摸索和探索&#xff0c;能轻松创建和管理各种类型网站的平台 – 吾店云建站平台诞生了。 应该说这是一个艰苦卓绝的过程&#xff0c;在中国创建一个能轻松创建和使用WordPress网站的平台并不容易&#xff0c;最主要是网络环境和托管软件的限制。…

猿创征文|Inscode桌面IDE:打造高效开发新体验

猿创征文&#xff5c;Inscode桌面IDE&#xff1a;打造高效开发新体验 引言 在当今快速发展的软件开发领域&#xff0c;一个高效、易用的集成开发环境&#xff08;IDE&#xff09;是每个开发者必不可少的工具。Inscode 桌面 IDE 作为一款新兴的开发工具&#xff0c;凭借其强大…

Java多线程并发安全问题

多线程并发安全问题 概念 当多个线程并发操作同一临界资源,由于线程切换时机不确定,导致操作临界资源的顺序出现混乱严重时可能导致系统瘫痪. 临界资源:操作该资源的全过程同时只能被单个线程完成. 例 当beans为1时&#xff0c;若两个线程同时调用getBean方法&#xff0c;t…

电脑管家实时监控软件下载 | 六款知名又实用的电脑监控软件推荐!(珍藏篇)

在当今的商业环境&#xff0c;企业对于员工在工作期间的行为监控需求越来越强烈。 尤其是在网络化和信息化程度不断提高的今天&#xff0c;电脑管家实时监控软件是企业管理员工工作行为、提高工作效率、防止信息泄露的重要工具。 本文&#xff0c;将为您推荐六款知名又实用的电…

机器学习—训练细节

首先回忆如何训练一个逻辑回归模型&#xff0c;建立一个Logistic回归模型是&#xff1a;你将指定如何计算输出给定输入特征x和参数w和b&#xff0c;在逻辑回归函数预测f(x)g&#xff0c;它是应用于w*xb的Z状结肠函数&#xff0c;所以如果znp.dot(w,x)b&#xff0c;f_x1/(1np.ex…

图片翻译之尺码表批量翻译

最近在为客户解决问题的过程中&#xff0c;小编发现了一个令人惊叹的应用场景——电商平台可以通过OpenAI 批量翻译图片格式的尺码表&#xff0c;且翻译内容能够准确地呈现为多种语言&#xff01; 这不仅让我感叹 AI 效率的强大&#xff0c;也让我对电商行业的竞争压力感到震撼…

深入了解决策树:机器学习中的经典算法

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

C语言实现数据结构之堆

文章目录 堆一. 树概念及结构1. 树的概念2. 树的相关概念3. 树的表示4. 树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 二. 二叉树概念及结构1. 概念2. 特殊的二叉树3. 二叉树的性质4. 二叉树的存储结构 三. 二叉树的顺序结构及实现1. 二叉树的顺序结构2.…

如何关闭 Ubuntu22.04 LTS 的更新提醒

引言 众所周知&#xff0c;Ubuntu 的软件更新和版本更新提醒是又多又烦&#xff0c;如果不小心更新到了最新的 Ubuntu 还可能面临各种各样的问题&#xff0c;这里提供一个解决方法 步骤 首先按照下面步骤打开 Software & Updates 然后按照下面步骤依次点击 最后关闭即可…