mtang724 / NWR-GAE

36 stars 8 forks source link

How to use the model for Graph-Level Classification/Clustering. #6

Closed PeterDeSOM closed 1 year ago

PeterDeSOM commented 1 year ago

So far, all that I've found the method for Graph Clustering is actually for node clustering or not a fully unsupervised learning method. It means that they eventually need their label to train at the downstream task.

For example, it is;

I'm finding a fully unsupervised learning method for Graph-Level Clustering/Classification. Or, I'd like to know how to employ your model in a fully unsupervised learning method to classify lots of graph data that cannot be labeled by human efforts.

Question 1. Is your model only for Node-Level Classification? Question 2. If not, could you show me a little direction to use the embedding from your model for the Graph-Level Classification/Clustering without its labels such as KMeans at the downstream task?

mtang724 commented 1 year ago

Hi,

Thank you so much for your question. Actually the proposed method and many other methods (like contrastive learning) are aim to learn representations of nodes instead of classification/clustering on node. Therefore, the main purpose of those unsupervised graph learning methods are not specifically designed for Node-Level Classification/Graph-Level Classification. It's more like get a better embedding or representation of a node or a graph.

To answer you question specifically. For Q1, no, our model is not only for Node-Level Classification, you would use the embedding learned from our model to do other tasks like node clustering, graph-level classification, graph clustering etc. Just simply use some exsiting clustering method like K-Means on the final node embeddings or graph embedding (One method is to aggregate all node embedding). For Q2, as I mentioned in Q1, yes, you could use the node embedding from our model, and use different types of method to aggregate all node embedding by graph level readout function to get a graph-level embedding, then apply methods like K-Means for Graph-Level Classification/Clustering. Sum or Mean or Max, are three simplest graph level readout function. Hope I answered some of your question.