For particular tasks, e.g. graph classification, a hierarchical representation of the input graph in terms of the constituting nodes adopted for nodes cluster learning. Such operation is formally denoted as node clustering and can be iteratively applied in a similar fashion to message-passing to a graph to determine its building node groups. In the domain of neural networks, Differentiable Pooling (DiffPool) [1]} is the first example of node clustering in a differentiable way. In particular, DiffPool views node clustering as a soft node assignment task, where \(n\)  input nodes are associated with \(k\)  node clusters. Given input node embeddings \(H \in \mathbb {R}^{n \times d}\) , the pooling layer is defined as follows:
\( P = softmax(H W_P)\) 
