Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks

Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks

​#paper/GFM/GNN-BASED#​ #paper/⭐⭐⭐#​

注意:这篇文章是每个图一个GCN模型,而不是所有图一个GCN 模型

算是最早的涉及异配图的prompt了

贡献和动机:

  1. 非对称图对比学习(GraphACL)
    提出一种预训练方法,通过非对称对比学习捕获节点间的高阶相似性,避免传统方法对同质图(homophily)的依赖,有效处理异质图。

  2. 统一任务模板
    将预训练与下游任务(如节点分类、链接预测)统一为相似性计算模板,减少目标差异导致的负迁移问题。例如,节点分类通过类原型(class prototype)与节点的相似性进行预测。

  3. 自适配器与参数重用
    重用预训练阶段的投影器(projector)作为下游任务的适配器(self-adapter),无需额外参数,显著提升调优效率。

  4. 自提示机制

    • 结构提示:通过添加两跳邻居等结构信息增强上下文表示。
    • 语义提示:利用节点属性(如替换邻接矩阵为单位矩阵)保留语义信息。
      提示生成基于图自身信息,而非随机初始化,提升稳定性和泛化能力。

方法:

对比学习的三种方法:

image

作者使用了第三种方法,并认为 g ( ⋅ ) g(\cdot) g()可以引入语义信息

方法框架:

image

由于对应上面第三种方法,其对比损失可以为:

L = − 1 ∣ V ∣ ∑ v ∈ V 1 ∣ N ( v ) ∣ ∑ v + ∈ N ( v ) log ⁡ exp ⁡ ( z v T h v + / τ ) exp ⁡ ( z v T h v + / τ ) + ∑ v − ∈ V − exp ⁡ ( h v T h v − / τ ) , \mathcal{L}=-\frac{1}{|\mathcal{V}|}\sum_{v\in\mathcal{V}}\frac{1}{|\mathcal{N}(v)|}\sum_{v^+\in\mathcal{N}(v)}\log\frac{\exp(\mathbf{z}_v{}^\mathsf{T}\mathbf{h}_{v^+}/\tau)}{\exp(\mathbf{z}_v{}^\mathsf{T}\mathbf{h}_{v^+}/\tau)+\sum_{v^-\in\mathcal{V}^-}\exp(\mathbf{h}_v{}^\mathsf{T}\mathbf{h}_{v^-}/\tau)}, L=V1vVN(v)1v+N(v)logexp(zvThv+/τ)+vVexp(hvThv/τ)exp(zvThv+/τ),

其中,z是映射头g的输出。

节点分类任务

