Hola, soy Christian Rudder
y fui uno de los fundadores de OK Cupid.
Hoy es uno de los sitios de citas más grande de Estados Unidos.
Como casi todos en el sitio,
tenía un título en matemáticas y, como era de esperar,
éramos conocidos por el enfoque analítico
que tenemos del amor.
Le llamamos el algoritmo de compatibilidad.
En esencia el algoritmo de compatibilidad de OK Cupid
nos ayuda a decidir si dos personas debieran tener una cita.
Sobre esa base construimos todo nuestro negocio.
Ahora, algoritmo es una palabra pomposa
y la gente tiende a ignorarla por ampulosa,
pero en realidad, un algoritmo es solo una forma sistemática
de resolver problemas paso a paso.
No tiene que ser nada pomposo.
Aquí en esta lección, explicaré
cómo concebimos nuestro algoritmo,
así lo podrás entender.
Ahora, ¿por qué son importantes los algoritmos?
¿Para qué existe esta lección?
Bueno, nota una frase muy significativa que usé arriba:
una forma de resolver problemas paso a paso,
y como probablemente sepas,
las computadoras se lucen en los procesos paso a paso.
Una computadora sin un algoritmo
es en esencia un pisapapeles caro.
Y dado que las computadoras son una parte tan dominante de la vida cotidiana,
los algoritmos están dondequiera.
La matemática subyacente al algoritmo de compatibilidad de OK Cupid
es sorprendentemente sencilla.
Son solo unas sumas,
multiplicaciones,
y unas cuantas raíces cuadradas.
Aunque el truco de diseño estaba
en averiguar cómo tomar algo tan misterioso,
como la atracción humana,
y separarlo en sus componentes para que una computadora pueda trabajar con ellos.
Bueno, lo primero que necesitamos para aparejar personas son datos,
algo que el algoritmo necesita.
El mejor modo de conseguir datos de la gente
es simplemente preguntando.
Así, decidimos que OK Cupid debería preguntar a los usuarios
cosas como, "¿quieres tener hijos algún día?"
y "¿con qué frecuencia te cepillas los dientes?",
"¿te gustan las películas de terror?",
y grandes temas como: "¿Crees en Dios?"
Ahora, muchas de las preguntas son buenas
para aparear entre iguales,
es decir cuando ambas personas contestan igual.
Por ejemplo, dos personas a las que les gustan las películas de terror
probablemente hacen mejor pareja
que una persona que le gusta
y otra que no.
Pero qué pasa con una pregunta como,
"¿te gusta ser el centro de atención?"
Si ambos en una relación dicen que sí,
entonces tendremos problemas grandes.
Pronto nos dimos cuenta de esto,
así que decidimos que necesitábamos
un poco más de datos para cada pregunta.
Teníamos que pedir que especificaran no solo su propia respuesta,
sino la respuesta que querían del otro.
Eso funcionó muy bien,
pero necesitamos una dimensión más.
Algunas preguntas dicen más de una persona que otras.
Por ejemplo, una pregunta de política, algo como,
"¿qué es peor: quemar un libro o una bandera?",
puede revelar más de alguien que su gusto fílmico.
Y no tiene sentido ponderar todo por igual,
así que sumamos un punto final de datos.
Por cada cosa que pregunta OK Cupid,
tienen una oportunidad de decirnos
el rol que juega en sus vidas,
y esto varía desde lo irrelevante a lo obligatorio.
Ahora pues, por cada pregunta,
tenemos tres cosas para nuestro algoritmo:
primero, tu respuesta;
segundo, cómo quieres que el otro,
tu pareja potencial,
responda;
y tercero, qué tan importante es la pregunta para ti.
Con toda esta información,
OO Cupid puede averiguar qué tan bien se llevarán dos personas.
El algoritmo desmenuza los números y les da un resultado.
Como un ejemplo práctico,
veamos cómo te apareamos con otra persona,
que llamaremos "B".
Tu porcentaje de compatibilidad con B se basa en
preguntas que ambos respondieron.
Que llamaremos el conjunto de preguntas comunes, "s".
Como un ejemplo muy sencillo, usaremos un conjunto pequeño "s"
con solo dos preguntas en común
y calcularemos de eso, una pareja.
He aquí nuestros dos preguntas ejemplo.
La primera, digamos, "¿qué tan desordenado eres?"
y las posibles respuestas son:
muy desordenado,
promedio
y muy ordenado.
Digamos que contestas "muy ordenado",
y quisieras a alguien que conteste, "muy ordenado",
y la preguntas es muy importante para ti.
En suma tienes manía por el orden.
Eres ordenada,
quieres a alguien ordenado,
sin más.
Digamos que B es un poquito diferente.
Responde que es muy ordenado consigo mismo
pero promedio le parece bien
como respuesta del otro.
Y la pregunta le es poco relevante.
Miremos la segunda pregunta,
es la del ejemplo anterior:
"¿te gusta ser el centro de atención?"
Las respuestas son sí y no.
Ahora si contestas "no",
cómo quieres que sea el "no" del otro.
Y la pregunta tiene poca relevancia para ti.
Ahora B, contesta "sí",
quiere a alguien que conteste "no",
porque quiere destacarse,
y la pregunta le es relevante.
Intentemos calcular todo esto.
Nuestro primer paso es,
dado que usamos computadoras,
necesitamos asignar valores numéricos
a ideas como "algo importante" y "muy importante"
porque las computadoras necesitan todo en números.
Nosotros en OK Cupid elegimos la siguiente escala:
irrelevante equivale a 0,
un poco importante equivale a 1,
algo importante equivale a 10,
muy importante equivale a 50,
y es absolutamente obligatorio a 250.
Siguiente paso, el algoritmo hace dos simples cálculos.
El primero es qué tanto te gustaron las respuestas de B,
esto es, ¿cuántos puntos posibles obtuvo B en tu escala?
Bueno, tú indicaste que la respuesta de B
a la primera pregunta sobre el desorden
era muy importante para ti.
Lo que equivale a 50 puntos y B acertó.
La segunda pregunta equivale solo a 1
porque dijiste que era solo poco relevante,
y B la tiene mal.
Así, las respuestas de B fueron 50 de 51 puntos posibles.
Esto es 98 % satisfactorio,
lo cual es bastante bueno.
Y la segunda pregunta del algoritmo ve
qué tanto le satisfaces a B.
Bueno, B te dio 1 punto en tu respuesta
a la pregunta del desorden
y 10 en la respuesta a la segunda.
De esos 11, es decir 1 más 10,
te ganaste 10,
de la segunda pregunta ambos están satisfechos entre sí.
Entonces sus respuestas fueron 10 de 11
que equivale al 91% de satisfacción para B.
No está mal.
El paso final es tomar estos dos porcentajes de compatibilidad
y obtener un número para ambos.
Para hacer esto, el algoritmo multiplica sus resultados,
hace la raíz de n,
donde n es el número de preguntas.
Dado que s, es el número de preguntas,
en este ejemplo, es solamente 2,
tenemos porcentajes de compatibilidad que equivalen
a la raíz cuadrada de 98 % por 91 %,
que equivale a 94 %.
Este 94 % es tu porcentaje de compatibilidad con B.
Es una expresión matemática
de qué tan feliz serían entre sí
con base a lo que sabemos.
Ahora bien, ¿por qué el algoritmo se multiplica opuesto a, digamos,
el promedio de los dos resultados de compatibilidad juntos
y por qué la raíz cuadrada?
En general, esta fórmula se llama media geométrica,
que es un gran camino para combinar valores
que tienen rangos amplios
y representan propiedades muy diferentes.
Es decir, es perfecto para relaciones románticas.
Tenemos rangos amplios
y tenemos toneladas de datos diferentes,
como dije, de películas,
de política,
de religión,
de todo.
Intuitivamente, a su vez, tiene sentido.
Dos personas que se satisfecen en 50 % a la otra
debieran ser una mejor pareja
que otros dos que se satisfacen entre 0 y 100,
porque el afecto necesita ser mutuo.
Pero sumando una pequeña corrección de margen de error,
en el caso que haya una pequeña cantidad de preguntas,
como hicimos en este ejemplo,
estamos listos para salir.
Cada vez que OK Cupid junta a dos personas,
prosigue con los pasos que acabamos de esbozar.
Primero se recolectan los datos de sus respuestas,
luego se comparan sus elecciones y preferencias
con las de otros en modo simple y matemático.
Esto, la habilidad de tomar fenómenos del mundo real
y hacer que un microchip los pueda entender,
es, creo,
la destreza más importante que uno puede tener en la actualidad.
Así como usas oraciones para contar una historia a una persona,
usas algoritmos para contar una historia a una computadora.
Si aprendes el lenguaje,
puedes salir y contar tus historias.
Espero que esto te sirva para hacerlo.