Wie Yandex.Taxi die Lieferzeit von Autos mithilfe von maschinellem Lernen vorhersagt

Stellen Sie sich vor, Sie mĂŒssen ein Taxi rufen. Sie öffnen die Anwendung, sehen, dass das Auto in etwa sieben Minuten ankommt, klicken auf "Bestellen" - und ... das Auto ist, wenn ĂŒberhaupt, 15 Minuten von Ihnen entfernt. Einverstanden, unangenehm?

Im Rahmen des Schnitts werden wir darĂŒber sprechen, wie Methoden des maschinellen Lernens Yandex.Taxi dabei helfen, die ETA (geschĂ€tzte Ankunftszeit - erwartete Ankunftszeit) besser vorherzusagen.



Denken Sie zunÀchst daran, dass der Benutzer vor der Bestellung Folgendes in der Anwendung sieht:



Auf der Karte zeigt Blau die optimalen Punkte fĂŒr das Einsteigen in ein Taxi an. Roter Stift - der Punkt, zu dem der Benutzer ein Taxi ruft. Der Stift zeigt an, wie lange das Auto ankommen wird. In einer perfekten Welt. In der realen Welt nennen sich andere Personen in der NĂ€he ĂŒber die Yandex.Taxi-Anwendung auch ein Auto. Und wir wissen nicht, welches Auto an wen geht, weil sie erst nach Bestellung verteilt werden. Wenn das Auto bereits zugewiesen wurde, verwenden wir fĂŒr die Vorhersage das Yandex.Maps-Routing und die Zeit, wenn wir uns auf dem optimalen Pfad bewegen. Dieses Mal (möglicherweise mit einem kleinen Rand) zeigen wir den Benutzer sofort nach der Bestellung. Die Frage bleibt: Wie kann man ETA vor der Bestellung vorhersagen?

Und hier erscheint maschinelles Lernen. Wir treffen eine Auswahl mit Objekten und den richtigen Antworten und bringen dem Algorithmus bei, die Antwort gemĂ€ĂŸ den Eigenschaften des Objekts zu erraten. In unserem Fall sind die Objekte Benutzersitzungen, die Antworten sind die Zeit, nach der das Auto tatsĂ€chlich angekommen ist. Zeichen des Objekts können numerische Parameter sein, die vor der Bestellung bekannt sind: die Anzahl der Fahrer und Benutzer der Anwendung neben dem Stift, die Entfernung zu den nĂ€chsten Servicefahrzeugen und andere potenziell nĂŒtzliche Werte.

Warum ist das wichtig?



In einer idealen Welt tun die Menschen alles im Voraus und planen ihre Zeit immer genau. Aber wir leben in der realen Welt. Wenn eine Person zu spÀt zur Arbeit oder, schlimmer noch, zum Flughafen kommt, ist es wichtig zu verstehen, ob sie rechtzeitig zum Verlassen und Erreichen ihres Ziels kommt.
Bei der Entscheidung, was bestellt werden soll, wird der zukĂŒnftige Passagier unter anderem von der Wartezeit geleitet. Es kann in verschiedenen Anwendungen fĂŒr das Anrufen eines Taxis und in verschiedenen Tarifen einer Anwendung sehr unterschiedlich sein. Damit der Benutzer die Auswahl nicht bereut, ist es sehr wichtig, die genaue ETA anzuzeigen.

Alles scheint einfach zu sein. Überlegen Sie sich mehr Schilder, trainieren Sie ein Modell wie CatBoost, sagen Sie die Zeit vor der Ankunft des Autos voraus - und Sie können dort enden. Die Erfahrung zeigt jedoch, dass es besser ist, nicht zu hetzen und sorgfĂ€ltig nachzudenken und es dann zu tun.

ZunĂ€chst hatten wir keinen Zweifel daran, dass es notwendig war, die Zeit vorherzusagen, in der der Fahrer tatsĂ€chlich zum Benutzer gelangen wĂŒrde. Ja, wir wissen nicht genau, welches Auto vor der Bestellung zugewiesen wird. Wir können die ETA jedoch anhand von Daten vorhersagen, die sich nicht auf einen bestimmten Fahrer beziehen, sondern auf die Fahrer in der NĂ€he der Bestellung. NatĂŒrlich muss die Prognose ehrlich genug sein, damit der Benutzer die Zeit planen kann.

Aber was bedeutet "ehrlich"? Schließlich ist jeder Prognosealgorithmus schlecht oder nur statistisch gut. Es gibt sowohl erfolgreiche als auch ehrlich gesagt schlechte Ergebnisse, aber Sie mĂŒssen "durchschnittlich" sein, um nicht wesentlich von den richtigen Antworten abzuweichen. Es versteht sich, dass "im Durchschnitt" anders ist. Der Durchschnitt besteht beispielsweise aus mindestens drei statistischen Konzepten: Erwartung, Median und Mode. Das Bild aus Darrell Huffs großartigem Buch "Wie man mit Statistiken lĂŒgt" zeigt perfekt den Unterschied:



