Yandex.Taxi கார்கள் இல்லாதபோது அவற்றை எவ்வாறு தேடுகிறது

Yandex.Taxi கார்கள் இல்லாதபோது அவற்றை எவ்வாறு தேடுகிறது

ஒரு நல்ல டாக்ஸி சேவை பாதுகாப்பானதாகவும், நம்பகமானதாகவும், வேகமாகவும் இருக்க வேண்டும். பயனர் விவரங்களுக்குச் செல்ல மாட்டார்: அவர் "ஆர்டர்" பொத்தானைக் கிளிக் செய்து, முடிந்தவரை விரைவாக ஒரு காரைப் பெறுவது அவருக்கு முக்கியம், அது அவரை புள்ளி A இலிருந்து B க்கு அழைத்துச் செல்லும். அருகில் கார்கள் இல்லை என்றால், சேவை செய்ய வேண்டும். வாடிக்கையாளருக்கு தவறான எதிர்பார்ப்புகள் ஏற்படாதவாறு உடனடியாக இதைப் பற்றி தெரிவிக்கவும். ஆனால் “கார் இல்லை” என்ற அடையாளம் அடிக்கடி தோன்றினால், ஒரு நபர் இந்த சேவையைப் பயன்படுத்துவதை நிறுத்திவிட்டு போட்டியாளரிடம் செல்வார் என்பது தர்க்கரீதியானது.

இந்த கட்டுரையில், இயந்திர கற்றலைப் பயன்படுத்தி, குறைந்த அடர்த்தி உள்ள பகுதிகளில் கார்களைத் தேடுவதில் உள்ள சிக்கலை எவ்வாறு தீர்த்தோம் என்பதைப் பற்றி பேச விரும்புகிறேன் (வேறுவிதமாகக் கூறினால், முதல் பார்வையில், கார்கள் இல்லை). மற்றும் அது என்ன வந்தது.

முன்வரலாறு

ஒரு டாக்ஸியை அழைக்க, பயனர் சில எளிய படிகளைச் செய்கிறார், ஆனால் சேவையில் என்ன நடக்கிறது?

பயனர் மேடை பின்பக்கம் Yandex.Taxi
தொடக்கப் புள்ளியைத் தேர்ந்தெடுக்கிறது முள் வேட்பாளர்களுக்கான எளிமையான தேடலைத் தொடங்குகிறோம் - பின் தேடல். கண்டுபிடிக்கப்பட்ட இயக்கிகளின் அடிப்படையில், வருகை நேரம் கணிக்கப்படுகிறது - பின்னில் ETA. கொடுக்கப்பட்ட புள்ளியில் அதிகரிக்கும் குணகம் கணக்கிடப்படுகிறது.
சேருமிடம், கட்டணம், தேவைகள் ஆகியவற்றைத் தேர்ந்தெடுக்கிறது சலுகை அதிகரித்து வரும் குணகத்தை கணக்கில் எடுத்துக்கொண்டு, ஒரு வழியை உருவாக்கி, அனைத்து கட்டணங்களுக்கும் விலைகளை கணக்கிடுகிறோம்.
"ஒரு டாக்ஸியை அழைக்கவும்" பொத்தானை அழுத்தவும் ஆர்டர் காரை முழுவதுமாக தேடுகிறோம். நாங்கள் மிகவும் பொருத்தமான டிரைவரைத் தேர்ந்தெடுத்து அவருக்கு ஒரு ஆர்டரை வழங்குகிறோம்.

