Yandeks.Taxi avtomobillər olmadığı halda onları necə axtarır

Yandeks.Taxi avtomobillər olmadığı halda onları necə axtarır

Yaxşı taksi xidməti təhlükəsiz, etibarlı və sürətli olmalıdır. İstifadəçi təfərrüatlara varmayacaq: onun üçün “Sifariş et” düyməsini sıxması və onu A nöqtəsindən B nöqtəsinə aparacaq avtomobili mümkün qədər tez qəbul etməsi vacibdir. Yaxınlıqda avtomobil yoxdursa, xidmət göstərməlidir. dərhal bu barədə məlumat verin ki, müştərinin yalan gözləntiləri olmasın. Ancaq "Maşın yoxdur" işarəsi çox tez-tez görünürsə, bir insanın bu xidmətdən istifadə etməyi dayandırması və rəqibə getməsi məntiqlidir.

Bu yazıda mən maşın öyrənməsindən istifadə edərək aşağı sıxlıqlı ərazilərdə (başqa sözlə, ilk baxışdan avtomobillərin olmadığı yerlərdə) avtomobillərin axtarışı problemini necə həll etdiyimiz barədə danışmaq istəyirəm. Və ondan nə gəldi.

Prehistorya

Taksi çağırmaq üçün istifadəçi bir neçə sadə addımı yerinə yetirir, bəs xidmət daxilində nə baş verir?

İstifadəçi Mərhələ Yan Yandex.Taxi
Başlanğıc nöqtəsini seçir Pin Biz namizədlər üçün sadələşdirilmiş axtarışa başlayırıq - pin axtarışı. Tapılan sürücülərə əsasən, gəliş vaxtı proqnozlaşdırılır - pində ETA. Verilmiş nöqtədə artan əmsalı hesablanır.
Təyinatı, gediş haqqını, tələbləri seçir Təklif Artan əmsalı nəzərə alaraq bütün tariflər üzrə marşrut qurur və qiymətləri hesablayırıq.
“Taksiyə zəng et” düyməsini sıxır Sifariş Avtomobil üçün tam axtarışa başlayırıq. Biz ən uyğun sürücünü seçib ona sifariş təklif edirik.

haqqında ETA pində, qiymət hesablanması и ən uyğun sürücünün seçilməsi artıq yazmışdıq. Və bu, sürücülərin tapılması ilə bağlı bir hekayədir. Sifariş yaradıldıqda axtarış iki dəfə baş verir: Pin-də və sifarişdə. Sifarişin axtarışı iki mərhələdə baş verir: namizədlərin işə qəbulu və reytinq. Birincisi, yol qrafiki boyunca ən yaxın olan mövcud namizəd sürücülər tapılır. Sonra bonuslar və filtrləmə tətbiq olunur. Qalan namizədlər sıralanır və qalibə sifariş təklifi verilir. Razılaşsa, o, sifarişlə təyin olunur və çatdırılma məntəqəsinə gedir. Əgər imtina edərsə, deməli təklif növbəti birinə gəlir. Namizədlər yoxdursa, axtarış yenidən başlayır. Bu, üç dəqiqədən çox çəkmir, bundan sonra sifariş ləğv edilir və yandırılır.

Pin üzərində axtarış sifariş üzrə axtarışa bənzəyir, yalnız sifariş yaradılmır və axtarışın özü yalnız bir dəfə həyata keçirilir. Namizədlərin sayı və axtarış radiusu üçün sadələşdirilmiş parametrlər də istifadə olunur. Bu cür sadələşdirmələr lazımdır, çünki sifarişlərdən daha çox sancaqlar sırası var və axtarış olduqca çətin bir əməliyyatdır. Hekayəmiz üçün əsas məqam: ilkin axtarış zamanı Pin-də uyğun namizəd tapılmadısa, sifariş verməyə icazə vermirik. Ən azından əvvəllər belə idi.

İstifadəçinin tətbiqdə gördükləri budur:

Yandeks.Taxi avtomobillər olmadığı halda onları necə axtarır

Avtomobilləri olmayan avtomobilləri axtarın

Bir gün biz bir fərziyyə ilə gəldik: bəlkə də bəzi hallarda pin üzərində maşın olmasa belə, sifariş hələ də tamamlana bilər. Axı, pin və sifariş arasında bir müddət keçir və sifarişin axtarışı daha tam və bəzən bir neçə dəfə təkrarlanır: bu müddət ərzində mövcud sürücülər görünə bilər. Biz də bunun əksini bilirdik: sancaqda sürücülər tapılsa, sifariş verən zaman tapılacaqları fakt deyildi. Bəzən onlar yoxa çıxır və ya hamı sifarişdən imtina edir.

