首页 > 其他分享 >论文解读(UGfromer)《Universal Graph Transformer Self-Attention Networks》

论文解读(UGfromer)《Universal Graph Transformer Self-Attention Networks》

时间:2024-04-11 21:11:43浏览次数:26  
标签:layers Transformer torch Graph self Attention Tr encoder num

Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ]

论文信息

论文标题:Universal Graph Transformer Self-Attention Networks
论文作者:
论文来源:2022 aRxiv
论文地址:download
论文代码:download
视屏讲解:click

1-摘要

  我们引入了一个基于变压器的GNN模型,称为UGfromer,来学习图表示。特别是,我们提出了两个UGfromer变体,其中第一个变体(2019年9月公布)是在每个输入节点的一组采样邻居上利用变压器,而第二个变体(2021年5月公布)是利用所有输入节点上的变压器。实验结果表明,第一个UGfroster变体在归纳设置和无监督转换设置的基准数据集上达到了最先进的精度;第二个UGfroster变体获得了最先进的归纳文本分类精度。

2-介绍

  贡献:

    • 我们提出了一个基于变压器的GNN模型,称为UGfroster,来学习图表示。特别地,我们考虑了两个模型变体:(i)在每个输入节点的一组采样邻居上利用转换器,以及(ii)在所有输入节点上利用转换器。
    • 无监督学习在工业和学术应用中都是必不可少的,在那里扩展无监督GNN模型更适合解决类标签的有限可用性。因此,我们提出了一种无监督的转换学习方法来训练gnn。
    • 实验结果表明,第一个UGfroster变体在社会网络和生物信息学数据集上获得了最先进的归纳设置和无监督转换设置的图分类的准确性;第二个UGfroster变体产生了最先进的准确性在基准数据集上的归纳文本分类

3-方法

模型框架

  

  

代码:

import math
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.nn import TransformerEncoder, TransformerEncoderLayer
from torch.nn import Transformer

class TransformerU2GNN(nn.Module):
    def __init__(self,
                 feature_dim_size,
                 ff_hidden_size,
                 num_classes,
                 num_self_att_layers,
                 dropout,
                 num_encoder_layers):
        super(TransformerU2GNN, self).__init__()
        self.feature_dim_size = feature_dim_size  # 19
        self.ff_hidden_size = ff_hidden_size  #1024
        self.num_classes = num_classes  # 图类别数=2
        self.num_self_att_layers = num_self_att_layers #Each U2GNN layer consists of a number of self-attention layers
        self.num_encoder_layers = num_encoder_layers

        # Transformer 中的 Encoder 层
        self.transformer_encoder_layers = torch.nn.ModuleList()
        for _ in range(self.num_encoder_layers):
            encoder_layers = TransformerEncoderLayer(d_model=self.feature_dim_size, nhead=1, dim_feedforward=self.ff_hidden_size, dropout=0.5)
            self.transformer_encoder_layers.append(TransformerEncoder(encoder_layers, self.num_self_att_layers))

        # Linear function
        self.predictions = torch.nn.ModuleList()
        self.dropouts = torch.nn.ModuleList()
        for _ in range(self.num_encoder_layers):
            self.predictions.append(nn.Linear(self.feature_dim_size, self.num_classes))
            self.dropouts.append(nn.Dropout(dropout))

    def forward(self, input_x, graph_pool, x_feature):
        prediction_scores = 0  #torch.Size([31, 17, 19])
        input_Tr = F.embedding(input_x, x_feature)  #torch.Size([31, 17, 19])
        for layer_idx in range(self.num_encoder_layers):
            output_Tr = self.transformer_encoder_layers[layer_idx](input_Tr)  #torch.Size([31, 17, 19])
            output_Tr = torch.split(output_Tr, split_size_or_sections=1, dim=1)   #tuple(17)
            output_Tr = output_Tr[0]  #torch.Size([31, 1, 19])
            output_Tr = torch.squeeze(output_Tr, dim=1)  #torch.Size([31, 19])
            input_Tr = F.embedding(input_x, output_Tr)   #torch.Size([31, 17, 19])
            #sum pooling
            graph_embeddings = torch.spmm(graph_pool, output_Tr)  #torch.Size([2, 31])
            graph_embeddings = self.dropouts[layer_idx](graph_embeddings)
            # Produce the final scores
            prediction_scores += self.predictions[layer_idx](graph_embeddings)
        return prediction_scores

 

