当前位置: 首页 > news >正文

七冶建设集团网站wordpress图片主题演示

七冶建设集团网站,wordpress图片主题演示,定制网站开发接私活,qq刷赞网站推广软件图神经网络实战——分层自注意力网络 0. 前言1. 分层自注意力网络1.1 模型架构1.2 节点级注意力1.3 语义级注意力1.4 预测模块 2. 构建分层自注意力网络相关链接 0. 前言 在异构图数据集上#xff0c;异构图注意力网络的测试准确率为 78.39%#xff0c;比之同构版本有了较大… 图神经网络实战——分层自注意力网络 0. 前言1. 分层自注意力网络1.1 模型架构1.2 节点级注意力1.3 语义级注意力1.4 预测模块 2. 构建分层自注意力网络相关链接 0. 前言 在异构图数据集上异构图注意力网络的测试准确率为 78.39%比之同构版本有了较大提高但我们还能进一步提高准确率。在本节中我们将学习一种专门用于处理异构图的图神经网络架构分层自注意力网络 (hierarchical self-attention network, HAN)。我们将介绍其工作原理以便更好地理解该架构与经典图注意力网络 (Graph Attention NetworksGAT) 之间的区别。最后使用 PyTorch Geometric 实现此架构并将结果与其它 GNN 模型进行比较。 1. 分层自注意力网络 1.1 模型架构 在本节中我们将实现一个专为处理异构图而设计的图神经网络 (Graph Neural Networks, GNN) 模型——分层自注意力网络 (hierarchical self-attention network, HAN)。该架构由 Liu 等人于 2021 年提出。HAN 在两个不同层次上使用自注意力 节点级注意力 (Node-level attention)了解给定元路径中相邻节点的重要性语义级注意力 (Semantic-level attention)了解每个元路径的重要性。这是 HAN 的主要特点它允许我们自动为给定任务选择最佳元路径。例如在某些任务(如预测玩家人数)中元路径 game-user-game 可能比 game-dev-game 更合适 接下来我们将详细介绍 HAN 的三个主要组件——节点级注意力 (Node-level attention)、语义级注意力 (Semantic-level attention) 和预测模块 (prediction module)HAN 架构如下所示。 ) 1.2 节点级注意力 与图注意力网络 (Graph Attention NetworksGAT) 一样第一步将节点投影到每个元路径的统一特征空间中。然后用第二个权重矩阵计算同一元路径中的节点对(两个投影节点的连接)的权重并对这一结果应用非线性函数然后用 softmax 函数对其进行归一化处理。 j j j 节点对 i i i 节点的归一化注意力分数(重要性)计算如下 α i j Φ exp ⁡ ( σ ( a Φ T [ W Φ h i ∣ ∣ W Φ h j ] ) ) ∑ k ∈ N i Φ exp ⁡ ( σ ( a Φ T [ W Φ h i ∣ ∣ W Φ h k ] ) ) \alpha_{ij}^\Phi \frac {\exp (\sigma(a_{\Phi}^T[W_{\Phi}h_i||W_{\Phi}h_j]))}{\sum _{k\in \mathcal N_i^{\Phi}}\exp(\sigma(a_{\Phi}^T[W_{\Phi}h_i||W_{\Phi}h_k]))} αijΦ​∑k∈NiΦ​​exp(σ(aΦT​[WΦ​hi​∣∣WΦ​hk​]))exp(σ(aΦT​[WΦ​hi​∣∣WΦ​hj​]))​ 其中 h i h_i hi​ 表示 i i i 节点的特征 W Φ W_{\Phi} WΦ​ 是 Φ \Phi Φ 元路径的共享权重矩阵 a Φ a_{\Phi} aΦ​ 是 Φ \Phi Φ 元路径的注意力权重矩阵 σ σ σ 是非线性激活函数(如 LeakyReLU) N i Φ \mathcal N_i^{\Phi} NiΦ​ 是节点(包括其自身)在 Φ \Phi Φ 元路径中的邻居集。使用多头注意力获得最终的嵌入 Z i ∣ ∣ k 1 K σ ( ∑ k ∈ N i α i j Φ ⋅ W Φ h j ) Z_i||_{k1}^K\sigma(\sum _{k\in \mathcal N_i}\alpha _{ij}^{\Phi}\cdot W_{\Phi}h_j) Zi​∣∣k1K​σ(k∈Ni​∑​αijΦ​⋅WΦ​hj​) 1.3 语义级注意力 对于语义级注意力我们对每个元路径的注意力得分(表示为 β Φ 1 , β Φ 2 , . . . , β Φ p β_{\Phi _1}, β_{\Phi _2}, ... , β_{\Phi _p} βΦ1​​,βΦ2​​,...,βΦp​​ )重复类似的过程。对于给定元路径中的每个节点嵌入(表示为 Z Φ p Z_{\Phi _p} ZΦp​​)都将其馈送到一个多层感知机 (Multilayer Perceptron, MLP) 中应用非线性变换。将这一结果与新的注意力向量 q q q 进行比较作为相似性度量。我们将这一结果平均化以计算给定元路径的重要性 w Φ p 1 ∣ V ∣ ∑ i ∈ V q T ⋅ tanh ⁡ ( W ⋅ z i Φ p b ) w_{\Phi_p}\frac 1{|V|}\sum_{i\in V}q^T\cdot \tanh(W\cdot z_i^{\Phi_p}b) wΦp​​∣V∣1​i∈V∑​qT⋅tanh(W⋅ziΦp​​b) 其中 W W W (MLP 的权重矩阵)、 b b b (MLP 的偏置)和 q q q (语义级注意力向量)在元路径中是共享的。 必须对这一结果进行归一化处理以比较不同的语义级注意力得分。使用 softmax 函数来获得最终权重 β Φ p exp ⁡ ( w Φ p ) ∑ k 1 P exp ⁡ ( w Φ k ) \beta _{\Phi_p}\frac {\exp(w_{\Phi_p})}{\sum_{k1}^P\exp(w_{\Phi_k})} βΦp​​∑k1P​exp(wΦk​​)exp(wΦp​​)​ 将节点级注意力和语义级注意力结合起来得到最终嵌入 Z Z Z Z ∑ p 1 P β Φ p ⋅ Z Φ p Z\sum_{p1}^P\beta_{\Phi_p}\cdot Z_{\Phi_p} Zp1∑P​βΦp​​⋅ZΦp​​ 1.4 预测模块 最后一层(如多层感知机 (Multilayer Perceptron, MLP) )用于针对特定的下游任务(如节点分类或链接预测)对模型进行微调。 2. 构建分层自注意力网络 接下来使用 PyTorch Geometric 在 DBLP 数据集上实现分层自注意力网络 (hierarchical self-attention network, HAN) 架构。 (1) 首先导入 HAN 层 import torch import torch.nn.functional as F from torch import nnimport torch_geometric.transforms as T from torch_geometric.datasets import DBLP from torch_geometric.nn import HANConv, Linear(2) 加载 DBLP 数据集并为会议节点引入虚拟特征 dataset DBLP(.) data dataset[0] print(data)data[conference].x torch.zeros(20, 1)(3) 使用 HANConv 的 HAN 卷积层和用于最终分类的线性层创建 HAN 类 class HAN(nn.Module):def __init__(self, dim_in, dim_out, dim_h128, heads8):super().__init__()self.han HANConv(dim_in, dim_h, headsheads, dropout0.6, metadatadata.metadata())self.linear nn.Linear(dim_h, dim_out)(4) 在 forward() 方法中我们必须指定需要关注作者 def forward(self, x_dict, edge_index_dict):out self.han(x_dict, edge_index_dict)out self.linear(out[author])return out(5) 使用懒初始化 (dim_in-1) 来初始化模型因此 PyTorch Geometric 会自动计算每个节点类型的输入大小 model HAN(dim_in-1, dim_out4)(6) 实例化 Adam 优化器并尝试将数据和模型传输到 GPU optimizer torch.optim.Adam(model.parameters(), lr0.001, weight_decay0.001) device torch.device(cuda if torch.cuda.is_available() else cpu) data, model data.to(device), model.to(device)(7) 实现 test() 函数计算分类任务的准确率 torch.no_grad() def test(mask):model.eval()pred model(data.x_dict, data.edge_index_dict).argmax(dim-1)acc (pred[mask] data[author].y[mask]).sum() / mask.sum()return float(acc)(8) 对模型进行 101 个 epoch 的训练与同构图神经网络 (Graph Neural Networks, GNN) 的训练循环唯一不同的是需要指定关注的作者节点类型 for epoch in range(101):model.train()optimizer.zero_grad()out model(data.x_dict, data.edge_index_dict)mask data[author].train_maskloss F.cross_entropy(out[mask], data[author].y[mask])loss.backward()optimizer.step()if epoch % 20 0:train_acc test(data[author].train_mask)val_acc test(data[author].val_mask)print(fEpoch: {epoch:3} | Train Loss: {loss:.4f} | Train Acc: {train_acc*100:.2f}% | Val Acc: {val_acc*100:.2f}%)训练过程如下 (9) 最后在测试集上测试训练后的模型 test_acc test(data[author].test_mask) print(fTest accuracy: {test_acc*100:.2f}%)# Test accuracy: 81.58%HAN 的测试准确率为 81.58%高于异构图注意力网络 (78.39%)和经典图注意力网络 (Graph Attention NetworksGAT) (73.29%)。这说明了构建良好的表示方法以聚合不同类型节点和关系的重要性。异构图的技术在很大程度上取决于具体应用但尝试不同的模型对于构建高性能应能具有重要作用。 相关链接 图神经网络实战1——图神经网络(Graph Neural Networks, GNN)基础 图神经网络实战6——使用PyTorch构建图神经网络 图神经网络实战7——图卷积网络(Graph Convolutional Network, GCN)详解与实现 图神经网络实战8——图注意力网络(Graph Attention Networks, GAT) 图神经网络实战12——图同构网络(Graph Isomorphism Network, GIN) 图神经网络实战18——消息传播神经网络
http://www.tj-hxxt.cn/news/140743.html