Bu fərziyyəni yoxlamaq üçün biz bir eksperimentə başladıq: bir sınaq istifadəçisi qrupu üçün Pin-də axtarış zamanı avtomobillərin mövcudluğunu yoxlamağı dayandırdıq, yəni onların “avtomobilsiz sifariş” etmək imkanı var idi. Nəticə olduqca gözlənilməz oldu: avtomobil sancaqda deyildisə, 29% hallarda daha sonra tapıldı - sifariş üzrə axtarış zamanı! Üstəlik, avtomobilsiz sifarişlər ləğvetmə dərəcələri, reytinqlər və digər keyfiyyət göstəriciləri baxımından adi sifarişlərdən əhəmiyyətli dərəcədə fərqlənmirdi. Avtomobilsiz sifarişlər bütün sifarişlərin 5%-ni, lakin bütün uğurlu səfərlərin 1%-dən bir qədər çoxunu təşkil edib.

Bu əmrlərin icraçılarının haradan gəldiyini anlamaq üçün Pin-də axtarış zamanı onların statuslarına baxaq:

Yandeks.Taxi avtomobillər olmadığı halda onları necə axtarır

  • Mövcuddur: mövcud idi, lakin nədənsə namizədlərə daxil edilmədi, məsələn, çox uzaqda idi;
  • Sifarişlə: məşğul idi, lakin özünü azad etməyi və ya əlçatan olmağı bacardı zəncir sırası;
  • Məşğul: sifariş qəbul etmək qabiliyyəti dayandırıldı, lakin sonra sürücü sıraya qayıtdı;
  • Mövcud deyil: sürücü onlayn deyildi, amma göründü.

Etibarlılığı əlavə edək

Əlavə sifarişlər əladır, lakin uğurlu axtarışların 29%-i o deməkdir ki, istifadəçinin 71%-i uzun müddət gözlədi və heç yerə getmədi. Bu, sistemin səmərəliliyi baxımından pis bir şey olmasa da, əslində istifadəçiyə yalan ümid verir və vaxt itirir, bundan sonra onlar əsəbiləşirlər və (bəlkə də) xidmətdən istifadəni dayandırırlar. Bu problemi həll etmək üçün sifarişli avtomobilin tapılma ehtimalını proqnozlaşdırmağı öyrəndik.

Sxem belədir:

  • İstifadəçi pin qoyur.
  • Pin üzərində axtarış aparılır.
  • Maşınlar yoxdursa, proqnozlaşdırırıq: bəlkə də görünəcəklər.
  • Və ehtimaldan asılı olaraq, sifariş verməyə icazə veririk və ya vermirik, lakin xəbərdarlıq edirik ki, bu ərazidə avtomobillərin sıxlığı hazırda azdır.

Tətbiqdə bu belə görünürdü:

Yandeks.Taxi avtomobillər olmadığı halda onları necə axtarır

Modeldən istifadə yeni sifarişləri daha dəqiq yaratmağa və insanları boş yerə arxayınlaşdırmamağa imkan verir. Yəni, dəqiqlik-geri çağırma modelindən istifadə edərək maşınlar olmadan etibarlılıq nisbətini və sifarişlərin sayını tənzimləmək. Xidmətin etibarlılığı məhsuldan istifadəni davam etdirmək istəyinə təsir edir, yəni. nəticədə hər şey səfərlərin sayından asılıdır.

Dəqiqlik haqqında bir azMaşın öyrənməsində əsas vəzifələrdən biri təsnifat tapşırığıdır: obyekti iki sinifdən birinə təyin etmək. Bu halda, maşın öyrənmə alqoritminin nəticəsi tez-tez siniflərdən birinə üzvlüyün ədədi qiymətləndirilməsinə, məsələn, ehtimalın qiymətləndirilməsinə çevrilir. Bununla belə, yerinə yetirilən hərəkətlər adətən ikili xarakter daşıyır: əgər avtomobil mövcuddursa, onu sifariş etməyə icazə verəcəyik, yoxsa, verməyəcəyik. Konkret olmaq üçün ədədi qiymətləndirmə yaradan alqoritmi model, təsnifatı isə onu iki sinifdən (1 və ya –1) birinə təyin edən qayda adlandıraq. Modelin qiymətləndirilməsi əsasında təsnifat yaratmaq üçün siz qiymətləndirmə həddi seçməlisiniz. Necə tam olaraq vəzifədən çox asılıdır.

Tutaq ki, bəzi nadir və təhlükəli xəstəlik üçün test (klassifikator) edirik. Test nəticələrinə əsasən, ya xəstəni daha ətraflı müayinəyə göndəririk, ya da: “Yaxşı, evə get” deyirik. Bizim üçün xəstəni evə göndərmək sağlam insanı lüzumsuz müayinə etməkdən qat-qat pisdir. Yəni, testin mümkün qədər çox həqiqətən xəstə insan üçün işləməsini istəyirik. Bu dəyər geri çağırma = adlanırYandeks.Taxi avtomobillər olmadığı halda onları necə axtarır. İdeal klassifikator 100% geri çağırma qabiliyyətinə malikdir. Degenerativ vəziyyət hər kəsi müayinəyə göndərməkdir, sonra geri çağırma da 100% olacaq.

