You work at Yelp. How would you create a system that would provide good advice to users of new restaurants to try?
- Corey Amorin
clarifying question
- When you say try you mean in person or for ordering in – assuming its for in person dining
- By system do you mean a feature(including the algo) that’ll recommend restaurants to the user for visits
- By try do you mean these are restaurants that uses hasnt dined at in the past
- this is as per yelp, so user may actually have tried it already?
- is there any goal in mind? user request
- is there any constraint?
- Im assuming these are organic recommendations
- Is the scope of the system(algorithm) limited to the system or also consider the UI side of things : assuming just the former’
- Metric: users added to DAU/WAU so DAU/MAU and WAU/MAU ratio
Persona
- fequently eats out – has fixed set of eateries, knows the restaurants around him well
- Occasionally eats out – doesnt dine out often, goes on special occasions mostly
- rarely eats out – doesnt dine out often, when needed orders in more often than dining out
I want to focus on occasionally eats out as we will be able to create max value for max number of users if we asses it using the rice framework
Recommendation system
what should it do?
- Recommend restaurants to user in line with his
- User Preferences
- cuisines
- dietary preference
- food
- liquor
- specific dishes
- price point
- previous reviews/inputs
- food
- ambience
- service
- type of restaurant: family friends or more club like etc
- derived preferences
- parking preference
- wait time
- service speed
- how far is the user willing to travel/acceptable commute time
- User Preferences
what should it not do?
- Ask the user to give additional inputs to decide
Prioritisation
Attributes highlighted in bold are prioritised:
– Cuisines and dietary = core to the eating out experience at the restaurant, food has to be likeable(used to generate signal for ranking)
– Price point = needed to ensure restaurant is within user’s budget range(used to generate signal for ranking)
– Previous reviews = needed for match making to similar cohorts to predict local restaurants (used to generate signal for ranking)
in absence of this data we can look for users with similar phone model,apps installed and bluetooth devices in the area(these signals should be available using permission/most without permission) and create recommendations basis their profile (used to generate signal for ranking)
in absence of this data we can look for users with similar phone model,apps installed and bluetooth devices in the area(these signals should be available using permission/most without permission) and create recommendations basis their profile (used to generate signal for ranking)
– type of restaurant = imp to filter restaurants for example users who often dien out with kids will prefer family restaurants/restaurants that allows kids at night (used to filter)
– distance = this will tell us how far is user usually willing to travel so we can predict similar restaurants withing travel distance (used to filter)
in absence of GPS data we can use approx location using cell towers (there are services)+data of lookalike users to determine how far they would be willing to travel
in absence of GPS data we can use approx location using cell towers (there are services)+data of lookalike users to determine how far they would be willing to travel
Not prioritised = limited ROI on data due to complex problem, can be considered for iteration
what will widget do
– Recommend restaurants to you within X km of you
– snippet/highlights : rating, cuisine, price for 2
– Explain what to try on clicking on the restaurnat
– Allow user to dismiss a reco in case he has visited already
how will it work
- identify similar user cohorts: we’ll use available signals to match users with other users with a similar preference
- Use similar cohorts data to identify potential matches: Identify restaurants that other cohort liked that user is yet to visit
- Filter restaurants: Filter restaurants user hasnt visited yet basis their previous review/rating input
additionally it may filter on recent rating trend and below a certain rating threshold - Rank them basis preference weights: rank the restaurants using explore and exploit model – figure out winning algos and continue iterating on them
winning algos = great inputs from users on being asked to review the restaurant later - UI considerations: there is a chance user has already visited a restaurant, you want to allow the user to give feedback on the same and review it (from the recommendations itself)
Metrics to track
– users added due to this widget on DAU/WAU
– CTR on the widget
– Conversion (actual visit)
– post visit rating (for algo feedback)
Google