【图神经网络导论】之第9章模型变体(刘知远)

第9章不同图类型的模型变体

文章目录

  • 第9章不同图类型的模型变体
    • 9.1 有向图
    • 9.2 异构图
    • 9.3 带有边信息的图
      • 9.4 动态图
      • 9.5 多维图

第4章介绍的基础GNN模型"被用于处理无向图,这些图包含具有标签的节点,是最简单的图。然而,在现实世界中还有更多类型的图,建模这些图结构需要不同的GNN结构。本章研究针对不同类型的图设计的图模型结构。

9.1 有向图

无向图的第一个变体是有向图(directed graph)。一条无向边可以被视作两条有向边,它表明两个节点之间存在关系。然而,有向边蕴含更多信息。举例来说,知识图谱中的头实体指向尾实体的关系就是一条有向边,它说明应该区别对待两个方向上的传播。
关于有向图,这里介绍稠密图传播模型(dense graph propagation, DGP)1。对于每个目标节点,它都从其所有后代节点和前驱节点那里接收信息,并分别使用两个权重矩阵W。和 W。来学习更精确的结构信息。该模型的传播过程如下:
H = σ ( D a − 1 A a σ ( D d − 1 A d X Θ d ) Θ d ) ( 9.1 ) H =σ(D^{-1}_a A_aσ(D_d^{-1}A_dX\Theta_d )\Theta_d)\quad\quad\quad (9.1) H=σ(Da1Aaσ(Dd1AdXΘd)Θd)(9.1)

其中, D a − 1 A a D_a^{-1}A_a Da1Aa D d − 1 A d D_d^{-1}A_d Dd1Ad分别是前驱节点和后代节点对应的归一化邻接矩阵。由于稠密图中各相邻节点的影响因距离不同而不同,因此DGP采用一种针对相邻节点的权重分配方式,可以使不同距离的节点产生不同的影响力。在关于DGP的论文中,作者使用 w a = { w i a } i = 0 K w^a=\{w^a_i\}^K_{i=0} wa={wia}i=0K w d = { w i d } i = 0 K w^d=\{w^d_i\}^K_{i=0} wd={wid}i=0K分别表示来自前驱节点和后代节点的权重。因此,加权传播过程变为:
H = σ ( ∑ k = 0 K H=\sigma \Big(\sum^K_{k=0} H=σ(k=0K α k a D k a − 1 A k a \alpha^a_k D^{a^-1}_k A^a_k αkaDka1Aka σ ( ∑ k = 0 K α k d D k d − 1 A k d \sigma\big(\sum^K_{k=0}\alpha^d_kD^{d^-1}_kA^d_k σ(k=0KαkdDkd1Akd X Θ d X\Theta_d XΘd ) \big) ) Θ a \Theta_a Θa ) \Big) ) (9.2)
其中, A k a A^a_k Aka是邻接矩阵中包含前驱节点k跳边的子矩阵, A k d A^d_k Akd则是邻接矩阵中包含子节点传播k跳的子矩阵。 D k a D^a_k Dka D k d D^d_k Dkd为对应的度矩阵。

9.2 异构图

第二个变体是异构图(heterogeneous graph)
异构图可以表示为有向图 G = { V , E } G=\{\mathcal{V},\mathcal{E}\} G={V,E},其节点类型映射为 ϕ : V → A \phi:\mathcal{V}→A ϕ:VA,关系类型映射为 ψ : E → R ψ:\mathcal{E}→R ψ:ER。其中, V \mathcal{V} V是节点集合, E \mathcal{E} E是边集合,A是节点类型集合,R是关系类型集合,且有|A|>1或者|R|>1成立。
要处理异构图,最简单的方法是将节点类型转化为独热编码(one- hot)的特征向量,并将其拼接在节点的原有特征上。GraphInception模型2在异构图的传播过程中引入了元路径(meta-path)的概念,基于元路径的方法是处理异构图的一种常用方法。

