Olá, chamo-me Christian Rudder e fui um dos fundadores do OKCupid. É um dos maiores sites de encontros nos EUA. Como quase toda a gente no site, eu sou formado em matemática e somos conhecidos pela abordagem analítica ao amor. Chamamos-lhe o nosso algoritmo casamenteiro. O algoritmo casamenteiro do OKCupid ajuda-nos a decidir se duas pessoas se deveriam encontrar. Construímos todo um negócio à volta disso. Algoritmo é uma palavra cara, e as pessoas gostam de a usar como se fosse uma coisa muito especial, mas não passa de uma maneira sistemática, de resolver um problema passo-a-passo. Não tem que ser nada de especial. Nesta lição, vou explicar como chegamos ao nosso algoritmo em particular para verem como se faz. Porque é que os algoritmos são importantes? Porque é que esta lição existe? Reparem na frase muito significativa que eu usei: são uma maneira de, passo-a-passo, resolver um problema. Como sabem, os computadores são excelentes em processos passo-a-passo. Um computador sem algoritmo não é passa de um pisa-papéis caro. Como os computadores são uma parte dominante do dia-a-dia, os algoritmos estão por todo o lado. A matemática do algoritmo do OKCupid é surpreendentemente simples. É só somar, multiplicar e algumas raízes quadradas. A parte complicada de o desenhar, foi entender como transformar algo misterioso, a atração humana, e decompô-la em componentes com que um computador pudesse trabalhar. Precisávamos de informação para "casar" as pessoas, para que o algoritmo pudesse trabalhar. A melhor forma de conseguir informações das pessoas é pedir-lhas. Portanto, o OKCupid devia fazer perguntas aos utilizadores, como: "Quer vir a ter filhos?" "Com que frequência lava os dentes?", "Gosta de filmes de terror?" e coisas importante como "Acredita em Deus?" Convém haver muitas perguntas para se encontrarem pontos em comum, ou seja, duas pessoas darem a mesma resposta. Por exemplo, duas pessoas que gostam de filmes de terror devem dar-se melhor do que uma que gosta e outra que não. Mas se for uma pergunta como: "Gosta de ser o centro das atenções?" Se as duas pessoas numa relação dizem que sim, então vão ter grandes problemas. Depressa percebemos isto, por isso precisávamos de mais informações em cada pergunta. Pedimos às pessoas para serem específicas na sua resposta e também sobre a resposta que queriam da outra pessoa. Isso resultou muito bem, mas precisávamos de mais uma dimensão. Algumas perguntas dizem mais sobre uma pessoa que outras. Por exemplo, uma pergunta sobre política, tipo: "O que é pior: queimar livros ou queimar a bandeira?" pode ser mais reveladora do que a sua preferência em filmes. Não faz sentido dar o mesmo peso a tudo, portanto adicionámos um novo ponto de informação. Em todas as perguntas que o OKCupid faz, podem dizer-nos o papel que desempenha na vossa vida, Isto varia de "irrelevante" a "obrigatório". Portanto, para cada pergunta, temos três pontos no nosso algoritmo: primeiro, a vossa resposta; segundo, a resposta que querem que o vosso parceiro potencial, dê; e terceiro, a importância que dão à pergunta.. Com todas estas informações, o OKCupid pode perceber se duas pessoas se darão bem. O algoritmo trabalha os números e dá um resultado. Como exemplo prático, vamos ver como vos sugeriríamos outra pessoa, vamos chamar-lhe "B". A percentagem de compatibilidade com B baseia-se nas perguntas a que ambos responderam. Vamos chamar "s" a este conjunto de perguntas comuns. Como exemplo simples, usamos um conjunto "s" pequeno apenas com duas perguntas comuns e calculamos a compatibilidade a partir daí. As duas perguntas são estas: A primeira é: "É desarrumado?" As possibilidades de resposta são: muito desarrumado, normal, e muito organizado. Se responderem "muito organizada", querem que a outra pessoa responda "muito organizado", e a pergunta for muito importante, é porque têm a mania da arrumação. É arrumada e quer que o outro seja arrumado, Suponhamos que B é um pouco diferente. Respondeu que é muito organizado, mas que a outra pessoa pode ser apenas normal, e que a pergunta não é importante para ele. Vamos ver a segunda pergunta, que é a do exemplo anterior: "Gosta de ser o centro das atenções?" As resposta são apenas sim e não. Vocês respondem que "não", querem que o outro responda "não", e a pergunta não é muito importante. B respondeu "sim", quer que o outro responda "não", porque quer que as atenções se concentrem nele, e a pergunta é mais ou menos importante. Vamos tentar calcular tudo isto. Como usamos computadores para fazer isso, o primeiro passo é atribuir valores numéricos a ideias como "relativamente importante" e "muito importante" porque os computadores precisam de tudo em algarismos. No OKCupid optamos pela seguinte escala: irrelevante vale 0, pouca importância vale 1, alguma importância vale 10, muito importante vale 50, e completamente obrigatório vale 250. A seguir, o algoritmo faz dois simples cálculos. O primeiro é: quanto é que as respostas de B lhe agradam, isto é, quantos pontos obteve B na sua escala? Como indicaram que a resposta de B à primeira pergunta sobre arrumação era muito importante, isso vale 50 pontos e B acertou na resposta. A segunda pergunta só vale 1 porque disseram que era pouco importante, e B não acertou. Portanto as respostas de B valem 50 em 51 pontos possíveis. Isso é uma satisfação de 98%, É bastante bom. O segundo cálculo do algoritmo avalia se as vossas respostas satisfazem B. B atribui 1 ponto à vossa resposta à pergunta da arrumação e 10 à vossa resposta à segunda. Desses 11, ou seja 1 mais 10, ganharam 10, acertaram na segunda resposta um do outro. Portanto as respostas deram 10 em 11 o que é 91% satisfatório para B. Não é nada mau. O passo final é pegar nas duas percentagens de compatibilidade e obter um número para os dois. Para isso, o algoritmo multiplica as pontuações, depois calcula a raiz de n, em que n é o número de perguntas. Como s, que é o número de perguntas, neste exemplo, é apenas 2, temos uma percentagem de compatibilidade igual à raiz quadrada de 98% vezes 91%. Isto dá 94%. Estes 94% são a vossa percentagem de compatibilidade com B. É uma expressão matemática de como se darão bem com base no que sabemos. Porque é que o algoritmo multiplica, em vez de fazer a média das duas percentagens e depois fazer a raiz quadrada? Esta fórmula chama-se média geométrica, uma excelente forma de combinar valores que apresentam grandes variações e representam propriedades muito diferentes. É perfeita para compatibilidade romântica. Temos grandes variações e milhares de diferentes dados, sobre filmes, sobre política, sobre religião, sobre tudo. De uma forma intuitiva, isto faz sentido. Duas pessoas que correspondam a 50% devem ser mais compatíveis que outras que têm compatibilidade a 0 e 100, porque o afeto tem que ser mútuo. Depois de pequenas correções para permitir uma margem de erro, se o número de perguntas for muito reduzido, como neste exemplo, estamos prontos. Sempre que o OKCupid compara duas pessoas, segue os passos que acabámos de explicar. Primeiro recolhe os dados das respostas, depois compara as escolhas e preferências com outras pessoas de forma simples e matemática. Acho que esta capacidade de pegar em fenómenos do mundo real e transformá-los em algo que um microchip consegue compreender, é a capacidade mais importante que uma pessoa pode ter atualmente. Tal como usamos frases para contar histórias às pessoas, usamos algoritmos para contar histórias a um computador. Se aprendermos a linguagem, podemos sair e contar histórias. Espero que isto vos ajude a fazer isso.