MAGE 1.2 - Meet Temporal Graph Networks and Dynamic Graph Analytics

by
Josip Matak
MAGE 1.2 - Meet Temporal Graph Networks and Dynamic Graph Analytics

More algorithms means more analytic capabilities for developers! Therefore, with MAGE 1.2, Memgraph is expanding our graph analytics library. This release brings the full package of useful graph analytic tools in the terms of dynamic and static graph algorithms, handy utilities, and finally - an introduction to the field of graph machine learning.

Library of dynamic algorithms grows

Last time we announced the addition of the first pack of dynamic algorithms that included the three most popular graph topics - centrality, community, and graph embedding. Dynamic algorithms are the foundation of analytics on streaming use-case, and therefore have a major role in Memgraph. Dynamic algorithms offer analytics on streaming data as the computations are limited only on the updated parts of the graph. That leads to a significant improvement in the computation compared to before when a whole graph recalculation needed to be done.

With MAGE 1.2, the library grows by three dynamic algorithms: Temporal Graph Networks, Dynamic Betweenness Centrality and Dynamic Katz Centrality.

Temporal Graph Networks (TGN)

In Memgraph, we strive towards using novel technologies before anyone else does. This is exactly the case with Temporal Graph Networks. This algorithm makes a big impact on the current graph analytics setting because it combines the best of two worlds - streaming with temporal data and graph machine learning.

Dynamic Betweenness Centrality

One of the most popular centrality measurements is powered by the ratio of shortest paths traversing through the node of interest. Bringing that algorithm to the dynamic setting is quite challenging. By applying the knowledge of the graph theory it is possible to isolate the registered changes and therefore save the computational time and space when applying updates on a changed graph❗

Dynamic Katz Centrality

Exploring a graph can be easier by applying yet another centrality measurement. This one has specific characteristics - it uses the information about the size of paths traversing from the node of interest. The more low-order paths we have, the more central the node is. To adapt the scale and calculate fast, the algorithm is approximative, which means that the calculated centralities may differ from the true values, but the rankings are preserved.

Machine learning joins the crew

As previously mentioned, Memgraph is entering the world of ML. The first such module comes in the form of a Temporal Graph Network. This algorithm, implemented in - Temporal Graph Networks for Deep Learning on Dynamic Graphs by Rossi et.al. announces the possibility of handling different events occurring on graphs, such are node features updates, node deletions, edge deletions and so on, and adapting the under-the-hood model for downstream prediction/classification task. These often occur in real-life examples and therefore this module is a powerful tool to gather intelligence from these events.

Temporal Graph Networks are powered by Pytorch🔥. Memgraph supports running the Python code natively from the included Python interpreter. This is just the beginning of our deeper integration with the machine learning tools. More will come in the future. Stay tuned for updates, or reach out if you have more ideas about how to combine the world of graph data and machine learning 🧠.

More static algorithms with Community Detection on scale

The backbone of our structure are the static algorithms. With each release, the number of supported ones grows. Three more algorithms are now part of the MAGE library:

  1. Louvain community detection
  2. Maximum flow
  3. Static Katz centrality

In MAGE v1.2, after the addition of LabelRank online community detection, the support for static, Louvain community detection finally comes into place. Another widely used real-life analytics is the calculation of maximum flow from the sink node to the target one. Lastly, the development of the dynamic Katz centrality algorithm made it possible to easily integrate the static solution.

Import and export made easier

Finally, the utility also got improved in a form of import and export. With just the one Cypher query the whole graph can be exported in the file and then imported when needed again. Importing and exporting currently work with JSON format, but the next releases should bring much, much more supported formats.

What’s next?

Although there are a bunch of newly supported algorithms in this release, there is much more to come. This release is just the base for what is coming next:

  • Support for huge scale with GPU algorithms
  • The ability to define custom functions used in expressions via a C API.
  • Support for more machine learning on graphs

Now it’s time to try it out. MAGE is now on version 1.2. Don’t hesitate to leave a comment, report an issue or give a star if you support our work ⭐

Also, we are always open for discussion and advice, drop them on our Discord Server and stay informed on everything graph-algorithm-related!

You can see the MAGE 1.2 release overview video below:

mage

Agraphcadabra! 🧙

Table of Contents

Continue Reading