how can uber deliver food and always
arrive on time or a few minutes before
how do they match riders to drivers so
that you can always find a uber all that
while soon managing all the drivers we
will answer these questions in this
video with their arrival time prediction
algorithm deep eta deep eta is uber's
most advanced algorithm for estimating
arrival times using deep learning used
both for uber and uber eats deep eta can
magically organize everything in the
background so that riders drivers and
food are fluently going from point a to
point b as efficiently as possible many
different algorithms exist to estimate
travel on such road networks but i don't
think any are as optimized as uber's
previous arrival time prediction tools
including uber were built with what we
call shortest path algorithms which are
not well suited for real-world
predictions since they do not consider
real-time signals for several years uber
used xgboost a well-known gradient
boosted decision tree machine learning
library xjboost is extremely powerful
and used in many applications but was
limited in uber's case as the more it
grew the more latency it had they wanted
something faster more accurate and more
general to be used for drivers riders
and food delivery all orthogonal
challenges that are complex to solve
even for machine learning or ai
here comes deep eta a deep learning
model that improves upon xg boosts for
all of those oh and i almost forgot
here's the sponsor of this video
myself please take a minute to subscribe
if you like the content and leave a like
i'd also love to read your thoughts in
the comments or join the discord
community learn ai together to chat with
us let's get back to the video
deep eta is really powerful and
efficient because it doesn't simply take
data and generate a prediction there's a
whole preprocessing system to make this
data more digestible for the model this
makes it much easier for the model as it
can directly focus on optimized data
with much less noise and far smaller
inputs a first step in optimizing for
latency issues this pre-processing
module starts by taking map data and
real-time traffic measurements to
produce an initial estimated time of
arrival for any new customer request
then the model takes in these
transformed features with the spatial
origin and destination and time of the
request as a temporal feature but it
doesn't stop here it also takes more
information about real-time activities
like traffic weather or even the nature
of the request like delivery or ride
share pickup all this extra information
is necessary to improve from the
shortest path algorithms we mentioned
that are highly efficient but far from
intelligent are real world proof and
what kind of architecture does this
model use you guessed it a transformer
are you surprised because i'm definitely
not and this directly answers the first
challenge which was to make the model
more accurate i've already covered
transformers numerous times on my
channel so i won't go into how it works
in this video but i still wanted to
highlight a few specific features for
this one in particular first you must be
thinking but transformers are huge and
slow models how can it be of lower
latency than xg boost well you will be
right they've tried it and it was too
slow so they had to make some changes
the change with the biggest impact was
to use a linear transformer which scales
with the dimension of the input instead
of the input's length this means that if
the input is long transformers will be
very slow and this is often the case for
them with as much information as routing
data instead it scales with dimensions
something they can control that is much
smaller another great improvement in
speed is the discretization of inputs
meaning that they take continuous values
and make them much easier to compute by
clustering similar values together
discretization is regularly used in
prediction to speed up computation as
the speed it gives clearly outweighs the
error that duplicates values may bring
now there is one challenge left to cover
and by far the most interesting is how
they made it more general here is the
complete deep eta model to answer this
question there is the earlier
quantization of the data that are then
embedded and sent to the linear
transformer we just discussed then we
have the fully connected layer to make
our predictions and we have a final step
to make our model general the bias
adjustment decoder it will take in the
predictions and the type features we
mentioned at the beginning of the video
containing the reason the customer made
a request to uber to a render prediction
to a more appropriate value for a task
they periodically retrain and deploy
their model using their own platform
called michelangelo which i'd love to
cover next if you're interested if so
please let me know in the comments and
voila this is what uber currently use in
their system to deliver and give rides
to everyone as efficiently as possible
of course this was only an overview and
they used more techniques to improve the
architecture which you can find out in
their great blog post linked below if
you're curious i also just wanted to
note that this was just an overview of
their arrival time prediction algorithm
and i am in no way affiliated with uber
i hope you enjoyed this week's video
covering a model applied to the real
world instead of a new research paper
and if so please feel free to suggest
any interesting applications or tools to
cover next i'd love to read your ids
thank you for watching and i will see
you next week with another amazing paper
[Music]
you