Wir möchten, dass das Modell im Durchschnitt nur wenige Fehler macht. AbhÀngig vom Wert des "Durchschnitts" gibt es zwei Möglichkeiten, die QualitÀt der Prognosen zu bewerten. Die erste Möglichkeit besteht darin, dem Benutzer die mathematische Erwartung der Zeit vor dem Eintreffen des Taxis anzuzeigen. Als Ergebnis wird ein Modell trainiert, das das mittlere Quadrat des Prognosefehlers minimiert (Mean Squared Error, MSE):

MSE= frac1n sumni=1(yi− hatyi)2 rightarrowmin



Hier yi - richtige Antworten,  hatyi - Modellvorhersagen.

Eine andere Option ist nicht mit der ETA-Prognose zu verwechseln, hauptsÀchlich in eine Richtung, nach oben oder unten. In diesem Fall zeigen wir dem Benutzer den Median der Zeitverteilung vor dem Eintreffen des Taxis. Als Ergebnis wird ein Modell trainiert, das das Durchschnittsmodul des Prognosefehlers optimiert (Mean Absolute Error, MAE):

MAE= frac1n sumni=1|yi− hatyi| rightarrowmin



Aber wir stellten fest, dass wir uns ein bisschen voraus waren.

Die Aussage des Problems ĂŒberdenken


Nach dem Termin wissen wir, welche Art von Auto an den Benutzer geht, was bedeutet, dass wir seine Reisezeit auf Yandex.Maps schÀtzen können. Diese Zeit wird im Pin nach der Bestellung angezeigt. Einerseits haben wir jetzt mehr Informationen und die Prognose wird genauer sein, andererseits ist dies auch eine SchÀtzung mit einem Fehler.

Das war der Haken in der ETA-Pin-Aufgabe. WÀhrend der Fahrer nicht zugewiesen ist, muss genau die Zeit vorhergesagt werden , die das Yandex.Mart-Routing dann anzeigt, und nicht die tatsÀchliche Zeit, bevor das Auto ausgeliefert wurde.

Es scheint, was fĂŒr ein Unsinn: Anstelle des genauen Wertes eine andere Prognose als Ziel nehmen? Aber das macht Sinn, und hier ist der Grund. Auf dem Weg zu Ihnen kann das angegebene Auto verweilen. Der Fahrer geriet auf der Straße, im Stau aufgrund eines Unfalls in eine gefĂ€hrliche Situation oder ging hinaus, um Wasser zu kaufen. Solche Verzögerungen sind schwer vorherzusagen. Sie erzeugen zusĂ€tzliches Rauschen in der Zielvariablen, wodurch die ohnehin schwierige Aufgabe, die ETA im Pin vorherzusagen, noch schwieriger wird.

Wie LÀrm loswerden? Vorhersage der geglÀtteten Zielvariablen - die Zeit, die angezeigt wird, nachdem die Maschine basierend auf der Route zum Benutzer zugewiesen wurde.

Dies ist die Logik aus geschĂ€ftlicher Sicht: Sie können die Zeit auf der Straße ohnehin nicht auf den optimalen Weg von ETA bringen, aber zusĂ€tzliche Verzögerungen können durch die Arbeit mit Fahrern verringert werden.

QualitÀtsmetriken, Daten, Modell und Schulung


Wir haben herausgefunden, dass fĂŒr ETA im Pin nicht die tatsĂ€chliche Zeit vorhergesagt werden muss, sondern die Zeit, die empfangen wird, nachdem die Maschine entlang der Route zugewiesen wurde. Von den beiden QualitĂ€tsmetriken MAE und MSE haben wir MAE ausgewĂ€hlt. Unter dem Gesichtspunkt der IntuitivitĂ€t der Prognose ist es möglicherweise logischer, die mittlere Erwartung (MSE) zu bewerten, als den Median (MAE). Aber MAE hat eine nette Eigenschaft: Das Modell ist unter Trainingsbeispielen widerstandsfĂ€higer gegen Ausreißer.

Zeichen sind in Gruppen unterteilt:
- nach aktueller Zeit gebaut;
- Geo (Koordinaten, Entfernung zum Stadtzentrum und wichtige Objekte auf der Karte);
- Stift (wie viele und welche Autos in der NĂ€he sind, deren Dichte unterschiedlich berechnet wird);
- Statistiken ĂŒber die Zone (wie ĂŒblich machen wir Fehler, wie viel wir vorhersagen);
- Daten ĂŒber die nĂ€chstgelegenen Fahrer (wie lange sie erreichen, wie weit der erste nĂ€her als der zweite ist usw.).

NatĂŒrlich wurde CatBoost auf diese Zeichen geschult. Das entscheidende Argument war, dass sich die in CatBoost ĂŒber ausgeglichene BĂ€ume implementierte GradientenverstĂ€rkung seit langem als sehr leistungsfĂ€hige Methode des maschinellen Lernens etabliert hat und sich die Methode zum Codieren kategorialer Merkmale in CatBoost regelmĂ€ĂŸig fĂŒr unsere Aufgaben auszahlt. Ein weiteres nettes Feature der Bibliothek ist das schnelle Lernen auf der GPU.

