Mieux prévoir l’arrivée des bus à Montréal: une mission impossible? Pas pour les machines!

Transit utilise maintenant les technologies d’apprentissage automatique pour améliorer les horaires en temps réel de la STM. Explications. 🙂🚍👉🤩🚍

Transit
Jun 11 · 8 min read

Tous les matins c’est pareil. Tu cherches ton bus. Il est là dans 5 minutes. Non dans 6! 2 minutes finalement… ça y est, tu le vois! Là-bas, derrière la 4e lumière. Soulagement.

Transit a une mission: te dire exactement quand le bus sera là. Pis quand on y arrive pas, tu maudis les cieux, tu promets l’enfer à ton application… Mais peu importe la ville, prédire l’arrivée d’un véhicule (que ce soit un bus, un train, un Uber ou même ta propre voiture) n’est jamais chose facile.

Pourquoi donc? Détrompes-toi, le problème ce n’est pas le GPS du bus, ou Transit qui bogue, ou les satellites partis en balade sur Mars. C’est que prédire l’avenir, c’est tough.

Les accidents. Les festivals. Les cônes oranges. La neige (qui revient tous les ans). Les soirs de match. Les soirs de match des séries (là c’est plus toutes les décennies). On a beau avoir les GPS des bus, prédire quand ils seront à l’arrêt en tenant compte de toutes ces variable, c’est tout un défi. On a donc été obligés d’appeler du renfort.


La fois où Transit a utilisé l’apprentissage automatique pour améliorer de 15% la fiabilité des horaires en temps réel 🤖

V’là pas si longtemps, les horaires de bus voyaient le jour grâce à un monsieur ou une madame assis(e) dans le fond du bus avec un crayon pis une montre. Aujourd’hui, on a les GPS. Au lieu de compiler des temps écrits à la main, les sociétés de transport peuvent automatiquement compiler les données d’une année entière de GPS et faire la moyenne des temps d’arrivée à chaque arrêt pour obtenir la fameuse grille d’horaires dits “planifiés”.

Le problème c’est qu’une moyenne de temps enregistrés par les GPS… elle a beau être composée de centaine d’horaires enregistrés… ça reste une moyenne.

Toi tu veux pas une moyenne. Tu veux un temps de départ basé sur la réalité de ce qui se passe là maintenant tout d’suite. Pour ça, il faudrait tenir compte de tous les éléments qui pourraient influencer l’arrivée de ton bus. C’est là que l’apprentissage automatique entre en jeu.

L’apprentissage automatique est une technologie qui permet de modéliser des comportements complexes. C’est la différence avec ta feuille de calcul Excel. Au lieu de lui dire “prends cette formule et calcule-moi des horaires de bus”, on dit à la machine “voici les données historiques dont on dispose (positionnement GPS, temps de trajet, variations entre horaires planifiés et l’arrivée réelle à l’arrêt…), quelle formule devrait-on utiliser pour prédire l’arrivée du bus?” Avec l’apprentissage automatique, tu garroches tout ça dans l’ordinateur, puis il effectuera des millions de simulations pour trouver la meilleure formule possible.

Apprentissage automatique: trouver la formule de prédiction qui se rapproche le plus du temps d’arrivée réel

Les technologies d’apprentissage automatique permettent de créer des formules en prenant en compte une infinité de variables. On l’a dit, la difficulté avec les horaires en temps réel, c’est qu’il faut prendre en compte 10, 20, 25 variables différentes qui changent elles aussi en temps réel. On est très loin de ton algèbre du secondaire.

Avec l’apprentissage automatique, ça te prend (1) une base de données pour entraîner ton modèle, (2) une machine assez puissante pour traiter ces informations, et (3) des experts en transport qui seront capables de sélectionner les paramètres pertinents et d’affiner le modèle. Mets tout ça dans l’blender et tu obtiendras une équation multivariable très précise permettant de modéliser n’importe quel ensemble de données.


Chez Transit, on aime les défis. On s’est donc donné comme objectif que nos prédictions ne soit jamais mauvaises au point de te faire rater ton bus. Montréal c’est chez nous, alors on a voulu commencer ici. Deux ensembles de données entrent en jeu pour générer nos nouvelles prédictions:

  1. Les positionnements fournies par la STM
  2. Les positionnements obtenues grâce aux utilisateurs qui activent GO

On s’est aperçu qu’on disposait de pas mal de données GO. Transit est l’application la plus populaire en ville pour les transports en commun et de nombreux utilisateurs activent GO pour générer de l’information en temps réel pour leur ligne.

Les utilisateurs qui activent GO (un outil de production participative similaire à Waze), ils partagent le positionnement de leur bus à la seconde.

GO est activé pour plus de 175 000 trajets chaque mois à Montréal. Le positionnement des bus avec GO évolue à la seconde au lieu de toutes les 30 secondes.

Ces positionnements permettent aux utilisateurs de la même ligne de suivre l’arrivée de leur bus en temps réel sur la carte. Mais jusqu’à présent, ces positionnements super-précis ne pouvaient pas être pris en compte dans les horaires en temps réel fournis par la STM. Mais Ayser et Juan ont tout changé.


Au fait… c’est quoi un horaire fiable?

