【論文閱讀|淺讀】GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training
攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第4天,點選檢視活動詳情
前言
Hello! 非常感謝您閱讀海轟的文章,倘若文中有錯誤的地方,歡迎您指出~ 自我介紹 ଘ(੭ˊᵕˋ)੭ 暱稱:海轟 標籤:程式猿|C++選手|學生 簡介:因C語言結識程式設計,隨後轉入計算機專業,獲得過國家獎學金,有幸在競賽中拿過一些國獎、省獎...已保研。 學習經驗:紮實基礎 + 多做筆記 + 多敲程式碼 + 多思考 + 學好英語! 唯有努力💪
知其然 知其所以然!
本文僅記錄自己感興趣的內容
簡介
原文連結:http://dl.acm.org/doi/10.1145/3394486.3403168
會議:KDD '20: Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (CCF A類)
程式碼:http://github.com/THUDM/GCC
年度:2020/08/20
ABSTRACT
圖表示學習已經成為解決現實問題的強大技術
各種下游圖學習任務受益於其最近的發展,如節點分類、相似度搜索和圖分類
然而,現有的圖表示學習技術專注於領域特定的問題,併為每個圖資料集訓練一個專用模型,這通常不可轉移到域外資料
受自然語言處理和計算機視覺在預訓練方面的最新進展的啟發,我們設計了圖對比編碼(GCC) -一個自我監督的圖神經網路預訓練框架,以捕獲跨多個網路的通用網路拓撲屬性
我們將GCC的訓練前任務設計為網路中的 子圖例項( subgraph instance) 判別,並利用對比學習使圖神經網路能夠學習內在的和可轉移的結構表徵
我們在三個圖學習任務和十個圖資料集上進行了廣泛的實驗
結果表明,GCC在不同的資料集上的預訓練可以達到與任務特定的和從零開始訓練的對手競爭或更好的效能 這表明訓練前和微調正規化為圖表示學習提供了巨大的潛力
1 INTRODUCTION
Hypothesis
假設:具有代表性的圖結構模式具有通用性和可跨網路轉移性
在過去的二十年中,網路科學研究的主要焦點是發現和抽象不同網路的普遍結構特性 - 例如,Barabasi和Albert指出,幾種型別的網路,如全球資訊網、社交網路和生物網路,都具有無標度特性,即它們的度分佈都遵循冪律[1] - Leskovec等人。[28]發現很多實圖都滿足緻密收縮定律。網路中其他常見的模式包括小世界[57]、motif分佈[31]、社群組織[34]和核心-外圍結構[6],在概念層面驗證了我們的假設
然而,在過去的幾年中,受深度學習的近期進展[4,30]的推動,圖學習的正規化已經從結構化模式發現轉變為圖表示學習
具體來說 - 圖表示學習將圖的頂點、邊或子圖轉換為低維嵌入,從而保留圖的重要結構資訊 - 然後,從輸入圖中學習到的嵌入可以輸入到標準的機器學習模型中,用於同一圖上的下游任務。
然而,到目前為止,大多數圖上的表示學習工作都集中在單個圖或一組固定的圖的表示學習上,非常有限的工作可以轉移到域外的資料和任務上
本質上,這些表示學習模型旨在學習每個資料集專用的網路特定結構模式
例如 - [39]在Facebook社交圖上學習的DeepWalk嵌入模型不能應用於其他圖
鑑於(1)圖表示學習的侷限性和(2)常見結構模式發現的現有技術
一個自然的問題出現了:我們可以普遍地從網路中學習可轉移的代表性圖嵌入嗎?
類似的問題也在自然語言處理[10]、計算機視覺[17]和其他領域被提出和追求
迄今為止,最強大的解決方案是在自我監督的設定下,從大型資料集預訓練一個表示學習模型
預訓練的思想是使用預訓練模型作為一個良好的初始化,以便在看不見的資料集上對(不同)任務進行微調
例如,BERT[10]設計語言模型預訓練任務,從大型語料庫中學習Transformer編碼器[52] 預先訓練的Transformer編碼器通過微調適應各種NLP任務[55]
Presented work
受此啟發以及普遍圖結構模式的存在,我們研究了訓練前表示學習模型的潛力,特別是用於圖的圖神經網路(GNNs)
理想情況下,給定一組(不同的)輸入圖,如Facebook社交圖和DBLP合著者圖
我們的目標是用一個自我監督任務在這些輸入圖上預訓練GNN,然後針對不同的圖學習任務對它進行微調,如US-Airport圖上的節點分類
大概意思就是:在一個非常大的資料集上先訓練,得到一些模型引數,然後在其他資料集上在之前的這個引數基礎之上再進行微調就好了
在這裡,GNN訓練前的關鍵問題是:如何設計訓練前任務,使網路內和跨網路的通用結構模式能夠被捕獲和進一步傳遞?
在這項工作中,我們提出了圖對比編碼(GCC)框架來學習跨圖的結構表示
在概念上,我們利用對比學習[58]的思想,設計了圖形訓練前任務作為例項判別 - 它的基本思想是從輸入圖中取樣例項,將每個例項視為一個獨立的類 - 並學習對這些例項進行編碼和區分
具體來說,GCC要學習可轉移結構模式需要回答三個問題 - (1)例項是什麼? - (2)判別規則是什麼? - (3)如何編碼例項?
在GCC中,我們將訓練前任務設計為子圖例項判別
它的目標是根據其區域性結構來區分頂點(Cf. Figure 1)
對於每個頂點,我們從其多跳ego網路中抽取子圖作為例項
GCC旨在區分從某個頂點取樣的子圖和從其他頂點取樣的子圖
最後,對於每個子圖,我們使用一個圖神經網路(具體來說,GIN模型[59])作為圖編碼器,將底層結構模式對映到潛在表示
由於GCC不假設頂點和子圖來自同一個圖,因此圖形編碼器被迫在不同的輸入圖中捕獲通用模式
給出了預訓練的GCC模型,我們將其應用於不可見的圖來解決下游任務。
據我們所知,迄今為止,結構圖表示訓練前領域的工作非常有限 - 最近的一個是設計策略,在特定域(分子圖)[19]的節點屬性標記圖上預訓練gnn - 最近的另一項工作是InfoGraph[46],它專注於學習領域特定的圖級表示,特別是用於圖分類任務 - 第三項相關工作由Hu等人[20]完成,他們定義了幾個圖學習任務,如預測中心性分數,以在合成圖上預訓練GCN[25]模型
我們進行了大量的實驗來證明GCC的效能和可轉移性
我們在不同型別的圖集合上預訓練GCC模型,並將預訓練模型應用於10個新的圖資料集上的3個下游圖學習任務
結果表明,GCC模型取得了與最先進的任務特定圖表示學習模型相競爭或更好的結果,這些學習模型是從零開始訓練的
例如,對於US-Airport網路的節點分類 GCC在Facebook、IMDB和DBLP圖上的預訓練優於直接在US-Airport圖上訓練的GraphWave[12]、ProNE[64]和Struc2vec[43],實證地證明了我們一開始的假設
總結起來,我們的工作有以下四個方面的貢獻: - 我們將圖神經網路跨多個圖進行預訓練的問題形式化,並確定其設計挑戰 - 我們將訓練前任務設計為子圖例項判別,從多個輸入圖中獲取通用和可轉移的結構模式 - 我們提出了圖對比編碼(GCC)框架來學習結構圖表示,它利用對比學習來指導訓練前的學習 - 我們進行了大量的實驗,以證明對於域外任務,GCC可以提供與專用圖特定模型相當或更優越的效能
2 RELATED WORK
2.1 Vertex Similarity
在過去的幾年裡,網路/圖中頂點相似性的量化已經得到了廣泛的研究
頂點相似性的目標是回答[26]之類的問題
如“這兩個頂點有多相似?”或“其他哪個頂點與這些頂點最相似?”相似的定義在不同的情況下可能是不同的
我們簡要回顧了以下三種類型的頂點相似性
Neighborhood similarity
鄰域相似性的基本假設,即鄰近性,是緊密連線的頂點應該被認為是相似的 - 早期的鄰域相似性度量包括Jaccard相似性(計算共同鄰域)、RWR相似性[36]和SimRank[21]等 - 最近開發的網路嵌入演算法,如LINE [47], DeepWalk [39], node2vec[14],也遵循鄰域相似性假設
Structural similarity
與鄰域相似度通過連通性來衡量相似度不同,結構相似度甚至不假設頂點是連通的
結構相似的基本假設是具有相似區域性結構的頂點應該被認為是相似的
關於結構相似性建模的研究有兩種方向 - 第一行定義了基於領域知識的代表性模式。例如頂點度、結構多樣性[51]、結構孔[7]、k-core[2]、motif[5,32]等。因此,這種型別的模型,如Struc2vec[43]和RolX[18],通常都包含明確的功能 - 第二項研究利用譜圖理論來模擬結構相似性。最近的一個例子是GraphWave[12]
在這項工作中,我們專注於結構相似性
與上述兩種型別不同的是,我們採用對比學習和圖神經網路從資料中學習結構相似性
Attribute similarity
現實世界的圖形資料往往具有豐富的屬性,如引文網路中的文字、社會網路中的人口統計資訊、分子圖中的化學特徵等
最近的圖神經網路模型,如GCN [25], GAT [53], GraphSAGE[16,62]和MPNN[13],利用附加屬性作為邊資訊或監督訊號來學習進一步用於度量頂點相似性的表示
2.2 Contrastive Learning
對比學習是一種從資料中獲取相似性的自然選擇 - 在自然語言處理中,Word2vec[30]模型利用擬合詞和負取樣來學習詞嵌入 - 在計算機視覺中,大量的工作[15,17,49,58]通過最小化同一影象的兩個檢視之間的距離來學習自我監督影象表示
在這項工作中,我們採用了Oord等人[35]的InfoNCE損失和Wu等人[58]的例項識別任務
2.3 Graph Pre-Training
Skip-gram based model
早期對預訓練圖表示的嘗試是受Word2vec[30]啟發的基於跳躍圖的網路嵌入模型
如LINE [47], DeepWalk [39], node2vec[14]和metapath2vec[11]
它們大多數遵循鄰域相似性假設
上述方法學習到的表示與用於訓練模型的圖捆綁在一起,不能處理樣本外問題
我們的圖對比編碼(GCC)在兩個方面不同於這些方法 - 首先,GCC關注結構相似性,結構相似性與鄰域相似性正交 - 其次,GCC可以跨圖形轉移,甚至轉移到訓練前從未見過的圖形
Pre-training graph neural networks
最近有幾項研究將語言訓練前的[10]引入了訓練前的圖神經網路(GNN) - 例如,Hu等。[19]在標記圖上預訓練GNN,特別是分子圖,其中每個頂點(原子)有一個原子型別(如C、N、O),每個邊(化學鍵)有一個鍵型別(如單鍵和雙鍵)。訓練前的任務是恢復隱藏分子圖中的原子型別和化學鍵型別 - 另一項相關的工作是Hu等人[20]的,它定義了幾個圖學習任務來預訓練GCN[25]
我們的GCC框架在兩個方面與上述方法有所不同 - 首先,GCC適用於一般的未標記圖,特別是社會和資訊網路 - 其次,GCC不涉及顯式的特徵化和預定義的圖學習任務
3 GRAPH CONTRASTIVE CODING (GCC)
在本節中,我們形式化了圖神經網路(GNN)的預訓練問題
為了解決這個問題,我們提出了圖形對比編碼(GCC)框架
圖2展示了GCC的訓練前和微調階段的概述
3.1 The GNN Pre-Training Problem
從概念上講,給定一組來自不同領域的圖,我們的目標是預先訓練一個GNN模型,以一種自我監督的方式捕獲這些圖的結構模式
該模型應該能夠受益於不同資料集上的下游任務
潛在的假設是,在不同的圖中存在共同的和可轉移的結構模式
如motifs,,這在網路科學文獻[28,32]中很明顯
一個示例場景是,我們在帶有自我監督的Facebook、IMDB和DBLP圖上預訓練GNN模型,並將其應用於US-Airport網路進行節點分類,如圖2所示
形式上,GNN預訓練問題是學習一個函式$f$,它將一個頂點對映到一個低維特徵向量,使$f$具有以下兩個性質: - 首先是結構相似性,它將具有相似區域性網路拓撲的頂點在向量空間中相互靠近; - 二是可轉移性,可相容預訓練時不可見的頂點和圖
因此,嵌入函式$f$可用於各種圖學習任務,如社會角色預測、節點分類、圖分類等
值得注意的是,這項工作的重點是在沒有節點屬性和節點標籤的結構表示學習,這使得它不同於圖神經網路研究中常見的問題設定
此外,我們的目標是預訓練一個結構表示模型並將其應用於不可見的圖,這與傳統的網路嵌入[14,39 - 41,47]和最近的嘗試不同(將帶屬性的圖作為輸入並將其應用於特定域[19]的預訓練圖神經網路)
3.2 GCC Pre-Training
給定一組圖,我們的目標是預先訓練一個通用圖神經網路編碼器,以捕獲這些圖背後的結構模式
為了實現這一點,我們需要為圖結構資料設計適當的自我監督任務和學習目標
受最近CV[17,58]和NLP[9,30]成功的對比學習的啟發,我們建議使用子圖例項區分作為我們的訓練前任務和InfoNCE[35]作為我們的學習目標
訓練前任務將每個子圖例項視為自己的一個不同類,並學習區分這些例項
- 其承諾是,它可以輸出捕獲這些子圖例項之間相似性的表示[17,58]。
- 從字典查詢的角度來看,給定一個 編碼查詢$q$ 和一個包含$K + 1$個編碼鍵${k_0,···,k_K}$的字典,對比學習查詢$q$在字典中匹配的單個鍵(用$k_+$表示)
在這項工作中,我們採用InfoNCE,這樣:
其中 - $τ$為 temperature hyper-parameter - $f_q$和$f_k$是兩個圖神經網路,將查詢例項$x^q$和每個金鑰例項$x^k$ 編碼為$d$維表示,用$q = f_q (x^q)$和$k = f_k (x^k)$表示
要在GCC中例項化每個元件,我們需要回答以下三個問題: - Q1:如何在圖中定義子圖例項? - Q2:如何在圖中或圖中定義(不)相似例項對,例如,對於查詢$x^q$,哪個鍵$x^k$是匹配的? - Q3:什麼是合適的圖形編碼器$f_q$和$f_k$ ?
值得注意的是,在我們的問題設定中,並沒有假設$x^q$和$x^k$來自同一個圖
接下來,我們通過相應的回答上述問題,提出GCC訓練前框架的設計策略
Q1: Design (subgraph) instances in graphs.
對比學習框架的成功很大程度上依賴於資料例項的定義
CV和NLP任務可以直接將例項定義為影象或句子
但是,這種思想不能直接擴充套件到圖資料,因為圖中的例項沒有明確的定義
此外,我們訓練前的重點是純粹的結構化表示,沒有額外的輸入特性/屬性,這使得自然選擇單個頂點作為例項是不可行的
因為它不適用於區分兩個頂點
為了解決這個問題,我們建議使用子圖作為對比例項,將每個單個頂點擴充套件到其區域性結構
具體來說,對於某個頂點$v$,我們定義一個例項為它的$r-ego$網路:
Definition 3.1. A r-ego network
設$G = (V, E)$是一個圖 - 其中$V$表示頂點的集合 - $E⊆V × V$表示邊的集合
對於一個頂點$v$,其 $r-neighbors$定義為$S_v = {u:d(u, v)≤r}$ - 其中$d(u, v)$是圖$G$中$u$到$v$之間的最短路徑距離 - 頂點$v$的$r-ego$網路,用$G_v$表示,是由$S_v$誘導的子圖
圖3的左面板顯示了 2-ego 網路的兩個例子
注意:$r-ego$網路是$S_v$
誘導的子圖
GCC將每個$r-ego$網路視為自己的一個不同類別
,並鼓勵模型區分相似例項和不同例項
Q2: Define (dis)similar instances
接下來,我們將介紹如何定義(不)相似例項 - 一對是相似例項 - 一對是不相似例項
在計算機視覺[17]中,同一幅影象的兩個隨機資料增強(例如,隨機裁剪、隨機調整大小、隨機顏色抖動、隨機翻轉等)被視為一個類似的例項對
在GCC中,我們將同一個$r-ego$網路的兩個隨機資料增強作為一個相似的例項對,並將資料增強定義為圖取樣[27]
圖取樣是一種從原始圖中獲得代表性子圖樣本的技術
假設我們想要擴充頂點$v$的$r-ego$網路($G_v$), GCC的圖取樣遵循三個步驟: - 重啟隨機漫步(RWR)[50] - 子圖歸納 - 匿名化[22,29]
(1) Random walk with restart.
我們從ego頂點$v$開始在$G$上進行隨機遊走,遊走以與邊權值成比例的概率迭代到它的鄰域
此外,在每一步中,步數返回起始頂點$v$的概率為正
每一次遊走,會有一定的概率會到起點
(2) Subgraph induction
帶重啟的隨機遍歷收集了$v$周圍的一個頂點子集,用$\tilde S_v$表示
由$\tilde S_v$誘導的子圖$\tilde G_v$ 被認為是$r-ego$網路$G_v$的增強版
這一步也被稱為誘導子圖隨機遊走抽樣(ISRW)
(3) Anonymization
我們匿名化取樣圖$\tilde G_v$,以任意順序將其頂點重新標記為${1,2,···,|\tilde S_v |}$
我們重複上述過程兩次,以建立兩個資料擴充套件
它們形成一個類似的例項對$(x^q, x^{k+})$
如果兩個子圖從不同的$r-ego$網路擴充套件而來,我們將它們視為具有$k \neq k_+$的不同例項對$(x^q, x^{k})$
值得注意的是,上述所有圖操作—重啟隨機漫步、子圖歸納和匿名化—都可以在DGL包中使用
Discussion on graph sampling.
在重啟抽樣的隨機遊走中,重啟概率控制著GCC對其進行資料增廣的自我網路半徑(即$r$)
在這項工作中,我們跟隨邱等人[42]使用0.8作為重啟概率
對於鄰域取樣[16]和 forest fire取樣[27]等其他圖形取樣演算法,本文提出的GCC框架具有一定的靈活性。
Discussion on anonymization
現在我們討論上述過程中匿名化步驟背後的直覺
這一步的目的是保留底層的結構模式,並隱藏精確的頂點索引
這種設計避免了學習子圖例項判別的簡單解決方案,即簡單地檢查兩個子圖的頂點索引是否匹配
此外,它促進了學習模型在不同圖上的轉移,因為這樣的模型不與特定的頂點集相關聯
Q3: Define graph encoders
給定兩個取樣子圖$x^q$和$x^k$, GCC分別通過兩個圖神經網路編碼器$f_q$和$f_k$對其進行編碼
從技術上講,這裡可以使用任何圖形神經網路[4]作為編碼器,並且GCC模型對不同的選擇不敏感
在實際應用中,我們採用了最新的圖神經網路模型——圖同構網路(GIN)[59]作為我們的圖編碼器
回想一下,我們在訓練前關注的是結構表示,而大多數GNN模型需要頂點特徵/屬性作為輸入
為了彌補這一差距,我們建議利用每個取樣子圖的圖結構來初始化頂點特徵
Definition 3.2. Generalized positional embedding.
具體地,我們定義廣義位置嵌入: 對於每個子圖,其廣義位置嵌入為其歸一化圖拉普拉斯運算元的頂特徵向量
形式上,假設一個子圖有鄰接矩陣$A$和度矩陣$D$,我們對其歸一化圖拉普拉斯$s.t. I−D^{−1/2}AD^{−1/2} = U ΛU^{T}$進行特徵分解
- 其中 $U$[54]中的頂特徵向量(top eigenvectors)
定義為廣義位置嵌入
廣義位置嵌入的靈感來自於NLP[52]中的Transformer模型,其中使用不同頻率的正弦函式和餘弦函式來定義單詞序列中的位置嵌入
這樣的定義與圖拉普拉斯式有很深的聯絡
事實上,當$1≤k≤n, 1≤i≤n$時,路徑圖的拉普拉斯運算元有特徵向量:$u_k(i) =cos (πki/n−πk/2n)$ - 這裡$n$是路徑圖中的頂點數 - $u_k(i)$是$U$的第$i$行和第$k$列,即$U = [u_1···u_n]$
上述事實表明,序列模型中的位置嵌入可以看作是路徑圖的拉普拉斯特徵向量
這啟發我們將位置嵌入從路徑圖推廣到任意圖
使用歸一化拉普拉斯圖而不是非歸一化圖的原因是路徑圖是正則圖(即,具有恆定的度),而現實世界的圖往往是不規則的,並且有傾斜的度分佈
除了廣義的位置嵌入外,我們還加入了頂點度數[59]的一熱編碼和自我頂點[42]的二值指示符作為頂點特徵
最終的$d$維輸出向量經過圖形編碼器編碼後,用L2-Norm[17]進行歸一化
A running example
我們在圖3中展示了一個GCC預訓練的執行示例
為了簡單起見,我們將字典大小設定為3
- GCC首先從圖3左側的一個$2-ego$網路中隨機增加兩個子圖$x^q$和$x^{k0}$
- 同時,另兩個子圖$x^{k1}$和$x^{k2}$是由噪聲分佈生成的——在本例中,它們是由圖3左側面板上的另一個$2-ego$網路隨機擴充套件而來的
- 然後兩個圖形編碼器$f_q$和$f_k$將查詢和三個鍵對映到低維向量$q$和${k_0, k_1, k_2}$
- 最後,公式1中的對比損失促使模型識別$(x^q, x^{k0})$為相似的例項對,並將它們與不同的例項(即${x^{k_1}, x^{k_2}})$區分開來
Learning
在對比學習中,需要維護$K$大小的字典和編碼器
理想情況下,在公式1中,字典應該覆蓋儘可能多的例項,使$K$非常大
然而,由於計算的限制,我們通常設計和採用經濟的策略來有效地構建和維護字典,如端到端(E2E)和動量對比(MoCo)[17]
我們討論這兩種策略如下: - E2E對例項的小批進行取樣,並將同一小批中的樣本視為字典。然後根據$f_q$和$f_k$的引數對公式1中的目標進行優化,$f_q$和$f_k$都可以通過反向傳播一致地接受梯度更新。E2E的主要缺點是字典的大小受到批處理大小的限制 - MoCo的設計目的是在不增加反向傳播成本的情況下增加字典的大小。具體地說,MoCo維護著前幾小批次樣品的佇列。在優化過程中,MoCo只通過反向傳播更新$f_q$的引數$θ_q$。梯度下降法不更新$f_k$的引數$θ_k$。 - He等人。[17]對$θ_k$提出了一個基於動量的更新規則 - 形式上,MoCo通過$θ_k←mθ_k +(1−m)θ_q$更新$θ_k$,其中$m∈[0,1)$是動量超引數。 - 上述動量更新規則將更新從$θ_q$逐漸傳播到$θ_k$,使$θ_k$平穩一致地演化。 - 綜上所述,MoCo以犧牲字典一致性為代價獲得了更大的字典大小,即字典中的鍵表示使用平滑變化的鍵編碼器進行編碼
除了E2E和MoCo,還有其他的對比學習機制來維護字典,如記憶庫[58]
最近,何等人。[17]表明,在計算機視覺任務中,MoCo是一種比記憶庫更有效的選擇
因此,我們主要關注GCC的E2E和MoCo
3.3 GCC Fine-Tuning
Downstream tasks.
圖學習的下游任務通常分為圖級和節點級兩類,其目標分別是預測圖的標籤或節點的標籤 - 對於圖級任務,可以通過GCC對輸入圖本身進行編碼來實現表示 - 對於節點級任務,節點表示可以通過編碼其$r-ego$網路(或由其$r-ego$網路擴充套件而來的子圖)來定義
在這兩種情況下,編碼後的表示將被送入下游任務,以預測特定於任務的輸出
Freezing vs. full fine-tuning
GCC為下游任務提供了兩種微調策略——凍結模式和完全微調模式 - 在凍結模式中,我們凍結了預訓練的圖形編碼器$f_q$的引數,並將其作為一個靜態的特徵提取器,然後在提取的特徵上訓練適合於特定下游任務的分類器 - 在全微調模式下,用預先訓練的引數初始化的圖形編碼器$f_q$與分類器一起在下游任務上進行端到端訓練
關於微調的更多實現細節見第4.2節。
GCC as a local algorithm
作為一種圖演算法,GCC屬於區域性演算法範疇[45,48],其中演算法只涉及對輸入(大規模)網路的區域性探索
因為GCC是通過基於隨機行走的圖取樣方法來探索區域性結構的
這樣的特性使GCC能夠擴充套件到大規模的圖學習任務,並對分散式計算設定友好
4 EXPERIMENTS
在本節中,我們評估GCC在三種圖學習任務上的效能——節點分類、圖分類和相似度搜索,這三種任務通常被用於圖學習演算法的基準測試[12,43,46,59,60]
我們首先在4.1節中介紹了自我監督的訓練前設定,然後在4.2節中報告了GCC對這三個圖學習任務的微調結果
4.1 Pre-Training
datasets
我們在6個圖資料集上進行了自我監督的預訓練,這些資料集可以分為兩組:學術圖和社交圖。 - 對於學術圖,我們分別從NetRep[44]和SNAP[61]和NetRep[44]收集了兩個DBLP資料集和一個Academia資料集 - 至於社交圖,我們從NetRep[44]收集Facebook和IMDB資料集,以及SNAP[3]的LiveJournal資料集
表1給出了訓練前資料集的詳細統計
Fine-tuning.
正如我們在3.3節中討論的,我們對GCC採用了兩種微調策略
我們選擇scikit-learn[38]包中的邏輯迴歸或SVM作為凍結策略的線性分類器4
至於完整的微調策略,我們使用學習率為0.005的Adam優化器,學習率在前3個階段預熱,3個階段後線性學習率衰減
4.2 Downstream Task Evaluation
4.2.1 Node Classification
基線可以分為兩類。 - 在第一類中,基線模型從未標記的圖資料中學習頂點/圖表示,然後將它們輸入邏輯迴歸或支援向量機。例如DGK[60]、Struc2vec[43]、GraphWave[12]、graph2vec[33]和InfoGraph[46]。具有凍結設定的GCC屬於這一類 - 在第二類中,模型採用端到端監督的方式進行優化。例如DGCNN[66]和GIN[59]。具有完整微調設定的GCC屬於這一類。
為了進行公平的比較,我們將除graph2vec和InfoGraph5之外的所有模型的表示維度都固定為64
4.2.2 Graph Classification
4.2.3 Top-k Similarity Search
4.3 Ablation Studies
訓練的效果
目前還不清楚GCC的良好效能是由於預先訓練還是由於其GIN[59]編碼器的表達能力
為了回答這個問題,我們用隨機初始化的GIN編碼器完全微調GCC,這相當於從頭開始訓練一個GIN編碼器
我們將這個模型命名為GCC (rand),如表2和表3所示
在除IMDB-B之外的所有資料集中,GCC (MoCo)的效能都優於隨機初始化的同類
這表明預訓練總是比隨機初始化為微調提供了一個更好的起點
對於IMDB-B,我們將其歸因於訓練前資料和下游任務之間的域轉移。
對比損失機制
人們普遍認為,MoCo比E2E[17]具有更強的表達能力,更大的字典大小K總是有幫助的
我們還觀察到這樣的趨勢,如圖4所示
然而,大字典大小的影響並不像在計算機視覺任務[17]中報告的那樣顯著 - 例如,MoCo (K = 16384)只是在精確度方面略微優於MoCo (K = 1024)——US-Airport的絕對增益為1.0,COLLAB的絕對增益為0.8 - 然而,訓練MoCo比訓練E2E更經濟。E2E (K = 1024)需要5天16小時,而MoCo (K = 16384)只需要9小時
Momentum
正如MoCo[17]中提到的,動量$m$在學習高質量表徵方面起著微妙的作用
表5顯示了不同動量值在US-Airport和COLLAB資料集上的準確性
對於US-Airport, m = 0.999達到了最好的效能,這是[17]中期望的值,表明構建一個一致的字典對於MoCo是很重要的
但是在COLLAB中,動量值似乎越大,效能越好
此外,我們沒有觀察到設定m = 0時[17]報告的“訓練損失振盪”。GCC (MoCo)收斂性較好,但精度較差。
Pre-training datasets
我們減少了用於預訓練的資料集的數量
為了避免列舉組合空間,我們對錶1中的前幾個資料集進行了預訓練,並分別報告了US-Airport和COLLAB上10倍的驗證精度得分
例如,在訓練前使用一個數據集時,我們選擇了學術界;
當使用兩個時,我們選擇學術界和DBLP (SNAP)
我們提出普通最小二乘(OLS)估計之間的關係資料集的數量和模型效能
如圖5所示,我們可以觀察到在使用更多的資料集進行預訓練時,準確率有提高的趨勢
平均而言,在US-Airport和COLLAB上,再新增一個數據集可以分別獲得0.43和0.81的準確率(%)
5 CONCLUSION
在這項工作中,我們研究了圖神經網路的預訓練,目的是表徵和轉移社會和資訊網路中的結構表徵
我們提出了圖對比編碼(GCC),這是一個基於圖的對比學習框架,用於從多個圖資料集預訓練圖神經網路
在10個圖資料集上的3個圖學習任務中,預先訓練的圖神經網路達到了與從零開始監督訓練的同類競爭的效能
在未來,我們計劃在更多樣化的圖資料集上對更多的圖學習任務進行基準測試,比如蛋白質-蛋白質關聯網路
讀後總結
2022/07/14 第一次閱讀
這篇文章寫的很好 思路也很清晰 值得學習!
目前理解了一點點淺層次,GCC框架主要分為兩部分 1. 預訓練 2. 針對下游任務微調
預訓練思路大概是: - 對$G$提取$r-ego$網路,作為例項(instance),同時找出相似/不相似的例項對 - 然後再對每一個例項求其頂點特徵向量,用於作為GNN的輸入,得到其例項的編碼 - 再利用 InfoNCE 作為 優化目標(emm, 這裡還沒有看,不太懂),訓練GNN模型 - 這樣就可以得到字典中的鍵值(嵌入向量),便於之後第二步(下游認為微調)的進行
感覺預訓練大概就是訓練出一個字典
在用於下游任務的時候,根據任務型別的不同
使用節點的$r-ego$網路編碼,同時更新$f_q$和$f_k$的引數(此時依據新網路來調整引數)
得到最終的模型引數,得到嵌入
結語
文章僅作為個人學習筆記記錄,記錄從0到1的一個過程
希望對您有一點點幫助,如有錯誤歡迎小夥伴指正
- 結構特徵提取演算法:ReFex
- 【論文閱讀】Force2Vec:Scalable force-directed graph representation learning and visual
- 【論文閱讀】Degree-Based Random Walk Approach for Graph Embedding
- 【論文閱讀|】SIR-GN: A Fast Structural Iterative Representation Learning Approach For
- 【論文閱讀|淺讀】Embedding Node Structural Role Identity Using Stress Majorization
- 【論文閱讀|讀】LONE-NMF:Lower order information preserved network embedding based on no
- 【論文閱讀|淺讀】GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training
- 【論文閱讀|淺讀】 RIDεRs:Role Discovery in Graphs using Global Features: Algorithms, App
- 【論文閱讀|深讀】RDAA:Role Discovery-Guided Network Embedding Based on Autoencoder and A
- 【論文閱讀|深讀】GAS:Role-Oriented Graph Auto-encoder Guided by Structural Information
- 【論文閱讀|淺讀】DeepEmLAN: Deep embedding learning for attributed networks
- 【論文閱讀|深讀】 GraphSAGE:Inductive Representation Learning on Large Graphs
- 【論文閱讀|深讀】RolNE: Improving the Quality of Network Embedding with Structural Role
- 【論文閱讀|深讀】DANE:Deep Attributed Network Embedding
- 【論文閱讀|深讀】SDNE:Structural Deep Network Embedding【2】
- 【論文筆記】struc2vec: Learning Node Representations from Structural Identity【1】
- 【論文閱讀|深讀】DRNE:Deep Recursive Network Embedding with Regular Equivalence【2】
- 【論文閱讀|深讀】LINE: Large-scale Information Network Embedding【2】
- 【機器學習|數學基礎】Mathematics for Machine Learning系列之圖論(11):尤拉圖
- 【論文閱讀|深讀】LINE: Large-scale Information Network Embedding【1】