So, i’m successfully using tensorflow.js to predict nodes and edges in a graph, but now wanting to improve this by taking a GCN approach.
I’ve tried to create GCN embeddings by using a message passing approach to generate the embeddings for each node, but I then get totally incorrect recommendations.
In my graph, there are 20+ different node types and 10+ different edge types, and edges are directional, so if I want to create a message passing based representation of nodes, in order to predict edges between 2 given nodes, what should the node embeddings look like? e.g.
say there’s a 2 node graph A, and B, and let’s say its 3 different node types, not 20 for this example
A = [0, 0, 1]
B = [0, 1, 0]
and there’s an edge from B → A
would the embedding for A after 1 round of message passing be:
- [0, 0.5, 0.5] i.e. using an averaging
- [0, 0, 1, 0, 1, 0], i.e. concatenation, where the last 3 onehot slots would be the average of all incoming neighbours.
Thanks a lot,
Greg