GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks

KDD22

推薦指數:#paper/??#?

動機

本文探討了圖神經網絡(GNN)在遷移學習中“預訓練-微調”框架的局限性及改進方向。現有方法通過預訓練(如邊預測、對比學習)學習可遷移的圖結構知識,在微調時將其應用于下游任務(如節點分類)。然而,預訓練目標與下游任務之間的差異(如二元邊預測與多類節點分類)導致知識傳遞低效甚至負遷移——微調效果可能遜于從頭訓練。傳統改進方案依賴為每個下游任務定制預訓練目標(目標工程),但需大量領域知識與試錯成本。

受自然語言處理(NLP)中提示(Prompt)技術的啟發,作者提出“預訓練-提示-微調”新范式,旨在通過任務重表述縮小預訓練與下游任務差異。例如,NLP通過添加語義模板將分類任務轉化為與預訓練一致的填空任務(如情感分類轉為預測掩碼詞)。然而,圖數據面臨兩大挑戰:

  1. 符號化圖數據適配難題:節點為抽象符號,無法直接套用基于文本模板的語義改寫。
  2. 提示設計的有效性:需結合圖結構(如節點鄰域信息)設計高效的提示函數,以提升分類等任務精度。

因此,本文核心研究問題聚焦于如何設計圖感知提示函數,以橋接預訓練與下游任務,從而高效激發預訓練模型的知識。該方向有望通過任務形式統一化提升預訓練模型的泛用性,減少對定制化目標工程的依賴,推動少樣本圖分析的進一步發展。

?image?

圖提示框架

Pre-train, Prompt, Fine-tune

Graph prompting function(圖提示函數)

v i ′ = f p r o m p t ( v i ) v_{i}^{\prime}=f_{\mathrm{prompt}}(v_{i}) vi?=fprompt?(vi?), v i ′ v_i' vi?和映射頭有相似的輸入形狀

Pairwise prompting function(成對提示函數)

v i ′ = f p r o m p t ( v i ) = [ T t a s k ( y ) , T s r t ( v i ) ] v_{i}^{\prime}=f_{\mathrm{prompt}}(v_{i})=[T_{\mathbf{task}}(y),T_{\mathbf{srt}}( v_{i})] vi?=fprompt?(vi?)=[Ttask?(y),Tsrt?(vi?)]

T t a s k T_{task} Ttask?是下有任務的token, T s r c T_{src} Tsrc?是目標節點結構的token。前者由待分類節點的標簽得到,后者由目標節點周圍子圖表示,以提供更多的結構信息。很自然,可以利用函數來捕獲他們兩個的聯系

Prompt addition

[ y 1 , ? , y C ] [y_1,\cdots,y_C] [y1?,?,yC?]為C個類的prompt。自然可以構造token對: [ T t a s k ( y c ) , T s r t ( v i ) ] , f o r c = 1 , ? , C [T_{\mathrm{task}}(y_{c}),T_{\mathrm{srt}}(v_{i})],\mathrm{for~}c=1,\cdots,C [Ttask?(yc?),Tsrt?(vi?)],for?c=1,?,C

Prompt answer

對于每個token對,我們可以拼接,并將其放入預訓練的映射頭,如果目標節點 v i v_i vi? 與某類得到最高的鏈接概率,我們就將其歸為一類。

prompt tuning:

min ? θ , ? ∑ ( v i , y c ) L p r e ( p ? p r e ( T t a s k ( y c ) , T s r t ( v i ) ) ; g ( y c , v i ) ) . \min_{\theta,\phi}\sum_{(v_i,y_c)}\mathcal{L}^{\mathrm{pre}}(p_\phi^{\mathrm{pre}}(T_{\mathrm{task}}(y_c),T_{\mathrm{srt}}(v_i));g(y_c,v_i)). minθ,??(vi?,yc?)?Lpre(p?pre?(Ttask?(yc?),Tsrt?(vi?));g(yc?,vi?)).其中,g為真實的標簽函數

圖形提示功能設計

任務token的生成:

e c = T t a s k ( y c ) ∈ R d e_c=T_\mathrm{task}(y_c)\in\mathbb{R}^d ec?=Ttask?(yc?)Rd

E = [ e 1 , ? , e C ] ? ∈ R C × d E=[e_{1},\cdots,e_{C}]^{\top}\in\mathbb{R}^{C\times d} E=[e1?,?,eC?]?RC×d,C是類別數。

很自然,每個節點的token可以通過查詢如上的任務token得到自己的類別。很自然的是, T t a s k ( y c ) T_{\mathbf{task}}(y_c) Ttask?(yc?)最優應該是類 y c y_c yc?的中心。因此,我們通過聚類,來獲得初始的tasktoken:

  1. 利用可擴展聚類(比如metis)獲得M個類: { G 1 , ? , G M } \{\mathcal{G}_1,\cdots,\mathcal{G}_M\} {G1?,?,GM?},M是類別超參。
  2. 對于每個類,我們得到相應的task token: E m = [ e 1 m , ? , e C m ] ? ∈ R C × d E^m=[e_1^m,\cdots,e_C^m]^\top\in\mathbb{R}^{C\times d} Em=[e1m?,?,eCm?]?RC×d(怎么感覺有問題這一行表述)
  3. 給定集群 處節點 v i v_i vi? 的任務令牌 T t a s k ( y c ) T_{task}(y_c) Ttask?(yc?) ,它使用向量嵌入 e c m e_c^m ecm? 表示。
