Knowledge Graph Convolutional Networks (KGCNs)
This release marks the second major iteration of KGCNs. This new KGCN framework is designed to provide a versatile means of performing learning tasks over a Grakn knowledge graph, including:
- Predicting the existence of new Relations between existing Concepts. These relations can be binary, **ternary** (3-way) or **N-ary**, since Relations in Grakn are graph Hyperedges.
- Predicting the values of Attributes attached to other Concepts
- Predicting a subgraph of Entities, Relations and Attributes to complete a known graph
- Predicting erroneous data in a graph
- Predicting many connections within a graph such that the graph as a whole is optimised to satisfy some criteria
- Creating embeddings for Grakn Concepts
At present, Relation prediction is well-implemented. The other functionalities mentioned here will be tackled in future releases.
Methodology
A KGCN is now a learned message-passing graph algorithm. Neural network components are learned, and are used to transform signals that are passed around the graph. This approach is convolutional due to the fact that the same transformation is applied to all edges and another is applied to all nodes. It may help your understanding to analogise this to convolution over images, where the same transformation is applied over all pixel neighbourhoods.
This approach leverages DeepMind's [Graph Nets](https://github.com/deepmind/graph_nets) framework, detailed in their paper. This work is a generalisation of graph learning approaches, which offers plenty of ways to structure learning tailored to various knowledge graph problems.
Data Generation
This release includes a methodology for automatically generating small Grakn Knowledge Graphs based on a Probability Mass Function. This is used for the KGCN example, and allows us to be certain that the graphs we learn on contain sufficient information for good predictions to be made by the learner.
Example
The KGCN project comes with a full example that acts as a template for users to create a KGCN for their own domain.
Limitations
Presently KGCNs can ingest Entities, Relations and Attributes. However, attribute values can only be ingested if they are categorical in nature, since only categorical embedding components are included. Support for embedding continuous valued attributes will be added in the next release.