Wéi Yandex.Taxi sicht Autoen wann et keng gëtt

Wéi Yandex.Taxi sicht Autoen wann et keng gëtt

E gudde Taxiservice soll sécher, zouverlässeg a séier sinn. De Benotzer geet net an d'Detailer: Et ass wichteg fir hien, datt hien op de Knäppchen "Bestellen" klickt an esou séier wéi méiglech en Auto kritt, deen hien vum Punkt A op de Punkt B bréngt. Wa keng Autoen an der Géigend sinn, soll de Service informéieren direkt iwwer dëst sou datt de Client net hunn et falsch Erwaardungen. Awer wann d'Schëld "Keng Autoen" ze dacks erschéngt, ass et logesch datt eng Persoun einfach ophale wäert mat dësem Service an op e Konkurrent goen.

An dësem Artikel wëll ech schwätzen iwwer wéi mir mat Maschinnléieren de Problem vun der Sich no Autoen a Low-Dichtgebidder geléist hunn (an anere Wierder, wou op den éischte Bléck keng Autoen sinn). A wat koum dovunner.

Virgeschicht

Fir en Taxi ze ruffen, mécht de Benotzer e puer einfache Schrëtt, awer wat geschitt am Service?

Benotzer Bühn Backend Yandex.Taxi
Wielt de Startpunkt Pin Mir starten eng vereinfacht Sich no Kandidaten - Pin Sich. Baséierend op de fonnte Chauffeuren gëtt d'Arrivéezäit virausgesot - ETA am Pin. De Steigerungskoeffizient op engem bestëmmte Punkt gëtt berechent.
Wielt Destinatioun, Tarif, Ufuerderunge Offer Mir bauen eng Streck a berechnen d'Präisser fir all Tariffer, andeems de Koeffizient berécksiichtegt gëtt.
Dréckt den "Taxi ruffen" Knäppchen Uerdnung Mir starten eng voll Sich no den Auto. Mir wielt de passenden Chauffer a bidden him eng Bestellung.

op ETA an Pin, Präis Berechnung и déi gëeegent Chauffer auswielen hu mer scho geschriwwen. An dëst ass eng Geschicht iwwer Chauffeuren ze fannen. Wann eng Bestellung erstallt gëtt, geschitt d'Sich zweemol: um Pin an op der Bestellung. D'Sich no enger Bestellung fënnt an zwou Etappen statt: Rekrutéierung vu Kandidaten a Ranking. Als éischt ginn verfügbare Kandidat Chauffeuren fonnt, déi am nootste laanscht d'Stroossegrafik sinn. Da ginn Bonus a Filter applizéiert. Déi reschtlech Kandidate ginn klasséiert an de Gewënner kritt eng Bestellungsoffer. Wann hien d'accord ass, gëtt hien op d'Bestellung zougewisen a geet op de Liwwerpunkt. Wann hien refuséiert, da kënnt d'Offer op déi nächst. Wann et keng Kandidate méi sinn, fänkt d'Sich erëm un. Dëst dauert net méi wéi dräi Minutten, duerno gëtt d'Bestellung annuléiert a verbrannt.

Sichen op engem Pin ass ähnlech wéi d'Sich no enger Bestellung, nëmmen d'Bestellung gëtt net erstallt an d'Sich selwer gëtt nëmmen eemol gemaach. Vereinfacht Astellunge fir d'Zuel vun de Kandidaten a Sich Radius ginn och benotzt. Esou Vereinfachungen sinn néideg, well et eng Uerdnung vun der Gréisst méi Pins wéi Commanden sinn, a Sich ass eng zimlech schwéier Operatioun. De Schlësselpunkt fir eis Geschicht: Wann während der Virrecherche keng gëeegent Kandidaten um Pin fonnt goufen, da erlaben mir Iech net eng Bestellung ze maachen. Op d'mannst esou war et fréier.

Dëst ass wat de Benotzer an der Applikatioun gesinn huet:

Wéi Yandex.Taxi sicht Autoen wann et keng gëtt

Sich no Autoen ouni Autoen

Enges Daags hu mir eng Hypothes komm: vläicht kann d'Bestellung an e puer Fäll nach erfëllt ginn, och wa keng Autoen um Pin waren. No all, passéiert eng Zäit tëscht dem Pin an der Bestellung, an d'Sich no der Bestellung ass méi komplett an heiansdo e puer Mol widderholl: während dëser Zäit kënne verfügbare Chauffeuren optrieden. Mir woussten och de Géigendeel: Wann Chauffeuren op der Pin fonnt goufen, war et net e Fakt datt se bei der Bestellung fonnt ginn. Heiansdo verschwannen se oder jidderee refuséiert d'Bestellung.