Structure Token Generation.(結構token的升成)

如果直接用節點v用于下游分類,會失去結構信息。因此我們使用 T s t r ( v i ) T_{\mathrm{str}}(v_i) Tstr?(vi?)來表示子圖結構,來涵蓋結構信息。在本文中,作者使用一階子圖來表示。

e v i = a i ? h i + ∑ v j ∈ N ( v i ) a j ? h j . e_{v_i}=a_i*h_i+\sum_{v_j\in\mathcal{N}(v_i)}a_j*h_j. evi??=ai??hi?+vj?N(vi?)?aj??hj?.

a通過注意力機制得到

Prompt 初始化以及正交約束:

直接使用隨機初始化肯定不太好,因此我們使用預訓練的GNN來初始化 E m = [ e 1 m , ? , e C m ] ? E^{m}=[e_{1}^{m},\cdots,e_{C}^{m}]^{\top} Em=[e1m?,?,eCm?]?

因此,我們通過節點表示來初始化標記嵌入 e c m e^m_c ecm?,節點表示由集群 m 處 y c y_c yc?類的訓練節點給出。

不同類的中心的距離應該盡可能的打,因此有: L o = ∑ m ∥ E m ( E m ) ? ? I ∥ F 2 . \mathcal{L}_o=\sum_m\|E^m(E^m)^\top-I\|_F^2. Lo?=m?Em(Em)??IF2?.

損失:

min ? θ , ? , E 1 , ? , E M ∑ ( v i , y c ) L p r e ( p ? p r e ( e c m , e v i ) ; g ( y c , v i ) ) + λ L o , s . t . θ i n i t = θ p r e , ? i n i t = ? p r e . \begin{aligned}\min_{\theta,\phi,E^{1},\cdots,E^{M}}&\sum_{(v_{i},y_{c})}\mathcal{L}^{\mathrm{pre}}(p_{\phi}^{\mathrm{pre}}(e_{c}^{m},e_{v_{i}});g(y_{c},v_{i}))+\lambda\mathcal{L}_{o},\\\mathrm{s.t.}&\theta^{\mathrm{init}}=\theta^{\mathrm{pre}},\phi^{\mathrm{init}}=\phi^{\mathrm{pre}}.\end{aligned} θ,?,E1,?,EMmin?s.t.?(vi?,yc?)?Lpre(p?pre?(ecm?,evi??);g(yc?,vi?))+λLo?,θinit=θpre,?init=?pre.?

結果:

?image?

?image?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72454.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72454.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72454.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

迷你世界腳本方塊接口:Block

方塊接口:Block 彼得兔 更新時間: 2024-08-27 11:04:56 具體函數名及描述如下: 序號 函數名 函數描述 1 isSolidBlock(...) 是否是固體方塊 2 isLiquidBlock(...) 是否是液體方塊 3 isAirBlock(...) 是否是氣體方塊 4 getBl…

Windows下git疑難:有文件無法被跟蹤

Windows下git疑難:有文件無法被跟蹤 最近在寫一個c# WinFrom程序, 奇怪的是,frmMain.cs這個文件一直無法被跟蹤 研究了很久, 參考這一篇 https://blog.csdn.net/m0_37315653/article/details/83064810 git rm --cached ./ -r 之…

Live2d官方項目運行

Live2d官方項目運行 1-參考網址 教程網址:https://blog.csdn.net/qq_39123467/article/details/131735085live2d官方地址:https://live2d.com/cubism-sdk/download/ 2-上手實踐 1)先打開官方項目-全部路徑打開2)cd /CubismSdkFo…

BUU43 [BJDCTF2020]The mystery of ip 1

前置知識: X - Forwarded - For注入 X - Forwarded - For(XFF)是一個 HTTP 頭字段,用于記錄客戶端的真實 IP 地址。當客戶端請求經過代理服務器時,代理服務器會將客戶端的 IP 地址添加到 X - Forwarded - For 頭中。…

張岳教授:語言模型推理與泛化研究 | ICLR 2025 特邀報告與團隊專場

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入! AITIME 01 ICLR 2025預講會特邀報告 AITIME 02 ICLR 2025預講會西湖大學張岳老師實驗室專場 01 AI生成文本的自動化檢測 Glimpse: Enabling White-Box Methods to Use Proprietary Models for Zero-Shot LLM-Ge…

MySQL SQL 優化專題

