Have you ever wondered how LinkedIn, Twitter or Facebook are able to suggest people you might know?
The underlying concept is fairly straightforward and draws on graph theory to display relationships between people or objects. To put it simply, if you know Pete and Steve, who both know Paul, then it’s more likely that you will also know Paul, either already, or at some point in the future. The more connections you share with another person, the more likely it is that you know them.
This concept is visualized in the image below. It shows an example of the common twitter connections I have with my colleagues Lisa and Farhat.
We built a platform to explore the applications of this principle. We’ve used Twitter data to create custom communities – let’s say I want to see who my colleagues Farhat and Lisa are connected with on Twitter, to see if I can find useful suggestions for people I might like to follow.
Our application will make recommendations on who I should follow on Twitter based on who Farhat and Lisa are already following. The algorithm can be tailored to a specific group of friends (university, friends, family, colleagues etc). This is different to how the big social media companies do it – they apply the algorithm to your entire list of friends or contacts.
We created this platform using neo4j and are now exploring what we can do with this application alpha. The algorithm we’ve created can be applied to find personalised recommendations for anything from music discovery to restaurant recommendations, or even to tackle issues within industries such as health, or security.
For example, a music engine, like Spotify could use this engine to customise recommendations around a specific group of friends music, rather than all your friends. We’re excited about this because it opens up so many possibilities in terms of discovery. If we were to foster serendipity using technology then this could be a central cog.
If you have any ideas or want to chat about this type of application, you can reach us at firstname.lastname@example.org