异构图 G = { V , E } G=\{\mathcal{V},\mathcal{E}\} G={V,E}中的元路径 P \mathcal{P} P 是这样一条路径: A → R 1 A 2 → R 2 A 3.. → R L A L + 1 A \stackrel{R1}→A2\stackrel{R_2}→A3.. \stackrel{R_L} \rightarrow A_{L+1} AR1A2R2A3..RLAL+1,其中, L + 1 L+1 L+1是路径的长度。

节点A1经过路径R1到达节点A2,节点A2通过路径R2到达节点A3,…

有了元路径,就可以根据类型和距离将相邻节点分类,进而将异构图分解为一组同构图,因此异构图也被称为多通道网络。GraphInception只考虑单一节点类的分类问题,我们将目标节点类表示为 V 1 \mathcal{V}_1 V1。有了元路径集合 S = { P 1 , . . . , P ∣ S ∣ } \mathcal{S}=\{\mathcal{P_1,...,P_{|S|}}\} S={P1,...,PS},就可以将异构图转化为如下的多通道网络G’:
G ′ = { G l ′ ∣ G l ′ , = ( V 1 , E 1 , l , ) , l = 1 , . . , s ∣ } G' =\{G'_{\mathcal{l}}|G'_l,=(\mathcal{V_1,E_{1,l}},),l=1,..,s|\} G={GlGl,=(V1,E1,l,),l=1,..,s}(9.3)

其中, V 1 , ⋯ , V m \mathcal{V_1,\cdots,V_m} V1,,Vm代表由m种类型的节点组成的集合, V 1 \mathcal{V_1} V1代表目标节点类型的节点集合, E 1 l ⊆ V 1 × V 1 \mathcal{E_{1l}} \subseteq \mathcal{V_1\times V_1} E1lV1×V1表示遵循元路径 P \mathcal{P} P,模式的边实例,且两端节点都属于 V 1 \mathcal{V_1} V1集合。对每一组相邻节点,GraphInception模型都将其视为一个同构图中的子图进行传播,最终将不同的同构图得到的表示进行拼接,从而得到共同的节点表示。和一般的模型使用拉普拉斯矩阵不同, GraphInception 模型使用转移概率矩阵 P P P作为傅里叶变换的基。

2019年,Xiao Wang等人3提出了☀️异构图注意力网络HAN,该模型使用节点层面和语义层面的注意力机制。首先,对于每条元路径, HAN模型都在节点层面进行注意力聚合,以学习特定节点嵌入。接着,基于这种针对元路径的表示,该模型再做语义层面的注意力学习,以提供更全面的节点表示。这样一来,该模型就可以同时考虑节点重要性和元路径重要性。

针对社交网络中的事件分类任务,Hao Peng等人4 在2019年提出了☀️PP-GCN模型,用于为社交网络中的事件分类。对于事件图中的两个事件,该模型首先通过不同的元路径连接为其计算出加权参数,然后构造一个带权重的邻接矩阵来标注社交事件实例,并在其上使用GCN模型来学习事件的表示。
为了降低训练成本,Xia Chen 等人5在2019 年提出了☀️ ActiveHNE,并在异构图学习中引入了主动学习(activelearning)。基于不确定性和代表性,ActiveHNE在训练集中选择最重要的节点获取标签。这一步骤显著地降低了查询成本,同时在真实数据集上获得了非常好的效果。

9.3 带有边信息的图

在无向图的第三个变体中,每条边都带有额外信息,例如权重、边的类型等。本节介绍两种方法来处理这一类图。

