[N] Deep Graph Library new release (v0.4)
This new release brings the support of heterogeneous graph. A heterogeneous graph is a graph whose nodes and edges are typed, which is very common in knowledge graph, recommender system and many other scenarios. Using this new feature, DGL brings many new models with efficient implementation. Here are some examples:
Dataset RMSE (DGL) RMSE (Official) Speed (DGL) Speed (Official) Speed Comparison MovieLens-100K 0.9077 0.910 0.0246s/epoch 0.1008s/epoch 5x MovieLens-1M 0.8377 0.832 0.0695s/epoch 1.538s/epoch 22x MovieLens-10M 0.7875 0.777 0.6480s/epoch OOM –
One highlight is that DGL can train the GCMC model on MovieLens-10M dataset in one GPU in only an hour. Previous implementation resorts to load mini-batches on-the-fly from CPU which could take up to 24 hours.
One highlight is that using the heterograph interface, the new code can train an R-GCN on the full AM RDF graph (>5M edges) using one GPU, while the original implementation can only run on CPU and consume 32GB memory. It takes 51.88s to train one epoch on CPU, while the new implementation takes only 0.1781s for one epoch on V100 GPU (291x faster !!).
- Heterogeneous Attention Networks [Code in PyTorch]
- Metapath2vec [Code in PyTorch]
- The metapath sampler is twice as fast as the original implementation.
Apart from the heterogeneous graph support, a new package DGL-KE is released for training popular network embedding models. Currently, DGL-KE supports TransE, DistMult, ComplEx and can train them very fast. It only takes 6.85 minutes to fully train a TransE model using one GPU on FB15K graph. As a comparison, GraphVite takes 14 minutes using four GPUs. More models (RESCAL, RotatE, pRotatE, TransH, TransR, TransD, etc) are under developing and will be released in the future.
All the models and training scripts are available and can be run off-the-shelf. Checkout this exciting new release (https://github.com/dmlc/dgl/releases/edit/v0.4.0) if you are working on network embedding or problems that can be formulated as heterogeneous graphs!