acbull / pyHGT

Code for "Heterogeneous Graph Transformer" (WWW'20), which is based on pytorch_geometric
MIT License
775 stars 162 forks source link

A doubt about meta-relationship #23

Closed Luokejin closed 3 years ago

Luokejin commented 3 years ago

Thanks for your inspiring work. I have begun to learn something about heterogeneous network recently. And when I contrast the meta-relationship in this paper with the triplet relation in Knowledge Graph, I feel confused about the difference between them. Even I can't make a distinction between the meta-path's method with the meta-relation's, when the input of their model both are some adjacency matrixs and nodes. Where does the meta-path function appear in model ? I have to admit that these questions looks ridiculous, but still waiting your answer. Thanks.

acbull commented 3 years ago

The concepts of meta relation and meta path are indeed similar to the KG triplet. The main difference of KG and heterogeneous graphs, from my understanding, is that the node of KG doesn't have too many rich features, and people have to use their concrete type to determine their meaning. While for heterogeneous graph, each node still have a feature with a type, and type is only helpful to better represent these nodes.

My labmate has a paper that combines these two concepts to get better KG representation: https://dl.acm.org/doi/pdf/10.1145/3292500.3330838, probably it can help you understand the difference better.

Luokejin commented 3 years ago

I have to apologize for interrupting you again. I got a new problem with your code :( When I run the code, it occurred an error like that: IndexError: Dimension out of range (expected to be in range of [-1, 0], but got -2)

I also tracked the function of propagate() from the source code of class messagepassing() under torch.geometric.nn. But I feel sorry about that I can't understand the problem function self.collect() on function propagate().

I have checked my dataset shape as ,

but I still can't figure out what's main problem. May you know how to solve this problem? Thank you very much.

acbull commented 3 years ago

It is due to the pytorch_geometric version. Please utilize exactly the same environment as we provide.

Luokejin commented 3 years ago

Thanks, It is truely due to torch_geometric version.