பற்றி பின்னில் ETA, விலை கணக்கீடு и மிகவும் பொருத்தமான இயக்கி தேர்வு நாங்கள் ஏற்கனவே எழுதியுள்ளோம். மேலும் இது ஓட்டுனர்களைக் கண்டுபிடிப்பது பற்றிய கதை. ஒரு ஆர்டரை உருவாக்கும்போது, ​​தேடல் இரண்டு முறை நிகழ்கிறது: பின் மற்றும் ஆர்டரில். ஒரு ஆர்டருக்கான தேடல் இரண்டு நிலைகளில் நடைபெறுகிறது: வேட்பாளர்களின் ஆட்சேர்ப்பு மற்றும் தரவரிசை. முதலில், சாலை வரைபடத்தில் மிக அருகில் இருக்கும் வேட்பாளர் டிரைவர்கள் கண்டறியப்படுகிறார்கள். பின்னர் போனஸ் மற்றும் வடிகட்டுதல் பயன்படுத்தப்படும். மீதமுள்ள வேட்பாளர்கள் தரவரிசைப்படுத்தப்பட்டு, வெற்றியாளர் ஆர்டர் சலுகையைப் பெறுகிறார். அவர் ஒப்புக்கொண்டால், அவர் ஆர்டருக்கு ஒதுக்கப்பட்டு டெலிவரி பாயிண்டிற்குச் செல்கிறார். அவர் மறுத்தால், அடுத்தவருக்கு சலுகை வரும். மேலும் வேட்பாளர்கள் இல்லை என்றால், தேடல் மீண்டும் தொடங்குகிறது. இது மூன்று நிமிடங்களுக்கு மேல் நீடிக்காது, அதன் பிறகு ஆர்டர் ரத்து செய்யப்பட்டு எரிக்கப்படும்.

பின்னில் தேடுவது ஒரு ஆர்டரில் தேடுவதைப் போன்றது, வரிசை மட்டும் உருவாக்கப்படவில்லை மற்றும் தேடுதல் ஒரு முறை மட்டுமே செய்யப்படுகிறது. வேட்பாளர்களின் எண்ணிக்கை மற்றும் தேடல் ஆரம் ஆகியவற்றிற்கான எளிமைப்படுத்தப்பட்ட அமைப்புகளும் பயன்படுத்தப்படுகின்றன. ஆர்டர்களை விட அதிக ஊசிகளின் வரிசை இருப்பதால், இதுபோன்ற எளிமைப்படுத்தல்கள் அவசியம், மேலும் தேடுவது மிகவும் கடினமான செயல். எங்கள் கதைக்கான முக்கிய புள்ளி: பூர்வாங்க தேடலின் போது பொருத்தமான வேட்பாளர்கள் யாரும் பின் இல் காணப்படவில்லை என்றால், நாங்கள் உங்களை ஆர்டர் செய்ய அனுமதிக்க மாட்டோம். குறைந்தபட்சம் அது அப்படித்தான் இருந்தது.

பயன்பாட்டில் பயனர் பார்த்தது இதுதான்:

Yandex.Taxi கார்கள் இல்லாதபோது அவற்றை எவ்வாறு தேடுகிறது

கார்கள் இல்லாத கார்களைத் தேடுங்கள்

ஒரு நாள் நாங்கள் ஒரு கருதுகோளைக் கொண்டு வந்தோம்: சில சந்தர்ப்பங்களில், முள் மீது கார்கள் இல்லாவிட்டாலும், ஆர்டரை முடிக்க முடியும். எல்லாவற்றிற்கும் மேலாக, முள் மற்றும் ஆர்டருக்கு இடையில் சிறிது நேரம் கடந்து செல்கிறது, மேலும் ஆர்டருக்கான தேடல் முழுமையானது மற்றும் சில நேரங்களில் பல முறை மீண்டும் மீண்டும் செய்யப்படுகிறது: இந்த நேரத்தில், கிடைக்கக்கூடிய இயக்கிகள் தோன்றக்கூடும். இதற்கு நேர்மாறாகவும் எங்களுக்குத் தெரியும்: முள் மீது டிரைவர்கள் காணப்பட்டால், ஆர்டர் செய்யும் போது அவர்கள் கண்டுபிடிக்கப்படுவார்கள் என்பது ஒரு உண்மை அல்ல. சில நேரங்களில் அவை மறைந்துவிடும் அல்லது எல்லோரும் ஆர்டரை மறுக்கிறார்கள்.

