I have tried to differentiate between the examples idgnn_link.py and gnn_link.py. There are few notables differences:
idgnn_link.py uses NeighborLoaders for train, validation, and test sets. gnn_link.py uses LinkNeighborLoader for train, and a pair of source and destination NeighborLoaders for each validation and test set.
LinkNeighborLoader has the share_same_time argument.
If I understand correctly, idgnn_link.py samples nodes, and the model learns the embeddings of nodes in the destination tables. Meanwhile, for gnn_link.py, there are sampled positive and negative destination nodes. In this file, the model minimizes the scores, which is calculated by element-wise product of source and destination embeddings.
Please correct me if I understand it wrongly. My main questions are:
Which setting is officially adopted for Link Prediction in the RelBench paper?
What is the intuition behind share_same_time argument for LinkNeighborLoader? And why does it affect how negative scores are calculated? Below is a snippet from gnn_link.py.
I could not find details about samplers for each dataset in the RelBench paper. I realized there are other arguments that are not covered in the paper, such as temporal_strategy, subgraph_type, etc.
Hi,
I have tried to differentiate between the examples
idgnn_link.py
andgnn_link.py
. There are few notables differences:idgnn_link.py
uses NeighborLoaders for train, validation, and test sets.gnn_link.py
uses LinkNeighborLoader for train, and a pair of source and destination NeighborLoaders for each validation and test set.share_same_time
argument.If I understand correctly,
idgnn_link.py
samples nodes, and the model learns the embeddings of nodes in the destination tables. Meanwhile, forgnn_link.py
, there are sampled positive and negative destination nodes. In this file, the model minimizes the scores, which is calculated by element-wise product of source and destination embeddings.Please correct me if I understand it wrongly. My main questions are:
share_same_time
argument for LinkNeighborLoader? And why does it affect how negative scores are calculated? Below is a snippet fromgnn_link.py
.temporal_strategy
,subgraph_type
, etc.