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.