இந்த கருதுகோளைச் சோதிக்க, நாங்கள் ஒரு பரிசோதனையைத் தொடங்கினோம்: பயனர்களின் சோதனைக் குழுவிற்கான பின்னில் தேடலின் போது கார்கள் கிடைப்பதைச் சரிபார்ப்பதை நிறுத்திவிட்டோம், அதாவது, "கார்கள் இல்லாமல் ஆர்டர் செய்யும்" வாய்ப்பைப் பெற்றனர். விளைவு மிகவும் எதிர்பாராதது: கார் பின்னில் இல்லை என்றால், 29% வழக்குகளில் அது பின்னர் கண்டுபிடிக்கப்பட்டது - ஆர்டரில் தேடும் போது! மேலும், கார்கள் இல்லாத ஆர்டர்கள், ரத்து விகிதங்கள், மதிப்பீடுகள் மற்றும் பிற தரக் குறிகாட்டிகள் ஆகியவற்றின் அடிப்படையில் வழக்கமான ஆர்டர்களிலிருந்து கணிசமாக வேறுபடவில்லை. கார்கள் இல்லாத முன்பதிவுகள் அனைத்து முன்பதிவுகளிலும் 5% ஆகும், ஆனால் வெற்றிகரமான பயணங்களில் 1% மட்டுமே.

இந்த ஆர்டர்களை நிறைவேற்றுபவர்கள் எங்கிருந்து வருகிறார்கள் என்பதைப் புரிந்து கொள்ள, பின் ஒரு தேடலின் போது அவர்களின் நிலைகளைப் பார்ப்போம்:

Yandex.Taxi கார்கள் இல்லாதபோது அவற்றை எவ்வாறு தேடுகிறது

  • கிடைக்கும்: கிடைத்தது, ஆனால் சில காரணங்களால் வேட்பாளர்களில் சேர்க்கப்படவில்லை, உதாரணமாக, அவர் வெகு தொலைவில் இருந்தார்;
  • வரிசையில்: பிஸியாக இருந்தார், ஆனால் தன்னை விடுவித்துக் கொள்ள அல்லது கிடைக்கச் செய்தார் சங்கிலி ஒழுங்கு;
  • பரபரப்பு: ஆர்டர்களை ஏற்கும் திறன் முடக்கப்பட்டது, ஆனால் பின்னர் இயக்கி வரிக்கு திரும்பினார்;
  • கிடைக்கவில்லை: டிரைவர் ஆன்லைனில் இல்லை, ஆனால் அவர் தோன்றினார்.

நம்பகத்தன்மையைச் சேர்ப்போம்

கூடுதல் ஆர்டர்கள் சிறந்தவை, ஆனால் 29% வெற்றிகரமான தேடல்கள் 71% நேரம் பயனர் நீண்ட நேரம் காத்திருந்து எங்கும் செல்லவில்லை. கணினி செயல்திறன் பார்வையில் இது ஒரு மோசமான விஷயம் அல்ல என்றாலும், இது உண்மையில் பயனருக்கு தவறான நம்பிக்கையை அளிக்கிறது மற்றும் நேரத்தை வீணடிக்கிறது, அதன் பிறகு அவர்கள் வருத்தமடைந்து (ஒருவேளை) சேவையைப் பயன்படுத்துவதை நிறுத்தலாம். இந்தச் சிக்கலைத் தீர்க்க, ஆர்டர் செய்யப்பட்ட கார் கண்டுபிடிக்கப்படுவதற்கான வாய்ப்பைக் கணிக்க கற்றுக்கொண்டோம்.

திட்டம் இது போன்றது:

  • பயனர் ஒரு முள் போடுகிறார்.
  • முள் மீது ஒரு தேடல் மேற்கொள்ளப்படுகிறது.
  • கார்கள் இல்லை என்றால், நாங்கள் கணிக்கிறோம்: ஒருவேளை அவை தோன்றும்.
  • மற்றும் நிகழ்தகவைப் பொறுத்து, நாங்கள் உங்களை ஒரு ஆர்டரை வைக்க அனுமதிக்கிறோம் அல்லது அனுமதிக்க மாட்டோம், ஆனால் இந்த நேரத்தில் இந்த பகுதியில் கார்களின் அடர்த்தி குறைவாக இருப்பதாக நாங்கள் எச்சரிக்கிறோம்.

