# How to use Graph Neural Network to predict relationships between nodes with pytorch_geometric?

Let's say I have a partly connected graph that represents members of many unrelated communities. I would like to predict the possible friendships between members of the same community: on an sliding scale between 0 to 10 how likey would they like each other? I have some characteristics of them whether they are christian, or like sports, and also some geographical features, the distance between them.

The connections could be whether or not they are friends on a social media platform. In the networks, they are not necessarily connected with edges.

I am using pytorch_geometric to build a graph for each community and add edges for connections on the social media platform. One edge for each direction, so the graph is bi-directional. Then I create Data() instances.

Data(x=x, edge_index=edge_index)


Where x is an array with node features and edge_index

x = array([[ 0,  4,  6,  0,  0,  1],
[ 1,  4,  6,  0,  0,  1],
[ 2,  4,  6,  0,  0,  1],
[ 3,  4,  6,  0,  1,  0],
[ 4,  4,  6,  0,  1,  0],
...])

edge_index = [[0, 1],
[0, 9],
[0, 10],
[0, 11],
[1, 2],
[1, 7],
[1, 12],
[2, 3],
[2, 6],
[2, 13],
[3, 4],
...]


Not sure what is the best route from here to train on and predict relationships. What is generally used in this case? There are a few options mentioned in the documentation: EdgeConv, DynamicEdgeConv, GCNCon. I am not sure what to try first. Is there anything available that is made for this kind of problems or do I have to setup my own MessagePassing class?

Data() accepts an argument y to train on nodes. Can I actually use pytorch_geometric for this kind of problem or do I have to go back to pytorch?