【图神经网络导论】之第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 ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

了解一下InternLM3

在 InternStudio 平台中选择 A100(1/4) 的配置&#xff0c;如下图所示镜像选择 Cuda11.7-conda&#xff0c;接下来打开刚刚租用服务器的进入开发机&#xff0c;并且打开其中的终端开始环境配置、模型下载和运行 demo。入开发机后&#xff0c;在页面的左上角可以切换 JupyterLab…

CSS 压重按钮 效果

<template><view class="cont"><div class="container"><div class="pane"><!-- 选项1 --><label class="label" @click="handleOptionClick(0)":style="{ color: selectedOption ==…

GD32 支持IAP的bootloader开发,使用串口通过Ymodem协议传输固件(附代码)

资料下载: https://download.csdn.net/download/vvoennvv/88713921 一、概述 关于IAP的原理和Ymodem协议&#xff0c;本文不做任何论述&#xff0c;本文只论述bootloader如何使用串口通过Ymodem协议接收升级程序并进行IAP升级&#xff0c;以及bootloader和主程序两个工程的配置…

shell编程学习(二)

变量的类型 预定义变量 $$ 当前进程PID $? 命令执行后的返回状态.0 为执行正确&#xff0c;非 0 为执行错误 $# 位置参数的数量 $* 所有位置参数的内容 …

Next.js 第一次接触

因为需要整个漂亮的在线文档&#xff0c;所以接触了next.js&#xff0c;因为对前端js本身不够熟悉&#xff0c;别说对react.js 又不会&#xff0c;时间又不允许深入研究&#xff0c;所以&#xff0c;为了加一个导航菜单&#xff0c;极其痛苦。 有点小bug&#xff0c;不过不影响…

《EnlightenGAN: Deep Light Enhancement withoutPaired Supervision》论文超详细解读(翻译+精读)

前言 最近学习低照度图像增强时读到这篇EnlightenGAN的论文觉得写得很有意思&#xff0c;讲故事的手法也很值得小白写论文时模仿&#xff0c;今天就来带大家读一下~ 目录 前言 ABSTRACT—摘要 翻译 精读 一、INTRODUCTION—简介 翻译 精读 二、RELATED WORKS—相关工…

Joplin配合teracloud进行多版本客户端分别笔记同步

最近瞎搜索joplin&#xff0c;意外在github上搜到plugins&#xff0c;插件仓库&#xff0c;里面有一个思维导图的插件我还是蛮喜欢的&#xff0c;结果下载后安装发现&#xff0c;我当前的Jopin的版本如下 &#xff08;Joplin 2.7.15 (prod, win32) 同步版本: 3 配置文件版本: 4…

Linux Ubuntu 20.04.6 Intel WiFi6 Ax411 1690i Ax1690i Killer 解决无线网卡识别不出来问题

项目场景&#xff1a; 网卡型号&#xff1a;英特尔 Killer™ Wi-Fi 6E AX1690 i/s ubuntu 版本 uname -a Linux kuanli 5.15.0-91-generic #101~20.04.1-Ubuntu SMP Thu Nov 16 14:22:28 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux cat /proc/version Linux version 5.15.0-9…

MySQL忘记密码,如何重置密码(Windows)

1. 停止MySQL服务 打开“服务”管理工具&#xff08;可以在开始菜单搜索“服务”或运行 services.msc&#xff09;。 找到你的MySQL服务&#xff0c;可能叫别的&#xff0c;但是应该都是mysql开头的。 鼠标右键停止运行它。 2. 跳过权限表启动 MySQL 打开命令提示符&#x…

PyQT5+MySQL的学生信息管理系统【附源码,运行简单】

PyQT5MySQL的学生信息管理系统【附源码&#xff0c;运行简单】 总览 1、《PyQT5MySQL的学生信息管理系统》1.1 方案设计说明书设计目标需求分析工具列表 2、详细设计2.1 登录2.2 程序主页面2.3 学生新增界面2.4 学生更改界面2.4 学生删除界面2.5 其他功能贴图 3、下载 总览 自…