பயன்பாட்டில் இது போல் தோன்றியது:

Yandex.Taxi கார்கள் இல்லாதபோது அவற்றை எவ்வாறு தேடுகிறது

மாதிரியைப் பயன்படுத்துவது, புதிய ஆர்டர்களை மிகவும் துல்லியமாக உருவாக்கவும், வீணாக மக்களுக்கு உறுதியளிக்கவும் உங்களை அனுமதிக்கிறது. அதாவது, துல்லிய-ரீகால் மாதிரியைப் பயன்படுத்தி இயந்திரங்கள் இல்லாமல் நம்பகத்தன்மையின் விகிதத்தையும் ஆர்டர்களின் எண்ணிக்கையையும் ஒழுங்குபடுத்துதல். சேவையின் நம்பகத்தன்மை, தயாரிப்பைத் தொடர்ந்து பயன்படுத்துவதற்கான விருப்பத்தை பாதிக்கிறது, அதாவது இறுதியில் இது பயணங்களின் எண்ணிக்கையில் வருகிறது.

துல்லியமான நினைவு பற்றி கொஞ்சம்இயந்திரக் கற்றலில் அடிப்படைப் பணிகளில் ஒன்று வகைப்படுத்தல் பணி: இரண்டு வகுப்புகளில் ஒன்றுக்கு ஒரு பொருளை ஒதுக்குதல். இந்த வழக்கில், இயந்திர கற்றல் வழிமுறையின் முடிவு பெரும்பாலும் வகுப்புகளில் ஒன்றின் உறுப்பினர்களின் எண் மதிப்பீடாக மாறும், எடுத்துக்காட்டாக, நிகழ்தகவு மதிப்பீடு. இருப்பினும், செய்யப்படும் செயல்கள் பொதுவாக பைனரி ஆகும்: கார் கிடைத்தால், நாங்கள் அதை ஆர்டர் செய்ய அனுமதிப்போம், இல்லையென்றால், நாங்கள் மாட்டோம். குறிப்பாகச் சொல்வதானால், எண் மதிப்பீட்டை உருவாக்கும் அல்காரிதத்தை மாதிரி என்றும், வகைப்படுத்தி இரண்டு வகுப்புகளில் ஒன்றுக்கு (1 அல்லது -1) ஒதுக்கும் விதி என்றும் அழைப்போம். மாதிரி மதிப்பீட்டின் அடிப்படையில் ஒரு வகைப்படுத்தியை உருவாக்க, நீங்கள் மதிப்பீட்டு வரம்பை தேர்ந்தெடுக்க வேண்டும். எப்படி சரியாக பணியை பெரிதும் சார்ந்துள்ளது.

சில அரிய மற்றும் ஆபத்தான நோய்களுக்கான சோதனை (வகைப்படுத்தி) செய்கிறோம் என்று வைத்துக்கொள்வோம். சோதனை முடிவுகளின் அடிப்படையில், நோயாளியை இன்னும் விரிவான பரிசோதனைக்கு அனுப்புவோம் அல்லது "நல்லது, வீட்டிற்குச் செல்லுங்கள்" என்று கூறுவோம். நம்மைப் பொறுத்தவரை, ஒரு ஆரோக்கியமான நபரை தேவையில்லாமல் பரிசோதிப்பதை விட நோய்வாய்ப்பட்ட நபரை வீட்டிற்கு அனுப்புவது மிகவும் மோசமானது. அதாவது, முடிந்தவரை உண்மையில் நோய்வாய்ப்பட்டவர்களுக்கு சோதனை வேலை செய்ய வேண்டும் என்று நாங்கள் விரும்புகிறோம். இந்த மதிப்பு recall = என்று அழைக்கப்படுகிறதுYandex.Taxi கார்கள் இல்லாதபோது அவற்றை எவ்வாறு தேடுகிறது. ஒரு சிறந்த வகைப்படுத்தி 100% திரும்ப அழைக்கும். எல்லாரையும் பரீட்சைக்கு அனுப்புற ஒரு சீரழிந்த நிலைமை, அப்புறம் ரீகால் 100% ஆகிவிடும்.

