异配图神经网络——Graph Transformer Networks

news2024/11/20 4:38:09

一.论文概述

作者提出了Graph Transformer Network (GTN)用来在异配图(heterogeneous graph)上学习节点表示。通过Graph Transformer层,模型能将异构图转换为由meta-path定义的多个新图,这些meta-paths具有任意的边类型和长度,通过在学得的meta-path对应的新图上进行卷积能获取更有效的节点表示。在几个异配图数据集上的实验结果也验证了GTN的有效性。

二.预备知识

假设 T v \mathcal{T}^v Tv T e \mathcal{T}^e Te 分别表示节点类型和边类型,对于给定图 G = ( V , E ) G=(V,E) G=(V,E),其中 V V V是节点集, E E E是边集,节点类型映射函数为 f v : V → T v f_v: V \rightarrow \mathcal{T}^v fv:VTv,边类型映射函数为 f e : E → T e f_e: E \rightarrow \mathcal{T}^e fe:ETe。当 ∣ T e ∣ = 1 \left|\mathcal{T}^e\right|=1 Te=1 ∣ T v ∣ = 1 \left|\mathcal{T}^v\right|=1 Tv=1时,图为同配图,否则为异配图。在本文中作者考虑 ∣ T e ∣ > 1 \left|\mathcal{T}^e\right|>1 Te>1的情况。异配图可以被表示为一个邻接矩阵 { A k } k = 1 K \left\{A_k\right\}_{k=1}^K {Ak}k=1K 的集合,其中 K = ∣ T e ∣ K=\left|\mathcal{T}^e\right| K=Te A k ∈ R N × N A_k \in \mathbf{R}^{N \times N} AkRN×N 是一个邻接矩阵,当 A k [ i , j ] A_k[i, j] Ak[i,j] 非零时,表示节点 j j j到节点 i i i间存在第 k k k中类型的边。邻接矩阵的集合可以写为 A ∈ R N × N × K \mathbb{A} \in \mathbf{R}^{N \times N \times K} ARN×N×K X ∈ R N × D X \in \mathbf{R}^{N \times D} XRN×D 表示节点的 D D D维特征组成的矩阵。

Meta-Path:异配图 G G G上的连接异配边的路径 p p p,如 v 1 ⟶ t 1 v 2 ⟶ t 2 … ⟶ t l v l + 1 v_1 \stackrel{t_1}{\longrightarrow} v_2 \stackrel{t_2}{\longrightarrow} \ldots \stackrel{t_l}{\longrightarrow} v_{l+1} v1t1v2t2tlvl+1,其中 t l ∈ T e t_l \in \mathcal{T}^{e} tlTe表示meta-path的第 l l l类边。Meta-path定义了节点 v 1 v_1 v1 v l + 1 v_{l+1} vl+1复合关系 R = t 1 ∘ t 2 … ∘ t l R=t_1 \circ t_2 \ldots \circ t_l R=t1t2tl,其中 R 1 ∘ R 2 R_1 \circ R_2 R1R2表示关系由 R 1 R_1 R1 R 2 R_2 R2组成。给定复合关系 R R R或边类型序列 ( t 1 , t 2 , … , t l ) \left(t_1, t_2, \ldots, t_l\right) (t1,t2,,tl),meta-path P P P对应的邻接矩阵 A P A_{\mathcal{P}} AP可以通过邻接矩阵乘法来获取:
A P = A t l … A t 2 A t 1 A_{\mathcal{P}}=A_{t_l} \ldots A_{t_2} A_{t_1} AP=AtlAt2At1
meta-path的概念包含多跳连接,作者的框架中新图结构由邻接矩阵表示。


Graph Convolutional Network (GCN):假设 H ( l ) H^{(l)} H(l)为GCN第 l l l层的特征表示,则GCN的传播规则为:
H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) H^{(l+1)}=\sigma\left(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}\right) H(l+1)=σ(D~21A~D~21H(l)W(l))
其中 A ~ = A + I ∈ R N × N \tilde{A}=A+I \in \mathbf{R}^{N \times N} A~=A+IRN×N是添加了自环的邻接矩阵, D ~ \tilde{D} D~是与之对应的度矩阵。在GCN中图上的卷积操作由图结构来确定(图结构不可学习),只有节点的层特征表示包含一个线性变换 H ( l ) W ( l ) H^{(l)} W^{(l)} H(l)W(l)。在作者的框架中,图结构是可以学习的,这使得可以从不同的卷积中获益。

对于有向图,作者采用入度对角矩阵来对 A ~ \tilde{A} A~进行正则化,即 D ~ − 1 2 A ~ \tilde{D}^{-\frac{1}{2}} \tilde{A} D~21A~