Avant de commencer l’entraînement intensif de notre modèle, Ayser et Juan devaient établir quelques points de référence. Pour pouvoir comparer et évaluer la fiabilité de nos horaires, il y a une question fondamentale qui se pose: un horaire “fiable”, c’est quoi?

On pénalise plus durement les arrivées “en avance” car tu risques de manquer ton bus. Si le bus arrive “en retard”, tu devras juste attendre un peu plus longtemps.

Plus le bus est proche de ton arrêt et plus la marge d’erreur qu’on va tolérer sera mince. Le principe est simple: plus on se rapproche de l’heure de passage du bus, moins tu auras de temps pour réagir en cas d’imprévu. Si ton bus arrive dans 10 minutes, tu peux marcher un peu plus vite et attraper ton bus. Mais si on te dit que ton bus est là dans 2 minutes et qu’il passe finalement 1 minute plus tôt que prévu… tu vas lui courir après… ou te trouver un plan B.

Une machine à remonter le temps? Pas pire. De l’apprentissage automatique en temps réel? Mieux.

Ensuite, on a analysé les horaires en temps réel générés par la STM en les comparant aux temps d’arrivée des bus aux arrêts. On s’est aperçu qu’environ 75% des horaires temps réel générés par la STM pouvaient être considérés comme “fiables” tel que défini par Ayser et Juan. Est-ce que les technologies d’apprentissage automatique nous permettraient de faire mieux?

Pour pouvoir générer de meilleures prédictions, on alimente notre modèle avec des données réparties selon ces principaux paramètres:

  1. l’heure de la journée (heure de pointe vs hors pointe)
  2. le jour de la semaine (circulation dimanche ≠ lundi)
  3. l’ancienneté du positionnement GPS (positionnements GO à la seconde >> positionnements STM)
  4. les disparités par rapport à l’horaire prévu (l’heure à laquelle le bus arrive vs. l’heure à laquelle le bus est supposé arriver)
  5. certaines variables liées au positionnement (on peut établir des corrélations entre des lignes qui passent sur la même rue et des disparités selon qu’un bus roule sur une autoroute ou bien une rue résidentielle).

Une fois que notre modèle possède assez de données de temps d’arrivée réels (la cible), puis assez de données historiques des différents paramètres (qui influenceront les temps d’arrivée), l’entraînement peut débuter.

Le modèle commence par générer des temps de départ au hasard à partir des données des différents paramètres (oui, vraiment au hasard!). Il va ensuite comparer ses résultats aux temps d’arrivée réel des bus. Le modèle pourra alors ajuster sa formule en adaptant l’importance donnée à chaque paramètre, afin de pouvoir se rapprocher de la réalité observée sur le terrain. C’est un peu comme partir une brassée à la buanderie. Fais tourner autant de fois que nécessaire pour avoir la meilleure formule possible. Prends-toi un bon livre et laisse la machine faire!

Maintenant qu’on a trouvé la bonne formule, il est temps de se jeter à l’eau. Le modèle est en production et fonctionne pour les utilisateurs à Montréal. On alimente notre modèle avec les paramètres qui changent en temps réel (heure de la journée, jour de la semaine, localisation, etc) pour pouvoir afficher à l’utilisateur un horaire en temps réel. Le résultat? Transit améliore la fiabilité des horaires en temps réel de la STM de 15% grâce aux positionnement GO (merci chers utilisateurs 📡) et de meilleures formules de prédictions (merci les machines 🤖).

C’est 15% de bus manqués en moins. 15% de cheveux arrachés en moins en attendant ton bus… et la meilleure nouvelle c’est que notre modèle ne fera que s’améliorer avec le temps.

On y est presque🤞

Le trafic en ville est une boîte à surprise. Elle change régulièrement et même les formules des plus grands mathématiciens ne permettraient pas de rendre compte de ces tendances historiques (sans devoir réinventer la route et trouver une nouvelle formule à chaque fois 🤢). Les modèles d’apprentissage automatique peuvent, eux, aller plus loin, plus vite, et tenir compte des retours de nos utilisateurs en temps réel pour s’améliorer automatiquement. Ciao le crayon pis la montre.

On a hâte que vous puissiez l’essayer! Puis de voir si ça va changer vos habitudes. On espère voir de moins en moins d’erreurs sur les horaires en temps réel. Mais bon, les machines ont beau être intelligentes, des fois elles sont aussi un peu à côté de la traque. Heureusement qu’on a une équipe de feu capable de repérer ses erreurs et qui continuera à améliorer le temps réel.

On travaille fort pour perfectionner la recette! Une fois qu’on sera prêts, on entamera notre tournée vers d’autres villes. Quand? Faut poser la question aux machines… 🤞🤖


Une application. Tous les modes imaginables. Les meilleures données de transports collectifs de l’univers.

Tu ne connais pas encore Transit? L’essayer c’est l’adopter. Choisis ton camp: iOS 🍏 ou Android 👾. Vous êtes une société de transport? Offrez des horaires en temps réel plus fiables à vos utilisateurs, un planificateur de trajet plus complet, des titres de transport à emporter partout avec eux, et une expérience utilisateur plus harmonieuse qu’un enchainement de postures de yoga. Les meilleures sociétés de transport font équipe avec Transit.

Transit

Written by

Transit

The simple and beautiful way to get around. Live in more than 175 cities. Ready for a spin? transitapp.com

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade