How Real-Time ML Helps Google Maps Predict Bus Delays Worldwide


The secret: Filling in missing transit data with real-time info on bus and car speeds.

When it comes to relying on mass transit, commuter and subway trains stand a pretty good chance of arriving at your station when they’re supposed to (well, five out of ten times isn’t bad). However, if you’re relying on bus service, it’s a whole different story. Your bus may be stuck in the middle of a hopeless traffic jam, or be slogging slowly through bad weather.

Now, Google has come up with a new way to keep people informed, in real time, about the status of their bus rides. Even better, the company is attaching predictive capabilities – enabled through machine learning — to inform passengers well ahead of time if their buses are going to encounter some obstacles. Google is now providing real-time tracking data, presented through Google Maps, forecasting delays in hundreds of cities worldwide on buses serving 60 million people.


The challenge was pulling together tracking information where data was missing in many cities, says Alex Fabrikant, research scientist with Google Research “While public transit directions provided by Google Maps are informed by many transit agencies that provide real-time data, there are many agencies that can’t provide them due to technical and resource constraints.”

Google Researchers were able to develop a model to get around missing pieces of data, Fabrikant explains. “In the many cities without real-time forecasts from the transit agency, we heard from surveyed users that they employed a clever workaround to roughly estimate bus delays: using Google Maps driving directions.

” The trick was factoring in the difference between bus and car movements. Put simply, buses lumber more than cars. “Buses are not just large cars. They stop at bus stops; take longer to accelerate, slow down, and turn; and sometimes even have special road privileges, like bus-only lanes.”

Google’s challenge was to build a model that used standard traffic data, adjusted for the peculiarities of bus movements and routes. The team extracted training data from sequences of bus positions over time, as received from transit agencies’ real-time feeds, and aligned them to car traffic speeds on the bus’s path during the trip, according to Fabrikant.

Graphed detail of data feed to Google’s new Maps-based, real-time app (Source: Google)

The model employs machine learning to improve its accuracy, as well as learn to adapt to local conditions. “Buses have a complex dependence on time — the difference between 6:30 pm and 6:45 pm on a Tuesday might be the wind-down of rush hour in some neighborhoods, a busy dining time in others, and entirely quiet in a sleepy town elsewhere,” Fabrikant explains. “Our model learns an embedding of the local time of day and day of week signals, which, when combined with the location representation, captures salient local variations, like rush hour bus stop crowds, that aren’t observed via car traffic.”

See also: For Smart City Tech, What’s the Best Public-Private Partnership Model?

As part of this rollout, Google also announced its app would also provide transit crowdedness prediction, enabling passengers to see how crowded their bus, train or subway is likely to be, based on past rides.

Interestingly, the Google team has not had success with official bus schedules themselves. “They haven’t improved our forecasts significantly,” Fabrikant says. “In some cities, severe traffic fluctuations might overwhelm attempts to plan a schedule.


About Joe McKendrick

Joe McKendrick is RTInsights Industry Editor and industry analyst focusing on artificial intelligence, digital, cloud and Big Data topics. His work also appears in Forbes an Harvard Business Review. Over the last three years, he served as co-chair for the AI Summit in New York, as well as on the organizing committee for IEEE's International Conferences on Edge Computing. (full bio). Follow him on Twitter @joemckendrick.

Leave a Reply

Your email address will not be published. Required fields are marked *