This Week in Neo4j – Deep Feature Learning for Graphs, Decision Trees, Customer Journey Analytics

Welcome to this week in Neo4j where we round up what’s been happening in the world of graph databases in the last 7 days.

This week we have Deep Feature Learning for Graphs with the DeepGL algorithm, Decision Trees, Customer Journey Analytics, Data Vault in Neo4j, the GA of Neo4j-OGM 3.1.3, a fascinating post about NBA champions, and more!

This week’s featured community member is Reshama Shaikh.

Reshama Shaikh - This Week’s Featured Community Member

Reshama Shaikh – This Week’s Featured Community Member

Reshama is a bio statistician and data scientist. She is also a organizer of the meetup groups Women in Machine Learning and Data Science NYC and the NYC PyLadies

We met Reshama last year at GraphConnect when we hosted a Women in Data Science meetup together. This year, Reshama attended the conference, participated in a panel on ‘Welcoming Diversity’ for our Ecosystem Summit, and co-hosted GraphHack: Technology Buzz Word Bingo!

Reshama has been a great supporter of the Neo4j community and we grateful for all that she has done. Reshama also wrote a great blog on her GraphConnect experience this year!

On behalf of the Neo4j community, thanks for all your work Reshama!

Graph-Based Customer Journey Analytics with Neo4j

On Thursday Jesús Barrasa presented a webinar, in which he showed how Neo4j can be used for Customer Journey Analytics.

Jesus shows how we can explore our customer data and execute high level churn analysis as well as testing basic hypotheses using a combination of the Cypher query language and Neo4j Bloom visualization tool.

If you want to see a more extensive worked example of this technique, Adam Cowley wrote a post a few months ago showing how to analyse Google Analytics data with Neo4j.

Decision Trees in Neo4j

Max De Marzi shared the slides from his GraphConnect talk – Decision Trees in Neo4j, Building dynamic expert systems and rules engines.

In the talk Max shows how to build a dynamic rules engine that’s able to determine whether a person should be allowed to enter a bar or not.

Max achieves this using Neo4j’s Traversal framework – an API that gives you very fine grained control over graph traversals. It’s all then neatly packaged in a user defined procedure.

You can read more about Max’s approach in a couple of blog posts he wrote in early 2018:

Data Vault on Neo4j, SDN Release, GraphQL on CodeSandbox Containers

DeepGL on Neo4j – Deep Feature Learning for Graphs

We’ve heard a lot of interest in running graph embedding algorithms on Neo4j and over the last few months Pete Meltzer and I have written a user defined procedure that implements the DeepGL algorithm.

One of the things we liked about this algorithm is that it’s designed to keep memory usage low and also returns the names of the features that it comes up with, which is helpful for model understanding.

We’re using the nd4j library to do matrix calculations and Pete spent a lot of time working out how to fine tune our use of that library so big thanks to him for that!

You can download the code for the algorithm from our experimental ml-models GitHub repository.

We’d love to hear if the algorithm is useful as part of your machine learning workflow, so let us know how you get on by sending an email to or

Teammates of Champions, Causal Cluster on AWS, Graphs for Software Analytics

Next Week

What’s happening next week in the world of graph databases?

Date Title Group

October 4th 2018

GraphTalk Brussels

Graph Database – Brussels

Tweet of the Week

My favourite tweet this week was by Anthony J Clink:

Don’t forget to RT if you liked it too.

That’s all for this week. Have a great weekend!

Cheers, Mark