Fir dës Hypothese ze testen, hu mir en Experiment gestart: mir hunn opgehalen d'Präsenz vun Autoen ze kontrolléieren wärend enger Sich op engem Pin fir eng Testgrupp vu Benotzer, dat heescht, si haten d'Méiglechkeet eng "Bestellung ouni Autoen" ze maachen. D'Resultat war zimlech onerwaart: wann den Auto net op der Pin war, dann an 29% vun de Fäll gouf et spéider fonnt - wann Dir op der Bestellung sicht! Ausserdeem waren d'Bestellungen ouni Autoen net wesentlech anescht wéi normal Bestellungen a punkto Annulatiounsraten, Bewäertungen an aner Qualitéitsindikatoren. Buchungen ouni Auto hunn 5% vun alle Buchungen ausgemaach, awer just iwwer 1% vun all erfollegräichen Reesen.

Fir ze verstoen wou d'Exekutoren vun dësen Uerder hierkommen, kucke mer hir Statuse wärend enger Sich op engem Pin:

Wéi Yandex.Taxi sicht Autoen wann et keng gëtt

  • Verfügbar: zur Verfügung stoung, awer aus irgendege Grënn net an de Kandidaten opgeholl ginn ass, zum Beispill war hien ze wäit ewech;
  • Op Bestellung: war beschäftegt, awer et fäerdeg bruecht selwer ze befreien oder verfügbar ze ginn fir Kette Uerdnung;
  • Beschäftegt: d'Kapazitéit fir Bestellungen ze akzeptéieren war behënnert, awer dunn ass de Chauffer zréck op d'Linn;
  • Nët accessible: de Chauffer war net online, awer hien ass opgetaucht.

Loosst eis Zouverlässegkeet addéieren

Zousätzlech Bestellunge si super, awer 29% vun erfollegräiche Sich bedeit datt 71% vun der Zäit de Benotzer laang gewaart huet an endlech néierens gaang ass. Och wann dëst net eng schlecht Saach aus enger Systemeffizienz Siicht ass, gëtt et de Benotzer tatsächlech falsch Hoffnung a verschwendt Zäit, duerno ginn se opgeregt an (méiglecherweis) ophalen de Service ze benotzen. Fir dëse Problem ze léisen, hu mir geléiert d'Wahrscheinlechkeet virauszesoen datt en Auto op Bestellung fonnt gëtt.

De Schema ass wéi follegt:

  • De Benotzer setzt e Pin.
  • Eng Sich gëtt um Pin duerchgefouert.
  • Wa keng Autoe ginn, viraussoe mir: vläicht wäerte se optrieden.
  • An ofhängeg vun der Wahrscheinlechkeet, mir erlaben oder net erlaben Iech eng Bestellung ze maachen, mä mir warnen Iech, datt d'Dicht vun Autoen an dësem Beräich zu dëser Zäit niddereg ass.

An der Applikatioun huet et esou ausgesinn:

Wéi Yandex.Taxi sicht Autoen wann et keng gëtt

D'Benotzung vum Modell erlaabt Iech nei Bestellungen méi präzis ze kreéieren an d'Leit net ëmsoss ze berouegen. Dat ass, d'Verhältnis vun Zouverlässegkeet an Zuel vun Uerder ze regléieren ouni Maschinnen mat Präzisioun-Erënnerung Modell. D'Zouverlässegkeet vum Service beaflosst de Wonsch de Produit weider ze benotzen, dat heescht am Endeffekt ass alles op d'Zuel vun de Reesen erof.

E bëssen iwwer Präzisioun-ErënnerungEng vun de Basisaufgaben am Maschinnléieren ass d'Klassifikatiounsaufgab: en Objet un eng vun zwou Klassen zouzeschreiwen. An dësem Fall, gëtt d'Resultat vun der Maschinn Léieren Algorithmus oft eng numeresch Bewäertung vun Memberschaft an ee vun de Klassen, zum Beispill, eng Wahrscheinlechkeet Bewäertung. Wéi och ëmmer, d'Aktiounen déi duerchgefouert ginn sinn normalerweis binär: wann den Auto verfügbar ass, da loosse mir Iech et bestellen, a wann net, da wäerte mir net. Fir spezifesch ze sinn, loosst eis en Algorithmus nennen, deen eng numeresch Schätzung e Modell produzéiert, an e Klassifizéierer eng Regel, déi et un eng vun zwou Klassen zougewisen (1 oder -1). Fir e Klassifizéierer op Basis vun der Modellbewäertung ze maachen, musst Dir e Bewäertungsschwelle wielen. Wéi genau hänkt vill vun der Aufgab of.

Ugeholl mir maachen en Test (Klassifizéierer) fir eng selten a geféierlech Krankheet. Baséierend op den Testresultater, schécken mir entweder de Patient fir eng méi detailléiert Untersuchung, oder soen: "Gutt, gitt heem." Fir eis ass eng Krank heemschécken vill méi schlëmm wéi eng gesond Persoun onnéideg ënnersicht. Dat heescht, mir wëllen datt den Test fir sou vill wéi méiglech wierklech krank Leit funktionnéiert. Dëse Wäert gëtt Réckruff = genanntWéi Yandex.Taxi sicht Autoen wann et keng gëtt. En ideale Klassifizéierer huet e Réckruff vun 100%. Eng degeneréiert Situatioun ass jidderee fir d'Untersuchung ze schécken, da wäert de Réckruff och 100% sinn.

