Graph Learning

Food Recommendation in Uber Eats with Graph Learning


Graph learning emerged from mid to late 2010s as a really active research area, with many applications. It consists in adopting new machine learning models, mostly inspired by natural language processing and knowledge graphs research, on generic graphs. As many datasets can be organized as graphs, these technologies have many applications, and the research field is really vibrant and exciting, although the first works on the topic date back to late 90s and mid 2000s (by Italian researchers like Marco Gori and Alessandro Sperduti), they didn't receive the deserved attention until compute and big datasets availability made them more widely applicable.

We applied graph learning to dishes and restaurants recommendation in Uber Eats. In order to do so we had to modify some existing algorithms (in particular GraphSage) to work with heterogeus weighted graphs, by introducing a new loss and weighting scheme. The adoption of this new technique yielded substantial improvements in both offline and online metrics like AUC, MRR and Click-Through Rate and Conversion Rate and it's now deployed in a growing number of cities. We wrote a blogpost about it and presented it at O'Reilly TensorFlow World 2019 and at RE•WORK Applied AI Summit San Francisco. the presentation was featured as one of the top 5 technical AI presentations from January 2019.

Download Slides

We also recently worked on some research in the graph learning field, specifically on meta learning for graphs. In our approach, called Meta-Graph, we learn models on a subset of graphs from a distribution of graphs and test how quickly we can adapt on a new unseen graph, simulating the real world situation of adapting the Uber Eats recommender system to a new city leveraging models learned in other cities. We published a blog post on the Uber Engineering blog, while our paper (accepted at the Grah Learning Workshop at NeurIPS 2019) can be found on arXiv.


Collaborators

Ankit Jain

Isaac Liu

Ankur Sarda