அதுவும் நேர்மாறாக நடக்கும். எடுத்துக்காட்டாக, நாங்கள் மாணவர்களுக்கான சோதனை முறையை உருவாக்கி வருகிறோம், மேலும் அதில் மோசடியைக் கண்டறியும் கருவி உள்ளது. சில மோசடி வழக்குகளுக்கு திடீரென்று காசோலை வேலை செய்யவில்லை என்றால், இது விரும்பத்தகாதது, ஆனால் முக்கியமானதல்ல. மறுபுறம், மாணவர்கள் செய்யாத ஒன்றை நியாயமற்ற முறையில் குற்றம் சாட்டுவது மிகவும் மோசமானது. அதாவது, வகைப்படுத்தியவரின் நேர்மறையான பதில்களில், முடிந்தவரை சரியானவை உள்ளன, ஒருவேளை அவற்றின் எண்ணிக்கைக்கு தீங்கு விளைவிக்கும். இதன் பொருள் நீங்கள் துல்லியத்தை அதிகரிக்க வேண்டும் = Yandex.Taxi கார்கள் இல்லாதபோது அவற்றை எவ்வாறு தேடுகிறது. அனைத்து பொருள்களிலும் தூண்டுதல் ஏற்பட்டால், துல்லியமானது மாதிரியில் வரையறுக்கப்பட்ட வகுப்பின் அதிர்வெண்ணுக்கு சமமாக இருக்கும்.

அல்காரிதம் ஒரு எண் நிகழ்தகவு மதிப்பை உருவாக்கினால், வெவ்வேறு வரம்புகளைத் தேர்ந்தெடுப்பதன் மூலம், நீங்கள் வெவ்வேறு துல்லிய-நினைவு மதிப்புகளை அடையலாம்.

எங்கள் பிரச்சினையில் நிலைமை பின்வருமாறு. ரீகால் என்பது நாம் வழங்கக்கூடிய ஆர்டர்களின் எண்ணிக்கை, துல்லியமானது இந்த ஆர்டர்களின் நம்பகத்தன்மை. எங்கள் மாதிரியின் துல்லியமான நினைவு வளைவு இது போல் தெரிகிறது:
Yandex.Taxi கார்கள் இல்லாதபோது அவற்றை எவ்வாறு தேடுகிறது
இரண்டு தீவிர வழக்குகள் உள்ளன: யாரையும் ஆர்டர் செய்ய அனுமதிக்காதீர்கள் மற்றும் அனைவரையும் ஆர்டர் செய்ய அனுமதிக்கவும். நீங்கள் யாரையும் அனுமதிக்கவில்லை என்றால், நினைவு 0 ஆக இருக்கும்: நாங்கள் ஆர்டர்களை உருவாக்கவில்லை, ஆனால் அவை எதுவும் தோல்வியடையாது. நாங்கள் அனைவரையும் அனுமதித்தால், ரீகால் 100% ஆக இருக்கும் (அனைத்து சாத்தியமான ஆர்டர்களையும் நாங்கள் பெறுவோம்), மேலும் துல்லியமானது 29% ஆக இருக்கும், அதாவது 71% ஆர்டர்கள் மோசமாக இருக்கும்.

தொடக்கப் புள்ளியின் பல்வேறு அளவுருக்களை அடையாளங்களாகப் பயன்படுத்தினோம்:

  • நேரம்/இடம்.
  • கணினி நிலை (அருகில் உள்ள அனைத்து கட்டணங்கள் மற்றும் ஊசிகளின் ஆக்கிரமிக்கப்பட்ட இயந்திரங்களின் எண்ணிக்கை).
  • தேடல் அளவுருக்கள் (ஆரம், வேட்பாளர்களின் எண்ணிக்கை, கட்டுப்பாடுகள்).

அறிகுறிகள் பற்றி மேலும்

