Kai algoritmas nusprendžia, kokį dviratį pirkti
Įsivaizduokite tokią situaciją: įeinate į dviračių parduotuvę, o pardavėjas jums užduoda kokius dvidešimt klausimų – kur važinėsite, kiek sveriate, ar mėgstate kalnų takelius, kiek pinigų turite kišenėje – ir po penkių minučių rodo jums tris modelius, iš kurių vienas tikrai yra tas, ko ieškojote. Tai nėra magija. Tai yra algoritmas, tik įkūnytas žmogaus pavidalu. Dabar tą patį daro programinė įranga, ir ji tai daro greičiau, nuosekliau ir be to nepatogaus momento, kai pardavėjas bando parduoti brangiausią modelį.
Dviračių pasirinkimo algoritmai – tai tema, kuri skamba techniškai, bet iš tikrųjų yra apie labai žmogišką problemą: kaip iš šimtų variantų rasti tą vieną, kuris tikrai tiks. O dviračių rinkoje variantų yra begalė – nuo pigių miesto dviračių iki karboninių kalnų monstrai, kurie kainuoja kaip naudotas automobilis.
Kodėl dviračio pasirinkimas yra algoritmiškai sudėtinga problema
Gali atrodyti, kad pasirinkti dviratį yra paprasta. Bet pabandykite paaiškinti kompiuteriui, kaip tai padaryti. Iš karto paaiškėja, kad čia yra daugybė kintamųjų, kurie dar ir tarpusavyje sąveikauja.
Pirma, yra vartotojo parametrai. Ūgis ir svoris – tai akivaizdu, bet ne viskas. Svarbu kojų ilgis (inseam), rankų ilgis, liemens lankstumas, ar žmogus turi kokių nors fizinių negalavimų (pvz., kelio problemos lemia kitokį pedalavimo kampą). Tada ateina naudojimo scenarijus – ar tai bus kasdieninis važiavimas į darbą per miestą, ar savaitgaliniai žygiai į kalnus, ar galbūt abu kartu. Ir dar biudžetas, kuris viską apriboja.
Antra, yra dviračio parametrai. Rėmo geometrija, ratų dydis, pavarų sistema, stabdžiai, amortizacija – kiekvienas iš šių elementų turi savo subsistemą. Tik pavarų sistemų tipų yra kelios dešimtys, o kiekviena turi savo privalumų ir trūkumų priklausomai nuo naudojimo konteksto.
Trečia, ir tai yra subtiliausia dalis, yra subjektyvūs pageidavimai. Vienas žmogus nori, kad dviratis atrodytų sportiškai, kitas – kad būtų praktiškas, trečias – kad būtų lengvas kaip plunksna. Šie pageidavimai dažnai prieštarauja vienas kitam ir biudžetui.
Algoritmas turi viską tai suderinti ir pateikti prasmingą atsakymą. Tai nėra triviali užduotis.
Kaip veikia filtravimo ir rekomendacijų sistemos
Paprasčiausia forma – tai filtravimo sistema. Jūs nustatote parametrus (kaina iki X, rėmo dydis Y, tipas Z) ir sistema pateikia atitinkančius modelius. Tai daro beveik kiekviena internetinė parduotuvė. Problema ta, kad tokia sistema yra kvaila – ji nežino, kad jūs, pasirinkę „miesto dviratį”, iš tikrųjų važinėsite ir žvyrkeliais, todėl jums reikia šiek tiek platesnių padangų.
Sudėtingesnė versija – tai turinio pagrindu veikiančios rekomendacijos (content-based filtering). Sistema analizuoja dviračio savybes ir vartotojo profilį bei ieško geriausio atitikimo. Pavyzdžiui, jei nurodote, kad važinėsite mieste, bet kartais ir parkuose, sistema gali automatiškai filtruoti modelius su hibridinėmis padangomis ir daugiau nei 21 pavara.
Dar pažangesnė – kolaboratyvaus filtravimo sistema (collaborative filtering). Ji sako: „Žmonės, kurie turėjo panašius poreikius kaip jūs, dažniausiai rinkosi šiuos modelius ir liko patenkinti.” Tai ta pati logika, kurią naudoja Netflix ar Spotify. Problema ta, kad dviračiams reikia pakankamai didelės duomenų bazės su atsiliepimais ir pirkimų istorija, o tai nėra lengvai prieinama informacija.
Moderniausi sprendimai jungia abu metodus – hibridinės rekomendacijų sistemos. Jos naudoja tiek dviračio savybių analizę, tiek kitų vartotojų elgsenos duomenis. Kai kurios platformos, kaip Trek’s „Bike Finder” ar specializuotos aplikacijos, jau artėja prie šio modelio.
Rėmo geometrija ir dydžio algoritmai – čia tikrai galima suklysti
Viena iš svarbiausių ir kartu labiausiai neįvertintų algoritmo dalių – tai tinkamo dydžio parinkimas. Netinkamas dydis reiškia ne tik diskomfortą, bet ir traumų riziką. Ir čia algoritmai gali padaryti tikrą naudą, nes dauguma žmonių perka dviratį pagal neteisingus parametrus.
Tradiciškai dviračio dydis matuojamas rėmo aukščiu (colio arba centimetrais), bet tai yra labai apytikslė metrika. Modernesni algoritmai naudoja kelis parametrus:
- Inseam (kojų ilgis): matuojamas nuo grindų iki kirkšnies. Tai svarbiausias parametras sėdynės aukščiui nustatyti.
- Torso ilgis: lemia, ar vairuotojo padėtis bus patogi, ar reikės ilgesnio/trumpesnio vairo koto.
- Rankų ilgis: įtakoja pasiekiamumą iki vairo.
- Stack ir reach: tai rėmo geometrijos parametrai, kurie tiksliau nei rėmo dydis apibūdina, ar dviratis tiks konkrečiam žmogui.
Geras algoritmas turėtų prašyti bent inseam ir ūgio, o idealiu atveju – ir torso ilgio. Tada, naudojant geometrijos lenteles, galima gana tiksliai nustatyti tinkamą rėmo dydį. Kai kurie įrankiai, kaip „Competitive Cyclist Fit Calculator”, tai daro gana neblogai.
Praktinis patarimas: jei naudojate bet kokį online dydžio skaičiuoklį, visada patikrinkite rezultatą su konkrečio modelio geometrijos lentele. Skirtingi gamintojai to paties dydžio rėmus gamina skirtingai – „Medium” pas Trek ir „Medium” pas Giant gali skirtis 2-3 centimetrais pagal stack ir reach parametrus.
Dirbtinis intelektas dviračių rekomendacijose – kur esame dabar
Pastaraisiais metais kelios startuolių kompanijos bandė sukurti tikrai pažangias AI pagrįstas dviračių rekomendacijų sistemas. Rezultatai – mišrūs, bet įdomūs.
Vienas iš įdomesnių bandymų – naudoti mašininio mokymosi modelius, apmokyti ant didelių dviračių atsiliepimų duomenų bazių (pvz., iš Strava, BikeRadar ar specializuotų forumų). Modelis išmoksta, kokie dviračiai gauna geriausius įvertinimus iš žmonių su panašiais profiliais. Problema ta, kad atsiliepimų duomenys yra šališki – brangūs dviračiai dažnai gauna geresnius įvertinimus tiesiog todėl, kad juos perka labiau įsitraukę entuziastai.
Kitas bandymas – naudoti natūralios kalbos apdorojimą (NLP), kad vartotojas galėtų tiesiog parašyti, ko nori („noriu dviratį miestui, kuris būtų greitas, bet galėčiau ant jo važiuoti ir į darbą su kuprine”), ir sistema suprastų poreikį. Tai skamba gerai, bet praktiškai kol kas veikia tik iš dalies – sistema dažnai praleidžia svarbius niuansus.
Įdomiausi rezultatai gaunami, kai algoritmas derinamas su žmogaus ekspertize. Pavyzdžiui, sistema pateikia tris kandidatus, o specialistas juos patvirtina arba pakoreguoja. Tokia hibridinė sistema yra ir greitesnė nei grynas žmogiškas konsultavimas, ir tikslesnė nei grynas algoritmas.
Konkreti rekomendacija kūrėjams: jei kuriate tokią sistemą, nepamirškite įtraukti „negative filtering” – galimybę vartotojui pasakyti, ko jis tikrai nenori (pvz., „nenoriu dviračio su priekine amortizacija” arba „nenoriu elektroninių pavarų”). Žmonės dažnai geriau žino, ko nenori, nei ko nori.
Kaip patiems sukurti paprastą dviračio parinkimo algoritmą
Jei esate programuotojas ar tiesiog smalsus žmogus, čia yra konceptualus eskizas, kaip galėtų atrodyti paprastas, bet veikiantis algoritmas.
Pirmasis žingsnis – duomenų struktūra. Kiekvienam dviračiui reikia priskirti savybių vektorių. Minimalus rinkinys galėtų atrodyti taip: tipas (MTB, road, hybrid, city, gravel), rėmo dydžiai, svoris, pavarų skaičius, stabdžių tipas, padangų plotis, kaina, tinkamas reljefas (miestas/asfaltas/žvyras/kalnai), patirties lygis (pradedantysis/vidutinis/pažengęs).
Antrasis žingsnis – vartotojo profilis. Reikia surinkti: ūgį ir inseam, svorį, naudojimo scenarijų (galima leisti pasirinkti kelis), biudžetą, patirties lygį, prioritetus (greitis vs. komfortas vs. universalumas).
Trečiasis žingsnis – atitikimo funkcija. Paprasčiausia versija – svertinis Euklido atstumas tarp vartotojo profilio ir dviračio savybių vektoriaus. Svarbiems parametrams (pvz., biudžetui ir dydžiui) suteikiamas didesnis svoris, mažiau svarbiems – mažesnis.
Ketvirtasis žingsnis – rezultatų pateikimas. Geriausia pateikti ne vieną, o tris-penkis geriausius variantus su paaiškinimu, kodėl kiekvienas iš jų buvo rekomenduotas. Tai leidžia vartotojui suprasti logiką ir pasirinkti pagal savo intuiciją.
Penktasis žingsnis – grįžtamasis ryšys. Sistema turėtų mokytis iš vartotojų pasirinkimų. Jei žmogus nuolat ignoruoja pirmąją rekomendaciją ir renkasi trečiąją, tai signalas, kad kažkas algoritme neatitinka realių poreikių.
Klaidos, kurių reikia vengti kuriant tokias sistemas
Iš praktikos ir iš to, ką galima pastebėti esamose sistemose, išsiskiria kelios tipinės klaidos.
Per daug pasitikėjimo kaina kaip kokybės indikatoriumi. Brangus dviratis ne visada yra geresnis pasirinkimas konkrečiam žmogui. Pradedančiajam, kuris važinės mieste, 300 eurų hibridinis dviratis gali būti geresnis pasirinkimas nei 1500 eurų kalnų dviratis. Algoritmas neturėtų automatiškai stumti brangiausių variantų į viršų.
Ignoruojamas priežiūros faktorius. Kai kurie dviračiai reikalauja daugiau priežiūros nei kiti. Hidrauliniai stabdžiai yra geresni, bet jei žmogus niekada nebuvo dviračių servise ir gyvena toli nuo jo, mechaniniai stabdžiai gali būti praktiškesnis pasirinkimas. Algoritmas turėtų klausti apie priežiūros galimybes.
Neatsižvelgiama į sezoniškumą. Lietuva nėra Ispanija. Jei žmogus planuoja važinėti ir žiemą, jam reikia dviračio su platesnėmis padangomis, galimybe montuoti spygliuotas padangas ir geresniais stabdžiais drėgnomis sąlygomis. Algoritmas turėtų klausti, ar vartotojas važinės ištisus metus.
Transportavimo ir saugojimo ignoravimas. Ar žmogus turi kur laikyti dviratį? Jei ne – galbūt jam reikia sulankstomo dviračio. Ar jis važinės traukiniu? Tada dydis tampa kritinis parametras. Šie klausimai dažnai praleidiami.
Praktinis patarimas vartotojams: naudodami bet kokį online rekomendacijų įrankį, visada atsakykite į klausimus kuo sąžiningiau. Jei manote, kad važinėsite 50 km per savaitę, bet realiai važinėsite 10 km – algoritmas pateiks netinkamą rekomendaciją. Geriau pervertinti komforto poreikį nei greičio poreikį.
Kai algoritmas susitinka su realiu pasauliu – ir ko iš to galima pasimokyti
Visa ši tema yra geras pavyzdys platesnės problemos: kaip skaitmeniniai įrankiai gali padėti žmonėms priimti geresnius sprendimus sudėtingose srityse. Dviračiai čia yra tik vienas pavyzdys, bet principai taikomi ir kitose srityse – nuo batų pasirinkimo iki investicijų portfelio sudarymo.
Svarbiausia, ką reikia suprasti: algoritmas yra tiek geras, kiek geri jo duomenys ir tiek naudingas, kiek gerai jis supranta tikrąjį vartotojo poreikį. Dviračių pasirinkimo atveju tikrasis poreikis dažnai nėra tas, kurį žmogus artikuliuoja. Žmogus sako „noriu greito dviračio”, bet iš tikrųjų nori dviračio, su kuriuo galėtų važiuoti į darbą neprakaituodamas ir kuris nesugestų po pirmo lietaus.
Geri algoritmai – tie, kurie užduoda tinkamus klausimus, o ne tik priima pirmą atsakymą. Jie turėtų būti kaip geras pardavėjas, kuris girdi ne tik tai, kas pasakoma, bet ir tai, kas nepasakoma. Tai yra sunkiausia dalis – ir ta, kurioje dirbtinis intelektas kol kas dar atsilieka nuo patyrusio žmogaus.
Tačiau pažanga yra reali. Šiandieninės sistemos yra žymiai geresnės nei prieš penkerius metus, ir tikėtina, kad per ateinančius kelerius metus pamatysime tikrai veikiančius personalizuotus dviračių rekomendacijų įrankius – tokius, kurie tikrai padės žmonėms rasti tinkamą dviratį, o ne tik parduoti brangiausią. Ir tai bus naudinga ne tik pirkėjams, bet ir parduotuvėms, nes žmogus, gavęs tinkamą dviratį, grįžta pirkti priedų, rūbų ir kitų dviračių. Geras algoritmas yra geras verslas – ir tai yra pati stipriausia paskata jį sukurti teisingai.






