最近讀了一些圖網路和分子預測相關的文章,注意到這篇:InfoGraph,ICLR20的spotlight,做的是圖的表示學習,重點在於無監督/半監督場景下得到資訊豐富的graph-level embedding。它提出的無監督模型屬於最近很火的自監督學習裡的Contrastive Learning based methods,半監督模型則借鑑了知識蒸餾裡的Mean Teacher的做法。

Contrastive learning有很多文章介紹,這裡根據我的理解簡單梳理一下。區別於生成式的自監督方法,如AutoEncoder透過重建輸入訊號獲取中間表示,Contrastive Methods透過在特徵空間建立度量,學習判別不同型別的輸入,不需要重建訊號而又充分挖掘了無標籤資料之間的特徵差異。

Contrastive learning和圖表示學習

from https://ankeshanand。com/blog/2020/01/26/contrative-self-supervised-learning。html

比較早的一篇在06年Lecun的文章就有提出,思想是讓無監督模型輸出0,1分類值,學習判別成對樣本是否相似,設計的損失函式由定義的相似資料對以及不相似資料對的距離度量組合得到。

word2vec(2013),doc2vec(2014),以及拓展到圖應用上的graph2vec(2017),也可以看做屬於contrastive methods

它們的學習任務是根據學習到的embedding去預測未來的context資訊,這裡簡單理解為預測條件機率

p(cont_{t+k} | embed_t)

然而直接建模條件機率可能會忽略對輸入資料的關注,造成資訊的損失。以word2vec為例,輸入的word embedding具有的位元位一般大於輸出的context word的位元位,而且機率模型還要關注context word之間的複雜關係,減弱了對word embedding的建模能力。基於這一點,Deepmind的Contrastive Predictive Coding (CPC) 提出了透過最大化

embed_t

論文裡的

c_t

)和

cont_{t+k}

(論文裡的

x_{t+k}

)之間的互資訊,而不是直接預測條件機率分佈的形式,來儘可能地豐富word embedding的資訊量。最終它們證明了最佳化這個互資訊等價於最佳化一個類似交叉熵形式的損失函式 InfoNCE loss:

L_N=-E_X[log\frac{f_k(cont_{t+k}, embed_t)}{\sum_{cont_j∈X}f_k(cont_j,embed_t)}]

embed_t

構成Pair的target context是正樣本

cont_{t+k}

,其它N-1個

cont_j

負樣本,

f_k

函式是對於互資訊中log項,即density ratio的一個引數化estimation。根據這樣一個結論,最大化互資訊的任務仍然依賴於模型去判別正、負樣本,進而最佳化損失函式。

Yoshua Bengio組的 Deep InfoMax (DIM) 將影象的global feature當做

embed_t

,正樣本建模為來自相同影象的local feature,負樣本為另一張輸入影象的local feature,在上面InfoNCE的損失函式框架下做無監督學習最佳化互資訊。

Contrastive learning和圖表示學習

Deep Graph Infomax 和 InfoGraph ,是上面的DIM在graph representation上的兩篇拓展應用,分別關注於 node-level 和 graph-level 的embedding。方法上雖然是DIM的拓展應用,不過應用在這裡又有獨特的含義,比如InfoGraph這篇,最大互資訊可以理解為減小從node embedding經過readout函式得出graph embedding這個過程所導致的資訊丟失。graph 和 contrastive learning 之間的結合,感覺也會是一個研究topic。