What are recommendation systems and how do they work?

Pierre de Poulpiquet
mediarithmics_what is?
6 min readJan 24, 2018

Every day, when we are shopping online, browsing Netflix, streaming music, and even typing a note on a smartphone, whether we realize it or not, we are contributing to and taking advantage of recommendation system algorithms.

A few decades ago, people typically relied on their friends, family or experts to advise them on what books they should read, movies they should watch, or restaurants they should try. But these days, we are much more likely to rely on taste-making algorithms to help guide which purchases we make. And we rely on these algorithms so often and so naturally that we may not even notice we’re doing it anymore. We add a book to our cart on Amazon and then — bam — another suggested book pops up on the screen and we think, “Hey, that one actually looks pretty interesting, too” and we add it to our cart, too, without a second thought.

Recommendation systems with strong algorithms are at the core of today’s most successful online companies such as Amazon, Google, Netflix and Spotify. By endlessly recommending new products that suit their customers’ tastes, these companies provide a personalized, attentive experience across their brand platform, effectively securing customer loyalty.

This article aims to help you understand the inner mechanisms of recommendation systems and why, for example, you shouldn’t let your little nephew use your Netflix account.

We’ll outline three major algorithm frameworks and, to do so, we’ll imagine a fictitious bookstore in which we are recommending books to our customer, Bob.

Recommending a book, the ‘straightforward’ way

The first algorithm we could use would be recommending books similar to the last few he enjoyed (aka item-based recommendations). This is a fairly intuitive algorithm: we first find out what books he recently read and liked then we find similar books based on what we know about those books.

Factors we’d consider include the topic, genre, year of publication, author, price, and so forth. The technique is pretty simple and you don’t need much data — you just need to have a list of all the books available in the store along with the key characteristics and then you could run a “similar items” search.

However, this approach has a few drawbacks. By only recommending similar items, you never open up customers to different types of books that they might be interested in. Let’s say, for instance, that Bob tells you he just finished and loved All the Light You Cannot See, a popular, Pulitzer-prize winning novel about WWII. A similar items search might recommend other war fiction as opposed to, say, other Pulitzer-prize winning or literary novels, which could be a better fit for Bob.

But… What if we compared our customers to find the similar ones and use this information?

That leads us to the next algorithm — finding similar customers and recommending what they liked (aka user-based collaborative filtering). Using this algorithm, we can store and then access customers’ reading histories and use their collective tastes to inform recommendations to customers who’ve read and liked one or more of the books in those reading histories. In many ways this algorithm is stronger than the first one as the books recommended don’t necessarily have to include any of the same factors as the books we are using as the basis for our recommendation (for example the topic, genre, year of publication, author, and price could be wildly different).

This algorithm has some downsides, too, however. In order to find out what previous customers liked or disliked, you must have a rating system such as the number of stars a product gets on Amazon or Netflix. The constraint of relying on a rating system is that products without user ratings won’t be included in the collaborative filtering process. Therefore, you’d have to either force recommendations through push surveys or add a few dummy ratings to an unrated product in the system. Another downside is that this kind of algorithm tends to form groups of users that look alike and that will, over time, get the same recommendations meaning suggested products therefore become less personalized over time.

How to do it at scale (e.g. when I have too many customers)?

This brings us to a third kind of algorithm — finding items with similar reviews (aka item-based collaborative filtering). If you have way more customers than you do products, this algorithm would be a good fit for you. A few years ago, Amazon ran into this same issue. Going through an entire list of previous customers to come up with recommendations was way too cumbersome so Amazon built an algorithm that would, instead, tap into both customers’ reading and ratings histories.

Let’s say Bob was shopping for science fiction books. Amazon’s algorithm would not scour the database for customers who look like Bob and liked science fiction books. Instead, it will try to find similarities between books themselves by looking at their ratings. So, for example, if all Science Fictions fans are rating the classic Dune with five stars but are only giving Neuromancer three stars, Amazon would understand that those books are ‘alike’ as they are rated the same way by the same people (SF fans). Among all the books similar to the ones Bob read, Amazon would then recommend the one with the highest ratings.

This algorithm has many of the same drawbacks as user-based collaborative filtering but it is one of the most advanced algorithms in use and was revolutionary at the time it was first introduced by Amazon.

Giving your customers effective recommendations is one of the key ways to boost user-end experience in order to retain your customers and keep them happy. You could adopt a third-party recommendation engine but that likely won’t give you the flexibility to customize the recommendation system to the specifics of your business.

If you’d like to add a custom-built recommendation system to your system, mediarithmics is here to help (and free up your time so you can focus on the important stuff — tuning the algorithm and monitoring its results!). Our platform offers you:

  • a place to collect, store and analyze all of your data including the capacity to use JavaScript Tag to track your website audience, Mobile SDK to track your apps audience, catalog APIs to upload your products/services listing, and APIs to connect to your servers;
  • various “activation” channels to push your recommendations out to your users such as on-site personalization, Display RTB campaigns, emails or APIs to push the recommendation results to your own system;
  • the ability to execute your own recommendation engine on our platform directly; you don’t have to handle the tedious task of managing your own servers, you just have to “push your code” and “voilà !”.

Feel free to reach out to us (contact@mediarithmics.com) for more information about our custom-built recommendation systems. And don’t forget to make sure your nephew logs into his own Netflix account when he wants to watch Daniel the Tiger so you don’t wind up with recommendations for Curious George episodes filling up your queue…

Credits

All the icons of the illustrations were taken from The Noun Project under Creative Commons license:

Persona by Yu Luck

Persona by Yu Luck

Persona by Yu Luck

Light by Numero Uno

Heart by Lluisa Iborra
Romantic Toast by Symbolon
Universe by Made by Made
Astronaut by Danishicon
Horror by anbileru adaleru

--

--