Nun ein paar Worte darĂŒber, welche Modelle verglichen wurden. Die anfĂ€ngliche ETA (bevor sie durch maschinelles Lernen festgelegt wurde) wurde basierend auf der Zeit berechnet, fĂŒr die die Maschine, die dem Benutzer am nĂ€chsten ist, ankommen konnte. Das aktuelle Modell (das jetzt in der Anwendung verwendet wird) hat sich als maschinelles Lernen herausgestellt und worum es in diesem Artikel geht. DarĂŒber hinaus wird in KĂŒrze ein neues Modell in Produktion gehen. Sie verwendet um eine GrĂ¶ĂŸenordnung bedeutendere Merkmale, um das Problem zu lösen. Die folgende Tabelle zeigt die QualitĂ€tsmessungen dieser Modelle anhand historischer Daten. Übrigens haben wir noch viele PlĂ€ne - kommen Sie, um zu helfen .

VorhersagequalitĂ€t fĂŒr die ETA-Validierung *


Mittlerer absoluter Fehler
Fehler lÀnger als 1 Minute
Fehler lÀnger als 2 Minuten
Fehler lÀnger als 5 Minuten

Original ETA


82.082


29,95


18.12


3,7


Aktuelles Modell


79,276 (–3,4)


29,33 (–2,1)


16,98 (–6,3)


3 (–19,2)


Neues Modell


78,414 (–4,5)


28,95 (–3,4)


16,62 (–8,2)


2,8 (–23,2)




* Prozentsatz (in Klammern die Änderung gegenĂŒber der ursprĂŒnglichen ETA angeben).

Durch maschinelles Lernen konnten wir etwa zwei Sekunden oder 3,4% der durchschnittlichen Prognoseabweichung gewinnen. Und im neuen Modell - fast eine weitere Sekunde, insgesamt 4,5%. Aus diesen Zahlen ist jedoch schwer zu verstehen, dass sich die ETA erheblich verbessert hat. Um die Vorteile des maschinellen Lernens zu spĂŒren, sollten Sie auf die letzte Spalte achten. FehlschlĂ€ge mit einer Prognose von mehr als 5 Minuten wurden 19,2% und im neuen Modell sogar 23,2% weniger! Solche Fehler treten ĂŒbrigens nur in 3 und 2,8% der FĂ€lle in Modellen mit maschinellem Lernen auf.

Zusammenfassung


Wir haben die ETA hauptsĂ€chlich im Pin angegeben, um den Benutzern eine zuverlĂ€ssige Prognose zu liefern. Bei jeder Anwendung des maschinellen Lernens in der Wirtschaft ist es natĂŒrlich unerlĂ€sslich, die wirtschaftlichen Auswirkungen zu bewerten. Und verstehen Sie, ob es mit den Kosten fĂŒr die Erstellung und Implementierung von Modellen vergleichbar ist. Nach dem Online-A / B-Test stellte sich heraus, dass wir mithilfe von maschinellem Lernen einen statistisch signifikanten Anstieg der Conversion von einer Bestellung zu einer Reise (schließlich kann eine Bestellung storniert werden) und einen Anstieg der Conversion von einer Benutzersitzung zu einer Bestellung erhalten haben.

In beiden FĂ€llen handelt es sich um einen Effekt in der GrĂ¶ĂŸenordnung von 0,1 Prozentpunkten. Dies widerspricht ĂŒbrigens nicht der statistischen Signifikanz: Bei unseren Datenmengen wird auch ein solcher Unterschied in 2–4 Wochen zuverlĂ€ssig festgestellt. Und mit geschĂ€ftlicher Relevanz ist in der Tat auch nicht alles schlecht: Es stellte sich heraus, dass die Kosten fĂŒr die KlĂ€rung der ETA durch die Zunahme der Umstellung in nur wenigen Monaten gedeckt werden.

Als Ergebnis haben wir einen nĂŒtzlichen und anschaulichen Fall erhalten. Die Verfeinerung der ETA im Pin ist zu einer lehrreichen Geschichte ĂŒber die sorgfĂ€ltige Auswahl der Zielvariablen geworden. Auf der Produktseite ist dies ein sehr motivierendes Beispiel: Wir haben die Anwendung verbessert und festgestellt, dass die Benutzer sie schĂ€tzen. Wir hoffen, dass die verfeinerte ETA unseren Passagieren hilft, Meetings, ZĂŒge und Flugzeuge hĂ€ufiger zu treffen.

PS Wenn Sie an anderen Yandex.Taxi-Technologien interessiert sind, empfehlen wir einen Beitrag zur dynamischen Preisgestaltung , den mein Kollege kĂŒrzlich veröffentlicht hat.

Source: https://habr.com/ru/post/de431196/


All Articles