三.Meta-Path的生成

先前的工作中meta-paths需要人工构造,而Graph Transformer Networks却可以通过给定的数据和任务来学习meta-paths,然后对学到的meta-paths进行图卷积。

Graph Transformer (GT)层中meta-path的生成由两个组件。首先GT层从候选邻接矩阵 A \mathbb{A} A中软选择两个图结构 Q 1 Q_1 Q1 Q 2 Q_2 Q2,然后复合两种关系来学得一个新图结构( Q 1 Q_1 Q1 Q 2 Q_2 Q2间的矩阵乘法)。

软选择的具体过程:通过 1 × 1 1 \times 1 1×1卷积获取候选邻接矩阵的加权和,正式计算公式为:
Q = F ( A ; W ϕ ) = ϕ ( A ; softmax ⁡ ( W ϕ ) ) Q=F\left(\mathbb{A} ; W_\phi\right)=\phi\left(\mathbb{A} ; \operatorname{softmax}\left(W_\phi\right)\right) Q=F(A;Wϕ)=ϕ(A;softmax(Wϕ))
其中 ϕ \phi ϕ是卷积层, W ϕ ∈ R 1 × 1 × K W_\phi \in \mathbf{R}^{1 \times 1 \times K} WϕR1×1×K ϕ \phi ϕ的参数。加上 softmax \text{softmax} softmax能获取类似channel attention的效果。

另外,在生成meta-path邻接矩阵时为了数值稳定,作者还使用度矩阵来对其进行正则化,即 A ( l ) = D − 1 Q 1 Q 2 A^{(l)}=D^{-1} Q_1 Q_2 A(l)=D1Q1Q2

在这里插入图片描述


理论证明:GTN是否可以学到关于边类型和路径长度的任意meta-path

任意长度为 l l l的元路径对应的邻接矩阵 A P A_P AP可以通过如下公式计算得到:
A P = ( ∑ t 1 ∈ T e α t 1 ( 1 ) A t 1 ) ( ∑ t 2 ∈ T e α t 2 ( 2 ) A t 2 ) ⋯ ( ∑ t l ∈ T e α t l ( l ) A t l ) A_P=\left(\sum_{t_1 \in \mathcal{T}^e} \alpha_{t_1}^{(1)} A_{t_1}\right)\left(\sum_{t_2 \in \mathcal{T}^e} \alpha_{t_2}^{(2)} A_{t_2}\right) \cdots\left(\sum_{t_l \in \mathcal{T}^e} \alpha_{t_l}^{(l)} A_{t_l}\right) AP=(t1Teαt1(1)At1)(t2Teαt2(2)At2)(tlTeαtl(l)Atl)
其中 α t l ( l ) \alpha_{t_l}^{(l)} αtl(l)表示第 l l l个GT层中边类型 t l t_l tl对应的权重, A P A_P AP可以看作所有长度为 l l l的元路径邻接矩阵的加权和,因此堆叠 l l l个GT层能够学习任意长度为 l l l的meta-path结构(参见图2)。

这也存在一个问题,添加GT层会增加meta-path的长度,这将使得原始边被忽略。在一些应用中,长meta-path和短meta-path都很重要,为了学习短和长元路径(包括原始边),作者在候选邻接矩阵中添加了单位阵。该trick使得当堆叠 l l l个GT层时,允许GTN学习任意长度的meta-path,最长可达 l + 1 l+1 l+1

四.Graph Transformer Networks

同普通的图像卷积类似,可以使用多个卷积核(作者设置为 C C C)来同时考虑多种类型的meta-path,然后生成一个meta-paths集,中间邻接矩阵 Q 1 Q_1 Q1 Q 2 Q_2 Q2则变成邻接张量 Q 1 \mathbb{Q}_1 Q1 Q 2 ∈ R N × N × C \mathbb{Q}_2 \in \mathbf{R}^{N \times N \times C} Q2RN×N×C(参见图2)。通过多个不同的图结构学习不同的节点表示是有益的。作者在堆叠了 l l l个GT层之后,在meta-path张量的每个channel上应用相同的GCN,然后将多个节点特征进行拼接:
Z = ∥ i = 1 C σ ( D ~ i − 1 A ~ i ( l ) X W ) Z=\|_{i=1}^C \sigma\left(\tilde{D}_i^{-1} \tilde{A}_i^{(l)} X W\right) Z=i=1Cσ(D~i1A~i(l)XW)
从上式可知, Z Z Z包含了来自 C C C个不同meta-path图的节点表示,然后将其应用于下游的分类任务。

在这里插入图片描述

五.实验部分

