GAT-GRAPH ATTENTION NETWORKS(論文筆記)

?CCF等級:A

發布時間:2018年

代碼位置

25年4月21日交

目錄

一、簡介

二、原理

1.注意力系數

2.歸一化

3.特征組合與非線性變換

4.多頭注意力

4.1特征拼接操作

4.2平均池化操作

三、實驗性能

四、結論和未來工作


一、簡介

圖注意力網絡(GATs),可以在圖結構數據上操作的神經網絡架構。在GAT模型中,節點能夠在它們的鄰域特征上進行“關注”,從而隱式地為鄰域中的不同節點指定不同的權重。簡單理解為節點能夠知道關聯的每個節點對自己的影響權重是多少。


二、原理

首先將節點轉化為向量,然后通過自我注意機制計算每個節點對其鄰居的重要性權重(即注意力系數),并通過softmax函數進行歸一化。接下來,利用這些歸一化的注意力系數對鄰近節點的特征加權求和,得到每個節點的新特征表示,并通常應用非線性激活函數進一步處理。為了增強模型的表現力和穩定性,GAT可以采用多頭注意力機制獨立執行上述過程多次,并將結果拼接或平均,最終生成用于分類或其他任務的節點特征表示。

1.注意力系數

先將節點轉化為向量,節點h_i的向量為\overrightarrow{h_i}。(這一部分不重要,就不展開講解)

e_{ij} = a(W\overrightarrow{h_i},W\overrightarrow{h_j})

  • \overrightarrow{h_i}\overrightarrow{h_j}分別是節點i和節點j的特征向量。
  • W是一個權重矩陣,用于線性變換這些特征向量。
  • a(\cdot , \cdot )是一個注意力機制函數,用于計算兩個變換后的特征向量之間的相似度或相關性。

使用權重矩陣W對節點進行線性變換,再通過注意力機制函數a(\cdot , \cdot )計算這兩個變換后特征向量之間的注意力分數e_{ij}

節點i對其鄰居節點j的注意力系數a_{ij}

注意:e_{ij}只衡量了節點i關注節點j的程度,而不是同時考慮ji關注程度。換句話說e_{ij}e_{ji}是獨立計算的,它們分別代表了從節點i到節點j和從節點j到節點i的注意力權重,這允許模型對每個方向的重要性進行不同的賦值。

2.歸一化

a_{ij} = softmax_j(e_{ij}) = \frac{\exp (e_{ij})}{\sum_{k \in N_i} \exp (e_{ik})}

  • \exp(e_{ij})是注意力分數e_{ij}的指數函數值。
  • \sum_{k \in N_i} \exp(e_{ik})是節點i所有鄰居節點k的注意力分數的指數函數值之和。
  • N-i表示節點i的鄰居節點集合。

通過softmax函數,每個節點i對其鄰居節點j的注意力權重a_{ij}被歸一化到[0,1]區間內,并且所有鄰居節點的注意力權重之和為 1。歸一化不僅提高了模型性能,還增強了模型的魯棒性和解釋性。

計算注意力系數和歸一化的公式可以合并為

\alpha_{ij} = \frac{\exp\left(\text{LeakyReLU}\left(\tilde{\mathbf{a}}^T [\mathbf{W} \vec{h}_i \| \mathbf{W} \vec{h}_j]\right)\right)}{\sum_{k \in N_i} \exp\left(\text{LeakyReLU}\left(\tilde{\mathbf{a}}^T [\mathbf{W} \vec{h}_i \| \mathbf{W} \vec{h}_k]\right)\right)}

3.特征組合與非線性變換

利用標準化后的注意力系數a_{ij},對鄰近節點j的特征進行加權求和,從而得到每個節點的新特征表示。

