Hvernig Yandex.Taxi leitar að bílum þegar þeir eru engir

Hvernig Yandex.Taxi leitar að bílum þegar þeir eru engir

Góð leigubílaþjónusta á að vera örugg, áreiðanleg og hröð. Notandinn mun ekki fara í smáatriði: það er mikilvægt fyrir hann að smella á „Panta“ hnappinn og fá bíl eins fljótt og auðið er sem flytur hann frá punkti A til punktar B. Ef engir bílar eru nálægt ætti þjónustan að upplýsa strax um þetta svo að viðskiptavinurinn hafi ekki verið rangar væntingar. En ef „No cars“ merkið birtist of oft, þá er rökrétt að einstaklingur hættir einfaldlega að nota þessa þjónustu og fari til keppanda.

Í þessari grein vil ég tala um hvernig við, með því að nota vélanám, leystum vandamálið við að leita að bílum á lágþéttum svæðum (með öðrum orðum, þar sem við fyrstu sýn eru engir bílar). Og hvað kom út úr því.

Forsaga

Til að hringja í leigubíl framkvæmir notandinn nokkur einföld skref, en hvað gerist inni í þjónustunni?

User Svið Bakend Yandex.Taxi
Velur upphafsstað Pinna Við erum að hefja einfaldaða leit að frambjóðendum - pinnaleit. Miðað við ökumenn sem fundust er spáð um komutíma - ETA í pinnanum. Hækkandi stuðullinn á tilteknum stað er reiknaður.
Velur áfangastað, fargjald, kröfur Tilboð Við smíðum leið og reiknum út verð fyrir allar gjaldskrár að teknu tilliti til hækkandi stuðul.
Ýtir á hnappinn „Hringja í leigubíl“ Заказ Við hefjum fulla leit að bílnum. Við veljum heppilegasta bílstjórann og bjóðum honum pöntun.

á ETA í pinna, verðútreikning и að velja heppilegasta ökumanninn við skrifuðum þegar. Og þetta er saga um að finna ökumenn. Þegar pöntun er búin til fer leitin fram tvisvar: á pinnanum og á pöntuninni. Leit að pöntun fer fram í tveimur áföngum: ráðningu umsækjenda og röðun. Í fyrsta lagi finnast tiltækir ökumenn sem eru næstir meðfram vegagrafinu. Þá eru bónusar og síun beitt. Þeim sem eftir eru er raðað í röð og sigurvegarinn fær pöntunartilboð. Ef hann samþykkir er honum úthlutað til pöntunarinnar og fer á afhendingarstað. Ef hann neitar, þá kemur tilboðið í það næsta. Ef ekki eru fleiri umsækjendur hefst leitin aftur. Þetta tekur ekki meira en þrjár mínútur, eftir það er pöntunin afturkölluð og brennd.

Leit á pinna er svipað og leit á pöntun, aðeins pöntunin er ekki búin til og leitin sjálf er aðeins framkvæmd einu sinni. Einnig eru notaðar einfaldaðar stillingar fyrir fjölda umsækjenda og leitarradíus. Slíkar einfaldanir eru nauðsynlegar vegna þess að það eru stærðargráðu fleiri pinnar en pantanir og leit er frekar erfið aðgerð. Lykilatriðið fyrir sögu okkar: Ef við forleitina fundust engir viðeigandi umsækjendur á pinnanum, þá leyfum við þér ekki að leggja inn pöntun. Þannig var það allavega.

Þetta er það sem notandinn sá í forritinu:

Hvernig Yandex.Taxi leitar að bílum þegar þeir eru engir

Leitaðu að bílum án bíla

Einn daginn komum við með tilgátu: kannski í sumum tilfellum er enn hægt að ganga frá pöntuninni, jafnvel þótt engir bílar væru á pinnanum. Þegar öllu er á botninn hvolft líður nokkur tími á milli pinna og pöntunar og leitin að pöntuninni er fullkomnari og stundum endurtekin nokkrum sinnum: á þessum tíma geta tiltækir ökumenn birst. Við vissum líka hið gagnstæða: Ef ökumenn fundust á pinnanum var það ekki staðreynd að þeir myndu finnast við pöntun. Stundum hverfa þeir eða allir neita pöntuninni.

