That is mainly about my sampling strategy. In my model, I assign a latent type for every edge and I will sample negative src/dst nodes according to this latent edge type. If only src and dst nodes are returned by the __call__
function, I will lose this edge information. Because what I construct is multigraph, I will not know how these negative nodes are generated, which will influence my later negative score computing (because also I consider the different update weights for different negative samples, and this weight is computed when sampling).
I’ve taken into account using hetero graph, but I think first it is not an explict edge type but more like a feature, second hetero graph will make my code much more complex, so I prefer to use homogeneous graph.
In fact, I think this is an effective need if you want to consider more flexible negative sampling strategies. And I guess if it is possible to give users power to construct neg graph in __call__
function and directly return it, which maybe a solution.