\overrightarrow{h'_i} = \sigma (\sum_{j \in N_i} \alpha_{ij}W\overrightarrow{h_j})

  • \overrightarrow{h'_i}是節點i更新后的特征向量。
  • \alpha _{ij}表示經過softmax歸一化后,鄰居節點j對節點i的注意力權重。
  • W是一個可學習的權重矩陣,用于對輸入特征進行線性變換。
  • N_i表示節點i的鄰居集合。
  • \sigma是一個非線性激活函數,例如ReLULeakyReLU,用于引入非線性。

通過上述步驟,圖注意力網絡(GATs)能夠動態地調整每個節點對其鄰居節點的關注度,并據此更新自身的特征表示,以捕捉更豐富的局部結構信息。

4.多頭注意力

通過為每個注意力頭使用不同的權重矩陣,模型可以捕捉到不同類型的特征關系。

類似于卷積神經網絡中使用不同的卷積核計算。

多頭注意力機制?類似于多尺度特征提取,不同尺度的特征通過不同的卷積核提取。

多頭注意力機制來計算節點\overrightarrow{h_i}的新特征表示\overrightarrow{h'i}

4.1特征拼接操作

\vec{h}_i' = \parallel_{k=1}^{K} \sigma\left( \sum_{j \in N_i} \alpha_{ij}^k \mathbf{W}^k \vec{h}_j \right)

  • \parallel_{k=1}^{K}表示將K個注意力頭的結果進行拼接,形成最終的特征表示。
  • W^k是第k個注意力頭對應的權重矩陣,用于對鄰居節點j的特征向量\overrightarrow{h_j}進行線性變換。
  • \sum_{j \in N_i} \alpha_{ij}^k \mathbf{W}^k \vec{h}_j表示對所有鄰居節點j的特征向量進行加權求和。這里的N_i是節點i的鄰居節點集合。

4.2平均池化操作

\vec{h}_i' = \sigma\left( \frac{1}{K} \sum_{k=1}^{K} \sum_{j \in N_i} \alpha_{ij}^k \mathbf{W}^k \vec{h}_j \right)

  • \frac{1}{K} \sum_{k=1}^{K}表示對K個注意力頭的結果進行平均池化,即將K個注意力頭的結果相加后除以K

總結:

使用單一的注意力權重和權重矩陣,適用于簡單的注意力機制。

使用多頭注意力機制,特征拼接操作,并通過特征拼接操作組合多個注意力頭的結果,從而增強模型的表達能力。

使用多頭注意力機制,平均池化操作,并通過平均池化操作組合多個注意力頭的結果,從而增強模型的表達能力。


三、實驗性能

Cora、Citeseer和Pubmed分類準確率的結果總結。GCN-64 *對應于計算64個隱藏特征的最佳GCN結果。

對于PPI數據集,以微平均F1分數表示的結果摘要。GraphSAGE*對應于我們僅通過修改其架構即可獲得的最佳GraphSAGE結果。


四、結論和未來工作

1.解決稀疏矩陣運算限制的問題:使用的張量操作框架僅支持秩2張量的稀疏矩陣乘法,這限制了批次處理的能力。

2.擴展模型深度:采用跳連接等技術可以適當擴展模型的深度,從而提高其表達能力。

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

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

相關文章

XML、JSON 和 Protocol Buffers (protobuf) 對比

目錄 1. XML (eXtensible Markup Language) 1)xml的特點: 2)xml的適用場景: 2. JSON (JavaScript Object Notation) 1)JSOM的特點: 2)JSON的適用場景: 3. Protocol Buffers (…

如何通過簡單步驟保護您的網站安全

在如今的數字化時代,網站安全已經成為每個網站管理者都不能忽視的重點。未授權用戶入侵、數據泄露和惡意軟件等威脅越來越多,網站安全對于保護企業、用戶和客戶的數據非常重要。為了幫助您提升網站的安全性,本文介紹了一些簡單且有效的措施&a…

【后端開發】初識Spring IoC與SpringDI、圖書管理系統

文章目錄 圖書管理系統用戶登錄需求分析接口定義前端頁面代碼服務器代碼 圖書列表展示需求分析接口定義前端頁面部分代碼服務器代碼Controller層service層Dao層modle層 Spring IoC定義傳統程序開發解決方案IoC優勢 Spring DIIoC &DI使用主要注解 Spring IoC詳解bean的存儲五…

通付盾風控智能體(RiskAgent): 神煩狗(DOGE)

在數字化業務高速發展的今天,風控系統已成為企業抵御黑產、欺詐、保障交易安全的核心防線。然而傳統風控面臨人力依賴高與策略滯后性等挑戰,數據分析師需每日從海量數據中手動提煉風險特征、設計防護規則,耗時費力;新策略從發現到…

大模型論文:Language Models are Unsupervised Multitask Learners(GPT2)

大模型論文:Language Models are Unsupervised Multitask Learners(GPT2) 文章地址:https://storage.prod.researchhub.com/uploads/papers/2020/06/01/language-models.pdf 摘要 自然語言處理任務,例如問答、機器翻譯、閱讀理解和摘要&am…

分布式ID生成方案的深度解析與Java實現

在分布式系統中,生成全局唯一的ID是一項核心需求,廣泛應用于訂單編號、用戶信息、日志追蹤等場景。分布式ID不僅需要保證全局唯一性,還要滿足高性能、高可用性以及一定的可讀性要求。本文將深入探討分布式ID的概念、設計要點、常見生成方案&a…

記 etcd 無法在docker-compose.yml啟動后無法映射數據庫目錄的問題

1、將etcd 單獨提取 Dockerfile,指定配置文件和數據目錄 #鏡像 FROM bitnami/etcd:3.5.11 #名稱 ENV name"etcd" #重啟 ENV restart"always" #運行無權限 ENV ALLOW_NONE_AUTHENTICATION"yes" #端口 EXPOSE 2379 2380 #管理員權限才…

怎樣才不算干擾球·棒球1號位

在棒球運動中,"干擾球"(Interference)是指球員或場外人員非法影響了比賽的正常進行。以下情況通常 不構成干擾,屬于合法行為或無需判罰: 1. 擊跑員(Batter-Runner)合法跑壘 跑壘限制…

PyTorch實現多輸入輸出通道的卷積操作

本文通過代碼示例詳細講解如何在PyTorch中實現多輸入通道和多輸出通道的卷積運算,并對比傳統卷積與1x1卷積的實現差異。 1. 多輸入通道互相關運算 當輸入包含多個通道時,卷積核需要對每個通道分別進行互相關運算,最后將結果相加。以下是實現…

深入解析 MySQL 中的日期時間函數:DATE_FORMAT 與時間查詢優化、DATE_ADD、CONCAT

深入解析 MySQL 中的日期時間函數:DATE_FORMAT 與時間查詢優化 在數據庫管理和應用開發中,日期和時間的處理是不可或缺的一部分。MySQL 提供了多種日期和時間函數來滿足不同的需求,其中DATE_FORMAT函數以其強大的日期格式化能力,…

SSH配置優化:提升本地內網Linux服務器遠程連接速度與穩定性

文章目錄 引言一. 理解SSH連接過程與影響因素二. 服務器端SSH配置優化三. 客戶端SSH配置優化四. 高級技巧五. 內網穿透突破公網IP限制總結 引言 SSH (Secure Shell) 是一種網絡協議,用于加密的網絡服務,常用于遠程登錄和管理Linux服務器。對于本地內網的…

BERT - MLM 和 NSP

本節代碼將實現BERT模型的兩個主要預訓練任務:掩碼語言模型(Masked Language Model, MLM) 和 下一句預測(Next Sentence Prediction, NSP)。 1. create_nsp_dataset 函數 這個函數用于生成NSP任務的數據集。 def cr…

“實時滾動”插件:一個簡單的基于vue.js的無縫滾動

1、參考連接: 安裝 | vue-seamless-scroll 2、使用步驟: 第一步:安裝 yarn add vue-seamless-scroll 第二步:引入 import vueSeamlessScroll from vue-seamless-scroll/src 第三步:注冊 components: { vueSeamless…

【藍橋杯】賽前練習

1. 排序 import os import sysn=int(input()) data=list(map(int,input().split(" "))) data.sort() for d in data:print(d,end=" ") print() for d in data[::-1]:print(d,end=" ")2. 走迷宮BFS import os import sys from collections import…

pyTorch-遷移學習-學習率衰減-四種天氣圖片多分類問題

目錄 1.導包 2.加載數據、拼接訓練、測試數據的文件夾路徑 3.數據預處理 3.1 transforms.Compose數據轉化 3.2分類存儲的圖片數據創建dataloader torchvision.datasets.ImageFolder torch.utils.data.DataLoader 4.加載預訓練好的模型(遷移學習) 4.1固定、修改預訓練…

第十四屆藍橋杯大賽軟件賽國賽Python大學B組題解

文章目錄 彈珠堆放劃分偶串交易賬本背包問題翻轉最大階梯最長回文前后綴貿易航線困局 彈珠堆放 遞推式 a i a i ? 1 i a_ia_{i-1}i ai?ai?1?i, n 20230610 n20230610 n20230610非常小,直接模擬 答案等于 494 494 494 劃分 因為總和為 1 e 6 1e6…

Python 和 JavaScript兩種語言的相似部分-由DeepSeek產生

Python 和 JavaScript 作為兩種流行的編程語言,雖然在設計目標和應用場景上有差異(Python 偏向后端和腳本,JavaScript 偏向前端和動態交互),但它們的語法存在許多相似之處。以下是兩者在語法上的主要共同點及對比&…

改善 Maven 的依賴性

大家好,這里是架構資源棧!點擊上方關注,添加“星標”,一起學習大廠前沿架構! 建議使用mvn dependency:analyze命令來擺脫已聲明但未使用的依賴項: 還有另一個用例, mvn dependency:analyze 它可…

【SQL】子查詢詳解(附例題)

子查詢 子查詢的表示形式為:(SELECT 語句),它是IN、EXISTS等運算符的運算數,它也出現于FROM子句和VALUES子句。包含子查詢的查詢叫做嵌套查詢。嵌套查詢分為相關嵌套查詢和不想關嵌套查詢 WHERE子句中的子查詢 比較運算符 子查詢的結果是…

Stable Diffusion 擴展知識實操整合

本文的例子都是基于秋葉整合包打開的webui實現的 一、ADetailer——改善人臉扭曲、惡心 After detailer插件可以自動檢測生成圖片的人臉,針對人臉自動上蒙版,自動進行重繪,整個流程一氣呵成,因此可以避免許多重復的操作。除此之…