Non-scalar edge features from knowledge graphs

Let’s say we have a knowledge graph where entities are connected by edges of various semantic types (ex: spouseof, synonymof, causedby, etc), and we’d like to perform graph convolution using both node features (some vectorized representation of concept strings) and edge features. What are some ways to represent the edge features? And more generally, what are some approaches to do graph convolution on heterogeneous, multi-relational graphs where the relation types are reasonably complex?

It’s not something I’m working on specifically, but I hope to tackle it in the near future.
I’d appreciate any examples or ideas!

1 Like


I think RGCN in our tutorial can be a starting point for this. Also you can search recent paper about using graph to do recommendation system. Many cases there are trying to solve your questions.

I am also using a knowledge graph to generate recommendations. It will be great if DGL develops support for knowledge graphs straight out of the box.

What kind of support do you need for knowledge graphs? Currently DGL support RGCN-like models that could deal with different edge types.
As for Knowledge Embeddings, we are working on efficient Negative Sampler and distributed training. For now, you could manually build a sampler that samples a positive graph and negative graph per batch, and use apply_edges to compute scores on each edges.

Let me go through the RGCN tutorial. That could help me in developing ideas on recommendation system using knowledge graphs. Thank you.