MySQL SQL 優化專題 1. 插入數據優化 -- 普通插入(不推薦) INSERT INTO tb_user VALUES(1,tom); INSERT INTO tb_user VALUES(2,cat); INSERT INTO tb_user VALUES(3,jerry);-- 優化方案1:批量插入(推薦,不建議超過1…

【AI深度學習基礎】NumPy完全指南進階篇:核心功能與工程實踐(含完整代碼)

NumPy系列文章 入門篇進階篇終極篇 一、引言 在掌握NumPy基礎操作后,開發者常面臨真實工程場景中的三大挑戰:如何優雅地處理高維數據交互?如何在大規模計算中實現內存與性能的平衡?怎樣與深度學習框架實現高效協同?…

Python學習第十八天之深度學習之Tensorboard

Tensorboard 1.TensorBoard詳解2.安裝3.使用4.圖像數據格式的一些理解 后續會陸續在詞博客上更新Tensorboard相關知識 1.TensorBoard詳解 TensorBoard是一個可視化的模塊,該模塊功能強大,可用于深度學習網絡模型訓練查看模型結構和訓練效果(…

【GraphQL API 漏洞簡介】

GraphQL API 漏洞簡介 一、漏洞原理與分類二、漏洞檢測方法三、典型利用方式四、工具推薦防御建議 GraphQL API 因其靈活性和高效性被廣泛應用,但也因設計和實現缺陷存在多種安全風險。以下從漏洞原理、檢測方法及利用方式三個維度進行詳細分析: 一、漏洞…

Windows逆向工程入門之MASM數據結構使用

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> ???鏈接點擊跳轉博客主頁 目錄 第一章:MASM數據定義體系精要 1.1 基礎數據類型全景 1.1.1 整型數據規范 1.1.2 浮點數據編碼 1.2 復合數據結構 1.2.1 多維數組定義 1.2.2 復雜結構體 第二章&#xf…

筑牢安全防線:工商業場所燃氣泄漏防護新方案

燃氣安全是企業經營不可逾越的生命線。在餐飲后廚、化工車間、酒店鍋爐房等場所,可燃氣體一旦泄漏,極易引發嚴重事故。如何實現精準監測、快速響應,成為工業及商業領域安全管理的核心訴求。旭華智能深耕安全監測領域,推出的工業及…

本地部署大數據集群前置準備

1. 設置VMware網段 虛擬網絡編輯器——更改設置——選擇VMnet8——子網改成192.168.88.0——NAT設置——網關設置為192.168.88.2 2. 下載CentOS操作系統 下載CentOS 7.6(1810)版本 3. 在VMware中安裝CentOS操作系統 創建新的虛擬機——典型——安裝光盤映像文件——輸入賬…

【藍橋杯單片機】第十二屆省賽

一、真題 二、模塊構建 1.編寫初始化函數(init.c) void Cls_Peripheral(void); 關閉led led對應的鎖存器由Y4C控制關閉蜂鳴器和繼電器 由Y5C控制 2.編寫LED函數(led.c) void Led_Disp(unsigned char ucLed); 將ucLed取反的值賦給P0 開啟鎖存器…

PyCharm接入本地部署DeepSeek 實現AI編程!【支持windows與linux】

今天嘗試在pycharm上接入了本地部署的deepseek,實現了AI編程,體驗還是很棒的。下面詳細敘述整個安裝過程。 本次搭建的框架組合是 DeepSeek-r1:1.5b/7b Pycharm專業版或者社區版 Proxy AI(CodeGPT) 首先了解不同版本的deepsee…

CSS 系列之:grid 布局

基本概念 <template><div class"parent"><div class"box">p1-1</div><div class"box">p1-2</div><div class"box">p1-3</div></div><div class"parent"><…

數學軟件Matlab下載|支持Win+Mac網盤資源分享

如大家所了解的&#xff0c;Matlab與Maple、Mathematica并稱為三大數學軟件。Matlab應用廣泛&#xff0c;常被用于數據分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人&#xff0c;控制系統等領域。 Matlab將數值分析、矩陣計算、科學…

水仙花數(華為OD)

題目描述 所謂水仙花數&#xff0c;是指一個n位的正整數&#xff0c;其各位數字的n次方和等于該數本身。 例如153是水仙花數&#xff0c;153是一個3位數&#xff0c;并且153 13 53 33。 輸入描述 第一行輸入一個整數n&#xff0c;表示一個n位的正整數。n在3到7之間&#x…

物聯網同RFID功能形態 使用場景的替代品

在物聯網&#xff08;IoT&#xff09;和自動識別技術領域&#xff0c;除了RFID標簽外&#xff0c;還有一些其他技術產品可以在形態和大小上與RFID標簽相似&#xff0c;同時提供類似或更強大的功能。以下是幾種能夠替代RFID標簽的產品&#xff1a; 一、NFC標簽 NFC&#xff08;…

03.03 QT

1.在注冊登錄的練習里面&#xff0c;追加一個QListwidget 項目列表 要求:點擊注冊之后&#xff0c;將賬號顯示到 1istwidget上面去 以及&#xff0c;在listwidget中雙擊某個賬號的時候&#xff0c;將該賬號刪除 Widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWi…

c++ cout詳解

在 C++ 中,cout 是標準輸出流對象,用于向控制臺(或標準輸出設備)輸出數據。它是 iostream 庫的核心組件之一,與 << 流插入運算符配合使用。 一、基本用法 1. 頭文件和命名空間 #include <iostream> // 必須包含的頭文件 using namespace std; // 命名空間(…