【论文阅读】MAGNN: Metapath Aggregated Graph Neural Network for Heterogeneous Graph Embedding

本文介绍了一种新的模型MAGNN,针对异质图嵌入问题,通过节点内容转换、元路径内部聚合和元路径间聚合,有效捕捉结构和语义信息。实验结果表明,MAGNN在节点分类、聚类和链路预测任务上表现出色,优于传统方法。

摘要

异质图嵌入是将异质图丰富的结构和语义信息嵌入到低维节点表示中。针对此问题,本文提出了一种新的模型MAGNN。具体来说,MAGNN使用了三个主要组件:

  • 用于封装输入节点属性的节点内容转换
  • 用于合并中间语义节点的元路径内部聚合
  • 用于合并来自多个元路径的消息的元路径间聚合

在三个真实的异质图数据集上进行了大量的节点分类、节点聚类和链路预测实验表明,MAGNN有更准确的预测结果。

1 引言

现有的模型通常是在异质图中定义多个元路径,以捕获复合关系(语义)并指导邻域选择。虽然这些基于元路径的嵌入方法在节点分类和链路预测等各种任务上优于传统的网络嵌入方法,但它们仍然存在以下至少一个限制:

  • 忽略节点内容特征,因此很少在具有丰富节点内容特征的异质图上表现良好(e.g.,metapath2vec,ESim,HIN2vec,HERec)。
  • 只考虑两个端节点,从而丢弃了元路径上的所有中间节点,从而导致信息丢失(e.g.,HERec,HAN)。
  • 只依赖于单个元路径,因此需要人工选择元路径,丢失了来自其他元路径的部分信息,导致性能不佳(e.g.,metapath2vec)。

为了解决以上问题,本文提出了一种新的用于异质图嵌入的元路径聚合图神经网络(MAGNN)。

MAGNN由三个部分组成:

  1. 节点内容转换
  2. 元路径内部聚合
  3. 元路径间的聚合

具体来说,MAGNN首先利用特定类型的线性变换,将不同类型节点的可能不同维度的属性信息投影到相同的潜在向量空间。接下来,对每个元路径应用具有注意力机制的元路径内部聚合。在元路径内部聚合过程中,每个目标节点都会从连接该节点与其基于元路径的邻居的元路径实例中提取和组合信息。通过这种方式,MAGNN从邻居节点和两者之间的元路径上下文中捕获异质图的结构和语义信息。在元内聚合之后,MAGNN进一步利用注意力机制进行元路径间的聚合,将从多条元路径获得的潜在向量融合到最终的节点嵌入中。

贡献:

  • 提出了一种新的用于异质图嵌入的元路径聚合图神经网络。
  • 设计了几个候选编码器函数,用于从元路径实例中提取信息,其中一个基于复杂空间中的关系旋转思想。
  • 在IMDb和DBLP数据集上进行了大量的节点分类和节点聚类的实验,并且在Last.fm数据集上进行了链路预测,以评估提出的模型的性能。实验表明,MAGNN学习到的节点嵌入始终优于其他最先进的 BaseLine 生成的节点嵌入。

2 准备工作

本节给出了与异质图相关的一些重要术语的正式定义。相关定义的图示见图1。

异质图(Heterogeneous Graph):
G = ( V , E ) G=(V,E) G=(VE),包含节点集 V V V和连接集 E E E。异质图还包含一个节点类型映射函数 ϕ : V → A ϕ:V→A ϕVA和一个连接类型映射函数 ψ : E → R ψ:E→R ψER A A A R R R表示预定义的对象类型和连接类型的集合,其中 ∣ A ∣ + ∣ R ∣ > 2 |A|+|R|>2 A+R>2

