GOのAI技術まとめ - ETA編

AI技術開発部の宇都です。GO株式会社では過去に発信した記事や発表資料をテーマごとにまとめる取り組みを行っています。今回はタクシーアプリ『GO』で利用されているETA(到着予測時間)における内製化の取り組みや精度・運用改善のための工夫についての記事をご紹介します。

ETAとは

ETAとはEstimated Time of Arrival(到着予測時間)の略称で、ある地点から別のある地点に行くまでにかかる時間を予測する技術です。タクシーアプリ『GO』では主にアプリ上で「あと何分で車両が到着するか」をユーザに伝えるためにETAが利用されています。アプリリリース当初は外部の経路探索APIを用いていましたが現在は内製のETAエンジンを作成し利用しています。

Untitled

(DeNA TechCon2022 スライドより引用)

アルゴリズム改善の取り組み

ETAの予測精度はタクシーアプリのUXにおいて極めて重要です。ETAは車両が道路のどこに存在するかによって変動し、特に交差点を通る前と通った後ではETAが大幅に異なるケースが存在していました。この記事では交差点付近での車両位置ずれによってETAの精度が悪化してしまう「通り過ぎ問題」に対して「道路ネットワーク上での将来の車両存在確率」を推定することでETAの変動を大幅に改善した事例を紹介しています。

💡 ETA(到着予想時間)の重要性と「通り過ぎ問題」への対策 (技術ブログ, 2021/08)

内製化の取り組み

記事1

アプリリリース当初は外部の経路探索APIを用いてETAを算出していましたが利用コストが増大する点やタクシー配車アプリ特有の問題設定に対応できていない点を解決するためにETAエンジンの内製化を行いました。この記事ではタクシー配車アプリ特有の問題設定の紹介と、それを解決するために蓄積された走行データをもとに機械学習モデルを構築した話が紹介されています。これにより時間帯や乗務員ごとの違いを考慮したETAを実現することができるようになっています。

💡 タクシーアプリ特有の到着予想時間算出エンジンの特徴 (技術ブログ, 2021/12)

記事2

この記事では内製ETAエンジンKaminaについて紹介しています。従来のETA算出は機械学習ベースの手法や経路探索ベースの手法が利用されていました。新しく内製化したKaminaでは機械学習ベースの手法と経路探索ベースの手法を組み合わせてETAを算出する手法を採用することで精度や運用コストを改善しています。また内製化にあたり「経路探索地図データのmemmap化によるコスト削減」や「Cythonによる経路探索の高速化」などの工夫についても触れられています。

💡 あと何分?タクシーアプリ『GO』到着予測AIの社会実装まで (DeNA TechCon 2022, 技術ブログ, 2022/03)

MLOpsの取り組み

ETAは天候や道路の混雑状況によって変動するものであり、特に冬の降雪時にはETAの精度が低下する問題が確認されていました。この問題に対応するためにはETAを予測する機械学習モデルの特徴量にそれらの情報を利用する方法がありますが、従来のシステムでは降雪などのニアリアルタイムなデータを機械学習モデルに渡すための仕組みがありませんでした。

このスライドではニアリアルタイムの特徴量をETAエンジンの機械学習モデルに提供するために複数の案から「バッチサービング独自実装」を採用しシステムを構築した話が紹介されています。

💡 到着予想時間(ETA)サービスの特徴量のニアリアルタイム化 (GO TechTalk#19, 2023/05)

(対象の発表はスライドのp39ページから)

おわりに

タクシーアプリ『GO』のETAは経路探索と機械学習を組み合わせたモデルを利用し、その他様々な工夫を重ねることで実サービスでの運用を実現しています。ETAはタクシーアプリのUXにおいて非常に重要なAI技術であるため、今後も改善を重ねより良いサービスを目指していきたいと思います。