Shaowu Xu1, Luo Wang1, Xibin Jia1
This is the official implementation of our proposed two constraint principles for graph augmentation, LDP (low dissimilarity priority) and mutual exclusion (ME).
The backbone models used in the graph classification experiment and node classification experiment are GraphCL and GCA, respectively.
Abstract: Studies on graph contrastive learning, which is an effective way of self-supervision, have achieved excellent experimental performance. Most existing methods generate two augmented views, and then perform feature learning on the two views through maximizing semantic consistency. Nevertheless, it is still challenging to generate optimal views to facilitate the graph construction that can reveal the essential association relations among nodes by graph contrastive learning. Considering that the extremely high mutual information between views is prone to have a negative effect on model training, a good choice is to add constraints to the graph data augmentation process. This paper proposes two constraint principles, low dissimilarity priority (LDP) and mutual exclusion (ME), to mitigate the mutual information between views and compress redundant parts of mutual information between views. LDP principle aims to reduce the mutual information between views at global scale, and ME principle works to reduce the mutual information at local scale. They are opposite and appropriate in different situations.
Fig. 1 The schematic diagram of the proposed LDP principle, taking node dropping as example. The color depth of each node represents its dissimilarity with the anchor nodes, with darker colors indicating lower dissimilarity.
Fig. 2 The schematic diagram of the proposed ME principle, taking node dropping as example. The red and blue nodes represent nodes belonging to different subsets of nodes.
The implementation of the graph data augmentation module based on the proposed constraint principles are now available. You can replace the corresponding code files provided in this repository with the ones in GraphCL or GCA, and use them after debugging.