元路径(Metapath):
元路径 P P P定义为   A 1   R 1 →   A 2   R 2 →   . . .   R l →   A l + 1 \text{ }A_1\text{ }\underrightarrow{R_1}\text{ }A_2\text{ }\underrightarrow{R_2}\text{ }...\text{ }\underrightarrow{R_l}\text{ }A_{l+1}  A1  R1 A2  R2 ...  Rl Al+1(缩写为 A 1 A 2 ⋅ ⋅ A l + 1 A_1A_2··A_{l+1} A1A2Al+1),它描述了对象 A 1 A_1 A1 A l + 1 A_{l+1} Al+1之间的复合关系 R = R 1 ◦ R 2 ⋅ ⋅ R l R=R_1◦R_2··R_l R=R1R2Rl,其中 ◦ ◦ 表示关系上的组合算子。

元路径实例(Metapath Instance):
给定异质图的元路径 P P P P P P的元路径实例 p p p被定义为图中遵循 P P P定义的模式的节点序列。

基于元路径的邻居(Metapath-based Neighbor):
给定异质图的元路径 P P P,节点 v v v的基于元路径的邻居 N v P N_v^P NvP被定义为通过 P P P的元路径实例与节点 v v v连接的节点集。由两个不同的元路径实例与 v v v相连的同一个邻居节点,被视为 N v P N_v^P NvP中的两个节点。注意,如果 P P P是对称的, N v P N_v^P NvP包括 v v v本身。

例如,考虑到图1中的元路径UATA,艺术家Queen是用户Bob的基于元路径的邻居。 这两个节点通过元路径实例Bob-Beatles-Rock-Queen连接,Beatles和Rock为这个元路径实例的中间节点。

基于元路径的图(Metapath-based Graph):
给定异质图 G G G的元路径 P P P,基于元路径的图 G P G^P GP是由图 G G G中所有基于元路径

要复现论文《Heterogeneous Graph Representation Learning with Relation Awareness》,可以从以下几个方面着手: ### 理解论文核心思想 该论文可能聚焦于异构图中关系感知的顶点表示学习。现有方法在处理异构图时存在局限,如GNN用于同构图设计,部分专门GNN仅关注顶点表示而未研究关系语义建模,关系属性方法在处理不同类型顶点特征上较简单。此论文或许提出了新的解决办法,像基于注意力机制聚合实体特征并分配权重以捕捉语义信息 [^2][^3]。 ### 数据准备 - **收集数据集**:找到论文中使用的异构图数据集,若没有公开数据集,需自行构建符合论文描述的异构图数据,确保包含不同类型的节点和关系。 - **数据预处理**:对数据进行清洗、归一化等操作,处理缺失值和异常值,将数据转换为适合模型输入的格式。 ### 模型实现 - **代码框架选择**:可使用常见的深度学习框架,如PyTorch或TensorFlow,利用框架提供的工具实现模型结构。 - **构建模型架构**:依据论文中提出的模型架构,实现关系感知的顶点表示学习模块。可能涉及到聚合实体相邻特征、学习不同关系路径重要性以及特征聚合等步骤。例如,若使用注意力机制,可参考以下代码示例(以PyTorch为例): ```python import torch import torch.nn as nn class RelationAttention(nn.Module): def __init__(self, input_dim, hidden_dim): super(RelationAttention, self).__init__() self.linear = nn.Linear(input_dim, hidden_dim) self.attention = nn.Linear(hidden_dim, 1) self.softmax = nn.Softmax(dim=1) def forward(self, features): hidden = torch.tanh(self.linear(features)) attention_scores = self.attention(hidden) attention_weights = self.softmax(attention_scores) weighted_features = attention_weights * features aggregated_features = torch.sum(weighted_features, dim=1) return aggregated_features ``` ### 模型训练 - **定义损失函数**:根据论文中的目标,选择合适的损失函数,如交叉熵损失、均方误差损失等。 - **选择优化器**:可使用Adam、SGD等优化器来更新模型参数。 - **训练过程**:将数据集划分为训练集、验证集和测试集,在训练集上进行模型训练,在验证集上进行模型评估和调优,最后在测试集上评估模型性能。 ### 结果评估 - **评估指标选择**:使用论文中提到的评估指标,如准确率、F1值、均方误差等,对模型性能进行评估。 - **结果分析**:分析模型在不同指标下的表现,与论文中的结果进行对比,若存在差异,需检查代码实现、数据处理等环节是否存在问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值