Til að prófa þessa tilgátu hófum við tilraun: við hættum að kanna tilvist bíla við leit á pinna fyrir prófunarhóp notenda, þ.e.a.s. þeir fengu tækifæri til að gera „pöntun án bíla“. Niðurstaðan var frekar óvænt: ef bíllinn var ekki á pinnanum þá fannst hann í 29% tilvika seinna - þegar leitað var á pöntuninni! Þar að auki voru pantanir án bíla ekki marktækt frábrugðnar venjulegum pöntunum hvað varðar afpöntunarhlutfall, einkunnir og aðra gæðavísa. Bókanir án bíla voru 5% allra bókana en rúmlega 1% af öllum ferðum sem heppnuðust.

Til að skilja hvaðan framkvæmdaraðilar þessara skipana koma skulum við skoða stöðu þeirra við leit á pinna:

Hvernig Yandex.Taxi leitar að bílum þegar þeir eru engir

  • Laus: var í boði, en af ​​einhverjum ástæðum var hann ekki tekinn með í umsækjendum, til dæmis var hann of langt í burtu;
  • Á pöntun: var upptekinn, en tókst að losa sig eða verða laus fyrir keðjupöntun;
  • Upptekinn: hæfni til að taka við pöntunum var óvirk, en þá fór ökumaðurinn aftur í línuna;
  • Ekki í boði: ökumaðurinn var ekki á netinu en hann birtist.

Við skulum bæta við áreiðanleika

Viðbótarpantanir eru frábærar, en 29% árangursríkra leita þýðir að 71% af þeim tíma sem notandinn beið lengi og endaði hvergi. Þó að þetta sé ekki slæmt út frá kerfishagkvæmni sjónarmiði gefur það notandanum í raun falskar vonir og eyðir tíma, eftir það verður hann í uppnámi og hættir (hugsanlega) að nota þjónustuna. Til að leysa þetta vandamál lærðum við að spá fyrir um líkurnar á því að bíll á pöntun finnist.

Kerfið er sem hér segir:

  • Notandinn setur pinna.
  • Leitað er á pinnanum.
  • Ef það eru engir bílar spáum við: kannski munu þeir birtast.
  • Og allt eftir líkum leyfum við þér eða leyfum þér ekki að panta, en við vörum þig við því að þéttleiki bíla á þessu svæði á þessum tíma er lítill.

Í umsókninni leit það svona út:

Hvernig Yandex.Taxi leitar að bílum þegar þeir eru engir

Notkun líkansins gerir þér kleift að búa til nýjar pantanir nákvæmari og ekki fullvissa fólk til einskis. Það er, til að stjórna hlutfalli áreiðanleika og fjölda pantana án véla sem nota nákvæmni-innkalla líkanið. Áreiðanleiki þjónustunnar hefur áhrif á löngunina til að halda áfram að nota vöruna, þ.e.a.s. að lokum snýst þetta allt um fjölda ferða.

Smá um nákvæmni-innköllunEitt af grunnverkefnum í vélanámi er flokkunarverkefnið: að úthluta hlut í einn af tveimur flokkum. Í þessu tilviki verður niðurstaða vélnáms reikniritsins oft tölulegt mat á aðild að einum af bekkjunum, til dæmis líkindamat. Hins vegar eru aðgerðirnar sem eru gerðar venjulega tvöfaldar: ef bíllinn er tiltækur leyfum við þér að panta hann og ef ekki, þá gerum við það ekki. Til að vera nákvæm, skulum við kalla reiknirit sem framleiðir tölulegt mat líkan og flokkara reglu sem úthlutar því til annars af tveimur flokkum (1 eða -1). Til að gera flokkara sem byggir á líkanmatinu þarftu að velja matsþröskuld. Hvernig nákvæmlega fer mjög eftir verkefninu.

Segjum að við séum að gera próf (flokkara) fyrir einhvern sjaldgæfan og hættulegan sjúkdóm. Byggt á niðurstöðum prófanna sendum við sjúklinginn annað hvort í ítarlegri skoðun eða segjum: „Gott, farðu heim. Fyrir okkur er það miklu verra að senda sjúkan einstakling heim en að rannsaka heilbrigðan einstakling að óþörfu. Það er að segja, við viljum að prófið virki fyrir sem flesta raunverulega veikt fólk. Þetta gildi er kallað recall =Hvernig Yandex.Taxi leitar að bílum þegar þeir eru engir. Tilvalinn flokkari hefur innköllun upp á 100%. Úrkynjað ástand er að senda alla í skoðun, þá verður innköllunin líka 100%.

