論文解讀(CSSL)《Contrastive Self-supervised Learning for Graph Classification》
論文資訊
論文標題:Contrastive Self-supervised Learning for Graph Classification
論文作者:Jiaqi Zeng, Pengtao Xie
論文來源:2020, AAAI
論文地址:download
論文程式碼:download
Abstract
動機
-
- 圖分類在真實世界中有廣泛的應用,比如一些化學分子和生物相關的研究,但是這些分子結構往往有很多,但是缺少真是標記,用於訓練的圖數量是有限的,當訓練資料有限的時候,模型就會傾向於過擬合,對測試資料的效能就會大幅度降低;
- 在大多數無監督的圖對比學習中,都是比較關注於圖的區域性資訊,比如節點和子圖,很少有關注於整圖的表示;
貢獻
-
- 提出了 CSSL-pretrain 方法:對可用的未標記圖(不適用人提供的標籤)使用圖編碼器進行預訓練,然後對預訓練的編碼器進行微調。該方法是通過運用對比學習的方式對使得圖編碼器學習剛高階的表示,防止過擬合;
- 提出了 CSSL-Reg 方法:一個基於 CSSL 的正則化器,並同時解決了有監督的分類任務和無監督的CSSL任務。該方法時基於 CSSL 上的依賴資料正則化器,以降低圖編碼器偏向於在小規模訓練資料上的資料不足而導致分類任務風險;
1 Introduction
任務:Graph classification
Self-supervised learning(SSL)是一種無監督學習方法,它在不使用標籤的情況下定義一個輔助任務,並通過解決這些輔助任務來學習資料表示。
2 Methods
在 CSSL-Pretrain 中,我們使用CSSL對圖編碼器進行預訓練,在CSSL-Reg中,我們使用CSSL任務來規範圖編碼器。
2.1 Contrastive Self-supervised Learning on Graphs
對比自監督學習的基本思想是:生成原始資料示例的增強示例,建立一個預測任務來預測兩個增強示例是否來自同一原始資料示例,並通過解決該任務來學習表示網路。
本文采用資料增強策略如 Figure 1 所示:
分別對應於:
-
- 邊刪除(Edge deletion):隨機選擇一條邊,並將其從圖中刪除。例如,在 Figure 1(b) 中,我們隨機選擇一條邊(即節點1和節點3之間的一條邊),並刪除它。
- 節點刪除(Node deletion):隨機選擇一個節點並將其從圖中移除,並刪除連線到此節點的所有邊。例如,在 Figure 1(c) 中,我們隨機選擇一個節點(節點4),刪除該節點和與節點4連線的所有邊。
- 邊插入(Edge insertion):隨機選擇兩個節點,如果它們沒有直接連線,但它們之間有一條路徑,則在這兩個節點之間新增一條邊。例如,在 Figure 1 (d),節點2和節點3沒有直接連線,但它們之間有一條路徑(2→1→3)。我們用一條邊把這兩個節點連線起來。
- 節點插入(Node insertion):隨機選擇一個強連通子圖 $S$,去掉 $S$ 中的所有邊,新增一個節點 $n$,在 $S$ 中的每個節點之間新增一條邊。例如,在 Figure 1 (e)中,節點1、3、4形成一個完整的子圖。我們插入一個新的節點 5,將節點1、3、4連線到節點5,並刪除節點1、3、4之間的邊。
步驟一:給定一個原始圖 $ G$, 有 $t$ 個步驟進行增強,每次進行增強都是基於上一次增強的圖進行增強,並且每次增強的方式是隨機選擇四個增強方式中一個增強方式。
$\begin{array}{l} G_{1}&=&o_{1}\left(G\right)\\G_{2}&=&o_{2}\left(G_{1}\right)\\G_{3}&=&o_{3}\left(G_{2}\right)\\&\vdots& \\G_{t}&=&o_{t}\left(G_{t-1}\right)\\\end{array}$
舉例:
步驟二:定義增廣圖上的對比損失。如果從相同的原始圖建立兩個增廣圖,它們被標記為相似;否則,它們被標記為不同。通過學習了一個網路來擬合這些相似/不同的標籤。
網路由兩個模組組成:一個 graph embedding module $f(\cdot)$ 用於提取圖的潛在表示 $\mathbf{h}=f(\mathbf{x})$。以及一個多層感知器 $g(\cdot)$,以 $\mathbf{h}$ 作為輸入的,並生成另一個潛在表示 $\mathbf{z}=g(\mathbf{h})$ 用於預測是否兩個圖是相似的。給定一個相似的對 $\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)$ 和一組與 $\mathbf{x}_{i}$ 不同的圖$\left\{\mathbf{x}_{k}\right\}$,對比損失可以定義如下:
${\large -\log \frac{\exp \left(\operatorname{sim}\left(\mathbf{z}_{i}, \mathbf{z}_{j}\right) / \tau\right)}{\exp \left(\operatorname{sim}\left(\mathbf{z}_{i}, \mathbf{z}_{j}\right) / \tau\right)+\sum_{k} \exp \left(\operatorname{sim}\left(\mathbf{z}_{i}, \mathbf{z}_{k}\right) / \tau\right)}}\quad\quad\quad\quad\quad(1) $
本文利用 MoCo 優化該對比損失函式:
定義一個與 $\text{batch}$ 大小無關的佇列,該佇列中包含一組動態的增強圖($\text{key}$)。每次迭代過程中,將最新的 $\text{minbatch}$ (一系列增強圖)加入到佇列中,同時最老的 $\text{minbatch}$ 從佇列中剔除。Figure 3 即是 $\text{MoCo }$ 框架,這裡的 $\text{keys}$ 是用動量編碼器編碼的。給定當前 $\text{minbatch}$ 中的一個增強圖(稱之為 $\text{query}$)和一個 $\text{key}$ ,如果他們來自同一個圖,則認為他們是正對,否則認為是負對,計算每個 $\text{query}$ 和 $\text{key}$ 的相似度得分。
2.1.1 CSSL-based Pretraining
框架如下:
第一種方法是使用圖CSSL來對圖編碼器進行預先訓練,並使用這個預先訓練的編碼器來初始化圖分類模型。
prediction head 是一個多層感知器,它以由圖編碼器生成的圖表示作為輸入,並預測兩個增廣圖是否相似。
2.1.2 CSSL-based Regularization
我們提出的第二種方法是 CSSL-Reg,其中我們使用圖的 CSSL 任務來正則化圖的分類模型。給定訓練圖,我們使用圖編碼器對它們進行編碼。然後在圖編碼之上,定義了兩個任務。一種是分類任務,它將一個圖的編碼作為輸入,並預測該圖的類標籤,通過使用一個分類頭預測。另一項任務是圖CSSL,給定來自訓練圖的增廣圖,CSSL預測了兩個增廣圖是否來自同一原始圖。CSSL任務的損失可以作為一個依賴於資料的正則化器來緩解過擬合。CSSL任務有一個 predictive head。這兩個任務共享同一個圖編碼器。CSSL-Reg正式解決了以下優化問題:
$ \mathcal{L}^{(c)}\left(D, L ; \mathbf{W}^{(e)}, \mathbf{W}^{(c)}\right)+\lambda \mathcal{L}^{(p)}\left(D, \mathbf{W}^{(e)}, \mathbf{W}^{(p)}\right) \quad\quad\quad\quad(2)$
其中,$D$ 表示訓練圖,$L$ 表示它們的標籤。$\mathbf{W}^{(e)}$、$\mathbf{W}^{(c)}$、$\mathbf{W}^{(p)}$分別表示圖編碼器、分類任務中的分類頭和CSSL任務中的預測頭。$\mathcal{L}^{(c)} $ 為分類損失,$\mathcal{L}^{(p)}$ 為 CSSL 損失。$ \lambda$ 是一個權衡引數。
2.1.3 Graph Encoder
本文采用 Graph Encoder 是 Hierarchical Graph Pooling with Structure Learning (HGP-SL) encoder 。
HGP-SL 由圖卷積和圖池的交錯層組成
-
- 圖卷積通過利用相鄰節點的嵌入來學習圖中每個節點的多層潛在嵌入;
- 圖池化操作選擇一個資訊節點的子集來形成一個子圖;
如果一個節點的表示可以被它的鄰居很好地重建,那麼它就被認為是資訊量較少的。給定池化後的子圖結構,HGP-SL進行結構學習來細化子圖的結構。HGP-SL計運算元圖中兩個節點的相似度,並在相似度得分足夠大時將它們連線起來。給定改進的子圖,再次進行圖的卷積和池化。卷積、池化和結構細化的層重複多次。讀出函式用於將單個節點的表示聚合為圖的單個表示。一個多層感知器作為分類頭,從圖級表示中預測類標籤。
3 Experiments
3.1 Dataset
3.2 Results