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