Given a directed, edge attributed graph G, where the edge attribute is a probability value, and a particular node N (with binary features f1 and f2) in G, the algorithm that I want to implement is as follows:

  1. List all the outgoing edges from N, let this list be called edgelist_N.
  2. For all the edges in edgelist_N, randomly assign to the edge attribute a probability value such that the sum of all the probabilities assigned to the edges in the edgelist_N equals to 1.
  3. Take the top x edges (x can be a hyperparameter).
  4. List the nodes in which the edges from step 3 are incoming.
  5. Construct a subgraph with node N, the nodes from step 4 and the edges from step 3.
  6. Embed the subgraph (preferably using a GNN) and obtain it's embedding and use it with a classifier to predict say f1/f2.
  7. Propagate the loss so as to update the edge probabilities, that was assigned randomly in step 2.

I do not understand how to do step 7, i.e. update the edge attribute with the loss, so that edges which are more relevant in constructing the subgraph can be assigned a higher probability value.

Any suggestion would be highly appreciated. Thank you very much.

  • $\begingroup$ Hi and welcome to AI SE? Is this a homework problem? Is this related to geometric deep learning? What's the name of the course? $\endgroup$ – nbro Mar 9 at 23:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.