Hey Antonio, Amazing videos and thanks for this! However, in this tutorial, as pointed out by @Arjay2186, the model is just learning to predict a lot of non-existant edges and the accuracy seems high; F1 score would be a better metric in this case. For anyone following these tutorials I suggest you compute pos_logits and neg_logits separately and then concatenate them, also add a margin (~1.5) to neg_logits, the model should learn better features. You can also try to make the model more complex (more convolutions, bigger feature dimension, etc.). This will bring down the number from 3M+ to a comparable magnitude. I tried this and it worked.
Great tutorials Antonio. If your dataset is an edge-list with edge-level features and no node level features (e.g., no x feature matrix), can this still work with this autoencoder?
Hi Antonio. Amazing videos. One question, however: The final decode_all returns overall 3M+ edges in the final_edge_index. Isn't it a bit too much given that the initial edge_index has just 10.5k?
Great video. May i ask a question: i have a KG stored in networkx graph G. how should i load it in your notebook to perform link prediction? I am not sure if i need to convert from networkx format to cora dataset type format.
Hello Antonio, how could we modify the train-test edge splitting function for directed graphs? It does not work correctly for those and I am quite stuck..
(i am sure you're great at all of this but i am talking about the delivery of the explanation). The z value in decode() where it takes the value of edge index generated in the line before needs better intuitive explanation. Totally lost there.
Hey Antonio,
Amazing videos and thanks for this!
However, in this tutorial, as pointed out by @Arjay2186, the model is just learning to predict a lot of non-existant edges and the accuracy seems high; F1 score would be a better metric in this case. For anyone following these tutorials I suggest you compute pos_logits and neg_logits separately and then concatenate them, also add a margin (~1.5) to neg_logits, the model should learn better features. You can also try to make the model more complex (more convolutions, bigger feature dimension, etc.). This will bring down the number from 3M+ to a comparable magnitude. I tried this and it worked.
These videos are gold
Great tutorials Antonio. If your dataset is an edge-list with edge-level features and no node level features (e.g., no x feature matrix), can this still work with this autoencoder?
Hi Antonio! Great video, I have not understood if after training, the decode_all step is supposed to give you new links, not seen during training.
Hi Antonio. Amazing videos. One question, however: The final decode_all returns overall 3M+ edges in the final_edge_index. Isn't it a bit too much given that the initial edge_index has just 10.5k?
I have the same issue. Was this ever resolved?
Is this prediction or the classification? I need to know how to predict an existing of the future edge, based on the historical data how can I do it?
Great video. May i ask a question: i have a KG stored in networkx graph G. how should i load it in your notebook to perform link prediction? I am not sure if i need to convert from networkx format to cora dataset type format.
what is positive edges and negative edges in the graph by example?
Hi, thank you for the videos. Quick question: why don't you use DataLoaders to split the downloaded dataset into batches before training? Thanks
you are right :)
if you keep following our videos, you'll find it out :)
Hello Antonio, how could we modify the train-test edge splitting function for directed graphs? It does not work correctly for those and I am quite stuck..
Hi, one simple idea, could be the one to copy the function from the repository, modify it, and use the modified version locally.
(i am sure you're great at all of this but i am talking about the delivery of the explanation). The z value in decode() where it takes the value of edge index generated in the line before needs better intuitive explanation. Totally lost there.