作者采用三个异配数据集来进行实验,数据集的统计特征如下表所示:

在这里插入图片描述


实验一:节点分类实验

在这里插入图片描述

结论:

  • 从GTN的性能比所有的baseline要好可以看出,GTN学得的新图结构包含用于学习更有效节点表示的有用meta-path。此外,与baseline中具有常数的简单meta-path邻接矩阵相比,GTN能为边分配可变权重。
  • 在表2中 GTN − I \text{GTN}_{-I} GTNI表示候选邻接矩阵中没有 I I I,从结果可以看出其性能比包含 I I I的要差,证明了添加单位阵的有效性。

实验二:GTN的解释实验

作者经过公式推导得出,一条meta-path t l , t l − 1 , . . . , t 0 t_l, t_{l-1},...,t_0 tl,tl1,...,t0的贡献度能通过 ∏ i = 0 l α t i ( i ) \prod_{i=0}^{l}\alpha_{t_i}^{(i)} i=0lαti(i)​进行获取,它表明了meta-path在预测任务上的重要程度。表3展示了文献中广泛使用的预定义meta-paths,以及GTN学习的具有高注意力分数的meta-paths。

在这里插入图片描述

结论:

  • 从表3可以看出,通过领域知识预定义的meta-paths与GTN中学得的排名靠前的meta-paths一致。这表明GTN能学习任务meta-path的重要性。此外,GTN还挖掘了不包含在预定义meta-path集的meta-paths。
  • 图3展示了每个GT层的邻接矩阵的注意力分数,(a)为DBLP,(b)为IMDB。与DBLP相比,单位阵在IMDB中有更高的注意力分数。通过给单位阵分配更高的注意力分数,GTN试图坚持更短的meta-paths,即使在更深的层。这表明GTN更根据数据集自适应学习最有效的meta-path的能力。

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

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

相关文章

运行Spring Boot项目时[ java: 错误: 不支持发行版本 17 ]

项目场景: 使用IDEA的Spring Initializr构建的Spring boot项目在构建完成后运行出错 问题描述: 用Spring Initializr创建了Spring Boot 项目后,运行时报错: “错误:java: 错误: 不支持发行版本 17”根据错误信息得知&#xff…

Vue学习笔记(5. 计算属性,监视器(侦听器))

1. 计算属性(computed) (1) get方式 初期显示 改变值后(hello -> hello1)计算属性allStr跟随变更 (2) get set方式 页面初期显示 改变值(hello -> hello1)计算属性的get会监控到变更,使…

国产SSD、内存卷哭国外大厂,三星宣布减产涨价在路上了

PC 圈有一句话是这么说的:论价格屠夫还得看国产品牌! 可不是嘛,国产长鑫、长江算是彻底将全球存储芯片市场搅局者这一「骂名」坐实了! 不说特别早期,前几年吧,普通单条 8G DDR4 内存都能卖到六七百元&…

C++ 红黑树

1.红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路 径会比其他路径长出俩倍,因…

D. Many Perfect Squares

题目链接:Problem - D - Codeforces 题意:给你一个数组,大小不超过50个。 问你让他们全部加上一个x,构造出来最多能够有多少个完全平方数。 思路: 先对数组排个序,首先它最少一定是有一个的&#xff0c…

Git配置SSH步骤

一、git 配置 (1)打开 git 命令窗口 (2)配置用户名(填自己的姓名) git config --global user.name “linjiaxiaozhu” (3)配置用户邮箱(填自己的邮箱) git…

电脑录屏的视频保存在哪里?您可以这样查看

案例:电脑录屏之后保存到哪里去了? “前几天,根据网络上的录屏教程试着录制了一下我的电脑屏幕,录制完成之后却找不到录制的视频。有没有小伙伴知道电脑录屏的视频保存在哪里?怎样才能快速找到?” 在现代…

pandas数据聚合和重组

介绍pandas数据聚合和重组的相关知识,仅供参考。 目录 1GroupBy技术 1.1简介 1.2对分组进行迭代 1.3选取一个或一组列 1.4通过字典或Series进行分组 1.5利用函数进行分组 2数据聚合 2.1简介 2.1面向列的多函数应用 2.2以‘无索引’的方式返回聚合数据 1G…

Faster R-CNN

目录 1. Fast R-CNN的不足 2. Faster R-CNN 3. RPN(Region Proposal Network) 3.1 anchor 3.2 RPN 网络 3.3 RPN 网络的损失 4. Faster R-CNN 损失 5. Faster R-CNN 训练 6. 对比 1. Fast R-CNN的不足 Fast R-CNN 的算法流程 Fast R-CNN网络运行速度慢的最主要原因&a…

