-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9541594
commit f935e8d
Showing
1 changed file
with
1 addition
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,3 @@ | ||
# Graph Neural Networks - Summer of Code | ||
|
||
Graph neural networks (GNN) are deep learning models well adapated to data rapresented by graphs along with feature vectors associated to nodes and edges. | ||
GNNs are a growing are of research and find many applications in complex networks analysis, relational reasoning, combinatorial optimization, molecule generation, and many other fields. | ||
[GraphNeuralNetworks.jl](https://github.com/CarloLucibello/GraphNeuralNetworks.jl) is a pure Julia package for GNNs already equipped with plenty of features such as many common graph convolutional layers, CUDA support and graph batching for fast parallel operations. There are a number of ways by which the package could be improved: | ||
|
||
- **Adding graph convolutional layers (duration: 175h, expected difficulty: easy to medium):** | ||
While we implement a good variety of graph convolutional layers, there is still a vast zoology to be implemented yet. | ||
|
||
- **Adding models and examples (duration: 175h, expected difficulty: medium):** | ||
As part of the documentation and for bootstrapping new projects, | ||
we want to add fully worked out examples and applications of graph neural networks. | ||
|
||
- **Adding graph datasets (duration: 175h, expected difficulty: easy):** | ||
. Provide julia friendly wrappers for common graph datasets in [`MLDatasets.jl`](https://github.com/JuliaML/MLDatasets.jl). | ||
|
||
- **Supporting heterogeneous graphs (duration: 175h, expected difficulty: hard):** | ||
In some complex networks, the relations expressed by edges can be of different types. | ||
We need to implement an heteroeneous graph type and implement convolutional layers supporting them. | ||
|
||
- **Training on very large graphs (duration: 175h, expected difficulty: medium to hard):** | ||
Graph containing several milions of nodes are too large for gpu memory. Mini-batch training si performed on subgraphs, as in the GraphSAGE algorithm. | ||
|
||
- **Supporting temporal graph neural networks (duration: 175h, expected difficulty: hard):** | ||
We aim at implementing temporal graph convolutions for time-varying graph and/or node features. | ||
|
||
- **Improving perfomance using sparse linear algebra (duration: 175h, expected difficulty: medium to hard):** | ||
Many graph convolutional layers can be expressed as non-materializing algebraic operations involving the adjacency matrix instead of the slower and more memory consuming gather/scatter mechanism. We aim at extending as far as possible and in a gpu-friendly way these *fused* implementation. | ||
|
||
**Recommended skills:** Familiarity with graph neural networks and Flux.jl. | ||
|
||
**Expected results:** New features added to the package along with tests and relevant documentation. | ||
|
||
**Mentors:** [Carlo Lucibello](https://github.com/CarloLucibello) (author of [GraphNeuralNetworks.jl](https://github.com/CarloLucibello/GraphNeuralNetworks.jl).For linear algebra, co-mentoring by [Will Kimmerer](https://github.com/Wimmerer) (lead developer of [SuiteSparseGraphBLAS.jl](https://github.com/JuliaSparse/SuiteSparseGraphBLAS.jl)). | ||
|
||
**Contact:** Feel free to contact us on the [Julia Slack Workspace](https://julialang.slack.com/) or by opening an issue on [GraphNeuralNetworks.jl](https://github.com/CarloLucibello/GraphNeuralNetworks.jl). | ||
Potential candidates to Google Summer of Code's scholarships can find out about the available projects involving GraphNeuralNetworks.jl on the [dedicated page](https://julialang.org/jsoc/gsoc/gnn/) in the Julia Language website. |