從源頭探討 GCN 的行文思路

極驗發表於2019-08-27

今年,IJCAI、CVPR、MM 上 Graph 相關的論文已經呈現井噴式的增長。相信領域內的小夥伴也都感受到了不同程度的壓力,加緊撰寫或是修改論文。在相關文獻中,有些文章行雲流水,insight 和 GCN 的特點結合的很棒;也有些文章生硬牽強,給人一種不太合理的感覺。

在順藤摸瓜梳理 GCN 的分析視角的過程中,有四個歷史悠久的研究方向與 GCN 的思路異曲同工。雖然他們的光輝暫時被 GCN 掩蓋,但是在優秀的 GCN 論文中,他們分析思路仍被廣泛使用。

下面,我們將從簡單到困難介紹這四種研究方向的基本思想、從該視角對 GCN 的理解,以及適用的領域。希望給正在寫論文和找不到應用方向的小夥伴一些幫助。

PageRank

基本思想

PageRank 是一種用於量化網路中網頁重要程度的演算法。在 PageRank 誕生前,人們通常使用指向一個網頁的網頁數量來衡量該網頁的重要程度(指向一個網頁的網頁越多,人們訪問該網頁的概率越大)。但是這種做法只考慮了連結(一個網頁對另一個網頁的指向)的數量而忽視了連結的質量,即所有連結都是同等重要的。

從源頭探討 GCN 的行文思路

一個大流量網頁的連結和兩個小流量網頁的連結

PageRank 解決了重要性的量化和累積問題,賦予了大流量網頁更高的權重PageRank 的做法是:

從源頭探討 GCN 的行文思路

PageRank 的計算過程

1. 假設世界上總共有 4 個網頁,則在不考慮連結時每個網頁被訪問的概率為 1/4,因此將每個網頁的重要程度初始化為 1/4。將 A 網頁的重要程度用 PR(A) 表示,則 PR(A)=1/4;

2. 假設 A 網頁共指向了 L(A) 個網頁,則每個指向的重要程度(被使用的概率)為 PR(A) / L(A);

3. D 頁面的重要程度可以表示為指向 D 的連結的重要程度之和,即使用下面的公式更新 D頁面的重要程度:

從源頭探討 GCN 的行文思路

