論文分享 |Jumping Knowledge Networks

本週介紹一篇 ICML2018 上關於 graph learning 的文章《Representation Learning on Graphs with Jumping Knowledge Networks》。

本文想探討的一個問題就是:雖然圖卷積神經網絡的計算方式能夠適應不同結構的 graph,但是其固定的層級結構以及聚合鄰居節點的信息傳播方式會給不同鄰域結構的節點表達帶來比較大的偏差。在指出這個問題的同時,作者也提出自己的解決方法——jumping knowledge (JK) networks,JK 機制結合上圖卷積模型,在各類實驗上都取得了 state-of-art 的效果。

 

問題

《 Semi-supervised classification with graph convolutional networks》 一文的作者指出,GCN最好的效果是在模型僅有兩層深的時候,層數再增多,效果反而下降。這是什麼原因呢?本文作者畫了下面這幅圖來說明這個問題:

 

 

我們知道GCN的更新方式是每次都融合來自1階鄰居節點的信息,這樣更新k次,就能融合進k-hop 的信息。但是在graph中,不同的節點會有不同的k-hop結構,看一個極端的情況,上圖 a, b 中,以方塊節點爲中心的 4-hop 結構截然不同。

 

a中的節點本身處在dense core 中,所以更新4次後,基本能融合進整個graph的節點信息,如此則會引發 over-smooth 的問題:GCN中,每多一次卷積操作,節點的表達都更global,但是表達更平滑了,這樣導致很多節點,特別是處於dense core一帶的節點表達最後都沒有什麼區分性了,所以對於這樣的節點我們不能使用太多的GCN層數;

 

b中的節點處在 bounded part中,即使更新4次,融合進的節點也寥寥無幾,這樣就會導致 less information 的問題,對於這樣的節點我們希望增加GCN的層數,讓其獲得更充分的信息進行學習。如此,由於節點不同的鄰域結構,GCN建模的時候,我們到底該怎樣選取模型的層數呢?

 

解決方案

說到底,這個問題的本質是有的節點需要多一些local信息,有的需要多一些global信息。本文作者以 layer aggregation 的方式,使得節點最後的表達能夠自適應地融合進不同層的信息,local or global?讓模型自行學習。其方法如下圖所示:

 

底層信息更加 local,高層信息更加 global,JK網絡會將所有layer做一次融合操作得到最終的表達,具體融合的方式有 Concatenation、Max-pooling、 LSTM-attention 三種方式:

 

Concatenation:將各層表達拼接在一起,送入 linear 層分類;

 

Max-pooling:將各層表達聚到一起做一個 element-wise 的 max-pooling 操作,這個方式不會引入任何新的參數;

 

LSTM-attention:這是最複雜的一種聚合方式,爲每一層學習一個 attention score

,同時

,這個score代表了各個層的重要係數。attention score 的學習是將各個層的表達依次送入一個雙向LSTM,這樣每個層都有一個前向表達

和後向表達

,然後將這兩個表達拼接到一起送進一個 linear 層擬合出一個score,然後將這個score進行softmax 歸一化操作就得到了 attention score

,最後對各層表達依據重要係數進行加權求和得到最終表達。

 

可以看到如果加入這個機制後,GCN就同時存在兩種 aggregation 方式,橫向的 neighbor aggregation 是學習結構信息,縱向的 layer aggregation 是讓模型有選擇性地學習結構信息。這樣就再也不會存在GCN模型不能設置很深層數的問題了。

 

 

實驗

與其他論文一樣,本文也是在一下數據集上進行了實驗:

 

 

 

 

其中,Citeseer、Cora 是論文引用的兩個數據集,依據詞袋和論文之間的引用關係對論文進行分類。Reddit 是網絡帖子數據集,依據詞向量和帖子的發帖者關係對帖子進行分類。PPI是蛋白分子交互protein-protein interaction networks,對 protein functions 進行分類。

 

 

 

上圖是在Citeseer 和 Cora 上的實驗結果。相比傳統GCN只能使用2-3層的結構,本文的方法可以使GCN加深到6層,並且效果也有提升。當然LSTM的聚合方式效果並不好,這是因爲這兩個數據集都比較小,複雜的聚合方式很容易過擬合。

 

一樣在Reddit上有提升。

 

 

最後在PPI數據上的效果,由於PPI數據量大,所以LSTM這種複雜的聚合方式就發揮出了最好的效果。

結論

 

針對GCN的問題,其實我們自己在實驗中的做法是對每層增加 auxiliary classifer 的機制進行解決, 而本文使用 layer aggregation 的方式,算得上是一種更加優雅的解決方式,值得我們後續實驗驗證。

論文連接:

http://proceedings.mlr.press/v80/xu18c/xu18c.pdf​proceedings.mlr.press

更多內容,歡迎關注我們的微信公衆號geetest_jy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章