标签:layers,Transformer,torch,Graph,self,Attention,Tr,encoder,num
From: https://www.cnblogs.com/BlairGrowing/p/18129463

相关文章

  • 程序缺少graph32.ocx文件无法运行启动
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个graph32.ocx文件(挑选合适的版本文件)把它放......
  • Unity怎么判断图形(Graphic)是否被遮挡
    起因:最近领了个需求,需要给项目的弱引导增加个功能,判断它是否被其他UI遮挡住,如果被遮挡了就需要实时将它隐藏,遮挡结束则恢复显示,这个需求乍一看似乎有点不太变态,但细细想想似乎还是能够做到,以下将我的经验分享一下。遮挡判断:要想解决这个问题,最重要的是要知道一个ui怎么算是被遮......
  • C. Inversion Graph
    原题链接题解假如一开始是一个完全单调递增函数,那么没有任何链接,这时我们交换两个数\(i,j\),则\([i,j]\)成了一个连通块,这时我们再取出\([i+1,j]\)内的元素与\(l,l\in[j+1,n]\)交换,则\([j,l]\)成了一个连通块所以\([i,l]\)也就成了一个连通块因此\(i\)位置上的元素......
  • new mars3d.graphic.PolylineEntity({实现航线真实穿过山体或者模型的部分用虚线展示
    1.在官网示例中通过 newmars3d.graphic.PolylineEntity({实现航线真实穿过山体或者模型的部分用虚线展示效果2.示例地址:功能示例(Vue版)|Mars3D三维可视化平台|火星科技3.实现效果: 1.航线真实穿过山体或者模型的部分用虚线展示、并且是(真实穿过不是视线挡住那种),遮挡......
  • 2023 NIPS A*Net: A Scalable Path-based Reasoning Approachfor Knowledge Graphs 知
    文章链接原文:b9e98316cb72fee82cc1160da5810abc-Paper-Conference.pdf(neurips.cc)代码:https://github.com/DeepGraphLearning/AStarNet一、动机与贡献为了使路径推理方法适用于大规模图上的归纳推理任务,文章改进了路径信息获取的方法。路径推理方法较好的归纳推理能力......
  • 基于GA优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览ga优化前:     ga优化后:    2.算法运行软件版本matlab2022a  3.算法理论概述      时间序列预测是许多领域中的核心问题,如金融市场分析、气候预测、交通流量预测等。近年来,深度学习在时间序列分析上取得了显著的成果,尤......
  • 【即插即用】ShuffleAttention注意力机制(附源码)
    原文链接:https://arxiv.org/pdf/2102.00240.pdf源码地址:https://github.com/wofmanaf/SA-Ne摘要简介:注意力机制让神经网络能够准确关注输入的所有相关元素,已成为提高深度神经网络性能的关键组件。在计算机视觉研究中,主要有两种广泛使用的注意力机制:空间注意力和通道注意力......
  • 论文解读(SGDA)《Semi-supervised Domain Adaptation in Graph Transfer Learning》
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:Semi-supervisedDomainAdaptationinGraphTransferLearning论文作者:论文来源:2024aRxiv论文地址:download 论文代码:download视屏讲解:click1-摘要作为图转移学习的一个特殊情况,图上的无监督域自适应的目......
  • 论文解读(CoCo)《CoCo: A Coupled Contrastive Framework for Unsupervised Domain Adap
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:CoCo:ACoupledContrastiveFrameworkforUnsupervisedDomainAdaptiveGraphClassification论文作者:XiaoShen、QuanyuDai、Fu-laiChung、WeiLu、Kup-SzeChoi论文来源:2023aRxiv论文地址:download 论文代......
  • 交叉注意力融合时域、频域特征的FFT + CNN -Transformer-CrossAttention电能质量扰动
     往期精彩内容:电能质量扰动信号数据介绍与分类-Python实现-CSDN博客Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客Python电能质量扰动信号分类(三)基于Transformer的一维信号分......