【好书推荐】ReactJS实践入门

作者简介 Chris Minnick是一位多产的作家、博主、培训师、演说家和Web工程师。他创立的WatzThis&#xff1f;公司&#xff0c;一直致力于寻找更好的方法向初学者教授计算机和编程技能。 Chris拥有超过25年的全栈开发经验&#xff0c;他也是一名教龄超过10年的培训师&#xff0c…

使用C#发送邮箱验证码

使用C#发送邮箱验证码 在很多应用程序中&#xff0c;我们需要使用邮箱来进行用户身份验证。其中一种常见的方式是通过发送验证码到用户的邮箱&#xff0c;然后要求用户输入该验证码进行验证。本文将介绍如何使用 C# 发送邮箱验证码。 声明 验证码登录没有用任何的工具&#…

linuxnodejs 20.* 安装问题,version `GLIBCXX_3.4.26‘

背景 今天服务器被重置拉&#xff0c;nodejs 环境不存在&#xff0c;特意安装下nodejs&#xff0c;一访问官网&#xff0c;妈呀&#xff0c;居然到20版本拉&#xff01;就尝试安装下最新版本&#xff01; 过程 $ cd /opt $ curl -OL https://nodejs.org/dist/v20.10.0/node-v2…

C++11_可变参数模版

文章目录 前言一、可变参数模版是什么&#xff1f;二、如何使用可变参数模版1.怎么解析可变参数模版2.可变参数模版的实际应用 总结 前言 C11 &#xff0c;添加了许多有用的功能&#xff0c;上章我们主要讲解了右值引用&#xff0c;这章我们来讲解可变参数模版的使用。 提示&a…

Spring之循环依赖底层源码(一)

文章目录 一、简介1. 回顾2. 循环依赖3. Bean的生命周期回顾4. 三级缓存5. 解决循环依赖的思路 二、源码分析三、相关问题1. Async情况下的循环依赖解析2. 原型Bean情况下的循环依赖解析3. 构造方法导致的循环依赖解析 一、简介 1. 回顾 前面首先重点分析了Spring Bean的整个…

如何使用 CMake 生成一个静态库

文章目录 tutorial_3/CMakeLists.txttutorial_3/src/CMakeLists.txtcmake_tutorial/tutorial_3/src/hello.cpptutorial_3/src/hello.h根目录的 CMakeLists.txtsrc 目录的 CMakeLists.txthello.cpp 和 hello.h构建过程总结 tutorial_3/CMakeLists.txt cmake_minimum_required(V…

excel3基础图标与透视图表的制作

业务需求1 给逾期金额也加上条形图,同时制作各个城市的逾期发展趋势 思路&#xff1a; 操作顺序&#xff1a;选中3列数据&#xff08;8月上旬逾期金额、8月中旬逾期金额和8月下旬逾期金额&#xff09;–开始–条件格式–数据条–渐变填充&#xff08;第5个&#xff09;&#xf…

厦门大学OpenHarmony技术俱乐部开创“1+N”新模式,加速推动产学研融合

12月29日,OpenHarmony技术俱乐部再添重将——在多方见证下,厦门大学OpenHarmony技术俱乐部在翔安校区益海嘉里楼报告厅正式揭牌成立,现场出席领导及师生代表近千人。 成立仪式现场 OpenHarmony技术俱乐部 携手厦门大学共绘开源生态新图景 OpenHarmony是由开放原子开源基金…

STM32F407ZGT6时钟源配置

1、26M外部时钟源 1、25M外部时钟源

cmd命令启动C# windows服务程序

因为Process.Manage.Service.exe程序为Windows服务程序&#xff0c;不能直接双击打开&#xff0c;所以需要借助windows系统自带InstallUtil.exe程序来启动它。 以管理员身份运行cmd命令控制台窗口 输入命令进入到InstallUtil.exe程序所在的文件夹 cd C:\Windows\Microsoft.NET…