节点分类任务的话,作者采用了原型向量(prototype: C = { t 1 , t 2 , … , t C } \mathcal{C}=\{\mathbf{t}_1,\mathbf{t}_2,\ldots,\mathbf{t}_C\} C={t1,t2,,tC}。作者通过labeled节点的token均值来初始化原型向量。

t c = 1 N c ∑ v ∈ V L , y v = c t v , ∀ c ∈ 1 , 2 , … C , \mathbf{t}_c=\frac{1}{N_c}\sum_{v\in\mathcal{V}_L,y_v=c}\mathbf{t}_v,\forall c\in1,2,\ldots C, tc=Nc1vVL,yv=ctv,c1,2,C,

Self-prompt结构:

  1. 预训练的架构: θ ∗ , ϕ ∗ = arg ⁡ min ⁡ θ , ϕ L p r e ( f θ , g ϕ , G ) \theta^*,\phi^*=\arg\min_{\theta,\phi}\mathcal{L}_{pre}(f_\theta,g_\phi,\mathcal{G}) θ,ϕ=argminθ,ϕLpre(fθ,gϕ,G)

  2. prompt时,GNN backbone应该是冻结的。作者认为 g ϕ g_{\phi} gϕ可以包含更多的语义,应该用于下游训练。因此下游任务的优化可以表示为: ϕ ∗ ∗ = arg ⁡ min ⁡ ϕ ∗ L d o w ( g ϕ ∗ , V L , Y ) \phi^{**}=\arg\min_{\phi^*}\mathcal{L}_{dow}(g_{\phi^*},\mathcal{V}_L,\mathcal{Y}) ϕ∗∗=argminϕLdow(gϕ,VL,Y)

  3. 自结构语义的构建:作者认为2-hop代表同配性,并包含丰富的语义信息。因此: t v = f θ ( G 2 ) [ v ] = f θ ( A 2 , X ) [ v ] \mathbf{t}_v=f_\theta(\mathcal{G}_2)[v]=f_\theta(\mathbf{A}_2,\mathbf{X})[v] tv=fθ(G2)[v]=fθ(A2,X)[v]

  4. 子语义提示:

    s v = f θ ( G I ) [ v ] = f θ ( I , X ) [ v ] . \mathbf{s}_{v}=f_{\theta}(\mathcal{G}_{I})[v]=f_{\theta}(\mathbf{I},\mathbf{X})[v]. sv=fθ(GI)[v]=fθ(I,X)[v].

    h v = f θ ( G ) [ v ] = f θ ( A , X ) [ v ] . \mathbf{h}_v=f_\theta(\mathcal{G})[v]=f_\theta(\mathbf{A},\mathbf{X})[v]. hv=fθ(G)[v]=fθ(A,X)[v].

    t v = w v s v + ( 1 − w v ) h v , w v = s i m ( h v , s v ) , \mathbf{t}_v=w_v\mathbf{s}_v+(1-w_v)\mathbf{h}_v,w_v=sim(h_v,s_v), tv=wvsv+(1wv)hv,wv=sim(hv,sv),

  5. Prompt tuning:节点分类: L d o w = − ∑ v ∈ V L log ⁡ exp ⁡ ( t ′ v t ′ y v / τ ) exp ⁡ ( t ′ v T t ′ y v / τ ) + ∑ c = 1 , c ≠ y v C exp ⁡ ( t ′ v T t ′ c / τ ) , \mathcal{L}_{dow}=-\sum_{v\in\mathcal{V}_{L}}\log\frac{\exp(\mathbf{t^{\prime}}_{v}\mathbf{t^{\prime}}_{y_{v}}/\tau)}{\exp(\mathbf{t^{\prime}}_{v}^{\mathsf{T}}\mathbf{t^{\prime}}_{y_{v}}/\tau)+\sum_{c=1,c\neq y_{v}}^{C}\exp(\mathbf{t^{\prime}}_{v}^{\mathsf{T}}\mathbf{t^{\prime}}_{c}/\tau)}, Ldow=vVLlogexp(tvTtyv/τ)+c=1,c=yvCexp(tvTtc/τ)exp(tvtyv/τ),其中, t ′ v = q ϕ ( t v ) \mathbf{t^{\prime}}_{v}=q_{\phi}(\mathbf{t}_{v}) tv=qϕ(tv)

  6. L d o w = − ∑ ( v , a , b ) ∈ T log ⁡ exp ⁡ ( t ′ v T t ′ a / τ ) exp ⁡ ( t ′ v T t ′ a / τ ) + exp ⁡ ( t ′ v T t ′ b / τ ) \mathcal{L}_{dow}=-\sum_{(v,a,b)\in\mathcal{T}}\log\frac{\exp(\mathbf{t^{\prime}}_v^\mathsf{T}\mathbf{t^{\prime}}_a/\tau)}{\exp(\mathbf{t^{\prime}}_v^\mathsf{T}\mathbf{t^{\prime}}_a/\tau)+\exp(\mathbf{t^{\prime}}_v^\mathsf{T}\mathbf{t^{\prime}}_b/\tau)} Ldow=(v,a,b)Tlogexp(tvTta/τ)+exp(tvTtb/τ)exp(tvTta/τ)

结果:

image

image

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

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

相关文章

宝塔 Linux 计划任务中添加运行项目网站PHP任务-定时任务

一、指定php版运行, cd /www/wwwroot/www.xxx.com/ && /www/server/php/56/bin/php think timedtasks start >> /tmp/timedtasks.log 2>&1 二、不指定php版 cd /www/wwwroot/www.xxx.com/ && php think timedtasks start >> …

【电控笔记z29】扰动估测器DOB估测惯量J-摩擦系数B

基本原理 扰动估测器的核心思想是通过向电机系统施加特定的扰动信号,观察系统响应的变化,然后利用系统的动态模型和控制理论来估计未知参数,如惯量和摩擦系数 。一般基于电机的运动方程建立数学模型,结合观测到的电机实际运行数据…

要查看 SQLite 数据库中的所有表,可以通过查询 SQLite 的系统表 sqlite_master

要查看 SQLite 数据库中的所有表,可以查询 SQLite 的系统表 sqlite_master。 每个 SQLite 数据库都包含一个名为 sqlite_master 的系统表。该表定义了数据库的模式,存储了数据库中所有表、索引、视图和触发器等对象的信息。 通过查询 sqlite_master&am…

如何在Spring Boot中读取JAR包内resources目录下文件

精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 以下是如何在Spring Boot中读取JAR包内resources目录下文件的教程,分为多种方法及详细说明: 方法1:使用 ClassPathResour…

清华大学DeepSeek赋能家庭教育【附下载链接】

核心要点: DeepSeek通过基础模型(V3)、深度思考模型(R1)及联网模型,为家庭教育提供分层支持:V3用于作业辅导,R1培养批判性思维,联网模型助力探究性学习。家长需遵循目标导…

C语言番外篇(5)-------------->作用域与生命周期

作用域与生命周期是非常重要的编程知识。本篇文章使用C语言讲述作用域与生命周期。 一、作用域 在程序设计中,变量并非总是有效的,可以使用的区域就是作用域。 1.1局部变量的作用域 在{}中的都是局部变量,只是作用大小不一样而已。我们可…

若依前后端分离版使用Electron打包前端Vue为Exe文件

1.前言 本文详细介绍如何使用electron将若依框架前后端分离版的前端Vue页面打包为Exe文件,并且包括如何实现应用更新。使用若依基础代码体现不出打包功能,因此我使用开发的文件管理系统,介绍上述过程,具体可以查看我的文章《若依…

Linux——Docker容器内MySQL密码忘记了如何查看

目录 查看正在运行的MySQL的容器ID 方法一:查看MySQL容器的日志里的密码 方法二:通过环境变量密码登录 方法三:修改密码 查看正在运行的MySQL的容器ID docker ps 方法一:查看MySQL容器的日志里的密码 docker logs [MySQL的容器…

康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术

随着自动驾驶技术的迅猛发展,构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下,3D高斯点阵渲染(3DGS)技术应运而生,成为自动驾驶仿真场景重…

大模型架构记录2

一 应用场景 1.1 prompt 示例 1.2 自己搭建一个UI界面,调用接口 可以选用不同的模型,需要对应的API KEY 二 Agent 使用 2.1 构建GPT

【C++】二叉树相关算法题

一、根据二叉树创建字符串 题目描述: 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 “()” 表示,转化后需要省略所有…

【机械视觉】C#+visionPro联合编程———【一、C# + VisionPro 联合编程详解以及如何将visionPro工具加载到winform】

机械视觉与 C# VisionPro 联合编程详解 目录 机械视觉与 C# VisionPro 联合编程详解 概念 应用场景 1. 工业检测与质量控制缺陷检测 2. 定位与机器人引导 3. 识别与分类 4. 复杂流程控制 将visionPro工具加载到winform 环境准备 一、创建winform项目 二、打开窗体…

修改hosts文件,修改安全属性,建立自己的DNS

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

对NXP提供的BSP里边所使用的u-boot的环境变量`bootcmd`的解析

为什么我们要解析环境变量bootcmd? 承接博文 https://blog.csdn.net/wenhao_ir/article/details/145902134 继续解析u-boot的环境变量bootcmd。 为什么要解析u-boot的这个环境变量bootcmd?因为如果u-boot在倒计时完后,首先执行的是就是下面这条命令&am…

NSSCTF [SWPUCTF 2024 秋季新生赛]金丝雀

5948.[SWPUCTF 2024 秋季新生赛]金丝雀 canary绕过和64位的ret2libc(格式化字符串泄露) (1) motalymotaly-VMware-Virtual-Platform:~/桌面$ file xn xn: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.…

神经网络中梯度计算求和公式求导问题

以下是公式一推导出公式二的过程。 表达式一 ∂ E ∂ w j k − 2 ( t k − o k ) ⋅ sigmoid ( ∑ j w j k ⋅ o j ) ⋅ ( 1 − sigmoid ( ∑ j w j k ⋅ o j ) ) ⋅ ∂ ∂ w j k ( ∑ j w j k ⋅ o j ) \frac{\partial E}{\partial w_{jk}} -2(t_k - o_k) \cdot \text{sigm…

koa-session设置Cookie后获取不到

在谷歌浏览器中请求获取不到cookie问题之一(谷歌安全策略) 场景 前端使用 axios 请求,项目地址:http://192.168.8.1:5173 import axios from axiosconst request axios.create({baseURL: http://127.0.0.1:3001/,timeout: 60000,…

单元测试与仿真程序之间的选择

为什么写这篇文章 现在的工作需求,让我有必要总结和整理一下。 凡事都有适用的场景。首先这里我需要提示一下,这里的信息,可能并不普适。 但是可以肯定一点的是,有些人,不论做事还是写书,上下文还没有交待…

如何在Android中实现图片加载和缓存

在Android中实现图片加载和缓存是提升应用性能和用户体验的关键环节。高效的图片加载和缓存策略能够减少内存占用、避免应用卡顿,并快速响应用户的图片查看需求。以下是在Android中实现图片加载和缓存的几种常见方法: 一、使用第三方图片加载库 1. Gli…

FusionInsight MRS云原生数据湖

FusionInsight MRS云原生数据湖 1、FusionInsight MRS概述2、FusionInsight MRS解决方案3、FusionInsight MRS优势4、FusionInsight MRS功能 1、FusionInsight MRS概述 1.1、数据湖概述 数据湖是一个集中式存储库,允许以任意规模存储所有结构化和非结构化数据。可以…