Et geschitt och ëmgedréint. Zum Beispill maache mir en Testsystem fir Studenten, an et huet e Bedruchdetektor. Wann op eemol de Scheck fir e puer Fäll vu Bedruch net funktionnéiert, dann ass dat désagréabel, awer net kritesch. Op der anerer Säit ass et extrem schlecht, Studenten ongerecht ze beschëllegt vun eppes wat se net gemaach hunn. Dat ass, et ass wichteg fir eis, datt ënnert de positiven Äntwerte vun der Klassifizéierer esou vill wéi méiglech richteg sinn, vläicht zum Nodeel vun hirer Zuel. Dëst bedeit datt Dir musst Präzisioun maximéieren = Wéi Yandex.Taxi sicht Autoen wann et keng gëtt. Wann d'Ausléisung op all Objete geschitt, da wäert d'Präzisioun gläich sinn wéi d'Frequenz vun der definéierter Klass an der Probe.

Wann den Algorithmus en numeresche Wahrscheinlechkeetswäert produzéiert, da kënnt Dir verschidde Schwellen auswielen, verschidde Präzisiouns-Erënnerungswäerter erreechen.

An eisem Problem ass d'Situatioun wéi follegt. Réckruff ass d'Zuel vun de Bestellungen déi mir ubidden, Präzisioun ass d'Zouverlässegkeet vun dësen Bestellungen. Dëst ass wéi d'Präzisioun-Erënnerungskurve vun eisem Modell ausgesäit:
Wéi Yandex.Taxi sicht Autoen wann et keng gëtt
Et ginn zwee extrem Fäll: erlaben net jiddereen ze bestellen an erlaben jiddereen ze bestellen. Wann Dir kengem erlaabt, da wäert d'Erënnerung 0 sinn: mir erstellen keng Bestellungen, awer keng vun hinnen versoen. Wa mir erlaben jiddereen, dann erënneren wäert 100% (mir wäerten all méiglech Commanden kréien), a Präzisioun gëtt 29%, dh 71% vun Commanden wäert schlecht.

Mir hunn verschidde Parameteren vum Startpunkt als Schëlder benotzt:

  • Zäit / Plaz.
  • System Staat (Zuel vun besat Maschinnen vun all Tariffer an Pins an der Géigend).
  • Sichparameter (Radius, Zuel vu Kandidaten, Restriktiounen).

Méi iwwer d'Schëlder

Konzeptuell wëlle mir tëscht zwou Situatiounen z'ënnerscheeden:

  • "Deep Forest" - et gi keng Autoen hei zu dëser Zäit.
  • "Onglécklech" - et ginn Autoen, awer wann Dir sicht, waren et keng gëeegent.

E Beispill vun "Onglécklech" ass, wann et e Freideg den Owend vill Nofro am Zentrum ass. Et gi vill Bestellungen, vill Leit déi gewëllt sinn, an net genuch Chauffeuren fir jiddereen. Et kann esou ausgesinn: et gi keng passend Chauffeuren am Pin. Awer wuertwiertlech bannent Sekonnen erschéngen se, well et zu dëser Zäit vill Chauffeuren op dëser Plaz sinn an hire Status dauernd ännert.

Dofir hu verschidde Systemindikatoren an der Géigend vum Punkt A sech gutt Features gewisen:

  • Gesamtzuel vun Autoen.
  • Zuel vun Autoen op Bestellung.
  • D'Zuel vun den Autoen déi net verfügbar sinn fir ze bestellen am Status "Beschäftegt".
  • Zuel vun de Benotzer.

Ëmmerhin, wat méi Autoen et sinn, wat et méi wahrscheinlech ass datt ee vun hinnen verfügbar ass.
Tatsächlech ass et fir eis wichteg datt net nëmmen Autoen lokaliséiert ginn, mee och erfollegräich Reese gemaach ginn. Dofir war et méiglech d'Wahrscheinlechkeet vun enger erfollegräicher Rees virauszesoen. Awer mir hunn decidéiert dëst net ze maachen, well dëse Wäert hänkt immens vum Benotzer an dem Chauffer of.

De Modell Training Algorithmus war CatBoost. Daten aus dem Experiment kritt goufen fir Training benotzt. No der Ëmsetzung, Trainingsdaten hu missen gesammelt ginn, heiansdo erlaabt eng kleng Unzuel vu Benotzer géint d'Entscheedung vum Modell ze bestellen.

Resultater

D'Resultater vum Experiment waren wéi erwaart: d'Benotzung vum Modell erlaabt Iech d'Zuel vun erfollegräichen Reesen wesentlech ze erhéijen wéinst Bestellungen ouni Autoen, awer ouni Zouverlässegkeet ze kompromittéieren.

Am Moment ass de Mechanismus an alle Stied a Länner lancéiert ginn a mat senger Hëllef kommen ongeféier 1% vun erfollegräiche Reesen. Ausserdeem, an e puer Stied mat enger gerénger Dicht vun Autoen, erreecht den Undeel vun esou Reesen 15%.

Aner Posts iwwer Taxi Technologie

Source: will.com

Setzt e Commentaire