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