Ingénierie IAIngénierie IA
Ingénierie IA6 min de lecture

Comment Uber utilise l’IA pour mieux vous servir

Comment Uber peut-il livrer vos repas à l’heure, ou même quelques minutes d’avance ? Comment associe-t-il les passagers aux chauffeurs pour que vous trouviez toujours une voiture ? Voici comment.

Comment Uber utilise l’IA pour mieux vous servir
Sommaire

À retenir

  • Le problème d’estimation de l’heure d’arrivée d’Uber est un bon exemple d’IA intégrée à un véritable produit dans lequel de petites erreurs touchent des millions d’utilisateurs.
  • Le modèle doit combiner les cartes, la circulation, les itinéraires, la demande, les habitudes historiques et les signaux en direct plutôt que de dépendre d’une seule caractéristique simple.
  • L’apprentissage automatique en production ne se limite pas à l’entraînement. Il comprend la surveillance, le feedback, la latence, les pipelines de données et l’évaluation constante des résultats réels.

Regardez la vidéo

Comment Uber peut-il livrer vos repas en arrivant toujours à l’heure, ou même quelques minutes d’avance ? Comment associe-t-il les passagers aux chauffeurs pour que vous trouviez *toujours* une voiture Uber ? Et tout cela en gérant aussi tous les chauffeurs.

Nous répondrons à ces questions dans cet article grâce à leur algorithme de prédiction de l’heure d’arrivée : DeepETA. DeepETA est l’algorithme d’apprentissage profond le plus avancé d’Uber pour estimer les heures d’arrivée. Utilisé à la fois pour Uber et Uber Eats, il organise tout en arrière-plan comme par magie afin que les passagers, les chauffeurs et les repas se déplacent sans difficulté du point A au point B, à temps et aussi efficacement que possible.

Il existe de nombreux algorithmes pour estimer les déplacements sur ce genre de réseau routier, mais je doute qu’un seul soit aussi optimisé que celui d’Uber. Les anciens outils de prédiction de l’heure d’arrivée, y compris ceux d’Uber, étaient fondés sur ce que nous appelons des algorithmes de plus court chemin, qui conviennent mal aux prédictions réelles parce qu’ils ne tiennent pas compte des signaux en temps réel.

Exemple visuel tiré de Comment Uber utilise l’IA pour mieux vous servir

Pendant plusieurs années, Uber a utilisé XGBoost, une bibliothèque bien connue d’apprentissage automatique fondée sur des arbres de décision avec amplification du gradient. XGBoost est extrêmement puissant et sert dans de nombreuses applications, mais il était limité dans le cas d’Uber : plus le système prenait de l’ampleur, plus sa latence augmentait. Uber voulait une solution plus rapide, plus précise et plus générale qui fonctionnerait pour les chauffeurs, les passagers et la livraison de repas. Il s’agit de défis distincts et complexes à résoudre, même pour l’apprentissage automatique ou l’IA.

Voici DeepETA, un modèle d’apprentissage profond qui a surpassé XGBoost sur tous ces aspects.

Exemple visuel tiré de Comment Uber utilise l’IA pour mieux vous servir

Approche hybride du post-traitement de l’heure d’arrivée à l’aide de modèles d’apprentissage automatique. Image tirée du blogue d’Uber.

DeepETA est très puissant et efficace parce qu’il ne se contente pas de recevoir des données et de produire une prédiction. Tout un système de prétraitement rend ces données plus faciles à digérer pour le modèle. Son travail devient donc beaucoup plus simple, puisqu’il peut se concentrer directement sur des données optimisées qui contiennent beaucoup moins de bruit et des entrées bien plus petites. C’est une première étape pour réduire les problèmes de latence.

Ce module de prétraitement commence par utiliser les données cartographiques et les mesures de circulation en temps réel pour produire une première estimation de l’heure d’arrivée pour chaque nouvelle demande d’un client.

Le modèle reçoit ensuite ces caractéristiques transformées ainsi que le point de départ et la destination dans l’espace, et l’heure de la demande comme caractéristique temporelle. Mais ce n’est pas tout. Il reçoit aussi plus d’information sur les activités en temps réel, comme la circulation, la météo et même la nature de la demande, par exemple une livraison ou une prise en charge pour un trajet partagé.
Tous ces renseignements supplémentaires sont nécessaires pour dépasser les algorithmes de plus court chemin mentionnés plus tôt, qui sont très efficaces, mais loin d’être intelligents ou adaptés aux conditions réelles.

Exemple visuel tiré de Comment Uber utilise l’IA pour mieux vous servir

Et quelle architecture ce modèle utilise-t-il ?

Vous l’avez deviné : un Transformer ! Êtes-vous surpris ? Certainement pas moi.

Cela répond directement au premier défi, qui consistait à rendre le modèle plus précis que XGBoost. J’ai déjà présenté les Transformers à de nombreuses reprises sur ma chaîne. Je n’expliquerai donc pas leur fonctionnement dans cet article, mais je voulais tout de même souligner quelques caractéristiques propres à celui-ci. Vous pensez sûrement : « Mais les Transformers sont des modèles immenses et lents. Comment peuvent-ils avoir une latence plus faible que XGBoost ?! »

