Explainability of Edge Prediction

Hi there!

I am working on explainability on edge predictions made with a heterogeneous GCN/GAT and was wondering if there are predefined models for this?

GNNExplainer and PGExplainer have build-in functions for graph and node prediction, but lacking the Edge prediction.

While trying to modify the code by myself I stumbled upon the dgl.khop_in_subgraph function which only accepts nodes and not edges.

Do you have any ideas of other methods or how to achieve it?

Many thanks!

Unfortunately, there is no other built-in DGL modules/functions that can satisfy your need. A typical practice for edge prediction is to first extract subgraphs of incident nodes, get node embeddings, and feed them together to a predictor model (e.g., a bilinear model). The principle is to reuse the existing node-wise predictive model for edge prediction. You could try to modify the node-wise explainer model in a similar fashion, i.e., by treating GNNExplainer/PGExplainer as a component.