benedekrozemberczki / karateclub

Karate Club: An API Oriented Open-source Python Framework for Unsupervised Learning on Graphs (CIKM 2020)

Home Page:https://karateclub.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Graph2Vec] the right way to build the attributed graph...

Fay-why opened this issue · comments

commented

hi~ dear author, thanks for your job and I've starred this project!!!

I met a troublesome problem when I try to use graph2vec to infer the whole graph embedding. I have some graph which consists of different size of nodes. But, all these nodes are consist of several node types. I notice that I can add the feature to each node to build graph. I wonder whether building graph in this way can hold the topological structure and node type information together or not.

Actually, I think I should check the WL subgraph-splitting method to check whether the features worked. However, it's too hard for me to understand...

Can you help me?

I am facing the same problem of the attributed graph embedding.

As my understanding, if you add the node features in the graph initiation via NetworkX and set the args atttributed is Ture of the Graph2Vec, it will generate a embedding that both represents the topological structure and node features.

However, im still confused that i don't kown how the node features are embed like the paper illusrtated 4.3.1 using WL kernel. In fact, in the coding, the node with features are encoded to HashMD5 directly, instead of a WL subgraph opearation where each subgraph is encoded to a word.

Would be interested to understand this as well!