4. 根據所有頁面新的重要程度,重複第 2、3 步,直至收斂(更新前的 PR(D) 與更新後的PR'(D) 的差異小與某個設定的閾值)。

結合GCN

考慮 GCN 中的卷積公式從源頭探討 GCN 的行文思路,其中 X 為圖中每個節點的特徵向量,A 為圖的鄰接矩陣, D 為度矩陣,H 為訓練引數(推導過程中省略)。觀察 Conv(X)行的值(即圖中第 i 個節點的特徵向量是如何更新的):

從源頭探討 GCN 的行文思路

可以發現 GCN 和 PageRank 的思路大同小異,只是連結的權重 PR(A) 被替換為了邊的權值 Aij  ,連結數量 L(A) 被替換為了相鄰邊的權值之和 從源頭探討 GCN 的行文思路 。但兩者的本質都是通過邊的權值計算節點的重要程度,並通過迭代(GCN 裡是多層卷積)累積重要程度直至收斂

適用方向

PageRank 方向的研究在大規模 Network 的分析和處理中積累了大量的研究經驗,因此在大規模關係網路的分析和處理中,往往可以找到 PageRank 的相關分析進行解釋。例如,在社交網路、推薦系統、團伙發現等任務中,往往可以強調 User 的重要性程度不同(關鍵使用者、團伙頭目等)。

Attention —— 查詢重要性

基本思想

Attention 是一種能夠進行(一般用於長上下文或狀態集合中)資訊抽取的網路結構。Attention 的實質是使用查詢條件(query)在一個包含大量鍵值對(key-value)的字典中,匹配符合要求的 key 並獲得對應的 value 的過程。令 query 為 Q ,第 i 個 keyKi 對應的 value 為 Vi  ,Attention 機制可以被描述為以下三部分:

從源頭探討 GCN 的行文思路

Attention 機制圖示

1. 計算 query 與所有 key 的相似度,得到評分。以下四種方法都較為常見:

從源頭探討 GCN 的行文思路

2. 使用 Softmax 對評分進行歸一化:

從源頭探討 GCN 的行文思路

3. 將歸一化後的評分與 value 加權求和得到 Attention 的結果:

從源頭探討 GCN 的行文思路

自然語言處理任務中,key 和 value 通常相同,即都為輸入的一系列詞向量,query 為當前狀態。這樣,網路就可以像人類一樣,忽略不想關注的部分,而從需要關注的詞向量提取資訊。

除了這種靜態的 Attention 外,Self-Attention 和 Transformer 也被廣泛使用在自然語言處理計算機視覺任務中。在 Self-Attention 中,原始向量到 query、key、value 的對映是可以通過反向傳播學習的,因此不再需要我們手動定義 query 與 key 的相似度的計算方法。

上文中的操作可以替換為:

從源頭探討 GCN 的行文思路

其中,Wq   、Wk   和 Wv  為訓練引數

從源頭探討 GCN 的行文思路

從 Attention 角度理解 GCN

結合GCN

觀察 GCN 中的卷積公式 從源頭探討 GCN 的行文思路 ,其中 X 為圖中每個節點的特徵向量, A 為圖的鄰接矩陣,為度矩陣, H 為訓練引數(推導過程中省略)。其實,這個過程可以理解為,通過鄰接矩陣 A 定義了當前節點與周圍節點的相似度評分,即 從源頭探討 GCN 的行文思路。使用度矩陣(當前節點所有相鄰邊的權值之和)的倒數 D-1 對評分進行了歸一化。最後通過乘 X 完成了對 value 的提取。

在此基礎上,也有同學提出了 Graph Transformer 進行 Self-Attention。

1. 對於當前節點 i 對應的特徵向量 xi 和相鄰節點 j 對應的特徵向量 xj  ,他們的相似度評分為:

從源頭探討 GCN 的行文思路

2. 使用 Softmax 對評分進行歸一化:

從源頭探討 GCN 的行文思路

3. 將歸一化後的評分與 value 加權求和得到 Attention 的結果:

從源頭探討 GCN 的行文思路

適用方向

Attention 方向的研究在計算機視覺自然語言處理等方向都得到了長足發展。以計算機視覺領域為例子,例如,Attention 可以分為對 channel 和對 feature map 的 attention。feature map 中包含 ROI,而 channel 可以代表顏色、深度、輪廓、時間序列等資訊,這些資訊都可以作為 Graph 中的 Node 進行 Attention。(影像標註、視訊內容分析等)。

Spectral Clustering 

基本思想

Spectral Clustering 是一種用於圖的聚類演算法。圖上的聚類可以理解為圖的割,即將圖劃分為不同頂點集,使得頂點集之間的邊權值和最小。但是,這樣的優化目標容易導致聚類後的到的簇很不均勻(為了最小化割邊的權值,演算法會只割一條邊)。因此,我們需要對優化目標進行歸一化,即在優化聚類目標的同時,需要保證每個頂點集差不多大。

從源頭探討 GCN 的行文思路

Cut 和 Normalized Cut(NCut)

假設我們將圖 A 劃分為 k 個部分 (A1 , A2 ,...,Ak ) 從源頭探討 GCN 的行文思路 表示頂點集 Ai 和其他頂點集之間的邊的權值和。優化目標『將圖劃分為不同頂點集,使得頂點集之間的邊權值和最小』可以表示為:

從源頭探討 GCN 的行文思路

通常,我們使用 vol(Ai即頂點集 Ai 中頂點的度之和度量頂點集的大小(比起頂點數量,我們更關注邊的數量),來對優化目標進行歸一化:

從源頭探討 GCN 的行文思路

目標函式進行化簡:

從源頭探討 GCN 的行文思路

令:

從源頭探討 GCN 的行文思路

可得:

從源頭探討 GCN 的行文思路

fij 代入化簡後的目標函式目標函式可以化簡為:

從源頭探討 GCN 的行文思路

其中,L=D-W 為拉普拉斯矩陣,其中 D 為度矩陣,W 為鄰接矩陣。最小化上式即最小化:

從源頭探討 GCN 的行文思路

約束為  FTDF =1


該式可以轉化為瑞立熵公式,我們令 F=D-1/2G ,上式可以轉化為:

從源頭探討 GCN 的行文思路

由 Rayleigh quotient 可以知道,如果 R(A,x)=(x'Ax)/(x'x) ,那麼 R 的最小值為 A 的最小特徵值,該值在 x 為特徵值對應的特徵向量時取到。


也就是說,我們只需要求 D-1/2LD-1/2 的特徵值並選擇最小的 k 個特徵值對應的特徵向量,(往往無法直接通過維數約簡獲得結果,需要再對其進行一次 KMeans 聚類)就可以得到聚類的結果了。


結合GCN

Spectral Clustering 的實質是使用拉普拉斯特徵對映降維的同時保留區域性特徵(原本距離較近的特徵點在特徵對映之後距離仍然近,原本距離較遠的特徵點在特徵對映之後仍然遠),在此基礎上使用聚類演算法(如KMeans)對降維後的特徵點進行聚類D-1/2LD-1/2  的特徵向量具有保留區域性特徵的作用。因此,GCN 的卷積公式 D-1/2LD-1/2XH 可以近似看做通過仿射變換求特徵向量的過程。

適用方向

Laplacian Eigenmaps 是流形學習的研究內容之一,因此在流行學習任務上(例如人臉識別中人臉特徵隨光照、方向等因素連續變化)往往可以找到 LLP、ISOMAP 的相關分析進行解釋。因此,如果能夠確定資料集的分佈處於一個流形上,或是需要根據相似度手動構建 Graph 時,該研究方向是非常值得借鑑的,研究過程中可以使用視覺化等方法佐證自己的理論(流形的視覺化較為簡單)。

頻域特徵變換

基本思想

與影像訊號處理中的空域訊號(又叫畫素域,描述畫素的特徵,可以對畫素進行疊加)和頻域訊號(描述空域的變化,通過傅立葉變換得到)相似,圖訊號處理中也有頂點域訊號和頻域。其中頂點域訊號對應圖中每個頂點的特徵(例如社交網路中的年齡、愛好等),頻域訊號對應另一種訊號分析維度(圖的傅立葉變換基),描述了相鄰頂點的特徵差異。

從源頭探討 GCN 的行文思路

頻域訊號描述了相鄰頂點的特徵差異

k 為頂點數量,為鄰接矩陣,f 為空域訊號(即節點特徵),相鄰頂點的特徵差異可以被量化為:

從源頭探討 GCN 的行文思路

fij 代入化簡後的目標函式目標函式可以化簡為對該式進行化簡:

從源頭探討 GCN 的行文思路

其中,L=D-W 為拉普拉斯矩陣,其中 D為度矩陣,W 為鄰接矩陣。上式可以轉化為:

從源頭探討 GCN 的行文思路

 FTF =1 ,由 Rayleigh quotient 可以知道,如果 R(A,x)=(x'Ax)/(x'x)  ,那麼 R 的最小值為 A 的最小特徵值,該值在 為特徵值對應的特徵向量時取到;那麼 R 的最大值為 A 的最大特徵值,該值在 x 為特徵值對應的特徵向量時取到。

也就是說,我們只需要求 L 的特徵值 λ,較大的 λ 對應 從源頭探討 GCN 的行文思路 較大,即空域訊號變化較大的高頻訊號;較小的 λ 對應 從源頭探討 GCN 的行文思路 較大,即空域訊號變化較小的低頻訊號。


因而,圖傅立葉變換可以定義為:

從源頭探討 GCN 的行文思路

其中,u(t)(i) L 的第 t 個特徵向量的第 個元素,u*(t)(i) 為其共軛。可以發現,圖傅立葉變換只是將傅立葉變換中的運算元 從源頭探討 GCN 的行文思路 替換為了L 的特徵向量ut  。二者都包含了明顯的頻率資訊,在低頻時震盪較慢(低),高頻時震盪較快(變化率高)。

從源頭探討 GCN 的行文思路

圖上的頻域分解

結合GCN

考慮 GCN 中的卷積公式 從源頭探討 GCN 的行文思路 ,其中 X 為圖中每個節點的特徵向量, H 為訓練引數其實是將頻率資訊 L 進行了對稱歸一化得到  D-1LD-1 (即對稱歸一化的拉普拉斯矩陣),並使用訓練引數對其進行了變換。從而,GCN 具有了圖上的頻域疊加、平移和卷積能力。

適用方向

在四種研究方向中,頻譜理論最為艱澀但是也最 make sense。約簡後的頻譜操作即目前適用最為廣泛的 GCN,相信在未來該領域也仍是研究圖卷積運算元的必經之路。如果實在找不到 GCN 與當前任務的結合點,也可以直接使用該理論引出圖卷積的公式(這樣的頂會論文也不少)。

後記

本文只探討了幾個主要的圖研究方向的視角,其實萬法歸一,沒有提及到的很多領域也有著相似出色的工作,比如 Random Walk 等。在學習過程中希望大家能一起舉一反三啦。

另外,近期準備著寫一些 Vanilla PyTorch 實現圖卷積的最佳實踐教程,就不怎麼玩知乎啦~感興趣的同學可以關注我的 Github: tczhangzhi。此舉並不是妄想重新造像 PyG 或者 DGL 一樣的輪子,而是在參考了各位同學和開源庫的實現後發現,Vanilla PyTorch 實現 GCN 可以讓我們的程式碼更為簡潔和靈活。因此希望總結一些最佳實踐,一方面向大佬致敬,另一方面也為同學們的研究提供方便。

相關文章