原創(chuàng) | 圖注意力神經(jīng)網(wǎng)絡(Graph Attention Networks)綜述(1)
數(shù)無形時少直覺,形少數(shù)時難入微–華羅庚
1 圖注意力神經(jīng)網(wǎng)絡的介紹
1.1GAT的原理與特性
圖形,由點、線、面和體構(gòu)成,代表了一種理解抽象概念和表達抽象思想的有效工具。圖形語言的優(yōu)勢在于其跨越語言障礙的能力,這種能力和技術(shù)大多是人類為了理解世界而發(fā)展出來的。計算機科學和人工智能的快速進步,使得理解和學習事物之間的更深層次客觀關(guān)系變得可能。圖神經(jīng)網(wǎng)絡(GNN)的誕生,更加幫助人類通過圖形來了解和解決問題。圖注意力神經(jīng)網(wǎng)絡(GAT)是一種專為處理圖結(jié)構(gòu)數(shù)據(jù)而設計的特殊神經(jīng)網(wǎng)絡。不同于傳統(tǒng)神經(jīng)網(wǎng)絡,GAT在處理輸入數(shù)據(jù)時,會充分考慮數(shù)據(jù)間的關(guān)系,使其在處理圖結(jié)構(gòu)數(shù)據(jù)時能更準確地捕捉到數(shù)據(jù)間的關(guān)聯(lián)性。GAT的主要優(yōu)勢在于其自動學習節(jié)點間關(guān)系的能力,無需人工預設。
GAT的核心工作原理是通過注意力機制來計算節(jié)點間的關(guān)系。在傳統(tǒng)神經(jīng)網(wǎng)絡中,每個節(jié)點的狀態(tài)更新是獨立進行的。而在GAT中,每個節(jié)點的狀態(tài)更新會考慮到其鄰居節(jié)點的狀態(tài),GAT會計算一個節(jié)點與其鄰居節(jié)點之間的注意力權(quán)重,然后根據(jù)這個權(quán)重來更新節(jié)點的狀態(tài)。通過計算權(quán)重而更新 信息的方式使得GAT能更好地捕捉到圖中的結(jié)構(gòu)信息。在計算權(quán)重分值和捕捉信息的方面,GAT采用了類似于Transformer的掩蔽自注意力機制,由堆疊在一起的圖注意力層構(gòu)成,每個圖注意力層獲取節(jié)點嵌入作為輸入,輸出轉(zhuǎn)換后的嵌入,節(jié)點嵌入會關(guān)注到它所連接的其他節(jié)點的嵌入(Velickovic et al.,2017)。在GAT的實際運算中,注意力分數(shù)的計算是通過一個名為“注意力頭”的結(jié)構(gòu)完成的。每個注意力頭都會計算一組注意力分數(shù),并且在最后的結(jié)果中,所有的注意力頭的結(jié)果會被平均或者拼接起來,以得到最終的節(jié)點嵌入。這樣做的好處是,每個注意力頭可以關(guān)注到不同的特征或者模式,從而使得GAT能夠捕捉到更多的信息。具體的數(shù)學內(nèi)容將在下面的文章中解釋。
此外,GAT引入了圖池化的概念,這是一種選擇最具信息的節(jié)點子集的方法,可以生成更具區(qū)分性的圖。在圖池化過程中,GAT使用一個可學習的投影向量來計算每個節(jié)點的投影分數(shù),然后根據(jù)投 影分數(shù)來選擇保留的節(jié)點。這種方式可以進一步提高GAT的性能。GAT還有一個重要特性是模型級別的融合。在處理復雜的問題時,GAT可以通過模型級別的融合來利用不同的信息源。這種能力已經(jīng)使 得GAT在許多領域顯示出其優(yōu)越性,包括圖像識別、自然語言處理和推薦系統(tǒng)等。在圖像識別中,GAT 可以有效地處理圖像中的像素之間的關(guān)系,從而提高圖像識別的準確性。在自然語言處理中,GAT可以有效地處理文本中的詞語之間的關(guān)系,從而提高文本理解的準確性。在推薦系統(tǒng)中,GAT可以有效地處理用戶和商品之間的關(guān)系,從而提高推薦的準確性。
1.2GAT在生活中的例子
為了更加直觀地理解圖注意力神經(jīng)網(wǎng)絡(GAT),可以通過一個生活中的例子來揭示其工作原理和應用。
在中國的傳統(tǒng)婚禮中,座位安排是一項重要的任務。主辦方需要考慮所有賓客間的關(guān)系,以確保每個人在婚禮上都能享受到愉快的體驗。這個過程可以被視為一個圖,其中每個賓客代表一個節(jié)點,賓客間的關(guān)系代表邊。主辦方的目標是找到一個最優(yōu)的座位安排,使得每個桌子的賓客都能和諧相處。
在GAT的框架下,這個過程被建模為一個注意力機制。每個節(jié)點(賓客)都用一個向量表示,稱其為嵌入,可以被視為節(jié)點的特征或?qū)傩?。在這個例子中,賓客的嵌入可能包括他們的年齡、性別、興趣等信息。注意力機制的工作原理是通過計算每個節(jié)點(賓客)與其他節(jié)點(其他賓客)之間的相似度,來決定每個節(jié)點的重要性。這個相似度被稱為注意力分數(shù),它是通過一個叫做“點積注意力”的函數(shù)計算得出的。注意力分數(shù)越高,表示這個節(jié)點與其他節(jié)點的關(guān)系越好,他們被安排在同一個位置的可能性就越大。在這個例子中,如果兩個賓客的注意力分數(shù)很高,那么他們可能會被安排在同一個桌子上。在這個過程中,GAT還會考慮到每個桌子的負責人。這個負責人需要有較高的注意力分數(shù),因 為他需要照顧到桌子上的每一個賓客,確保他們都能享受到婚禮。這就像是在圖中找出最重要的節(jié)點。
然而,就像在實際的婚禮座位安排中一樣,GAT也有一些局限性。例如,如果賓客數(shù)量非常多,計算每個賓客的注意力分數(shù)可能會非常復雜。此外,GAT可能會忽略一些重要的信息,例如,一些賓客可能雖然與其他人的關(guān)系不是很好,但是他們可能是婚禮的重要人物。這就需要在計算注意力分數(shù)時,引入更多的信息,例如賓客的地位、他們對婚禮的貢獻等。
總的來說,GAT是一種強大的工具,它可以幫助解決一些復雜的問題。然而,也需要理解它的局限性,并且在使用它的時候,需要考慮到問題的具體情況。通過將GAT與日常生活中的經(jīng)驗相聯(lián)系,可以更好地理解和應用這個強大的工具。接下來本文將著重介紹GAT的工作原理以及部分算法的設計原理和數(shù)學知識。
2 GAT的工作原理
本文根據(jù)提出GAT文章Velickovic et al.(2017)中論述的順序,簡單介紹一下GAT的工作原理。如果初次接觸圖神經(jīng)網(wǎng)絡相關(guān)知識,推薦先移步至DGL Team (2023) and LabML Team (2023)了解基礎相關(guān)工作。
GAT通常由多個單層圖注意力層組成,以下為一個單層圖注意力層的解釋。N個點與F個特征的輸入可以記為:
(1)
這里的作為輸入的特征。這樣的輸入層會對于點生成新的特征,所以輸出結(jié)果可以表示為:
(2)
這里的.為了將輸入的特征轉(zhuǎn)換為高維的特征,這里至少需要一個科學系的線性轉(zhuǎn)換。在 (Velickovic et al.,2017)中,作者對于每一個點使用了一個共享的線性轉(zhuǎn)換方式,同時介紹了一個權(quán)重矩陣
來參數(shù)化線性轉(zhuǎn)換。
2.1自注意力機制(Self-Attention Mechanism)
區(qū)別于注意力機制,自注意力關(guān)注每一個點和自己的關(guān)系,而與每個點間重要關(guān)系不同,按照相應關(guān)系得出權(quán)重,將權(quán)重按照重要關(guān)系賦予點與點之間的連接上。結(jié)合上文提到的W, (Velickovic et al.,2017) 提出了自注意力機制。因此,對于節(jié)點i來說,節(jié)點j的特征重要性可以用以下式子衡量:
(3)
這樣的機制可以讓每個節(jié)點彼此之間產(chǎn)生聯(lián)系,并且摒棄了所有的結(jié)構(gòu)化新消息。
2.2多頭注意力機制(Multi-head Attention)
相較于上述的單一注意力機制中對于h1的處理方法,多頭注意力機制在每一個注意力頭中獲取一個h1k。多頭注意力機制中每個頭的特征值串聯(lián),串聯(lián)后的特征以下方式表示: (4)
在多頭注意力機制下,最終的輸出值將不再是F’個特征,而是KF’ 個特征。對于重復計算得出的結(jié)果可以通過取平均值或者向量的連接(Concatenation)
對于更細致的解釋和數(shù)學推導,有興趣的讀者可以移步繼續(xù)學習研究:(Graph Attention NetworksExperiment 2022;Graph Attention Networks 2022)。
2.3分步圖示
本文參照(LaBonne,2022)的例子,更好地解釋在節(jié)點中如何使用上文中提到的計算方法。對于節(jié)點1的embedding自注意力計算方法:
圖1:例子圖示
(5)
其中αij仍為節(jié)點之間特征關(guān)系的重要性,hi為每個點的屬性向量。基于上面的計算方法,圖注意力機制將計算出節(jié)點1的嵌入值。至于處理式子中的圖注意力相關(guān)系數(shù),要通過‘四步走’(LaBonne,2022):線性轉(zhuǎn)換,激活函數(shù),softmax歸一化,以及多頭的注意力機制來使用神經(jīng)網(wǎng)絡學習和節(jié)點1相關(guān)的注意力分數(shù)。
第一步,對于每個點與點之間連線的重要性計算,可以通過對于兩點間的向量連接 (concatenate) 創(chuàng)造隱藏向量配對。為此,應用linear transformation與一個權(quán)重矩陣Watt來實現(xiàn):
(6)
第二步,添加一個激活函數(shù)LeakyReLU:
(7)
第三步,將神經(jīng)網(wǎng)絡的輸出結(jié)果歸一化,方便進行比較:
歸一化后的注意力分值可以計算和比較,但同時產(chǎn)生了新的問題,即自注意力是非常不穩(wěn)定的。Velickovic et al.,2017)對此提出了給予transformer結(jié)構(gòu)的多頭注意力機制。
(8)(9)
第四步,按照上文提到的多頭注意力機制,這里用作處理和計算注意力繁分數(shù):
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。