This is a republished guest article by Amanda Laucher, Senior Consultant at Neo Technology.
The online dating industry puts people’s interactions and connections at the very heart of its business. And these two concepts are closely linked. For example, if people have a connection to each other, through a shared friend or a shared interest, they are much more likely to get on. However, identifying these links is difficult — we all have a huge variety of interests and preferences that make us unique, and making sense of all this data is a very complex task.
While a logical step would be to list each person’s traits in a big table, perhaps with separate columns for favourite sports team, pet and hobbies, in practice this is all but impossible. The spreadsheet would be enormous, with lots of empty columns where people don’t really have a preference. Understanding which people in this big list would click with each other, and why, would be a very big job indeed. It certainly couldn’t be done in real-time.
This is where graph databases can make a difference. They are designed to cater for scenarios where there could be a very wide variety of information. Graph databases differ from relational databases — as conventional business databases are called — as they specialise in identifying the connections between different concepts. This means they can query and display connections between people, things and interests, very fast indeed.
Using our graph database, Neo4j, we have developed five different ‘graphs of love’ with our dating site customers:
- Friends-of-friends graph — We often say it’s a small world – the right person for you could be closer than you think. Mapping out friends of friends is a good place to start when looking at match-making. This algorithm can easily be created in graph databases, displaying the relationships and connections between different people in a visual way. This idea can be extended another step, to show friends-of-friends-of-friends, which has also proved to have significant impact on the chances of finding a match.
- The passion graph — When searching for potential couples, it is also a good idea to make sure they share common interests and passions. From cooking, to dancing and films, people can outline what makes them tick on their profiles. Alternatively, social network analysis can be used to determine what a person is truly passionate about. Within graph databases you can then search for specific interests or subjects (we call them ‘nodes’) and connections, to see where patterns emerge. For example, you can see which people support Manchester United (or don’t) and match or un-match as necessary!
- The location graph — The majority of us also like convenience. Finding matches in the local area is often a common requirement. Here, spatial and geographical plug-ins to graph databases can be used to see who is close to whom, in a similar way that Tinder works. You can specify cities, towns and common places within graph queries, to uncover ‘local’ matches.
- The safety graph — One of the most important things for dating companies to get right is safety. They need to be able to identify potentially suspicious characters and make sure that customers are never at risk. A common way to do this is to look at the social networks that individuals use. You can use queries within graph databases to see what accounts they have, who they follow and are friends with, and what they post. Key word searches and analysis will soon uncover potential danger zones – for example if they frequently reference drugs or criminal activity!
- The poser graph — This is aimed to filter out rogue profiles – people that say they are single, but their online activity suggests they are only really interested in short-term flings, or will never actually meet up for a date. Some may even be in relationships! You can do this using the social media tracking method outlined above.
The basics of graphs
When it comes to graph databases, it’s all about asking the right questions. Using the control panel of your selected database, you can enter queries to extract certain information and find out connections. For example, you might want to establish the following:
Who are Alice’s friends of friends on Facebook?
How many friends do two people have in common?
Who likes football in Manchester?
You create a query by examining the relationships between nodes. Nodes can be people, objects or subjects, and relationships show the connections they have with each other. For example, various people have a relationship with Manchester United, which could be labelled ‘fan of’. People (nodes) have relationships with other people that might be labelled ‘is friend of’.
Dating sites can also look at more complicated relationships by adding to the data query. For instance, some people might not want to date friends of friends, as this can sometimes be awkward or too close to home, but ‘friends of friends of friends’ can sometimes be more interesting! This is easy to search for by adding more relationships to the nodes and looking for patterns.
What’s the real value?
Dating is a numbers game. Being exposed to a greater number of people, by connecting to social media data, means you will have a much better chance of finding love. The industry is really recognising the power of the graph in helping to identify connections and patterns, and is now using algorithms and graph databases to find the perfect matches for customers. This not only makes the process of finding potential couples easier, but also offers competitive edge. Those that make true love happen will be the go-to site for others to join!
By Amanda Laucher, Senior Consultant at Neo Technology