Recommendation Engines

Jeffrey Woo
The Data Experience
4 min readDec 9, 2015

--

So, you love to stay updated with news, listen to great music, buy cool things and eat amazing food. I do too!

But you have a huge problem: there is a database of a million things you can read, listen to, buy and eat. How do you know what to consume that’s exactly right for you?

“there is more great stuff that you want to do than you can possibly do in your lifetime” — Benedict Evans

Many businesses and startups have large databases of content and they’re reinventing ways to present the right content at the right time to you, the consumer. Think about recommendations from Amazon (based on your buying behavior) or Pandora (based on the songs you like or stations you create) or Foursquare (based on the places you and your friends have been to) or Foodmento (based on the people and food lists you follow)

This is only the first inning on the road to the realization of a virtual you — a bot that knows what you want before you do. Yeah, its coming. So how do companies make relevant recommendations?

Conceptual Solution

There’s not one type of recommendation engine that works best for every recommendation. Conceptually, a really great engine is:

  • partly manual (human curated)
  • partly algorithmic (contextual + predictive)
  • partly preference driven (user filters)

The key to relevance for the user is the right balance of all parts. Let’s break down each part while keeping in mind the objective of the recommendation engine — to present the most relevant options with the least amount of work for the user.

Preference driven is pretty straight forward. You search or choose the topic you want to read, the station you want to listen, the food you want to eat. If you know exactly what you want and how to filter for it, this can quickly lead to the most relevant option for you. For most people, knowing what they want requires too much work.

Manual or human curated is arguably the most important when you don’t have the knowledge or time to filter your options yourself. You need a trusted curator e.g. friends, experts, or a crowdsourced voice. If you know these curators, you would simply subscribe or follow their content (lists, tips, posts, etc.) to get potentially very relevant content.

The problem with curated content is that it exists in every form on every platform. Do you subscribe to a curator’s email or read tweets from a list of curators? How do you easily consume many curations at once? We’ll get back to this a bit later…

Algorithmic takes many data points around context, past behavior, aspirations, etc. and predicts what will be most relevant for you, right now. For example, where you are and time of day is critical for finding a bite to eat; what you’ve done in the past is critical to finding your next favorite song (think ‘if this then that’). This is hugely important as we’re all creating and sharing more data about ourselves than ever before.

The downside to algorithmic? Behaviorally, not all of us want all parts of our lives tracked, deep learned, and presented back to us.

A Food Recommendation Engine

Here’s an approach we believe in at Foodmento when it comes to food and one that has guided the dish recommendations in our ‘Just for you’ feed:

  1. Auto filter by known contextual filters (e.g. location, time of day, etc.)
  2. Sort and filter by popularity. Use a crowdsourced popularity ranking if available and only present the top X percent. Include a time criteria for new or trending recommendations.
  3. Give users an easy way to follow curators and curated content. Suggest existing friends or experts to follow (e.g. Eater) and content to follow (Thrillist’s Best wings in NYC list). I mentioned before that curated content exists in many forms on many platforms. That’s why we’ve aggregated dish recommendations from the top curators onto Foodmento so we can automagically present it back to users who follow the content.
  4. Build your algorithm based on what you know of users (e.g. who they’re friends with), what they choose in your app (e.g. who/what they follow), what they do in your app (e.g. what they’ve wanted, loved, etc.)
  5. Allow users to easily search and filter on their own.

We’ve tested and tweaked the engine on ourselves and our users. It’s important to ask: are these recommendations relevant, why or why not? As we collect more data on user behaviors, we’re able to more clearly see where the engine works well and ways to improve it.

I hope this has been helpful to you in framing your own discussions on recommendation engines. If it did, I would really appreciate a heart or recommend below. Thank you!

If you have any suggestions or feedback, feel free to email me at jeff@foodmento.com :)

--

--

Jeffrey Woo
The Data Experience

I like to find, organize & eat good food around the world — tried 7,262 dishes so far (Nov 29) in 150+ cities. Founder of @foodmento.