I'm working with the GraphSage architecture to compute node embeddings right now. I understand that during training you fine tune the models parameters and then once fine tuned you can run this on a graph to generate the node embeddings. My question revolves around how to generate an embedding for a new node that wasn't part of the graph before. When generating an embedding for a new node, do you also need to give the model that node's neighbors? and if you need that node's neighbors then don't you also need the neighbors of those nodes. During inference on a new node, doesn't this essentially boil down to recomputing all of the embeddings on a graph including the old nodes. If this is the case then how is GraphSage really an inductive learning method.

I heard somewhere that instead of recomputing the whole graph you can grab the immediate neighbors of the new node and pass those neighbors embeddings into the last layer of the graphsage model and this will yield the new embedding for the node in question, but this doesn't really sound correct to me.

Overall how does GraphSage inference work on a new node that wasn't part of the original graph that was present during training?



You must log in to answer this question.