WEBVTT 00:00:17.602 --> 00:00:19.239 Ciao mi chiamo Christian Rudder 00:00:19.239 --> 00:00:21.875 e sono uno dei fondatori di OK Cupid. 00:00:21.875 --> 00:00:24.502 È uno dei maggiori siti di incontri del momento negli Stai Uniti. 00:00:24.502 --> 00:00:25.749 Come quasi tutti al sito, 00:00:25.749 --> 00:00:27.296 ero specializzato in matematica, e come potete immaginare 00:00:27.296 --> 00:00:28.644 siamo conosciuti per l'approccio analitico 00:00:28.644 --> 00:00:29.887 che abbiamo dato all'amore. 00:00:29.887 --> 00:00:31.717 Noi lo chiamiamo il nostro algoritmo di compatibilità. 00:00:31.717 --> 00:00:33.428 Sostanzialmente, l'algoritmo di compatibilità di OK Cupid 00:00:33.428 --> 00:00:36.481 ci aiuta a decidere se due persone dovrebbero o meno incontrarsi. 00:00:36.481 --> 00:00:38.765 Ci abbiamo costruito intorno un intero business. 00:00:38.765 --> 00:00:40.572 L'algoritmo è una bella parola, 00:00:40.572 --> 00:00:43.047 ma alla gente piace considerarlo una grande cosa, 00:00:43.047 --> 00:00:45.148 ma, sul serio, un algoritmo è solo un modo sistematico 00:00:45.148 --> 00:00:47.817 e progressivo di risolvere un problema. 00:00:47.817 --> 00:00:49.949 Non deve essere per nulla fantastico. 00:00:49.949 --> 00:00:51.802 In questa lezione, spiegherò 00:00:51.802 --> 00:00:53.657 come arriviamo al nostro algoritmo specifico 00:00:53.657 --> 00:00:55.660 così potrete vedere come funziona. 00:00:55.660 --> 00:00:57.576 Allora, perché gli algoritmi sono comunque importanti? 00:00:57.576 --> 00:00:59.045 Perché questa lezione esiste? 00:00:59.045 --> 00:01:02.457 Notate una frase molto importante che ho utilizzato in precedenza: 00:01:02.457 --> 00:01:05.029 sono metodi progressivi di risolvere un problema 00:01:05.029 --> 00:01:05.841 e, come probabilmente sapete, 00:01:05.841 --> 00:01:08.470 i computer eccellono nei processi passo dopo passo. 00:01:08.470 --> 00:01:09.588 Un computer senza algoritmo 00:01:09.588 --> 00:01:12.933 è sostanzialmente un fermacarte molto costoso. 00:01:12.933 --> 00:01:15.430 ed essendo i computer così diffusi nella vita quotidiana, 00:01:15.430 --> 00:01:17.223 gli algoritmi sono ovunque. 00:01:18.515 --> 00:01:20.267 La matematica dietro all'algoritmo di compatibilità di Ok Cupid 00:01:20.267 --> 00:01:21.811 è sorprendentemente semplice. 00:01:21.811 --> 00:01:22.629 Solo alcune addizioni, 00:01:22.629 --> 00:01:23.687 moltiplicazioni, 00:01:23.687 --> 00:01:25.340 qualche radice quadrata. 00:01:25.340 --> 00:01:27.611 La parte difficile della progettazione, quindi, 00:01:27.611 --> 00:01:30.235 è capire come prendere qualcosa di misterioso, 00:01:30.235 --> 00:01:31.212 l'attrazione umana, 00:01:31.212 --> 00:01:33.810 e dividerla in componenti con cui un computer può lavorare. 00:01:33.810 --> 00:01:36.360 La prima cosa di cui avevamo bisogno per confrontare le persone sono i dati, 00:01:36.360 --> 00:01:38.382 qualcosa su cui far lavorare l'algoritmo. 00:01:38.382 --> 00:01:40.412 Il miglior modo per ricevere dati dalle perosne 00:01:40.412 --> 00:01:41.747 è chiederli. 00:01:41.747 --> 00:01:44.166 Quindi abbiamo deciso che OK Cupid avrebbe fatto domande agli utenti, 00:01:44.166 --> 00:01:46.834 cose come, "Vorresti avere figli un giorno?" 00:01:46.834 --> 00:01:48.754 o "Con quale frequenza ti lavi i denti?", 00:01:48.754 --> 00:01:50.227 "Ti piacciono i film dell'orrore?" 00:01:50.227 --> 00:01:53.514 e cose importanti come "Credi in Dio?" 00:01:53.514 --> 00:01:55.308 Molte domande sono utili 00:01:55.308 --> 00:01:56.381 per abbinare le persone simili, 00:01:56.381 --> 00:01:59.052 questo succede quando entrambi rispondono allo stesso modo. 00:01:59.052 --> 00:02:01.471 Ad esempio, due persone a cui piacciono gli horror 00:02:01.471 --> 00:02:02.684 probabilmente sono più compatibili 00:02:02.684 --> 00:02:03.843 di una a cui piacciono 00:02:03.843 --> 00:02:05.115 e una a cui non piacciono. 00:02:05.115 --> 00:02:06.480 E invece nel caso di domande come, 00:02:06.480 --> 00:02:08.189 "Ti piace essere al centro dell'attenzione?" 00:02:08.189 --> 00:02:10.729 Se due persone che stanno insieme rispondono di si, 00:02:10.729 --> 00:02:13.068 avranno grossi problemi. 00:02:13.068 --> 00:02:14.447 L'abbiamo capito subito, 00:02:14.447 --> 00:02:15.614 così abbiamo deciso che avevamo bisogno 00:02:15.614 --> 00:02:17.581 di qualche dato in più da ogni domanda. 00:02:17.581 --> 00:02:20.332 Dovevamo chiedere alle persone non solo la loro risposta 00:02:20.332 --> 00:02:23.038 ma anche che volevano da qualcun altro. 00:02:23.038 --> 00:02:24.207 Ha funzionato molto bene, 00:02:24.207 --> 00:02:26.291 ma ci serviva un'altra dimensione. 00:02:26.291 --> 00:02:28.835 Alcune risposte ci dicono di più rispetto ad altre. 00:02:28.835 --> 00:02:31.795 Ad esempio una domanda sulla politica, come, 00:02:31.795 --> 00:02:34.589 "Cosa è peggio: bruciare un libro o una bandiera?" 00:02:34.589 --> 00:02:37.207 potrebbe rivelare di più rispetto alle preferenze sui film. 00:02:37.207 --> 00:02:39.387 E non ha senso dare a tutto lo stesso peso, 00:02:39.387 --> 00:02:41.605 così abbiamo aggiunto un ultimo punto. 00:02:41.605 --> 00:02:43.440 Per ogni cosa che OK Cupid vi chiede, 00:02:43.440 --> 00:02:44.642 potete dirci 00:02:44.642 --> 00:02:46.223 il ruolo che ha nella vostra vita, 00:02:46.223 --> 00:02:49.089 e i campi variano dall'irrilevante al fondamentale. 00:02:49.089 --> 00:02:50.564 Quindi, per ogni domanda, 00:02:50.564 --> 00:02:52.692 abbiamo 3 elementi per il nostro algoritmo: 00:02:52.692 --> 00:02:54.068 primo, la vostra risposta; 00:02:54.068 --> 00:02:56.362 secondo, come vorreste che l'altro, 00:02:56.362 --> 00:02:57.196 il vostro potenziale partner, 00:02:57.196 --> 00:02:58.781 rispondesse; 00:02:58.781 --> 00:03:02.327 e terzo, quanto questa risposta è importante per voi. 00:03:02.327 --> 00:03:03.702 Con tutte queste informazioni, 00:03:03.702 --> 00:03:07.128 OK Cupid può scoprire quanto due persone andranno d'accordo. 00:03:07.128 --> 00:03:09.458 L'algoritmo elabora i numeri e ci dà un risultato. 00:03:09.458 --> 00:03:11.262 Un esempio pratico. 00:03:11.262 --> 00:03:13.712 vediamo come vi abbineremmo a un'altra persona, 00:03:13.712 --> 00:03:15.581 chiamiamola "B". 00:03:15.581 --> 00:03:17.479 La vostra affinità con B è basata 00:03:17.479 --> 00:03:19.424 sulle domande a cui entrambi avete risposto. 00:03:19.424 --> 00:03:21.978 Chiamiamo quel gruppo di domande in comune "s". 00:03:21.978 --> 00:03:24.932 Per fare un semplice esempio, useremo un piccolo gruppo "s" 00:03:24.932 --> 00:03:26.434 con solo 2 domande in comune 00:03:26.434 --> 00:03:28.310 e da li calcoleremo l'affinità. 00:03:28.310 --> 00:03:30.144 Ecco due domande campione. 00:03:30.144 --> 00:03:32.349 La prima, diciamo, è "Quanto sei disordinato?" 00:03:32.349 --> 00:03:34.669 e le possibili risposte sono 00:03:34.669 --> 00:03:35.618 molto disordinato, 00:03:35.618 --> 00:03:36.398 nella media, 00:03:36.398 --> 00:03:38.172 molto organizzato. 00:03:38.172 --> 00:03:39.755 Diciamo che rispondete "molto organizzato", 00:03:39.755 --> 00:03:42.581 e vorreste che l'altro risponda "molto organizzato" 00:03:42.581 --> 00:03:45.202 e la risposta per voi è molto importante. 00:03:45.202 --> 00:03:46.498 Siete sostanzialmente dei maniaci della pulizia. 00:03:46.498 --> 00:03:47.212 Siete puliti, 00:03:47.212 --> 00:03:48.296 volete che l'altro sia pulito, 00:03:48.296 --> 00:03:49.248 tutto qui. 00:03:49.248 --> 00:03:51.015 Diciamo che B è leggermente diverso. 00:03:51.015 --> 00:03:53.539 Ha risposto di essere molto organizzato 00:03:53.539 --> 00:03:55.171 ma per lui nella media va bene lo stesso 00:03:55.171 --> 00:03:56.740 come risposta dell'altro 00:03:56.740 --> 00:03:58.748 e la domanda per lui non è molto importante. 00:03:58.748 --> 00:04:00.308 Vediamo la seconda domanda, 00:04:00.308 --> 00:04:01.896 è di un nostro esempio precedente: 00:04:01.896 --> 00:04:03.653 "Ti piace essere al centro dell'attenzione?" 00:04:03.653 --> 00:04:05.231 Le risposte sono solo si o no. 00:04:05.231 --> 00:04:06.407 Voi avete risposto di "no", 00:04:06.407 --> 00:04:08.235 volete che l'altro risponda "no" 00:04:08.235 --> 00:04:10.862 e la domanda per voi non è molto importante. 00:04:10.862 --> 00:04:12.419 B ha risposto "sì", 00:04:12.419 --> 00:04:14.087 e vuole che l'altro risponda "no", 00:04:14.087 --> 00:04:16.332 perché vuole i riflettori puntati su di lui, 00:04:16.332 --> 00:04:19.335 e la domanda per lui è abbastanza importante. 00:04:19.335 --> 00:04:21.716 Adesso, proviamo ad elaborare tutto questo. 00:04:21.716 --> 00:04:22.855 Il primo passo è, 00:04:22.855 --> 00:04:24.376 siccome usiamo i computer 00:04:24.376 --> 00:04:26.162 dobbiamo assegnare dei valori numerici 00:04:26.162 --> 00:04:29.041 alle idee come, "abbastanza importante" e "molto importante" 00:04:29.041 --> 00:04:31.335 perché i computer hanno bisogno di numeri. 00:04:31.335 --> 00:04:33.523 Noi di OK Cupid abbiamo deciso di dare i seguenti valori: 00:04:33.523 --> 00:04:35.858 irrilevante corrisponde a 0 00:04:35.858 --> 00:04:38.307 non molto importante a 1, 00:04:38.307 --> 00:04:40.302 abbastanza importante vale 10, 00:04:40.302 --> 00:04:42.426 molto importante è uguale a 50, 00:04:42.426 --> 00:04:46.353 e fondamentale è uguale a 250. 00:04:46.353 --> 00:04:48.852 In seguito, l'algoritmo fa due semplici calcoli. 00:04:48.852 --> 00:04:51.941 Primo, quanto siete soddisfatti della risposta di B, 00:04:51.941 --> 00:04:55.568 cioè, quanti punti ha segnato B sulla vostra graduatoria? 00:04:55.568 --> 00:04:58.138 Voi indicate che la risposta di B 00:04:58.138 --> 00:04:59.947 alla prima domanda quella sul disordine 00:04:59.947 --> 00:05:01.448 è molto importante per voi. 00:05:01.448 --> 00:05:04.041 Vale 50 punti e B li ha guadagnati. 00:05:04.041 --> 00:05:05.947 La seconda domanda vale solo 1 00:05:05.947 --> 00:05:07.558 perché avete detto che non è molto importante, 00:05:07.558 --> 00:05:09.036 e B ha risposto male. 00:05:09.036 --> 00:05:12.392 Quindi B ha segnato 50 punti su 51. 00:05:12.392 --> 00:05:14.023 È soddisfacente al 98%. 00:05:14.023 --> 00:05:15.220 Abbastanza buono. 00:05:15.220 --> 00:05:16.832 La seconda domanda dell'algoritmo guarda 00:05:16.832 --> 00:05:18.918 quanto B è soddisfatto di voi. 00:05:18.918 --> 00:05:20.768 Allora, B ha dato 1 punto alla vostra risposta 00:05:20.768 --> 00:05:22.353 sulla domanda sul disordine 00:05:22.353 --> 00:05:24.745 e 10 alla vostra seconda risposta. 00:05:24.745 --> 00:05:27.156 Di questi 11, ossia 1 più 10, 00:05:27.156 --> 00:05:28.324 ne avete guadagnati 10, 00:05:28.324 --> 00:05:30.617 siete soddisfatti l'uno dell'altro sulla seconda risposta. 00:05:30.617 --> 00:05:32.611 Quindi le vostre risposte valgono 10 su 11 00:05:32.611 --> 00:05:35.240 pari al 91% di soddisfazione di B. 00:05:35.240 --> 00:05:36.117 Niente male. 00:05:36.117 --> 00:05:38.286 Il processo finale è prendere queste due percentuali 00:05:38.286 --> 00:05:40.454 e trovare un numero per entrambi. 00:05:40.454 --> 00:05:42.747 Per fare ciò, l'algoritmo moltiplica i vostri punti 00:05:42.747 --> 00:05:44.500 poi estrae la radice n-esima, 00:05:44.500 --> 00:05:46.792 dove n è il numero delle domande. 00:05:46.792 --> 00:05:49.401 Perché s, che è il numero delle domande 00:05:49.401 --> 00:05:51.507 in questo caso è solo 2, 00:05:51.507 --> 00:05:54.093 abbiamo percentuali di compatibilità pari 00:05:54.093 --> 00:05:58.154 alla radice quadrata di 98% x 91% 00:05:58.154 --> 00:06:00.304 Cioè 94% 00:06:00.304 --> 00:06:03.194 Questo 94% è la vostra affinità con B. 00:06:03.194 --> 00:06:04.561 È un' espressione matematica 00:06:04.561 --> 00:06:06.405 di quanto sareste felici insieme 00:06:06.405 --> 00:06:07.749 basandoci su ciò che sappiamo. 00:06:07.749 --> 00:06:10.131 Ma perché l'algoritmo moltiplica invece di, diciamo, 00:06:10.131 --> 00:06:12.284 fare la media dei due punteggi 00:06:12.284 --> 00:06:14.530 e fare la radice quadrata? 00:06:14.530 --> 00:06:16.479 Generalmente questa formula è chiamata media geometrica, 00:06:16.479 --> 00:06:17.881 che è un ottimo modo per combinare valori 00:06:17.881 --> 00:06:19.076 con ampie variazioni 00:06:19.076 --> 00:06:20.861 e che rappresentano proprietà differenti. 00:06:20.861 --> 00:06:23.164 In altre parole, è perfetto per l'affinità romantica. 00:06:23.164 --> 00:06:24.248 Avete variazioni ampie 00:06:24.248 --> 00:06:26.206 e tanti dati differenti, 00:06:26.206 --> 00:06:27.156 come ho dicevo, sui film, 00:06:27.156 --> 00:06:28.006 la politica, 00:06:28.006 --> 00:06:29.201 la religione, 00:06:29.201 --> 00:06:30.395 su tutto. 00:06:30.395 --> 00:06:32.256 Istintivamente, tutto questo ha senso. 00:06:32.256 --> 00:06:34.918 Due persone soddisfatte al 50% 00:06:34.918 --> 00:06:36.052 dovrebbero avere una maggior compatibilità 00:06:36.052 --> 00:06:39.180 rispetto ad altre due soddisfatte a 0 e 100, 00:06:39.180 --> 00:06:40.847 perché l'affetto deve essere reciproco. 00:06:40.847 --> 00:06:43.147 Dopo aver aggiunto una correzione per i margini di errore, 00:06:43.147 --> 00:06:45.770 nel caso di un numero limitato di domande, 00:06:45.770 --> 00:06:47.234 come in questo esempio, 00:06:47.234 --> 00:06:48.811 siamo pronti ad partire. 00:06:48.811 --> 00:06:50.191 Ogni volta che OK Cupid abbina due persone 00:06:50.191 --> 00:06:52.234 segue i passaggi appena illustrati. 00:06:52.234 --> 00:06:54.484 Prima raccoglie informazioni dalle vostre risposte, 00:06:54.484 --> 00:06:56.619 poi confronta le vostre scelte e preferenze 00:06:56.619 --> 00:06:59.740 con quelle di altri con semplici metodi matematici. 00:06:59.740 --> 00:07:02.453 Questo capacità di prendere fenomeni del mondo reale 00:07:02.453 --> 00:07:05.167 e trasformarli in qualcosa di comprensibile per un microchip 00:07:05.167 --> 00:07:05.742 è, credo, 00:07:05.742 --> 00:07:08.565 la più grande abilità che si possa pssedere al giorno d'oggi. 00:07:08.565 --> 00:07:10.919 Come voi usate frasi per raccontare una storia a qualcuno, 00:07:10.919 --> 00:07:13.665 si possono usare algoritmi per raccontare una storia ad un computer. 00:07:13.665 --> 00:07:14.921 Se ne imparate il linguaggio 00:07:14.921 --> 00:07:16.381 potete raccontare in giro la vostra storia. 00:07:16.381 --> 00:07:18.768 Spero che questo vi aiuti a farlo.