Bu da əksinə baş verir. Məsələn, biz tələbələr üçün test sistemi hazırlayırıq və onun fırıldaq detektoru var. Birdən çek bəzi aldatma halları üçün işləmirsə, bu xoşagəlməzdir, lakin kritik deyil. Digər tərəfdən, tələbələri etmədikləri bir işdə haqsız yerə ittiham etmək son dərəcə pisdir. Yəni bizim üçün vacibdir ki, təsnifatçının müsbət cavabları arasında mümkün qədər çox düzgün cavablar olsun, bəlkə də onların sayının zərərinə. Bu o deməkdir ki, siz dəqiqliyi maksimuma çatdırmalısınız = Yandeks.Taxi avtomobillər olmadığı halda onları necə axtarır. Əgər tetikleme bütün obyektlərdə baş verirsə, onda dəqiqlik nümunədə müəyyən edilmiş sinfin tezliyinə bərabər olacaq.

Əgər alqoritm ədədi ehtimal dəyəri yaradırsa, o zaman müxtəlif hədləri seçməklə siz müxtəlif dəqiqlik-geri çağırma dəyərlərinə nail ola bilərsiniz.

Problemimizdə vəziyyət aşağıdakı kimidir. Geri çağırma təklif edə biləcəyimiz sifarişlərin sayıdır, dəqiqlik bu sifarişlərin etibarlılığıdır. Modelimizin dəqiqlik-geri çağırma əyrisi belə görünür:
Yandeks.Taxi avtomobillər olmadığı halda onları necə axtarır
İki ifrat hal var: heç kimə sifariş verməyə icazə verməyin və hamının sifariş etməsinə icazə verin. Heç kimə icazə verməsəniz, geri çağırma 0 olacaq: biz sifariş yaratmırıq, lakin onların heç biri uğursuz olmayacaq. Hər kəsə icazə etsək, geri çağırma 100% olacaq (biz bütün mümkün sifarişləri alacağıq), dəqiqlik isə 29% olacaq, yəni sifarişlərin 71% -i pis olacaq.

İşarələr kimi başlanğıc nöqtəsinin müxtəlif parametrlərindən istifadə etdik:

  • Zaman/yer.
  • Sistemin vəziyyəti (yaxınlıqdakı bütün tariflərin və pinlərin işğal edilmiş maşınlarının sayı).
  • Axtarış parametrləri (radius, namizədlərin sayı, məhdudiyyətlər).

İşarələr haqqında daha çox

Konseptual olaraq iki vəziyyəti ayırd etmək istəyirik:

  • "Dərin meşə" - hazırda burada maşın yoxdur.
  • "Uğursuz" - avtomobillər var, lakin axtarış zamanı uyğun olanlar yox idi.

Cümə günü axşam saatlarında mərkəzdə tələbat çox olarsa, “Uğursuzlar”a misal ola bilər. Sifarişlər çoxdur, istəyənlər çoxdur, sürücülər isə hamıya çatmır. Bu belə ola bilər: pində uyğun sürücülər yoxdur. Ancaq sözün əsl mənasında saniyələr ərzində görünürlər, çünki bu zaman bu yerdə çoxlu sürücü var və onların statusu daim dəyişir.

Buna görə də, A nöqtəsi yaxınlığında müxtəlif sistem göstəriciləri yaxşı xüsusiyyətlər oldu:

  • Avtomobillərin ümumi sayı.
  • Sifariş üzrə avtomobillərin sayı.
  • “Məşğul” statusunda sifariş vermək mümkün olmayan avtomobillərin sayı.
  • İstifadəçilərin sayı.

Axı, nə qədər çox avtomobil varsa, onlardan birinin əlçatan olma ehtimalı bir o qədər yüksəkdir.
Əslində bizim üçün təkcə avtomobillərin yerləşməsi deyil, həm də uğurlu səfərlərin edilməsi vacibdir. Buna görə də uğurlu səfərin ehtimalını proqnozlaşdırmaq mümkün idi. Ancaq biz bunu etməməyə qərar verdik, çünki bu dəyər istifadəçidən və sürücüdən çox asılıdır.

Model təlim alqoritmi idi pişik gücləndirilməsi. Təcrübədən əldə edilən məlumatlar təlim üçün istifadə edilmişdir. Həyata keçirildikdən sonra, bəzən az sayda istifadəçiyə modelin qərarına qarşı sifariş verməyə imkan verən təlim məlumatları toplanmalı idi.

Nəticələri

Eksperimentin nəticələri gözlənildiyi kimi oldu: modeldən istifadə avtomobilsiz, lakin etibarlılığa xələl gətirmədən sifarişlər hesabına uğurlu səfərlərin sayını əhəmiyyətli dərəcədə artırmağa imkan verir.

Hazırda bütün şəhər və ölkələrdə mexanizm işə salınıb və onun köməyi ilə uğurlu səfərlərin təxminən 1%-i baş verir. Üstəlik, avtomobillərin sıxlığı az olan bəzi şəhərlərdə belə səfərlərin payı 15%-ə çatır.

Taksi texnologiyası haqqında digər yazılar

Mənbə: www.habr.com

Добавить комментарий