Question about link prediction

I am doing a link prediction task in DGL, based on Link Prediction using Graph Neural Networks — DGL 0.6.1 documentationthis example
In my case, the graph has 250 edges, 10 edges of the whole number of edges do not have a fixed status. Meaning that; they can be positive or negative! My task is to predict the status of those 10 edges. The point is that based on the status of those 10 edges, the node’s features can be different. So the question is how can I feed different samples of features to the GNN?
The second question is, should I put these 10 edges as my testing dataset?

Thank you

I don’t understand your setting. If your task is to predict the status of those 10 edges, than the status (negative or positive) should be the edge label. What do you mean by “node’s features can be different” here?

As you mentioned, I want to predict the edge label. The label of 10 edges in the graph. It means that my graph can have different topologies based on different edge labels. Right?
What I mean by different “node features” is that: input feature X1 represents topology number 1, X2 represents topology number 2, X3 represents topology number 3, and …
So there are different node features that represent the graph for different topologies.
Is “link prediction task” able to do this?
If I am wrong please give me some advice on how to do this task.

Thank you

My understanding is that instead of storing all the topologies in one graph, you could store them in separate ones. In this way, each graph can have different node features and topologies. You then predict edge labels on each graph independently. To me, the task is more an edge classification task than a link prediction. Your setting is also different than the one in our user guide since you have multiple graphs, but the general idea should be applicable.

Thank you for your response.
When you are predicting whether an edge is existed or not, this would be a link prediction task not an edge classification task. Right?

One more thing. What you mean by storing separate graphs is to execute separate link prediction tasks?

correct

Correct. It will be separate edge prediction tasks (from my understanding) in your setting.

The next question I’d like to ask regards how powerful the GNNs are:
Let’s assume that we have trained the GNN with node’s feature X1, and the model is able to predict missing edges with high performance. Now for some reason, some nodes’ features change which can be represented as X2 (accordingly, there might be new edges in the graph). Can we use the old trained model to predict the missing edges? Or do I have to train a new GNN model based on node’s feature X2?
In my opinion, if GNNs are able to mine the structure of a network, they must be able to perform well in these situations.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.