FilippoMB/Spectral-Clustering-with-Graph-Neural-Networks-for-Graph-Pooling

Results about graph signal reconstruction

wangfuli opened this issue · 2 comments

Dear authors,

Thank you so much for making this work public!

I've been trying to reproduce the graph signal reconstruction results from your paper using the same ring and grid dataset you generated. For the graph u-net, using the built-in model in pyg (torch_geometric.nn.GraphUNet), I was getting results that look better than what you reported in the paper. The code and the result I obtained can be found here (https://drive.google.com/drive/folders/1WXe18TUM0J9dPQOHP8PVkWFcrF41sisV?usp=sharing)

If you do not have time to check the code, would you mind sharing the code you used to reconstruct graph signals for topKPooling? I can cross-check if I messed up with something.

Thank you so much for your attention.

Best regards,
Fuli

Dear Fuli,

I think the problem is that the Unet you are using has residual connections. In an autoencoding task, it makes no sense because the model can just learn to skip the bottleneck by using the residual connections and just copy the input into the output.

I didn't have time to look into it closely, but maybe you can replicate our setting by removing the residual connections in the Unet architecture. For example, in graph_unet.py replace line 122

x = res + up if self.sum_res else torch.cat((res, up), dim=-1)

with

x = up

Let me know how it goes!

Filippo

Thank you so much for the prompt response, Filippo! Indeed, it is due to the residual connection you mentioned, now I am getting results with severe structure damage on both the ring and the grid networks. The damage pattern is not identical to what you reported, but I think some randomness should be allowed here. Thank you again for your response!