A year ago, Danny Lange took over as the head of machine learning at Uber. The ride-sharing company, which launched in 2009, is, essentially, a tech company: It operates entirely through an app. Lange manages a team in San Francisco, and Uber has a smaller team in Seattle. And machine learning has become the underlying foundation for every part of the company.
"Machine learning and AI technologies can really solve some very fundamental business problems that are really hard to create hardwired solutions to," said Lange. Here's TechRepublic's conversation with Lange about how Uber uses machine learning to operate.
How is Uber's approach to machine learning unique?
The traditional approach has been to hire some PhDs, data scientists—everybody's on their own, team by team. We wanted to create machine learning as an internal service instead. It has a graphical use interface; it has APIs. Every team in the company can use this service, just like they can use data services and computing services. Machine learning is just another tool in the toolbox for the profile teams, for the software engineers and the data scientists.
Machine learning has been in our DNA from the beginning. The nature of Uber is this idea of a two-sided marketplace where you have drivers on one side and riders on the other side. The essence of creating an efficient marketplace is really having a lot of these dynamic properties that benefit from machinery.
Machine learning has been there from the beginning, but what we're doing is to take it a notch up—to make sure that it's not just in one part, say, in marketplace management, but that it's in every part of the company. We have found over time that machine learning does add value in areas where people initially didn't think of machine learning as an option.
How does machine learning work in something like Uber Eats?
At the core of the user experience in a meal service is the time to delivery. You want to know approximately how long it will take for someone to deliver this meal to your doorstep or office.
Initially, that was basically thought about as a classical computation. The distance between you and the restaurant, and the average speed in your town, and then some average time to prepare the meal. That's the classical thinking. But we actually now have the data about how long it takes to make noodles, how long it takes to make a hamburger, and how long it takes to deliver it in different parts of town at different times of day. You can start building machine learning models that can give you a more accurate prediction based on the data, not on some finite computation.
When we ruled that out, we got an overnight improvement in accuracy of 26%. There's a very low friction, very low barrier for the team to say, "Hey, let's deploy more models here." If we know when the restaurant actually started the meal, we have more information. We can actually have a machine learning model that refines your estimated time of delivery even more. You can see how an application, in a short time span, goes from being a hardwired application to becoming a smart and dynamic application that benefits from knowing your behavior and from knowing other people's behavior.
What other ways can machine learning improve efficiency?
An important goal for us is to give you as accurate an ETA as possible. When you request a car and we tell you it's going to be 14 minutes or 12 minutes before it shows up, we want to make sure that that estimate is as precise as it can be. We gather information from millions of trips, because we know exactly how long it took for the car to come to you for each trip. We basically use data to build models that estimate the time it will typically take for the car to reach you at any given time of the day, any given time of the week. That is better than any attempt to compute the route and say, "It's going to take the car seven minutes to get to you." It learns from the experience.