dmlc / dmlc/dgl

[Feature][Request] Support HeteroGraph for RelGraphConv module

Open
#4,646 5 comments 0 reactions 1 assignee Claimed by @frozenbugs View on GitHub
feature request
Dominant language
Python
Stars
14.3k
Forks
3.1k
PR merge metrics
No merged PRs in 30d

Description

## 🚀 Feature

When it comes to using RelGraphConv module, it seems we always converted to a homogeneous graph for all current examples; while for hetero-graph RGCN, we used another more general module (HeteroGraphConv).

For small problems, converting to homo. graph wouldn't add too much overhead of using RelGraphConv; however, for building larger Hetero-RGCN modules with many relation types, can we also support RelGraphConv-like implementation, meaning, issuing all relations in a batched fashion or a single `segment_MM` operation, instead of iterating over every relation type (HeteroGraphConv)?

## Motivation

With the sacrifice of generality of HeteroGraphConv, this, however, can reduce user's effort of implementing RGCN with hetero-graph, and improve GPU utilization when every single relation is not so intensive.

## Alternatives
For hetero-RGCN, current alternatives are: (1) `to_homogeneous` + `RelGraphConv`, which performs well but only for homogeneous graph; and (2) `HeteroGraphConv`, which is very flexible and customizable, but may be less convenient and efficient.

## Pitch

A RelGraphConv module that can support hetero-graph with single conv but many relation types, for better performance.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.