0:00:17.602,0:00:19.239 Oi, meu nome é Christian Rudder, 0:00:19.239,0:00:21.875 e eu fui um dos fundadores do OK Cupid. 0:00:21.875,0:00:24.502 Hoje em dia, é um dos maiores sites de namoro nos Estados Unidos. 0:00:24.502,0:00:25.749 Como quase todo mundo no site, 0:00:25.749,0:00:27.296 Eu era um matemático, e, como vocês podem esperar, 0:00:27.296,0:00:28.644 somos conhecidos pela abordagem analítica 0:00:28.644,0:00:29.887 que adotamos para amar. 0:00:29.887,0:00:31.717 Chamamos isso de algoritmo compatível. 0:00:31.717,0:00:33.428 Basicamente do algoritmo compatível do OK Cupid 0:00:33.428,0:00:36.481 nos ajuda a decidir se duas pessoas devem sair juntas. 0:00:36.481,0:00:38.765 Nós construímos todo nosso negócio em torno disto. 0:00:38.765,0:00:40.572 Agora, algoritmo é uma palavra pomposa, 0:00:40.572,0:00:43.047 e as pessoas gostam de pensar que é grande coisa, 0:00:43.047,0:00:45.148 mas, realmente, um algoritmo é apenas sistemático, 0:00:45.148,0:00:47.817 um modo de resolver um problema passo-a-passo. 0:00:47.817,0:00:49.949 Não precisa ser pomposa de jeito nenhum. 0:00:49.949,0:00:51.802 Aqui, nesta lição, irei explicar 0:00:51.802,0:00:53.657 como chegamos em nosso algoritmo particular 0:00:53.657,0:00:55.660 então você pode ver como é feito. 0:00:55.660,0:00:57.576 Agora, porque algoritmos são importantes? 0:00:57.576,0:00:59.045 Porque esta lição existe? 0:00:59.045,0:01:02.457 Bem, perceba uma frase significante que usei acima: 0:01:02.457,0:01:05.029 há uma forma de resolver um problema passo-a-passo, 0:01:05.029,0:01:05.841 e, como você provavelmente sabe, 0:01:05.841,0:01:08.470 computadores excedem processos passo-a-passo. 0:01:08.470,0:01:09.588 Um computador sem algoritmo 0:01:09.588,0:01:12.933 é basicamente um peso de papel caro. 0:01:12.933,0:01:15.430 E desde que computadores são parte ocupantes da vida diária, 0:01:15.430,0:01:17.223 algoritmos estão em toda parte. 0:01:18.515,0:01:20.267 A matemática por trás do algoritmo compatível do OK Cupid 0:01:20.267,0:01:21.811 é surpreendentemente simples. 0:01:21.811,0:01:22.629 É apenas uma adição, 0:01:22.629,0:01:23.687 multiplicação, 0:01:23.687,0:01:25.340 um pouco de raízes quadradas. 0:01:25.340,0:01:27.611 A parte difícil em projetar isto, de qualquer forma, 0:01:27.611,0:01:30.235 foi compreender em como pegar algo misterioso, 0:01:30.235,0:01:31.212 como a atração humana, 0:01:31.212,0:01:33.810 e quebrá-la em componentes em que um computador possa trabalhar. 0:01:33.810,0:01:36.360 Bem, a primeira coisa que precisamos para unir pessoas eram dados, 0:01:36.360,0:01:38.382 algo para o algoritmo poder trabalhar. 0:01:38.382,0:01:40.412 A melhor forma de conseguir esses dados rapidamente das pessoas 0:01:40.412,0:01:41.747 é simplesmente perguntar. 0:01:41.747,0:01:44.166 Então, decidimos que o OK Cupid deveria fazer perguntas aos usuários, 0:01:44.166,0:01:46.834 coisas como, "Você quer ter filhos um dia?" 0:01:46.834,0:01:48.754 e "Com que frequência você escova seus dentes?", 0:01:48.754,0:01:50.227 "Você gosta de filmes de terror?" 0:01:50.227,0:01:53.514 e coisas grandes como "Você acredita em Deus?" 0:01:53.514,0:01:55.308 Agora, muitas das perguntas são boas 0:01:55.308,0:01:56.381 para combinar gostos com gostos, 0:01:56.381,0:01:59.052 isso é quando ambos respondem da mesma forma. 0:01:59.052,0:02:01.471 Por exemplo, duas pessoas que gostam de filmes de terror 0:02:01.471,0:02:02.684 são provavelmente uma melhor combinação 0:02:02.684,0:02:03.843 que uma pessoa que gosta 0:02:03.843,0:02:05.115 e a outra que não gosta. 0:02:05.115,0:02:06.480 Mas e quanto a questão como, 0:02:06.480,0:02:08.189 "Você gosta de ser o centro das atenções?" 0:02:08.189,0:02:10.729 Se ambos em um relacionamento disserem sim pra essa, 0:02:10.729,0:02:13.068 então eles terão grandes problemas. 0:02:13.068,0:02:14.447 Percebemos isto mais cedo, 0:02:14.447,0:02:15.614 e então decidimos que precisariamos 0:02:15.614,0:02:17.581 de um pouco mais de dados para cada questão. 0:02:17.581,0:02:20.332 Tivemos que pedir as pessoas para especificar não apenas suas respostas, 0:02:20.332,0:02:23.038 mas a resposta que eles gostariam de ter da outra pessoa. 0:02:23.038,0:02:24.207 E isto funcionou muito bem, 0:02:24.207,0:02:26.291 mas precisamos de mais uma dimensão. 0:02:26.291,0:02:28.835 Algumas questões dizem mais sobre uma pessoa que outras 0:02:28.835,0:02:31.795 Por exemplo, uma questão sobre política, algo como, 0:02:31.795,0:02:34.589 "Qual é o pior: queimar livros ou bandeiras?" 0:02:34.589,0:02:37.207 podem revelar mais sobre alguém que seu gosto para filmes. 0:02:37.207,0:02:39.387 E não faz sentido pesar todos igualmente, 0:02:39.387,0:02:41.605 então adicionamos um principal dado final. 0:02:41.605,0:02:43.440 Para tudo que o OK Cupid lhe pergunta, 0:02:43.440,0:02:44.642 você tem a chance de nos dizer 0:02:44.642,0:02:46.223 a função que exerce na sua vida, 0:02:46.223,0:02:49.089 e isto abrange de irrelevante a obrigatório. 0:02:49.089,0:02:50.564 Então agora, para cada questão, 0:02:50.564,0:02:52.692 nós temos três coisas para nosso algoritmo: 0:02:52.692,0:02:54.068 primeiro, sua resposta; 0:02:54.068,0:02:56.362 segundo, como você quer que a outra pessoa, 0:02:56.362,0:02:57.196 seu parceiro em potencial, 0:02:57.196,0:02:58.781 responda; 0:02:58.781,0:03:02.327 e terceiro, e quão importante é esta questão para você. 0:03:02.327,0:03:03.702 Com toda essa informação, 0:03:03.702,0:03:07.128 OK Cupid pode calcular o quanto duas pessoas podem se dar bem. 0:03:07.128,0:03:09.458 O algoritmo mastiga os números e nos dá um resultado. 0:03:09.458,0:03:11.262 Como um exemplo prático, 0:03:11.262,0:03:13.712 vamos ver como combinamos você com outra pessoa, 0:03:13.712,0:03:15.581 vamos chamá-lo de "B". 0:03:15.581,0:03:17.479 Sua porcentagem de combinação com B é baseada em 0:03:17.479,0:03:19.424 questões que ambos responderam. 0:03:19.424,0:03:21.978 Vamos chamar isso de grupo de questões comuns, "s". 0:03:21.978,0:03:24.932 Como um exemplo muito simples, usamos um pequeno grupo "s" 0:03:24.932,0:03:26.434 com apenas duas questões em comum 0:03:26.434,0:03:28.310 e computar a combinação a partir disso. 0:03:28.310,0:03:30.144 Aqui estão duas questões exemplos. 0:03:30.144,0:03:32.349 A primeira, vamos dizer que é, "O quão bagunceiro você é?" 0:03:32.349,0:03:34.669 e as respostas possíveis são 0:03:34.669,0:03:35.618 muito bagunceiro, 0:03:35.618,0:03:36.398 normal, 0:03:36.398,0:03:38.172 e muito organizado. 0:03:38.172,0:03:39.755 E digamos que você respondeu "muito organizado," 0:03:39.755,0:03:42.581 e você gostaria que o outro respondesse "muito organizado," 0:03:42.581,0:03:45.202 e a questão é muito importante para você. 0:03:45.202,0:03:46.498 Basicamente você é um louco por organização. 0:03:46.498,0:03:47.212 Você é organizado 0:03:47.212,0:03:48.296 e quer que a outra pessoa seja organizada, 0:03:48.296,0:03:49.248 é isso. 0:03:49.248,0:03:51.015 E digamos que B é um pouco diferente. 0:03:51.015,0:03:53.539 Ele respondeu muito organizado para ele mesmo, 0:03:53.539,0:03:55.171 mas normal está OK para ele 0:03:55.171,0:03:56.740 como a resposta da outra pessoa, 0:03:56.740,0:03:58.748 e a questão é só um pouco importante para ele. 0:03:58.748,0:04:00.308 Vamos ver a segunda questão, 0:04:00.308,0:04:01.896 é uma do nosso exemplo anterior: 0:04:01.896,0:04:03.653 "Você gosta de ser o centro das atenções?" 0:04:03.653,0:04:05.231 As respostas são apenas sim e não. 0:04:05.231,0:04:06.407 Agora você respondeu "não," 0:04:06.407,0:04:08.235 como você quer que a outra pessoa responda é "não," 0:04:08.235,0:04:10.862 e a questão é apenas um pouco importante para você. 0:04:10.862,0:04:12.419 Agora B, ele respondeu "sim," 0:04:12.419,0:04:14.087 ele quer que a outra pessoa responda "não," 0:04:14.087,0:04:16.332 porque ele quer as atenções voltadas para ele, 0:04:16.332,0:04:19.335 e a questão é um tanto importante para ele. 0:04:19.335,0:04:21.716 Então, vamos tentar computar tudo isso. 0:04:21.716,0:04:22.855 Nosso primeiro passo é, 0:04:22.855,0:04:24.376 desde que usamos computadores para fazer isto, 0:04:24.376,0:04:26.162 precisamos determinar valores numéricos 0:04:26.162,0:04:29.041 a ideias como "um tanto importante" e "muito importante" 0:04:29.041,0:04:31.335 porque computadores precisam de tudo em números. 0:04:31.335,0:04:33.523 Nós do OK Cupid decidimos no parâmetro a seguir: 0:04:33.523,0:04:35.858 irrelevante vale 0, 0:04:35.858,0:04:38.307 um pouco importante vale 1, 0:04:38.307,0:04:40.302 um tanto importante vale 10, 0:04:40.302,0:04:42.426 muito importante vale 50, 0:04:42.426,0:04:46.353 e absolutamente obrigatório vale 250. 0:04:46.353,0:04:48.852 Depois, o algoritmo faz dois cálculos simples, 0:04:48.852,0:04:51.941 O primeiro é o quanto as respostas de B satisfazem você, 0:04:51.941,0:04:55.568 isto é, quantos pontos possíveis B fez no seu parâmetro? 0:04:55.568,0:04:58.138 Bem, você indicou que a resposta de B 0:04:58.138,0:04:59.947 para a primeira questão sobre bagunça 0:04:59.947,0:05:01.448 era muito importante para você. 0:05:01.448,0:05:04.041 Vale 50 pontos e B fez isso certo. 0:05:04.041,0:05:05.947 A segunda questão só vale 1 0:05:05.947,0:05:07.558 porque você disse que era apenas um pouco importante, 0:05:07.558,0:05:09.036 e B não se deu bem nessa. 0:05:09.036,0:05:12.392 Então, as respostas de B foram 50 de 51 pontos. 0:05:12.392,0:05:14.023 Isso é 98% satisfatório. 0:05:14.023,0:05:15.220 É muito bom. 0:05:15.220,0:05:16.832 E, a segunda questão do algoritmo olha 0:05:16.832,0:05:18.918 é quanto você satisfez B. 0:05:18.918,0:05:20.768 Bem, B fez 1 ponto na sua resposta 0:05:20.768,0:05:22.353 para a questão da bagunça 0:05:22.353,0:05:24.745 e 10 na sua resposta para a segunda. 0:05:24.745,0:05:27.156 Daquelas, 11, é 1 mais 10, 0:05:27.156,0:05:28.324 você ganhou 10, 0:05:28.324,0:05:30.617 vocês se satisfazem um ao outro na segunda questão. 0:05:30.617,0:05:32.611 Então suas respostas foram 10 de 11 0:05:32.611,0:05:35.240 igual a 91% satisfatório para B. 0:05:35.240,0:05:36.117 Isso não é ruim. 0:05:36.117,0:05:38.286 O passo final é pegar estas duas porcentagens combinantes 0:05:38.286,0:05:40.454 e tirar um número para vocês. 0:05:40.454,0:05:42.747 Para fazer isso, o algoritmo multiplica seus pontos, 0:05:42.747,0:05:44.500 então tira a raiz de n, 0:05:44.500,0:05:46.792 onde n é o número de questões. 0:05:46.792,0:05:49.401 Porque s, que é o número de questões, 0:05:49.401,0:05:51.507 nessa amostra, é apenas 2, 0:05:51.507,0:05:54.093 nós combinamos a porcentagem igualmente 0:05:54.093,0:05:58.154 a raiz quadrada de 98% vezes 91%. 0:05:58.154,0:06:00.304 É igual a 94%. 0:06:00.304,0:06:03.194 Essse 94% é sua combinação de porcentagem com B. 0:06:03.194,0:06:04.561 É uma expressão matemática 0:06:04.561,0:06:06.405 de quão feliz vocês seriam um com o outro 0:06:06.405,0:06:07.749 baseados no que sabemos. 0:06:07.749,0:06:10.131 Agora, porque o algoritmo multiplica como oposto da, digamos, 0:06:10.131,0:06:12.284 média de duas pontuações combinantes juntas 0:06:12.284,0:06:14.530 e o caso da raiz quadrada? 0:06:14.530,0:06:16.479 Em geral, esta fórmula é chamada de média geometrica, 0:06:16.479,0:06:17.881 que é uma ótima maneira de combinar valores 0:06:17.881,0:06:19.076 que tem amplos alcances 0:06:19.076,0:06:20.861 e representa propriedades muito diferentes. 0:06:20.861,0:06:23.164 Em outras palavras, é perfeito para combinação romântica. 0:06:23.164,0:06:24.248 Você tem amplos alcances 0:06:24.248,0:06:26.206 e você tem uma tonelada de dados diferentes, 0:06:26.206,0:06:27.156 como eu disse, sobre filmes, 0:06:27.156,0:06:28.006 sobre política, 0:06:28.006,0:06:29.201 sobre religião, 0:06:29.201,0:06:30.395 sobre tudo. 0:06:30.395,0:06:32.256 Intuitivamente, isso faz sentido também. 0:06:32.256,0:06:34.918 Duas pessoas satisfazem 50% uma a outra 0:06:34.918,0:06:36.052 deveria ser uma melhor combinação 0:06:36.052,0:06:39.180 que os outros que satisfazem 0 e 100, 0:06:39.180,0:06:40.847 porque afeição precisa ser mútua. 0:06:40.847,0:06:43.147 Depois de adicionar um pouco de correção para margem de erro, 0:06:43.147,0:06:45.770 no caso, quando temos um pequeno número de questões 0:06:45.770,0:06:47.234 como temos nesse exemplo, 0:06:47.234,0:06:48.811 estamos prontos. 0:06:48.811,0:06:50.191 Qualquer momento o OK Cupid combina duas pessoas, 0:06:50.191,0:06:52.234 vai além dos passos que esboçamos. 0:06:52.234,0:06:54.484 Primeiro coleta-se dados sobre suas respostas, 0:06:54.484,0:06:56.619 aí compara suas escolha e preferências 0:06:56.619,0:06:59.740 com outras pessoas, de maneira simples e matemática. 0:06:59.740,0:07:02.453 Isto, a habilidade de pegar o fenômeno do mundo real 0:07:02.453,0:07:05.167 e fazer dele algo que um microchip possa entender, 0:07:05.167,0:07:05.742 é, eu acho, 0:07:05.742,0:07:08.565 a habilidade mais importante que alguém pode ter hoje em dia 0:07:08.565,0:07:10.919 Como usar sentenças para contar uma história a alguém, 0:07:10.919,0:07:13.665 você usa os algoritmos para contar uma história ao computador. 0:07:13.665,0:07:14.921 Se você aprender a língua, 0:07:14.921,0:07:16.381 você pode sair e contar suas historias. 0:07:16.381,0:07:18.768 Espero que isto lhe ajude a fazer isso.