Reverse edges for GNN #4010
-
I saw a question about reverse edge and now I just wanna make sure of this. When we do reverse edge for heterogenous graph, we do it because we want to update the reverse relationship for better embeddings for nodes (Am I correct?). Then, should we do the reverse for all the possible edge types in the graph or add the reverse edge for the task goal edge? For example, I am doing a link prediction task for recommending movies to users. Then Should I do the reverse edge of [movie -> watched-by -> user] which is the reverse edge of [user-> watched -> movie]? I guess I better do all the reverse edges if there are other edges regardless of the task target edge to update all properly. But just to be sure and in case I am wrong, I would like to learn from this. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Adding reverse edges simply helps in the message passing phase. Imagine the case without reverse edges, then only one node type (in your case movie), will update its node embeddings. The user node embeddings will never get updated since they do not receive any information, e.g., there exists no edge type pointing to them. As such, one should do it for all edges, not only for the task goal edge. |
Beta Was this translation helpful? Give feedback.
Adding reverse edges simply helps in the message passing phase. Imagine the case without reverse edges, then only one node type (in your case movie), will update its node embeddings. The user node embeddings will never get updated since they do not receive any information, e.g., there exists no edge type pointing to them. As such, one should do it for all edges, not only for the task goal edge.