Sveiki! Mani sauc Kristians Raders,
un es biju viens no OkCupid dibinātājiem.
Tagad tas ir viens no lielākajiem iepazīšanās portāliem ASV.
Kā gandrīz visiem portālā
man ir maģistra grāds matemātikā, un, kā noprotams,
mēs esam pazīstami ar savu analītisko pieeju
mīlestībai.
Mēs to saucam par saderības algoritmu.
Būtībā OkCupid saderības algoritms
palīdz izlemt, vai diviem cilvēkiem vajadzētu satikties.
Uz to ir balstīts viss mūsu bizness.
Algoritms ir sarežģīts vārds,
un cilvēki domā, ka tas ir kaut kas liels,
bet patiesībā algoritms ir tikai sistemātiska
un pieeja problēmas risināšanai soli pa solim.
Tam nepavisam nav jābūt sarežģītam.
Šajā lekcijā es paskaidrošu,
kā mēs nonācām līdz šim algoritmam,
lai jūs redzētu, kā tas notiek.
Kāpēc algoritmi vispār ir svarīgi?
Kamdēļ vispār šī lekcija?
Ievērojiet kādu ļoti nozīmīgu frāzi, kuru izmantoju iepriekš —
algoritmi ir veids, kā risināt problēmu soli pa solim,
un, kā jūs jau, iespējams, zināt,
datori secīgos procesos ir izcili.
Dators bez algoritma
būtībā ir dārga papīru prese.
Tā kā datori ir neatņemama ikdienas sastāvdaļa,
algoritmi ir visur.
OkCupid saderības algoritma matemātika
ir pārsteidzoši vienkārša.
Tur ir tikai saskaitīšana,
reizināšana
un dažas kvadrātsaknes.
Piņķerīgā daļa tā izveidē
bija izdomāt, kā kaut ko tik noslēpumainu
kā pievilcību
sadalīt tādās sastāvdaļās, ar kurām varētu strādāt dators.
Pirmkārt, saderības noskaidrošanai mums bija vajadzīgi dati,
kaut kas, ar ko algoritms varētu strādāt.
Labākais veids, kā šos datus ātri iegūt no cilvēkiem,
ir vienkārši pajautāt.
Tā mēs izlēmām, ka OkCupid būtu jāuzdod lietotājiem jautājumi,
piemēram: „Vai jūs kādu dienu vēlētos bērnus?”
„Cik bieži jūs tīrāt zobus?”
„Vai jums patīk šausmu filmas?”
un lielās lietas, piemēram: „Vai jūs ticat Dievam?”
Daudzi jautājumi ir piemēroti,
lai atrastu līdzīgos,
proti, kad abi cilvēki atbild vienādi.
Piemēram, divi cilvēki, kuriem patīk šausmu filmas,
droši vien būs labāks pāris,
nekā ja vienam tās patiks,
bet otram ne.
Bet kā ir, piemēram, ar jautājumu:
„Vai jums patīk atrasties uzmanības centrā?”
Ja abi cilvēki atbild uz šo jautājumu ar jā,
viņiem būs lielas problēmas.
Mēs to ātri vien sapratām,
tādēļ izlēmām, ka vajag
mazliet vairāk informācijas par katru jautājumu.
Mums vajadzēja noskaidrot ne tikai paša cilvēka atbildes,
bet arī to, kādas atbildes viņi sagaida no otra.
Tas strādāja ļoti labi,
tomēr mums vajadzēja vēl vienu dimensiju.
Daži jautājumi par cilvēku pasaka vairāk nekā citi.
Piemēram, jautājums par politiku:
„Kas ir sliktāk — grāmatu vai karoga dedzināšana?”
var atklāt par kādu vairāk nekā viņa filmu gaume.
Nebūtu pareizi uzskatīt visas lietas par līdzvērtīgām,
tāpēc mēs pievienojām vēl vienu elementu.
Par ikvienu OkCupid jautājumu
jūs varat mums pateikt,
cik liela loma tam ir jūsu dzīvē —
sākot no nenozīmīgas līdz obligātai.
Tā nu tagad katram jautājumam
mūsu algoritmā ir trīs lietas:
pirmkārt, jūsu atbilde;
otrkārt, kā jūs vēlētos, lai otrs cilvēks,
jūsu potenciālais partneris,
atbild;
un treškārt, cik svarīgs jums ir šis jautājums.
Izmantojot šo informāciju,
OkCupid var noteikt, cik labi divi cilvēki sapratīsies.
Algoritms veic aprēķinu, un mēs iegūstam rezultātu.
Praktisks piemērs.
Paskatīsimies, kā mēs noskaidrotu jūsu saderību ar kādu cilvēku,
sauksim viņu par „B”.
Jūsu saderības procents ar B ir balstīts uz
jautājumiem, uz kuriem jūs abi atbildējāt.
Sauksim šo vienkāršo jautājumu kopu par „s”.
Šajā ļoti vienkāršajā piemērā mēs izmantojam nelielu kopu „s”
ar tikai diviem kopīgiem jautājumiem
un, balstoties uz tiem, aprēķinām saderību.
Lūk, mūsu divi jautājumi.
Pirmais varētu būt: „Cik nekārtīgs jūs esat?”
un iespējamie atbilžu varianti ir
ļoti nekārtīgs,
vidēji nekārtīgs,
un ļoti kārtīgs.
Pieņemsim, ka jūs atbildējāt „ļoti kārtīgs”
un vēlaties, lai arī otrs atbild „ļoti kārtīgs”,
un šis jautājums jums ir ļoti svarīgs.
Jūs būtībā esat apsēsts ar kārtību.
Jūs esat kārtīgs,
un vēlaties, lai arī otrs cilvēks ir kārtīgs,
un viss.
Pieņemsim, ka B ir mazliet citādāks.
Viņš ir atbildējis, ka pats ir ļoti kārtīgs,
bet viņam no otra cilvēka der arī atbilde „vidēji kārtīgs”,
un viņam šis jautājums ir mazsvarīgs.
Apskatīsim otro jautājumu,
tas ir viens no iepriekš minētajiem:
„Vai jums patīk atrasties uzmanības centrā?”
Atbildes ir vienkārši „jā” un „nē”.
Jūs atbildējāt „nē”,
un vēlaties, lai arī otrs atbildētu „nē”,
un jautājums jums ir mazsvarīgs.
B ir atbildējis „jā”,
un vēlas, lai otrs atbildētu „nē”,
jo vēlas, lai uzmanība būtu pievērsta viņam,
un šis jautājums viņam ir samērā svarīgs.
Tad nu mēģināsim to visu izskaitļot.
Pirmkārt,
tā kā šim darbam izmantojam datorus,
mums jāpiešķir skaitliskas vērtības
tādām idejām kā „samērā svarīgs” un „ļoti svarīgs”,
jo datoriem viss ir vajadzīgs skaitliskā formātā.
Mēs, OkCupid, vienojāmies par šādām vērtībām:
nesvarīgs ir 0,
mazsvarīgs ir 1,
samērā svarīgs ir 10,
ļoti svarīgs ir 50,
un obligāts ir 250.
Tālāk algoritms veic divus vienkāršus aprēķinus.
Pirmkārt, cik atbilstošas bija B atbildes,
proti, cik daudz no iespējamajiem punktiem B savāca.
Jūs norādījāt, ka B atbilde
uz pirmo jautājumu par kārtīgumu
jums ir ļoti svarīga.
Tās vērtība ir 50 punkti, un B uz to atbildēja pareizi.
Otrs jautājums ir tikai vienu punktu vērts,
jo tas jums ir mazsvarīgs.
B atbilde nebija pareizā.
Tātad B ir ieguvis 50 no 51 iespējamā punkta.
Tie ir 98%.
Tas ir samērā labi.
Otrs algoritma jautājums apskata,
cik lielā mērā jūsu atbildes bija pa prātam B.
B novērtēja ar 1 punktu atbildi
uz jautājumu par kārtīgumu
un ar 10 — atbildi uz otro jautājumu.
No šiem 11, kas ir 1 plus 10,
jūs ieguvāt 10.
Jūsu abu atbildes uz otro jautājumu bija saderīgas.
Tātad jūsu atbildes bija 10 no 11,
kas ar B ir 91% atbilstība.
Tas nav slikti.
Visbeidzot no šīm divām procentuālajām vērtībām
ir jāiegūst viens skaitlis jums abiem.
Lai to izdarītu, algoritms sareizina jūsu punktus
un izvelk n-tās pakāpes sakni,
kur „n” atbilst jautājumu skaitam.
Tā kā „s”, kas ir jautājumu skaits,
šajā piemērā ir tikai 2,
mūsu saderības procents ir vienāds
ar kvadrātsakni no 98% reiz 91%.
Tas ir vienāds ar 94%.
Tas nozīmē, ka jūsu saderība ar B ir 94%.
Šī matemātiskā izteiksme parāda,
cik apmierināti jūs būtu viens ar otru,
balstoties uz to, ko zinām.
Kādēļ algoritms reizina, nevis, piemēram,
aprēķina vidējo no abu vērtību summas,
un kāpēc jāvelk kvadrātsakne?
Šo formulu sauc par ģeometrisko vidējo,
kas ir lielisks veids, kā kombinēt vērtības,
kam ir liels diapazons
un kas ataino ļoti dažādas īpašības.
Tātad tas ir ideāli piemērots romantiskās saderības noteikšanai.
Mums ir plašs diapazons,
un kaudzēm dažādas informācijas,
kā jau minēju, par filmām,
politiku,
reliģiju,
par visu.
Arī intuitīvi tas šķiet loģiski.
Diviem cilvēkiem, kuru saderība vienam ar otru ir 50%,
vajadzētu būt labākam pārim
nekā diviem citiem, kuru saderība ir attiecīgi 0 un 100,
jo pievilcībai jābūt abpusējai.
Pievienojot nelielu korekciju kļūdas robežai
tiem gadījumiem, kad jautājumu skaits ir pavisam neliels
kā šajā piemērā,
mēs esam gatavi startam.
Ikreiz, aprēķinot divu cilvēku saderību,
OkCupid iziet cauri nupat aprakstītajam.
Vispirms tas savāc datus par jūsu atbildēm,
tad salīdzina jūsu izvēles un vēlmes
ar citiem cilvēkiem vienkāršā un matemātiskā veidā.
Šī spēja reālās pasaules parādību
pārveidot tā, lai mikroshēma to spētu saprast,
ir, manuprāt,
vissvarīgākā spēja, kāda cilvēkam mūsdienās var būt.
Tāpat kā jūs izmantojat teikumus, lai kaut ko pastāstītu cilvēkam,
mēs izmantojam algoritmus, lai pastāstītu lietas datoram.
Iemācoties valodu,
jūs varat doties pasaulē un stāstīt savus stāstus.
Es ceru, ka šis palīdzēs jums to izdarīt.