浅谈根号分治与分块

文章目录1. 根号分治哈希冲突2. 线性分块引入教主的魔法[CQOI2011] 动态逆序对[国家集训队] 排队[HNOI2010] 弹飞绵羊蒲公英1. 根号分治 哈希冲突 题目1 nnn 个数,mmm 次操作。操作 1 为修改某一个数的值,操作 2 为查询所有满足下标模 xxx 等于 yyy 的…

一、基础算法6:双指针算法 模板题+算法模板(最长连续不重复子序列,数组元素的目标和,判断子序列)

文章目录算法模板双指针算法模板最长连续不重复子序列模板暴力法双指针算法数组元素的目标和模板判断子序列模板模板题最长连续不重复子序列原题链接题目题解数组元素的目标和原题链接题目题解判断子序列原题链接题目题解算法模板 双指针算法模板 for (int i 0, j 0; i <…

ForkJoinPool + RecursiveTask 来计算数组元素和

ForkJoinPool 是什么&#xff1f; ForkJoinPool 是一个 Java 并发编程框架&#xff0c;用于解决分治算法中的任务拆分、执行、合并等问题&#xff0c;是 Java 7 引入的一个新的工具类。 ForkJoinPool 的基本思想是将一个大任务划分成若干个小任务&#xff0c;然后并行执行这些…

SQL AVG函数

SQL AVG函数 SQL AVG函数简介 SQL AVG函数是一个聚合函数&#xff0c;用于计算集合的平均值。 以下说明了SQL AVG函数的语法&#xff1a; AVG([ALL|DISTINCT] expression)如果使用ALL关键字&#xff0c;AVG函数将获取计算中的所有值。 默认情况下&#xff0c;无论是否指定&a…

python+vue 图书馆读者行为分析系统-书友会

本系统主要包括以下功能模块&#xff1a;个人中心、用户管理、图书信息管理、图书分类管理、热门图书管理、书友会管理、报名信息管理、行为分析管理、在线论坛、系统管理等模块&#xff0c;通过这些模块的实现能够基本满足日常图书馆读者行为分析系统的操作。结合相关设计模式…

生成式 AI 与强人工智能:探索 AI 技术的未来

AIGC&#x1f388; AIGC&#xff08;AI Generated Content&#xff09; 即人工智能生成内容&#xff0c;又称“生成式 AI”&#xff08;Generative AI&#xff09;&#xff0c;被认为是继专业生产内容&#xff08;PGC&#xff09;、用户生产内容&#xff08;UGC&#xff09;之…

rust中的集合容器(切片和哈希)与错误处理

String、数组[T:n]、列表Vec\哈希表HashMap<K,V>等。 切片slice&#xff1b; 循环缓冲区 VecDeque、双向列表 LinkedList等。(这是指双向链表吗&#xff1f;) 这些集合容器的共性&#xff1a; 可以遍历 可以进行 map-reduce操作。 可以从一种类型转换成另一种类型。 主要…

VUE使用el-ui的form表单输入框批量搜索<VUE专栏三>

针对form表单的输入框单号批量查询&#xff0c;这里用换行符进行分割&#xff0c;注意v-model不要使用.trim 前端代码&#xff1a; <el-form-item label"SKU编码:" prop"prodNumbers"><el-input type"textarea" :rows"4" pla…

阿里数学竞赛决赛名单公布:北大人数是清华4倍 | 最小仅14岁

4月10日消息&#xff0c;第二届阿里巴巴全球数学竞赛决赛入围名单公布&#xff0c;全球12个国家516位选手晋级&#xff0c;晋级率仅有1&#xff05;。 根据参赛者填报信息&#xff0c;晋级选手80&#xff05;以上是90后&#xff0c;年纪最小的只有14岁。 入围人数最高的前20所高…

【Linux】git命令(基础,新手)

文章目录1.查看当前git版本信息2.安装git3.将远端仓库克隆到本地4.三板斧第一招&#xff1a;git add5.三板斧第二招&#xff1a;git commit6.三板斧第三招&#xff1a;git push7.对仓库文件进行更改8.查看使用提交日志9.查看本地与远端的同步状态10.从远端仓库拉取最新版本文件…

ChatGPT Plus价格太贵,可以约上三五知己一起上车体验一下,这个项目就能帮到你

❝ 对于想体验ChatGPT PLus的小伙伴&#xff0c;可能觉得自己一个人一个月花费20美元&#xff0c;相对于人民币每月137多&#xff0c;确实是一个不少的开支&#xff0c;如果&#xff0c;几个人合作一个账号&#xff0c;这样负担就减少了。刚好&#xff0c;最近逛github发现刚好…