கருத்தியல் ரீதியாக, இரண்டு சூழ்நிலைகளை வேறுபடுத்த விரும்புகிறோம்:

  • "ஆழ்ந்த காடு" - இந்த நேரத்தில் இங்கு கார்கள் இல்லை.
  • “துரதிர்ஷ்டவசமானது” - கார்கள் உள்ளன, ஆனால் தேடும் போது பொருத்தமானவை எதுவும் இல்லை.

"அன்லக்கி" என்பதற்கு ஒரு உதாரணம், வெள்ளிக்கிழமை மாலையில் மையத்தில் அதிக தேவை இருந்தால். நிறைய ஆர்டர்கள் உள்ளன, நிறைய பேர் தயாராக உள்ளனர், அனைவருக்கும் போதுமான ஓட்டுநர்கள் இல்லை. இது இப்படி மாறலாம்: பின்னில் பொருத்தமான இயக்கிகள் இல்லை. ஆனால் சில நொடிகளில் அவை தோன்றும், ஏனெனில் இந்த நேரத்தில் இந்த இடத்தில் நிறைய ஓட்டுநர்கள் உள்ளனர் மற்றும் அவர்களின் நிலை தொடர்ந்து மாறிக்கொண்டே இருக்கிறது.

எனவே, புள்ளி A க்கு அருகில் உள்ள பல்வேறு கணினி குறிகாட்டிகள் நல்ல அம்சங்களாக மாறியது:

  • கார்களின் மொத்த எண்ணிக்கை.
  • ஆர்டர் செய்யப்பட்ட கார்களின் எண்ணிக்கை.
  • "பிஸி" நிலையில் ஆர்டர் செய்ய கிடைக்காத கார்களின் எண்ணிக்கை.
  • பயனர்களின் எண்ணிக்கை.

எல்லாவற்றிற்கும் மேலாக, அதிக கார்கள் உள்ளன, அவற்றில் ஒன்று கிடைக்கும் வாய்ப்புகள் அதிகம்.
உண்மையில், கார்கள் அமைந்திருப்பது மட்டுமல்லாமல், வெற்றிகரமான பயணங்களும் செய்யப்படுவது எங்களுக்கு முக்கியம். எனவே, வெற்றிகரமான பயணத்தின் நிகழ்தகவைக் கணிக்க முடிந்தது. ஆனால் இதைச் செய்ய வேண்டாம் என்று நாங்கள் முடிவு செய்தோம், ஏனெனில் இந்த மதிப்பு பயனர் மற்றும் இயக்கியைப் பொறுத்தது.

மாதிரி பயிற்சி அல்காரிதம் இருந்தது கேட் பூஸ்ட். சோதனையிலிருந்து பெறப்பட்ட தரவு பயிற்சிக்கு பயன்படுத்தப்பட்டது. செயல்படுத்தப்பட்ட பிறகு, பயிற்சித் தரவு சேகரிக்கப்பட வேண்டும், சில சமயங்களில் மாதிரியின் முடிவுக்கு எதிராக ஒரு சிறிய எண்ணிக்கையிலான பயனர்களை ஆர்டர் செய்ய அனுமதிக்கிறது.

முடிவுகளை

சோதனையின் முடிவுகள் எதிர்பார்த்தபடி இருந்தன: மாதிரியைப் பயன்படுத்துவது கார்கள் இல்லாத ஆர்டர்கள் காரணமாக வெற்றிகரமான பயணங்களின் எண்ணிக்கையை கணிசமாக அதிகரிக்க அனுமதிக்கிறது, ஆனால் நம்பகத்தன்மையை சமரசம் செய்யாமல்.

இந்த நேரத்தில், பொறிமுறையானது அனைத்து நகரங்களிலும் நாடுகளிலும் தொடங்கப்பட்டுள்ளது மற்றும் அதன் உதவியுடன், வெற்றிகரமான பயணங்களில் சுமார் 1% நிகழ்கிறது. மேலும், குறைந்த அடர்த்தி கொண்ட கார்களைக் கொண்ட சில நகரங்களில், அத்தகைய பயணங்களின் பங்கு 15% ஐ அடைகிறது.

டாக்ஸி தொழில்நுட்பம் பற்றிய பிற பதிவுகள்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்