- 우버는 ETA를 요금 계산, 픽업 시간 예측, 라이더-드라이버간 매칭, 배달시간 계획등에 사용
- 전통적인 ETA엔진들은 도로 네트웍을 작은 단위로 나눠서 그래프에 가중치를 두어서 계산
→ 최단경로 알고리듬으로 최적의 경로를 찾고, 가중치를 추가
- 하지만 "지도는 지형이 아님". 도로그래프는 단순히 모델이고, 실제 상황을 반영하지 못함
- 또한 라이더/드라이버들이 어떤 경로를 선택할지는 모름
- 도로 그래프 기반 추측 위에 과거 데이터와 실제 시그널을 결합해서 머신러닝 모델을 훈련시켜서 더 나은 ETA를 찾아냄
- 몇년간 우버는 ETA예측 개선을 위해 "Gradient-boosted decision tree ensembles"을 사용
→ 하지만, 이제 Apache Spark + XGBoost로는 더 키울 수 없는 한계에 도달했음
- 그래서 딥러닝으로 바꿔서 세개의 주요 문제점을 해결
-
Latency : 몇 밀리초 내에 ETA 계산
-
Accuracy : MAE(Mean Absolute Error, 평균 절대 오차)를 XGBoost 모델보다 개선
-
Generality : 우버의 모든 비즈니스에서 전 세계적으로 ETA 예측을 제공
- 7가지의 신경망 아키텍처를 테스트
→ 최종적으로 Self-Attention을 이용한 Encoder-Decoder 아키텍처(Transformer) 가 가장 정확했음
→ 정확도는 높지만 속도가 너무 느려서, 계산을 빠르게 개선한 Linear Transformer를 선택