The December PyData Meetup started with Luis Smith, Data Scientist at GO-JEK, sharing the Secret Recipe Behind GO-FOOD’s Recommendations:
“For GO-FOOD, we believe the key to unlocking good recommendations is to derive vector representations for our users, dishes, and merchants. This way we are able to capture our users’ food preferences and recommend them the most relevant merchants and dishes.”
How do people think about the food?
- Flavor profile
- Trendy
- Value for money
- Portion size
- Ingredients
… and much more
The preferred approach is to let the transactional data discover the pattern.
A sample ETL workflow:
Using StarSpace to learn the vector representations:
Go-Jek formulation of the problem:
User-to-dish similarity is surfaced in the app via the “dishes you might like”. The average vector of customer’s purchases represents the recommended dish.
Due to data sparsity, item-based collaborative filtering is used for merchant recommendation.
The cold start problem is still an issue, for inactive users or users that purchase infrequently.
(published here)