By Max de Marzi, Field Engineer | July 6, 2015 Timely, relevant recommendations are the bedrock of business success. No matter whether your startup needs to generate social, retail, logistics or content recommendations, you need a recommendation engine that delivers those perfectly appropriate suggestions in real time. Since you’re trying to build something innovative, it isn’t wise to use a plug-and-play recommendation engine – you need to create your own. Here are a few tips on how to get started.
How Not To Create Your Own Recommendation EngineThere are a lot of simple models out there for creating recommendation engines. But, in order to provide truly relevant and helpful suggestions to your users, you’ve got to avoid these rudimentary methods:
- Popularity-based recommendation engines: Not all users find “Top 10” recommendations to be relevant to their niche interests. Seriously, stop using this model.
- Content-based recommendation engines: These are often limited to recommendations within a single genre and lack flexibility. If users are never suggested something new or delightful, they’ll find your product boring.
- Collaborative filtering recommendation engines: Suggestions based on similar user behavior also lack flexibility and create echo chambers where your users are never recommended fresh content, products or friends.
What to Look for in Building Your Recommendation EngineNow that you know what to avoid when building your recommendation engine from scratch, it’s time to outline what you must have in order to get noticed and remain competitive. Here are four key factors you can’t ignore:
- Collaborative and content hybrid: Neither collaborative filtering nor content-based recommendations are strong enough on their own. Your custom recommendation engine needs to combine the power of both.
- Real-time results: Your recommendation engine must run in real time, not overnight. You don’t read yesterday’s news anymore. (Did you ever?) Don’t give your users yesterday’s recommendations.
- Beyond the blank search box: Guiding your users with timely recommendations is better than letting them needlessly search when you know just what they need.
- Graph database model: Relational databases aren’t fast or efficient enough for your new recommendation engine. You need an engine powered by a graph database in order to stay competitive.
Why Neo4j Is Your Best Bet for Better RecommendationsWith Neo4j, you can build an effective recommendation query in just seven damn lines of code. Not only that, but as a native graph database Neo4j is also the most efficient platform for creating a hybrid recommendation engine that taps into the power of both collaborative filtering and content-based recommendations. Did I mention it’s one of the few databases fast enough to serve up real-time recommendations? You can even get past the “blank slate” problem by leveraging the GraphGists built by our community members. Here’s a movie recommendation GraphGist to show you how easy it is to build and customize your own startup-ready recommendation engine.
Learn More at OSCON 2015At my upcoming OSCON session we will walk through how to get started building your own recommendation engine, complete with step-by-step slides of Cypher queries to make your Neo4j experience as smooth as possible. If you want to build your own recommendation engine but you’re not sure how to start, this session is for you. Register for OSCON 2015 and learn more about my upcoming session here. Still on the fence about how to build your next recommendation engine? Click below to download this white paper and discover why your startup needs to power recommendations with a graph database.
About the Author
Max de Marzi, Field Engineer
Max De Marzi is a graph database enthusiast. He built the Neography Ruby Gem, a REST API wrapper to the Neo4j graph database. He is addicted to learning new things, loves a challenge and finding pragmatic solutions.
From the CEO
Have a Graph Question?
Reach out and connect with the Neo4j staff.Stackoverflow
Share your Graph Story?
Email us: firstname.lastname@example.org