相关文章:

  • 六安做网站公司做网站需要哪些技能
  • 软件开发 网站建设seo做的比较好的网站
  • 做网站可以用php聚牛网站建设公司
  • 网站设计公司有用吗wordpress更改目录
  • php做原生直播网站网页网站的制作过程
  • 徐老师在那个网站做发视频下载辽宁建设厅官网
  • 天河网站建设公司排名运城网站制作路90
  • 长沙网站开发长沙网站建设外网资源
  • 建设部网站法律法规天津市做公司网站的公司
  • 网站建设方案书0网站建设的流程该怎么确定
  • 建设商务公司网站茂名网站建设价格
  • 外贸建英文网站的重要性做淘宝网站目的是什么
  • 网站关键词优化难不难个人与公司网站备案
  • 青岛无间设计公司网站深圳建设工程交易网站宝安
  • asp做网站主要技术网页制作设计培训
  • 外贸网站模板有什么用专业建设网站哪家好
  • 微网站建设哪家好深圳微网站开发
  • 网站维护的要求包括哪些网络工程就业前景好吗
  • 我的世界服务器如何做充钱网站如何网站建设平台
  • 安徽省住房与城乡建设厅网站自己做设计图的app
  • 购物网站页面设计步骤网站开发策划个人简历
  • 网站建设的前端开发和后端开发企业网站的步骤
  • 网站建设报道稿荆州网站推广怎么做
  • 培训教育网站建设企业为什么要验资
  • 专门做音箱的网站自助免费网站建设平台
  • 在哪个网站做外快设计江西省建设网站
  • 深圳网站建设维护珠海网站开发公司哪家好
  • 泉州网站制作专业友情链接的作用大不大
  • 影视网站建设平台网站建设费用属于什么科目
  • 怎样用代码做网站临清网站制作