Eh bien, vous auriez raison. Ils l’ont essayé et le modèle était trop lent, alors ils ont apporté quelques changements.

La modification qui a eu le plus grand effet a été d’utiliser plutôt un Transformer linéaire, dont la complexité augmente avec la dimension de l’entrée plutôt qu’avec sa longueur. Si l’entrée est longue, les Transformers deviennent extrêmement lents, ce qui se produit souvent chez Uber avec autant de renseignements et de données d’itinéraire. La complexité dépend plutôt des dimensions, une valeur plus petite qu’ils peuvent contrôler.

Une autre excellente amélioration de la vitesse vient de la discrétisation des entrées. Les chercheurs prennent des valeurs continues et les rendent beaucoup plus faciles à calculer en regroupant les valeurs semblables. La discrétisation est couramment utilisée en production pour accélérer les calculs, puisque le gain de vitesse dépasse clairement l’erreur que peuvent introduire les valeurs dupliquées.

Exemple visuel tiré de Comment Uber utilise l’IA pour mieux vous servir

Il ne reste maintenant qu’un seul défi à présenter, et de loin le plus intéressant : comment ont-ils rendu le modèle plus général ?

Voici le modèle DeepETA complet qui répond à cette question.

Exemple visuel tiré de Comment Uber utilise l’IA pour mieux vous servir

Illustration de la structure du modèle DeepETA. Image tirée du blogue d’Uber.

Les données sont d’abord quantifiées comme nous l’avons vu, puis converties en embeddings et envoyées au Transformer linéaire dont nous venons de parler. Ensuite, une couche entièrement connectée produit notre prédiction, et nous ajoutons une dernière étape pour rendre le modèle général : le décodeur d’ajustement du biais.

Ce décodeur reçoit les prédictions et les « caractéristiques de type » mentionnées au début de l’article, qui décrivent la raison de la demande du client à Uber, afin d’orienter la prédiction vers une valeur mieux adaptée à la tâche. L’entreprise réentraîne et déploie périodiquement le modèle avec sa propre plateforme appelée Michelangelo, que j’aimerais beaucoup présenter ensuite si cela vous intéresse. Si oui, dites-le-moi dans les commentaires de la vidéo ou par message privé ou par email !

Et voilà !

Voici ce qu’Uber utilise actuellement dans son système pour effectuer les livraisons et transporter tout le monde aussi efficacement que possible !

Bien sûr, il ne s’agissait que d’un survol. Uber utilise davantage de techniques pour améliorer l’architecture, que vous pouvez découvrir dans son excellent article de blogue, dont le lien se trouve ci-dessous si cela vous intéresse. Je voulais aussi préciser qu’il s’agit seulement d’un survol de son algorithme de prédiction de l’heure d’arrivée et que je ne suis aucunement affilié à Uber.

J’espère que vous avez aimé l’article de cette semaine sur un modèle appliqué au monde réel plutôt que sur un nouvel article scientifique. Si oui, n’hésitez pas à suggérer des applications ou des outils intéressants à présenter ensuite. J’aimerais beaucoup lire vos idées !

Merci d’avoir lu cet article. On se revoit la semaine prochaine avec un autre article scientifique incroyable !

Références :

►Lisez l’article complet : /fr/uber-deepeta/
►Article de blogue d’Uber : https://www.uber.com/us/en/blog/deepeta-how-uber-predicts-arrival-times/
►Que sont les Transformers : https://youtu.be/sMCHC7XFynM
►Transformers linéaires : https://arxiv.org/pdf/2006.16236.pdf
►Mon infolettre (une nouvelle application de l’IA expliquée chaque semaine dans vos emails !) : /fr/newsletter/

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Qu’est-ce que DeepETA d’Uber ?

DeepETA est l’approche d’apprentissage automatique d’Uber qui estime les heures d’arrivée à partir de l’itinéraire, de la circulation, du lieu et des données historiques des déplacements.

Pourquoi est-il difficile de prédire une heure d’arrivée ?

La durée d’un déplacement change avec la circulation, l’itinéraire, la météo, le comportement du chauffeur, la demande, la configuration de la ville, les événements et de nombreux petits signaux du monde réel.

Pourquoi la précision de l’heure d’arrivée est-elle importante ?

De meilleures prédictions renforcent la confiance des utilisateurs, facilitent la planification des embarquements, améliorent l’efficacité de la marketplace et éclairent les décisions des passagers et des chauffeurs dans l’application.

Pourquoi s’agit-il d’un problème d’apprentissage automatique en production ?

Le système doit fonctionner rapidement, se mettre à jour avec des données récentes, traiter les villes différemment, surveiller les défaillances et s’améliorer à partir des véritables déplacements.

Que peuvent apprendre les builders IA de DeepETA ?

Partez de la décision à prendre dans le produit, utilisez les données accessibles au moment de la prédiction et mesurez si le modèle améliore l’expérience de l’utilisateur.