Graph Learning

Food Recommendation in Uber Eats with Graph Learning


Graph learning emerged in the mid-to-late 2010s as an active research area with many applications. It involves applying machine learning models, mostly inspired by natural language processing and knowledge graph research, to generic graph-structured data. Because many real-world datasets can be represented as graphs, the field has broad applicability. The earliest works date to the late 1990s and mid-2000s (including Italian researchers like Marco Gori and Alessandro Sperduti), but did not gain wide attention until advances in compute and data availability made them practical.

We applied graph learning to dish and restaurant recommendation in Uber Eats. To do so, we modified existing algorithms (in particular GraphSAGE) to work with heterogeneous weighted graphs, introducing a new loss and weighting scheme. The technique yielded substantial improvements in offline and online metrics including AUC, MRR, Click-Through Rate, and Conversion Rate, and was deployed in a growing number of cities. We wrote a blogpost about it and presented it at O'Reilly TensorFlow World 2019 and at the RE•WORK Applied AI Summit San Francisco, where it was selected as one of the top 5 technical AI presentations from January 2019.

Download Slides

We also conducted research on meta-learning for graphs. In our approach, called Meta-Graph, we train models on a subset of graphs drawn from a distribution and measure how quickly they adapt to a new unseen graph, simulating the real-world challenge of extending the Uber Eats recommender to a new city using knowledge from existing cities. We published a blog post on the Uber Engineering blog, and the paper (accepted at the Graph Learning Workshop at NeurIPS 2019) is available on arXiv.


Collaborators

Ankit Jain

Isaac Liu

Ankur Sarda