You know the drill, comfortably sitting on your sofa when the day is done, your cup of tea in one hand, remote control in the other. It’s TV time. You start scrolling through the main screen, trying to choose a movie based on the recommendations offered to you. Some recommendations seem straightforward (“Continue Watching”, “Watch Again”, “Season 2 now available”), some a bit smarter (“Recommended for you”, “Because you watched The Witcher”), and some are personalized to a confusing level (“Because you like 90’s movies about Vampires”), for example.
If you google “how to build a recommendation system,” the tutorial you’ll most likely find is for a movie recommendation system (usually based on the IMDB dataset). Such recommendation systems usually rely on: A. the user’s individual behavior patterns, and B. the behavior patterns of similar users. Naturally, some recommendations are often user agnostic (“Christmas Movies”, “Movies for a winter night”, etc.). These rely on geo-location but not much more. In the several machine learning courses I taught, students learned to build these systems and were always impressed by how well they work and how comprehensible the results were.
When I joined Whisk and started to create a recipe recommendation system, I thought that applying the same logic as is used for movie recommendations would be the way to go, but boy, was I off. Here are 4 things I’ve learned about why recommending recipes is so much more complicated.
1. Active Vs Passive + Higher Vs Lower Loss
The main difference between recipes and movies is that the act of watching a movie is a passive one (simply select and you’re done). Also, it has a relatively low loss: if we choose a movie and don’t like it, we’ll simply switch to a different movie midway through. Other than wasting time, nothing else was lost. A user’s trust will most likely not be compromised based on one botched movie recommendation.
However, when a user follows a recipe recommendation, the full process requires further activity on the user’s side (shopping, cooking, eating, and hosting). Therefore, if a user chooses a recipe that they don’t end up enjoying, the loss on their side could be significantly higher. The user spent money on ingredients, they spent time cooking, and they potentially messed up a social opportunity due to a failed recipe attempt.
This outlook frames the recipe recommendation process as a potentially riskier one, with a higher potential for losing a user’s trust.
2. Multiple Types Of Motivation
When a user chooses a movie to watch the motivation is pretty straightforward: entertainment. While your mood may change from romcom to slasher to educational documentary, the end goal and main motivation remain static.
On the other hand, when it comes to recipes, there are so many more motivation factors at play:
- Budget limitations: “I need to cook a meal for under $10.”
- Utilizing specific ingredients: “Strawberries are amazing this time of year.” or “I want to use up those extra tomatoes taking up space in my refrigerator.”
- Addressing allergies: “I need to make a Gluten-free birthday cake for my friend.”
- Cravings / Inspiration: “I’m in the mood for a really chocolatey cookie.” or “I saw an amazing Instagram post of a stack of pancakes that I want to try to replicate.”
- Event-Driven: “Christmas is approaching and I want to make a special main dish.”
- Nostalgia: “I want to bake the same cookies my mom used to make.”
And that’s just an abbreviated list! This calls for the creation of an expansive recommendation system that is able to identify and cover these diverse types of motivations.
3. Geolocation Differences
How sensitive are recommendation systems to where the user is located?
Most film streaming services recommend Blockbuster movies, or those that achieved huge box office success. While many of these movies are made in the US, they are recommended to viewers worldwide, as those American films are appealing to audiences worldwide.
Can we say the same thing about recipes? A recipe that is highly popular in the US might not have the same levels of appeal to an Indian home cook.
In general, the food domain is a highly geo-specific one:
- Many ingredients are available (and loved) in specific regions only
- Units of measurement shift from country to country
- Many countries have very specific, defined and engrained cuisines that users may not want to waiver from
- There are unspoken cultural rules about when and how dishes are consumed (e.g. Swedish Pancakes are never eaten for breakfast in Sweden)
- The standards of healthy nutrition vary from country to country
This calls for a perceptive recommendation system that takes into account the nuanced differences between countries and cultures, carefully sensing what users in various countries want to see.
4. Measuring Success
Finally, after a long scrolling session, a user selects a recommended movie. Does this necessarily mean that the recommendation was a success? In other words, what’s the best way to measure the success of a recommendation system?
Well, when considering movies, one can think of multiple metrics: user saved movie to ‘watch later,’ user started the movie, user watched more than 50% of the movie, user finished movie, etc. (Note: this is true for Netflix-style systems, which have a full view of the user’s experience and know exactly how much of each movie was watched by the user).
When it comes to recipe recommendations, Whisk’s technology can keep track of users who engage with a recipe by saving it to a collection or adding ingredients to a shopping list to purchase them. Still, none of these indicate whether the user actually attempted to cook that recipe or whether it was successful. Even more challenging is how to capture a user’s evaluation of a recipe recommendation system. At Whisk, we are working to provide our users with a multitude of ways to tell us which recipes they successfully attempted and to share their triumphs, making our recommendation system smarter and more accurate.
In summary, no two recommendation systems are alike. Recommending recipes is a challenging, highly nuanced task that has a relatively high error cost as it requires further action from the user. It is a digital way to empower a nostalgic process and a super interesting task.
How would you build and evaluate a recipe recommendation system? Where do you get your recipe recommendations from, and what are your motivations behind choosing what to cook? Feel free to share your thoughts with us on social or contact us here.
Lotem, Product Manager, Food AI