Það gerist líka á hinn veginn. Til dæmis erum við að búa til prófunarkerfi fyrir nemendur og það er með svindlskynjara. Ef skyndilega virkar ávísunin ekki fyrir sum svindltilvik, þá er þetta óþægilegt, en ekki mikilvægt. Aftur á móti er afskaplega slæmt að saka nemendur á ósanngjarnan hátt um eitthvað sem þeir gerðu ekki. Það er, það er mikilvægt fyrir okkur að meðal jákvæðra svara flokkarans séu eins mörg rétt og mögulegt er, kannski til skaða fyrir fjölda þeirra. Þetta þýðir að þú þarft að hámarka nákvæmni = Hvernig Yandex.Taxi leitar að bílum þegar þeir eru engir. Ef kveikja á sér stað á öllum hlutum, þá mun nákvæmni vera jöfn tíðni skilgreinds flokks í úrtakinu.

Ef reikniritið framleiðir tölulegt líkindagildi, þá með því að velja mismunandi þröskulda, geturðu náð mismunandi nákvæmni-innkallagildum.

Í okkar vanda er staðan sem hér segir. Innköllun er fjöldi pantana sem við getum boðið, nákvæmni er áreiðanleiki þessara pantana. Svona lítur nákvæmni-innköllunarferill líkansins okkar út:
Hvernig Yandex.Taxi leitar að bílum þegar þeir eru engir
Það eru tvö öfgatilvik: ekki leyfa neinum að panta og leyfa öllum að panta. Ef þú leyfir engum, þá verður innköllun 0: við búum ekki til pantanir, en engin þeirra mun mistakast. Ef við leyfum öllum þá verður innköllun 100% (við fáum allar mögulegar pantanir) og nákvæmni verður 29%, þ.e.a.s. 71% pantana verða slæmar.

Við notuðum ýmsar færibreytur upphafspunktsins sem merki:

  • Tími/staður.
  • Kerfisástand (fjöldi upptekinna véla af öllum gjaldskrám og pinna í nágrenninu).
  • Leitarbreytur (radíus, fjöldi umsækjenda, takmarkanir).

Meira um merkin

Hugmyndalega viljum við greina á milli tveggja aðstæðna:

  • „Djúpur skógur“ - það eru engir bílar hér á þessum tíma.
  • „Óheppinn“ - það eru bílar, en við leit voru engir við hæfi.

Eitt dæmi um „óheppinn“ er ef mikil eftirspurn er í miðstöðinni á föstudagskvöldið. Það er mikið af pöntunum, mikið af fólki tilbúið og ekki nógu margir bílstjórar fyrir alla. Það gæti orðið svona: það eru engir hentugir ökumenn í pinnanum. En bókstaflega innan nokkurra sekúndna birtast þeir, því á þessum tíma eru margir ökumenn á þessum stað og staða þeirra er stöðugt að breytast.

Þess vegna reyndust ýmsir kerfisvísar í nágrenni við punkt A vera góðir eiginleikar:

  • Heildarfjöldi bíla.
  • Fjöldi bíla á pöntun.
  • Fjöldi bíla sem ekki er hægt að panta í stöðunni „Upptekinn“.
  • Fjöldi notenda.

Þegar öllu er á botninn hvolft, því fleiri bílar sem eru, því meiri líkur eru á að einn þeirra verði fáanlegur.
Í raun er mikilvægt fyrir okkur að ekki aðeins séu bílar staðsettir heldur séu farnar farsælar ferðir. Því var hægt að spá fyrir um líkur á farsælli ferð. En við ákváðum að gera þetta ekki, því þetta gildi fer mjög eftir notanda og ökumanni.

Líkanþjálfunaralgrímið var CatBoost. Gögn sem fengust úr tilrauninni voru notuð til þjálfunar. Eftir innleiðingu þurfti að safna þjálfunargögnum, stundum leyfði fáeinum notendum að panta gegn ákvörðun líkansins.

Niðurstöður

Niðurstöður tilraunarinnar voru eins og búist var við: með því að nota líkanið er hægt að auka verulega fjölda farsælra ferða vegna pantana án bíla, en án þess að skerða áreiðanleika.

Í augnablikinu hefur vélbúnaðurinn verið hleypt af stokkunum í öllum borgum og löndum og með hjálp þess verða um 1% farsælra ferða. Þar að auki, í sumum borgum með lítinn þéttleika bíla, nær hlutfall slíkra ferða 15%.

Aðrar færslur um Taxi tækni

Heimild: www.habr.com

Bæta við athugasemd