1 00:00:17,602 --> 00:00:19,239 Oi, meu nome é Christian Rudder, 2 00:00:19,239 --> 00:00:21,875 e eu fui um dos fundadores do OK Cupid. 3 00:00:21,875 --> 00:00:24,502 Hoje em dia, é um dos maiores sites de namoro nos Estados Unidos. 4 00:00:24,502 --> 00:00:25,749 Como quase todo mundo no site, 5 00:00:25,749 --> 00:00:27,296 Eu era um matemático, e, como vocês podem esperar, 6 00:00:27,296 --> 00:00:28,644 somos conhecidos pela abordagem analítica 7 00:00:28,644 --> 00:00:29,887 que adotamos para amar. 8 00:00:29,887 --> 00:00:31,717 Chamamos isso de algoritmo compatível. 9 00:00:31,717 --> 00:00:33,428 Basicamente do algoritmo compatível do OK Cupid 10 00:00:33,428 --> 00:00:36,481 nos ajuda a decidir se duas pessoas devem sair juntas. 11 00:00:36,481 --> 00:00:38,765 Nós construímos todo nosso negócio em torno disto. 12 00:00:38,765 --> 00:00:40,572 Agora, algoritmo é uma palavra pomposa, 13 00:00:40,572 --> 00:00:43,047 e as pessoas gostam de pensar que é grande coisa, 14 00:00:43,047 --> 00:00:45,148 mas, realmente, um algoritmo é apenas sistemático, 15 00:00:45,148 --> 00:00:47,817 um modo de resolver um problema passo-a-passo. 16 00:00:47,817 --> 00:00:49,949 Não precisa ser pomposa de jeito nenhum. 17 00:00:49,949 --> 00:00:51,802 Aqui, nesta lição, irei explicar 18 00:00:51,802 --> 00:00:53,657 como chegamos em nosso algoritmo particular 19 00:00:53,657 --> 00:00:55,660 então você pode ver como é feito. 20 00:00:55,660 --> 00:00:57,576 Agora, porque algoritmos são importantes? 21 00:00:57,576 --> 00:00:59,045 Porque esta lição existe? 22 00:00:59,045 --> 00:01:02,457 Bem, perceba uma frase significante que usei acima: 23 00:01:02,457 --> 00:01:05,029 há uma forma de resolver um problema passo-a-passo, 24 00:01:05,029 --> 00:01:05,841 e, como você provavelmente sabe, 25 00:01:05,841 --> 00:01:08,470 computadores excedem processos passo-a-passo. 26 00:01:08,470 --> 00:01:09,588 Um computador sem algoritmo 27 00:01:09,588 --> 00:01:12,933 é basicamente um peso de papel caro. 28 00:01:12,933 --> 00:01:15,430 E desde que computadores são parte ocupantes da vida diária, 29 00:01:15,430 --> 00:01:17,223 algoritmos estão em toda parte. 30 00:01:18,515 --> 00:01:20,267 A matemática por trás do algoritmo compatível do OK Cupid 31 00:01:20,267 --> 00:01:21,811 é surpreendentemente simples. 32 00:01:21,811 --> 00:01:22,629 É apenas uma adição, 33 00:01:22,629 --> 00:01:23,687 multiplicação, 34 00:01:23,687 --> 00:01:25,340 um pouco de raízes quadradas. 35 00:01:25,340 --> 00:01:27,611 A parte difícil em projetar isto, de qualquer forma, 36 00:01:27,611 --> 00:01:30,235 foi compreender em como pegar algo misterioso, 37 00:01:30,235 --> 00:01:31,212 como a atração humana, 38 00:01:31,212 --> 00:01:33,810 e quebrá-la em componentes em que um computador possa trabalhar. 39 00:01:33,810 --> 00:01:36,360 Bem, a primeira coisa que precisamos para unir pessoas eram dados, 40 00:01:36,360 --> 00:01:38,382 algo para o algoritmo poder trabalhar. 41 00:01:38,382 --> 00:01:40,412 A melhor forma de conseguir esses dados rapidamente das pessoas 42 00:01:40,412 --> 00:01:41,747 é simplesmente perguntar. 43 00:01:41,747 --> 00:01:44,166 Então, decidimos que o OK Cupid deveria fazer perguntas aos usuários, 44 00:01:44,166 --> 00:01:46,834 coisas como, "Você quer ter filhos um dia?" 45 00:01:46,834 --> 00:01:48,754 e "Com que frequência você escova seus dentes?", 46 00:01:48,754 --> 00:01:50,227 "Você gosta de filmes de terror?" 47 00:01:50,227 --> 00:01:53,514 e coisas grandes como "Você acredita em Deus?" 48 00:01:53,514 --> 00:01:55,308 Agora, muitas das perguntas são boas 49 00:01:55,308 --> 00:01:56,381 para combinar gostos com gostos, 50 00:01:56,381 --> 00:01:59,052 isso é quando ambos respondem da mesma forma. 51 00:01:59,052 --> 00:02:01,471 Por exemplo, duas pessoas que gostam de filmes de terror 52 00:02:01,471 --> 00:02:02,684 são provavelmente uma melhor combinação 53 00:02:02,684 --> 00:02:03,843 que uma pessoa que gosta 54 00:02:03,843 --> 00:02:05,115 e a outra que não gosta. 55 00:02:05,115 --> 00:02:06,480 Mas e quanto a questão como, 56 00:02:06,480 --> 00:02:08,189 "Você gosta de ser o centro das atenções?" 57 00:02:08,189 --> 00:02:10,729 Se ambos em um relacionamento disserem sim pra essa, 58 00:02:10,729 --> 00:02:13,068 então eles terão grandes problemas. 59 00:02:13,068 --> 00:02:14,447 Percebemos isto mais cedo, 60 00:02:14,447 --> 00:02:15,614 e então decidimos que precisariamos 61 00:02:15,614 --> 00:02:17,581 de um pouco mais de dados para cada questão. 62 00:02:17,581 --> 00:02:20,332 Tivemos que pedir as pessoas para especificar não apenas suas respostas, 63 00:02:20,332 --> 00:02:23,038 mas a resposta que eles gostariam de ter da outra pessoa. 64 00:02:23,038 --> 00:02:24,207 E isto funcionou muito bem, 65 00:02:24,207 --> 00:02:26,291 mas precisamos de mais uma dimensão. 66 00:02:26,291 --> 00:02:28,835 Algumas questões dizem mais sobre uma pessoa que outras 67 00:02:28,835 --> 00:02:31,795 Por exemplo, uma questão sobre política, algo como, 68 00:02:31,795 --> 00:02:34,589 "Qual é o pior: queimar livros ou bandeiras?" 69 00:02:34,589 --> 00:02:37,207 podem revelar mais sobre alguém que seu gosto para filmes. 70 00:02:37,207 --> 00:02:39,387 E não faz sentido pesar todos igualmente, 71 00:02:39,387 --> 00:02:41,605 então adicionamos um principal dado final. 72 00:02:41,605 --> 00:02:43,440 Para tudo que o OK Cupid lhe pergunta, 73 00:02:43,440 --> 00:02:44,642 você tem a chance de nos dizer 74 00:02:44,642 --> 00:02:46,223 a função que exerce na sua vida, 75 00:02:46,223 --> 00:02:49,089 e isto abrange de irrelevante a obrigatório. 76 00:02:49,089 --> 00:02:50,564 Então agora, para cada questão, 77 00:02:50,564 --> 00:02:52,692 nós temos três coisas para nosso algoritmo: 78 00:02:52,692 --> 00:02:54,068 primeiro, sua resposta; 79 00:02:54,068 --> 00:02:56,362 segundo, como você quer que a outra pessoa, 80 00:02:56,362 --> 00:02:57,196 seu parceiro em potencial, 81 00:02:57,196 --> 00:02:58,781 responda; 82 00:02:58,781 --> 00:03:02,327 e terceiro, e quão importante é esta questão para você. 83 00:03:02,327 --> 00:03:03,702 Com toda essa informação, 84 00:03:03,702 --> 00:03:07,128 OK Cupid pode calcular o quanto duas pessoas podem se dar bem. 85 00:03:07,128 --> 00:03:09,458 O algoritmo mastiga os números e nos dá um resultado. 86 00:03:09,458 --> 00:03:11,262 Como um exemplo prático, 87 00:03:11,262 --> 00:03:13,712 vamos ver como combinamos você com outra pessoa, 88 00:03:13,712 --> 00:03:15,581 vamos chamá-lo de "B". 89 00:03:15,581 --> 00:03:17,479 Sua porcentagem de combinação com B é baseada em 90 00:03:17,479 --> 00:03:19,424 questões que ambos responderam. 91 00:03:19,424 --> 00:03:21,978 Vamos chamar isso de grupo de questões comuns, "s". 92 00:03:21,978 --> 00:03:24,932 Como um exemplo muito simples, usamos um pequeno grupo "s" 93 00:03:24,932 --> 00:03:26,434 com apenas duas questões em comum 94 00:03:26,434 --> 00:03:28,310 e computar a combinação a partir disso. 95 00:03:28,310 --> 00:03:30,144 Aqui estão duas questões exemplos. 96 00:03:30,144 --> 00:03:32,349 A primeira, vamos dizer que é, "O quão bagunceiro você é?" 97 00:03:32,349 --> 00:03:34,669 e as respostas possíveis são 98 00:03:34,669 --> 00:03:35,618 muito bagunceiro, 99 00:03:35,618 --> 00:03:36,398 normal, 100 00:03:36,398 --> 00:03:38,172 e muito organizado. 101 00:03:38,172 --> 00:03:39,755 E digamos que você respondeu "muito organizado," 102 00:03:39,755 --> 00:03:42,581 e você gostaria que o outro respondesse "muito organizado," 103 00:03:42,581 --> 00:03:45,202 e a questão é muito importante para você. 104 00:03:45,202 --> 00:03:46,498 Basicamente você é um louco por organização. 105 00:03:46,498 --> 00:03:47,212 Você é organizado 106 00:03:47,212 --> 00:03:48,296 e quer que a outra pessoa seja organizada, 107 00:03:48,296 --> 00:03:49,248 é isso. 108 00:03:49,248 --> 00:03:51,015 E digamos que B é um pouco diferente. 109 00:03:51,015 --> 00:03:53,539 Ele respondeu muito organizado para ele mesmo, 110 00:03:53,539 --> 00:03:55,171 mas normal está OK para ele 111 00:03:55,171 --> 00:03:56,740 como a resposta da outra pessoa, 112 00:03:56,740 --> 00:03:58,748 e a questão é só um pouco importante para ele. 113 00:03:58,748 --> 00:04:00,308 Vamos ver a segunda questão, 114 00:04:00,308 --> 00:04:01,896 é uma do nosso exemplo anterior: 115 00:04:01,896 --> 00:04:03,653 "Você gosta de ser o centro das atenções?" 116 00:04:03,653 --> 00:04:05,231 As respostas são apenas sim e não. 117 00:04:05,231 --> 00:04:06,407 Agora você respondeu "não," 118 00:04:06,407 --> 00:04:08,235 como você quer que a outra pessoa responda é "não," 119 00:04:08,235 --> 00:04:10,862 e a questão é apenas um pouco importante para você. 120 00:04:10,862 --> 00:04:12,419 Agora B, ele respondeu "sim," 121 00:04:12,419 --> 00:04:14,087 ele quer que a outra pessoa responda "não," 122 00:04:14,087 --> 00:04:16,332 porque ele quer as atenções voltadas para ele, 123 00:04:16,332 --> 00:04:19,335 e a questão é um tanto importante para ele. 124 00:04:19,335 --> 00:04:21,716 Então, vamos tentar computar tudo isso. 125 00:04:21,716 --> 00:04:22,855 Nosso primeiro passo é, 126 00:04:22,855 --> 00:04:24,376 desde que usamos computadores para fazer isto, 127 00:04:24,376 --> 00:04:26,162 precisamos determinar valores numéricos 128 00:04:26,162 --> 00:04:29,041 a ideias como "um tanto importante" e "muito importante" 129 00:04:29,041 --> 00:04:31,335 porque computadores precisam de tudo em números. 130 00:04:31,335 --> 00:04:33,523 Nós do OK Cupid decidimos no parâmetro a seguir: 131 00:04:33,523 --> 00:04:35,858 irrelevante vale 0, 132 00:04:35,858 --> 00:04:38,307 um pouco importante vale 1, 133 00:04:38,307 --> 00:04:40,302 um tanto importante vale 10, 134 00:04:40,302 --> 00:04:42,426 muito importante vale 50, 135 00:04:42,426 --> 00:04:46,353 e absolutamente obrigatório vale 250. 136 00:04:46,353 --> 00:04:48,852 Depois, o algoritmo faz dois cálculos simples, 137 00:04:48,852 --> 00:04:51,941 O primeiro é o quanto as respostas de B satisfazem você, 138 00:04:51,941 --> 00:04:55,568 isto é, quantos pontos possíveis B fez no seu parâmetro? 139 00:04:55,568 --> 00:04:58,138 Bem, você indicou que a resposta de B 140 00:04:58,138 --> 00:04:59,947 para a primeira questão sobre bagunça 141 00:04:59,947 --> 00:05:01,448 era muito importante para você. 142 00:05:01,448 --> 00:05:04,041 Vale 50 pontos e B fez isso certo. 143 00:05:04,041 --> 00:05:05,947 A segunda questão só vale 1 144 00:05:05,947 --> 00:05:07,558 porque você disse que era apenas um pouco importante, 145 00:05:07,558 --> 00:05:09,036 e B não se deu bem nessa. 146 00:05:09,036 --> 00:05:12,392 Então, as respostas de B foram 50 de 51 pontos. 147 00:05:12,392 --> 00:05:14,023 Isso é 98% satisfatório. 148 00:05:14,023 --> 00:05:15,220 É muito bom. 149 00:05:15,220 --> 00:05:16,832 E, a segunda questão do algoritmo olha 150 00:05:16,832 --> 00:05:18,918 é quanto você satisfez B. 151 00:05:18,918 --> 00:05:20,768 Bem, B fez 1 ponto na sua resposta 152 00:05:20,768 --> 00:05:22,353 para a questão da bagunça 153 00:05:22,353 --> 00:05:24,745 e 10 na sua resposta para a segunda. 154 00:05:24,745 --> 00:05:27,156 Daquelas, 11, é 1 mais 10, 155 00:05:27,156 --> 00:05:28,324 você ganhou 10, 156 00:05:28,324 --> 00:05:30,617 vocês se satisfazem um ao outro na segunda questão. 157 00:05:30,617 --> 00:05:32,611 Então suas respostas foram 10 de 11 158 00:05:32,611 --> 00:05:35,240 igual a 91% satisfatório para B. 159 00:05:35,240 --> 00:05:36,117 Isso não é ruim. 160 00:05:36,117 --> 00:05:38,286 O passo final é pegar estas duas porcentagens combinantes 161 00:05:38,286 --> 00:05:40,454 e tirar um número para vocês. 162 00:05:40,454 --> 00:05:42,747 Para fazer isso, o algoritmo multiplica seus pontos, 163 00:05:42,747 --> 00:05:44,500 então tira a raiz de n, 164 00:05:44,500 --> 00:05:46,792 onde n é o número de questões. 165 00:05:46,792 --> 00:05:49,401 Porque s, que é o número de questões, 166 00:05:49,401 --> 00:05:51,507 nessa amostra, é apenas 2, 167 00:05:51,507 --> 00:05:54,093 nós combinamos a porcentagem igualmente 168 00:05:54,093 --> 00:05:58,154 a raiz quadrada de 98% vezes 91%. 169 00:05:58,154 --> 00:06:00,304 É igual a 94%. 170 00:06:00,304 --> 00:06:03,194 Essse 94% é sua combinação de porcentagem com B. 171 00:06:03,194 --> 00:06:04,561 É uma expressão matemática 172 00:06:04,561 --> 00:06:06,405 de quão feliz vocês seriam um com o outro 173 00:06:06,405 --> 00:06:07,749 baseados no que sabemos. 174 00:06:07,749 --> 00:06:10,131 Agora, porque o algoritmo multiplica como oposto da, digamos, 175 00:06:10,131 --> 00:06:12,284 média de duas pontuações combinantes juntas 176 00:06:12,284 --> 00:06:14,530 e o caso da raiz quadrada? 177 00:06:14,530 --> 00:06:16,479 Em geral, esta fórmula é chamada de média geometrica, 178 00:06:16,479 --> 00:06:17,881 que é uma ótima maneira de combinar valores 179 00:06:17,881 --> 00:06:19,076 que tem amplos alcances 180 00:06:19,076 --> 00:06:20,861 e representa propriedades muito diferentes. 181 00:06:20,861 --> 00:06:23,164 Em outras palavras, é perfeito para combinação romântica. 182 00:06:23,164 --> 00:06:24,248 Você tem amplos alcances 183 00:06:24,248 --> 00:06:26,206 e você tem uma tonelada de dados diferentes, 184 00:06:26,206 --> 00:06:27,156 como eu disse, sobre filmes, 185 00:06:27,156 --> 00:06:28,006 sobre política, 186 00:06:28,006 --> 00:06:29,201 sobre religião, 187 00:06:29,201 --> 00:06:30,395 sobre tudo. 188 00:06:30,395 --> 00:06:32,256 Intuitivamente, isso faz sentido também. 189 00:06:32,256 --> 00:06:34,918 Duas pessoas satisfazem 50% uma a outra 190 00:06:34,918 --> 00:06:36,052 deveria ser uma melhor combinação 191 00:06:36,052 --> 00:06:39,180 que os outros que satisfazem 0 e 100, 192 00:06:39,180 --> 00:06:40,847 porque afeição precisa ser mútua. 193 00:06:40,847 --> 00:06:43,147 Depois de adicionar um pouco de correção para margem de erro, 194 00:06:43,147 --> 00:06:45,770 no caso, quando temos um pequeno número de questões 195 00:06:45,770 --> 00:06:47,234 como temos nesse exemplo, 196 00:06:47,234 --> 00:06:48,811 estamos prontos. 197 00:06:48,811 --> 00:06:50,191 Qualquer momento o OK Cupid combina duas pessoas, 198 00:06:50,191 --> 00:06:52,234 vai além dos passos que esboçamos. 199 00:06:52,234 --> 00:06:54,484 Primeiro coleta-se dados sobre suas respostas, 200 00:06:54,484 --> 00:06:56,619 aí compara suas escolha e preferências 201 00:06:56,619 --> 00:06:59,740 com outras pessoas, de maneira simples e matemática. 202 00:06:59,740 --> 00:07:02,453 Isto, a habilidade de pegar o fenômeno do mundo real 203 00:07:02,453 --> 00:07:05,167 e fazer dele algo que um microchip possa entender, 204 00:07:05,167 --> 00:07:05,742 é, eu acho, 205 00:07:05,742 --> 00:07:08,565 a habilidade mais importante que alguém pode ter hoje em dia 206 00:07:08,565 --> 00:07:10,919 Como usar sentenças para contar uma história a alguém, 207 00:07:10,919 --> 00:07:13,665 você usa os algoritmos para contar uma história ao computador. 208 00:07:13,665 --> 00:07:14,921 Se você aprender a língua, 209 00:07:14,921 --> 00:07:16,381 você pode sair e contar suas historias. 210 00:07:16,381 --> 00:07:18,768 Espero que isto lhe ajude a fazer isso.