Machine Learning Times
Machine Learning Times
Coursera’s “Machine Learning for Everyone” Fulfills Unmet Training Requirements
  My new course series on Coursera, Machine Learning...
Segmentation and RFM Analysis in the World of Wine and Spirits
 Segmentation is a hot word these days, and it...
How Machine Learning Works – in 20 Seconds
  This transcript comes from Coursera’s online course series,...
4 IoT Devices in Healthcare Making An Impact Now

7 months ago
How Trip Inferences and Machine Learning Optimize Delivery Times on Uber Eats

Originally published in Uber Engineering, June 15, 2018

In Uber’s ride-hailing business, a driver picks up a user from a curbside or other location, and then drops them off at their destination, completing a trip. Uber Eats, our food delivery service, faces a more complex trip model. When a user requests a food order in the app, the specified restaurant begins preparing the order. When that order is ready, we dispatch a delivery-partner to pick it up and bring it to the eater.

Modeling the real world logistics that go into an Uber Eats trip is a complex problem. With incomplete information, small decisions can make or break the experience for our delivery-partners and eaters. One of the primary issues we try to optimize is when our business logic dispatches a delivery-partner to pick up an order. If the dispatch is too early, the delivery-partner waits while the food is being prepared. If the dispatch is too late, the food may not be as fresh as it could be, and it arrives late to the eater.

Due to the noisy nature of GPS, tracing the signal from delivery-partners’ phones proved inadequate for the task of determining the best dispatch time. However, leveraging motion sensor data from phones gives us a detailed picture of when a delivery-partner is on the road, walking, or stuck waiting. Using this data, we created our Uber Eats Trip State Model, letting us segment out each stage of a trip. Further, this model lets us collect and use historical data for individual restaurants so we can optimize delivery times for both our delivery-partners and eaters.

Improving time efficiency for delivery-partners and eaters

The decisions that our business logic makes on when to dispatch delivery-partners has a significant impact on the number of trips that a delivery-partner can complete, ultimately affecting their earning potential. The GPS signal from delivery-partners’ phones serves as a primary signal to help us understand what is happening on a trip. However, GPS data is noisy in urban environments and not sufficient to understand precise interactions between delivery-partners and restaurants. In order to obtain concrete information on the state of a delivery, location data and motion data need to work in tandem.

Figure 1: GPS signals can tell us whether a delivery-partner is driving or parked near a restaurant during an Uber Eats trip.

With this traditional approach, as shown in Figure 1, we are able to see when a delivery-partner has:

  1. been dispatched
  2. arrived at the restaurant
  3. is en route to the drop-off location
  4. arrived at the drop-off location and completed the trip

However, it is often unclear from GPS data alone why the delivery-partner spends so much time in or around the restaurant before they pick up the the eater’s order. Given its noisiness, GPS data is too unreliable for our needs. To deliver a truly magical experience, we need to know if the delivery-partner spent this time looking for parking or waiting for the food to be prepared.

To continue reading this article, click here.

Leave a Reply

Pin It on Pinterest

Share This