第一种方法是将图转换为二部图(bipartite graph)。在这个过程中,原始图的边变为节点,一条边被拆分为两条新边,这意味着在边节点与起始节点和结束节点之间分别有一条新边。这种图变换被称为Levi 图变换6, 7
给定图 G = { V , E , L V , L E } \mathcal{G=\{V,E,}L_{\mathcal{V}},L_{\mathcal{E}}\} G={V,E,LV,LE},其中 L V L_{\mathcal{V}} LV和L_{\mathcal{E}}:分别为节点集合边集合的标签,它对应的 Levi 图为 G ′ = { V ′ , E ′ , L V ′ , L E ′ } \mathcal{G'=\{V',E',}L_{\mathcal{V'}},L_{\mathcal{E'}}\} G={V,E,LV,LE},其中 V ′ = V ∪ E \mathcal{V'=V\cup E} V=VE, L V ′ = L v ∪ L E L_{\mathcal{V'}}=L_{\mathcal{v} }\cup L_{\mathcal{E}} LV=LvLE ,且 L E = ∅ L_{\mathcal{E}}=∅ LE=。新的边集合E’包含了原有节点和新加入节点之间的边,且Levi图的边是没有标签的。

在☀️G2S网络中,Daniel Beck等人8 将AMR图转换为 Levi图(如图9-1所示),并在图上应用门控图神经网络。G2S的编码器使用以下邻域聚合函数:

h v l = σ ( 1 ∣ N V ∣ ∑ u ∈ N V h_v^l=\sigma \Big(\frac{1}{|N_{V}|}\sum_{u\in N_V} hvl=σ(NV1uNV W r W_r Wr ( r v ′ ⊙ h u t − 1 ) (r'_v \odot h_u^{t-1}) (rvhut1) + b r +b_r +br ) \Big) ) (9.4)
其中, r v t r^t_v rvt是GRU 中对节点v在第 t t t层的重置门, W r W_r Wr b r b_r br,为不同类型的边(关系)的传播参数,σ是非线性激活函数,⊙是阿达马积。
在这里插入图片描述
第二种方法是在传播过程中,对不同类型的边使用不同的权重矩阵。针对关系种类较多的情况,R-GCN9引入了两种正则化方法来减少建模关系所需的参数量。这两种正则化方法分别是基分解(basis- decomposition)块对角分解(block-diagonal-decomposition )

使用基分解,每一个关系的权重 W r W_r Wr为:
W r = ∑ b = 1 B a r b V b W_r=\sum_{b=1}^B a_{rb}V_b Wr=b=1BarbVb (9.5)
其中, W r W_r Wr被表示为共享的基矩阵 V b ∈ R d i n × d o u t V_b ∈ R^{d_{in}\times d_{out}} VbRdin×dout 的加权和(权重为 a r b a_{rb} arb)。

在块对角分解中,R-GCN通过针对一个低维矩阵集合直接求和来定义每一个 W r W_r Wr,这比第一种分解需要更多参数:
W r = ⊕ b = 1 B Q b r W_r=\oplus_{b=1}^B Q_{br} Wr=b=1BQbr (9.6)

于是, w r = d i a g ( Q 1 r , ⋯ , Q B r ) w_r=diag(Q_{1r},\cdots,Q_{Br}) wr=diag(Q1r,,QBr) Q b r ∈ R ( d ( l + 1 ) / B ) × ( d ( l ) / B ) Q_{br} \in R^{(d^{(l+1)}/ B)\times (d^{(l)}/B)} QbrR(d(l+1)/B)×(d(l)/B)组成。块对角分解限制了权重矩阵的稀疏度,并隐含这样一个假设:隐向量可以被分为更小的部分。通过这两种方式,R-GCN使用不同的参数矩阵表示不同的关系,并在知识图谱链接预测任务上取得了性能提升。

9.4 动态图

时空预测(spatial-temporal forecasting)是一种很重要的任务,可以对应现实世界中的交通预测、人体动作识别和气候预测。某些预测问题可以建模为针对动态图的预测,动态图包含静态的图结构和动态的输入信号。图9-2展示了基于现有图状态预测未来图状态的任务。

为了捕获时间和空间两方面的信息,DCRNN10 和 STGCN11使用独立的模块分别学习空间信息和时间信息。

☀️DCRNN将图中的流建模为扩散过程,扩散层将空间信息进行传播并更新节点的隐状态。在时序依赖上,DCRNN使用RNN结构,不同之处在于将其中的矩阵相乘过程替换为扩散卷积过程。整个模型是基于“序列对序列”架构构建的,并能实现多步预测

☀️STGCN包含多个时空卷积块,每一个时空卷积块都使用两个时序门控卷积层,其间是一个空间图卷积层。时空卷积块内部还使用了残差连接和瓶颈策略

与以上两个模型不同的是,Structural-RNN12 和 ST-GCN13同时采集空间信息和时间信息。这两个模型使用时序连接拓展静态图,并在拓展后的图上使用GNN。

☀️Structural-RNN在同一个节点的前后时间点之间建立连接,然后对节点和边分别构建RNN(nodeRNN和edgeRNN),两部分 RNN构成二部图并针对每个节点进行传播。
☀️ST-GCN将所有时间节点的图堆叠起来,以构建一个时空图。模型将图分割,为每一个节点都指定一个权重向量,然后直接在带权重的时空图上进行图卷积。
☀️Graph WaveNet14考虑了一个更困难的场景:静态图的邻接矩阵不能如实反映真正的空间依赖信息,即缺失信息或信息有误。这种情况是普遍存在的,因为节点之间的距离不一定能反映逻辑上的联系。因此, Zonghan Wu 等人[85]提出了一种自适应的邻接矩阵,这种矩阵在学习过程中获得,并使用一个由时间卷积网络(temporal convolution network, TCN)和GCN结合而成的框架来解决这一问题。

9.5 多维图

到目前为止,我们已经考虑了带有二元边的图。然而在现实世界的图中,节点很可能通过多种关系相连,从而构成多维图(multi- dimensional graph,也叫作multi-view graph 或multi-graph),如图9-3所示。举例来说,YouTube视频网站用户的交互过程包含订阅、分享、评论等15。考虑到这些关系并非天然独立,直接应用处理单维图(single- dimensional graph)的模型可能不是最好的做法。

对多维图的早期研究主要集中于解决社团发现和聚类问题。2011年,Michele Berlingerio 等人16给出了多维图上“社团”的定义并提供了两种指标来描述多维图上社团的密度。2013年,Evangelos E. Papalexakis 等人17 提出了两种具体的算法MultiCLUSGraphFuse,用于寻找全部维度上的社团。
2018年,Yiwei Sun等人18提出了一种多维图表示学习算法,该算法主要关注多维图中的节点嵌入学习。他们首先基于一种图上的软聚类算法–图分解聚类(graph factorization clustering,GFC)提出了一种单维图表示学习算法,接着进一步将该方法扩展到多维图上。这两种方法在两种设定下均取得了较好的结果。
最近,有人提出了一些特殊的GCN变体,以解决多维图问题。 Yao Ma 等人19提出了☀️mGCN模型。该模型为同一个节点在不同维度上的表示使用不同的嵌入向量,每个节点的这些不同的嵌入向量由该节点对应的一个通用向量通过在不同维度的映射转换而来。他们设计了一种 GNN聚合方式,可以同时考虑相同维度上的不同节点的交互和不同维度上的同一个节点的交互。2019年,Muhammad Raza Khan和Joshua E.Blumenstock20提出了☀️Multi-GCN算法。该算法通过将多维图合并成单维图来进行后续的学习。降维过程分为两步:首先通过子空间分析(subspace analysis)将多维图合并,然后通过流形学习(manifold learning)对图进行剪切。降维过程<结束后,在单维图上应用 GCN便可以进行学习。


  1. 73 ↩︎

  2. 74 ↩︎

  3. 75 ↩︎

  4. 76 ↩︎

  5. 77 ↩︎

  6. 78 ↩︎

  7. 79 ↩︎

  8. 80 ↩︎

  9. 43 ↩︎

  10. 81 ↩︎

  11. 82 ↩︎

  12. 83 ↩︎

  13. 84 ↩︎

  14. 85 ↩︎

  15. 86 ↩︎

  16. 87 ↩︎

  17. 88 ↩︎

  18. 90 ↩︎

  19. 86 ↩︎

  20. 89 ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础知识点(八-POSXI互斥锁)

目录 一、互斥锁基本概念 1.1 互斥相关背景概念 1.2 互斥锁(mutex) 1.3 死锁 二、初始化互斥锁 2.1 静态初始化 2.2 动态初始化 三、获取与释放互斥锁 四、销毁互斥锁 一、互斥锁基本概念 1.1 互斥相关背景概念 临界资源&#xff1a;多线程执行流共享的资源就叫做…

【事务】事务传播级别

Spring事务定义了7种传播机制&#xff1a; PROPAGATION_REQUIRED&#xff1a;默认的Spring事物传播级别&#xff0c;若当前存在事务&#xff0c;则加入该事务&#xff0c;若不存在事务&#xff0c;则新建一个事务。 PAOPAGATION_REQUIRE_NEW&#xff1a;若当前没有事务&#x…

PyTorch 简单易懂的 Embedding 和 EmbeddingBag - 解析与实践

目录 torch.nn子模块Sparse Layers详解 nn.Embedding 用途 主要参数 注意事项 使用示例 从预训练权重创建嵌入 nn.EmbeddingBag 功能和用途 主要参数 使用示例 从预训练权重创建 总结 torch.nn子模块Sparse Layers详解 nn.Embedding torch.nn.Embedding 是 PyTo…

06.函数和模块的使用

函数和模块的使用 在讲解本章节的内容之前&#xff0c;我们先来研究一道数学题&#xff0c;请说出下面的方程有多少组正整数解。 事实上&#xff0c;上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案。想到这一点问题的答案就呼之欲出了。 可以用Python的程序来…

基于ssm的大湾区旅游推荐系统的设计与实现+vue论文

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统大湾区旅游景点信息管理难度大&#xff0c;容错率低&…

美创科技葛宏彬:夯实安全基础,对医疗数据风险“逐个击破”

导读 解决医疗机构“临床业务数据合规流动”与“重要数据安全防护”两大难题。 2023年11月11日&#xff0c;在2023年南湖HIT论坛上&#xff0c;HIT专家网联合杭州美创科技股份有限公司&#xff08;以下简称美创科技&#xff09;发布《医疗数据安全风险分析及防范实践》白皮书…

完成python+neo4j+django踩坑记录

使用Django进行后端控制&#xff0c;Echarts进行前端显示 例子django安装1、django启动2、django初体验3、django踩坑【已解决】You have 18 unapplied migration(s). Your project may not work properly until you apply the migra【已解决】运行neo4j出现报错 Failed to sta…

回车事件怎样绑定?

首先要记住一点&#xff0c;回车事件只能在js代码中绑定&#xff0c;在HTML中绑定是获取不到的&#xff0c;下面是我自己写的一个示例&#xff0c;大家可以参考一下。 importt.onkeydown function(event) {let val document.getElementById(importt).value;let e event || …

目标检测COCO数据集与评价体系mAP

1.mAP 2.IoU IoU也就是交并比&#xff0c;也称为 Jaccard 指数&#xff0c;用于计算真实边界框与预测边界框之间的重叠程度。它是真值框与预测边界框的交集和并集之间的比值。Ground Truth边界框是测试集中手工标记的边界框&#xff0c;用于指定目标图像的位置以及预测的边界框…

浅讲人工智能,初识人工智能几个重要领域。

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

设置5台SSH互免的虚拟机服务器配置

搭建一套集群虚拟机&#xff0c;往往都需要互免设置&#xff0c;过程很简单&#xff0c;避免以后再搭建还得网上搜索&#xff0c;我直接将这一个步骤写成笔记&#xff0c;记录下来&#xff0c;方便后续查阅。 步骤如下—— 1、准备五台机器 服务器名字服务器IPhadoop1192.16…

昇腾多卡通信教程【配置网络检测对象IP】

无法通信会出现的错误如下 一、网络健康状态报错 命令原型 hccn_tool [-i %d] -netdetect -s [address %s]命令功能 本功能支持用户执行命令获取网络健康状态&#xff08;本端与所配置的检测IP之间的连通状态&#xff09;&#xff0c;用户可指定上报的状态信息名称。 状态信…

Javaweb之Mybatis的XML配置文件的详细解析

2. Mybatis的XML配置文件 Mybatis的开发有两种方式&#xff1a; 注解 XML 2.1 XML配置文件规范 使用Mybatis的注解方式&#xff0c;主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能&#xff0c;建议使用XML来配置映射语句&#xff0c;也就是将SQL语句写在…

kotlin的抽象类和抽象方法

在 Kotlin 中&#xff0c;抽象类和抽象方法是面向对象编程中的概念&#xff0c;用于实现抽象和多态性。以下是有关 Kotlin 抽象类和抽象方法的详细信息&#xff1a; 抽象类&#xff1a; 定义&#xff1a; 抽象类是用 abstract 关键字声明的类&#xff0c;不能直接实例化。它可…

从零开始构建区块链:我的区块链开发之旅

1.引言 1.区块链技术的兴起和重要性 区块链技术&#xff0c;作为数字化时代的一项颠覆性创新&#xff0c;已经成为当今世界最令人瞩目的技术之一。自比特币的问世以来&#xff0c;区块链技术已经从仅仅支持加密货币发展成为一种具有广泛应用前景的分布式账本技术。其核心优势…

顺序表的实现(C语言)

本文章主要对顺序表的介绍以及数据结构的定义,以及几道相关例题,帮助大家更好理解顺序表. 文章目录 前言 一、顺序表的静态实现 二、顺序表的动态实现 三.定义打印顺序表函数 四.定义动态增加顺序表长度函数 五.创建顺序表并初始化 六.顺序表的按位查找 七.顺序表的按值…

如何下载 GOES(Geostationary Operational Environmental Satellite)卫星数据

GOES是指地球静止轨道卫星&#xff08;Geostationary Operational Environmental Satellite&#xff09;系统&#xff0c;它是美国国家海洋和大气管理局&#xff08;NOAA&#xff09;和美国国家航空航天局&#xff08;NASA&#xff09;合作开发和运营的一系列气象卫星。这些卫星…

如何编写高效的正则表达式?

正则表达式&#xff08;Regular Expression&#xff0c;简称regex&#xff09;是一种强大的文本处理技术&#xff0c;广泛应用于各种编程语言和工具中。本文将从多个方面介绍正则表达式的原理、应用和实践&#xff0c;帮助你掌握这一关键技术。 正则可视化 | 一个覆盖广泛主题…

19、Kubernetes核心技术 - 资源限制

目录 一、概述 二、Kubernetes 中的资源单位 2.1、CPU资源单位 2.2、内存资源单位 三、Pod资源限制 四、namespace资源限制 4.1、为命名空间配置内存和 CPU 配额 4.2、为命名空间配置默认的内存请求和限制 4.3、为命名空间配置默认的CPU请求和限制 五、超过容器限制的…

240107-RHEL8+RHEL9配置安装:NVIDIA驱动(15步)+CUDA(4步)+CUDNN(5步)+GPU压力测试

Section 0: 基础知识 CUDA、cuDNN 和 PyTorch 版本的选择与搭配指南 安装优先级: 显卡驱动 → CUDA → CUDA Toolkit → cuDNN → Pytorch 即显卡驱动决定了CUDA版本&#xff0c;CUDA版本决定了CUDA Toolkit、cuDNN、Pytorch各自的版本提前下载 &#xff5c; CUDA提前下载 &am…