1 00:00:17,602 --> 00:00:19,239 Hola, soy Christian Rudder 2 00:00:19,239 --> 00:00:21,875 y fui uno de los fundadores de OK Cupid. 3 00:00:21,875 --> 00:00:24,502 Hoy es uno de los sitios de citas más grande de Estados Unidos. 4 00:00:24,502 --> 00:00:25,749 Como casi todos en el sitio, 5 00:00:25,749 --> 00:00:27,296 tenía un título en matemáticas y, como era de esperar, 6 00:00:27,296 --> 00:00:28,644 éramos conocidos por el enfoque analítico 7 00:00:28,644 --> 00:00:29,887 que tenemos del amor. 8 00:00:29,887 --> 00:00:31,717 Le llamamos el algoritmo de compatibilidad. 9 00:00:31,717 --> 00:00:33,428 En esencia el algoritmo de compatibilidad de OK Cupid 10 00:00:33,428 --> 00:00:36,481 nos ayuda a decidir si dos personas debieran tener una cita. 11 00:00:36,481 --> 00:00:38,765 Sobre esa base construimos todo nuestro negocio. 12 00:00:38,765 --> 00:00:40,572 Ahora, algoritmo es una palabra pomposa 13 00:00:40,572 --> 00:00:43,047 y la gente tiende a ignorarla por ampulosa, 14 00:00:43,047 --> 00:00:45,148 pero en realidad, un algoritmo es solo una forma sistemática 15 00:00:45,148 --> 00:00:47,817 de resolver problemas paso a paso. 16 00:00:47,817 --> 00:00:49,949 No tiene que ser nada pomposo. 17 00:00:49,949 --> 00:00:51,802 Aquí en esta lección, explicaré 18 00:00:51,802 --> 00:00:53,657 cómo concebimos nuestro algoritmo, 19 00:00:53,657 --> 00:00:55,660 así lo podrás entender. 20 00:00:55,660 --> 00:00:57,576 Ahora, ¿por qué son importantes los algoritmos? 21 00:00:57,576 --> 00:00:59,045 ¿Para qué existe esta lección? 22 00:00:59,045 --> 00:01:02,457 Bueno, nota una frase muy significativa que usé arriba: 23 00:01:02,457 --> 00:01:05,029 una forma de resolver problemas paso a paso, 24 00:01:05,029 --> 00:01:05,841 y como probablemente sepas, 25 00:01:05,841 --> 00:01:08,470 las computadoras se lucen en los procesos paso a paso. 26 00:01:08,470 --> 00:01:09,588 Una computadora sin un algoritmo 27 00:01:09,588 --> 00:01:12,933 es en esencia un pisapapeles caro. 28 00:01:12,933 --> 00:01:15,430 Y dado que las computadoras son una parte tan dominante de la vida cotidiana, 29 00:01:15,430 --> 00:01:17,223 los algoritmos están dondequiera. 30 00:01:18,515 --> 00:01:20,267 La matemática subyacente al algoritmo de compatibilidad de OK Cupid 31 00:01:20,267 --> 00:01:21,811 es sorprendentemente sencilla. 32 00:01:21,811 --> 00:01:22,629 Son solo unas sumas, 33 00:01:22,629 --> 00:01:23,687 multiplicaciones, 34 00:01:23,687 --> 00:01:25,340 y unas cuantas raíces cuadradas. 35 00:01:25,340 --> 00:01:27,611 Aunque el truco de diseño estaba 36 00:01:27,611 --> 00:01:30,235 en averiguar cómo tomar algo tan misterioso, 37 00:01:30,235 --> 00:01:31,212 como la atracción humana, 38 00:01:31,212 --> 00:01:33,810 y separarlo en sus componentes para que una computadora pueda trabajar con ellos. 39 00:01:33,810 --> 00:01:36,360 Bueno, lo primero que necesitamos para aparejar personas son datos, 40 00:01:36,360 --> 00:01:38,382 algo que el algoritmo necesita. 41 00:01:38,382 --> 00:01:40,412 El mejor modo de conseguir datos de la gente 42 00:01:40,412 --> 00:01:41,747 es simplemente preguntando. 43 00:01:41,747 --> 00:01:44,166 Así, decidimos que OK Cupid debería preguntar a los usuarios 44 00:01:44,166 --> 00:01:46,834 cosas como, "¿quieres tener hijos algún día?" 45 00:01:46,834 --> 00:01:48,754 y "¿con qué frecuencia te cepillas los dientes?", 46 00:01:48,754 --> 00:01:50,227 "¿te gustan las películas de terror?", 47 00:01:50,227 --> 00:01:53,514 y grandes temas como: "¿Crees en Dios?" 48 00:01:53,514 --> 00:01:55,308 Ahora, muchas de las preguntas son buenas 49 00:01:55,308 --> 00:01:56,381 para aparear entre iguales, 50 00:01:56,381 --> 00:01:59,052 es decir cuando ambas personas contestan igual. 51 00:01:59,052 --> 00:02:01,471 Por ejemplo, dos personas a las que les gustan las películas de terror 52 00:02:01,471 --> 00:02:02,684 probablemente hacen mejor pareja 53 00:02:02,684 --> 00:02:03,843 que una persona que le gusta 54 00:02:03,843 --> 00:02:05,115 y otra que no. 55 00:02:05,115 --> 00:02:06,480 Pero qué pasa con una pregunta como, 56 00:02:06,480 --> 00:02:08,189 "¿te gusta ser el centro de atención?" 57 00:02:08,189 --> 00:02:10,729 Si ambos en una relación dicen que sí, 58 00:02:10,729 --> 00:02:13,068 entonces tendremos problemas grandes. 59 00:02:13,068 --> 00:02:14,447 Pronto nos dimos cuenta de esto, 60 00:02:14,447 --> 00:02:15,614 así que decidimos que necesitábamos 61 00:02:15,614 --> 00:02:17,581 un poco más de datos para cada pregunta. 62 00:02:17,581 --> 00:02:20,332 Teníamos que pedir que especificaran no solo su propia respuesta, 63 00:02:20,332 --> 00:02:23,038 sino la respuesta que querían del otro. 64 00:02:23,038 --> 00:02:24,207 Eso funcionó muy bien, 65 00:02:24,207 --> 00:02:26,291 pero necesitamos una dimensión más. 66 00:02:26,291 --> 00:02:28,835 Algunas preguntas dicen más de una persona que otras. 67 00:02:28,835 --> 00:02:31,795 Por ejemplo, una pregunta de política, algo como, 68 00:02:31,795 --> 00:02:34,589 "¿qué es peor: quemar un libro o una bandera?", 69 00:02:34,589 --> 00:02:37,207 puede revelar más de alguien que su gusto fílmico. 70 00:02:37,207 --> 00:02:39,387 Y no tiene sentido ponderar todo por igual, 71 00:02:39,387 --> 00:02:41,605 así que sumamos un punto final de datos. 72 00:02:41,605 --> 00:02:43,440 Por cada cosa que pregunta OK Cupid, 73 00:02:43,440 --> 00:02:44,642 tienen una oportunidad de decirnos 74 00:02:44,642 --> 00:02:46,223 el rol que juega en sus vidas, 75 00:02:46,223 --> 00:02:49,089 y esto varía desde lo irrelevante a lo obligatorio. 76 00:02:49,089 --> 00:02:50,564 Ahora pues, por cada pregunta, 77 00:02:50,564 --> 00:02:52,692 tenemos tres cosas para nuestro algoritmo: 78 00:02:52,692 --> 00:02:54,068 primero, tu respuesta; 79 00:02:54,068 --> 00:02:56,362 segundo, cómo quieres que el otro, 80 00:02:56,362 --> 00:02:57,196 tu pareja potencial, 81 00:02:57,196 --> 00:02:58,781 responda; 82 00:02:58,781 --> 00:03:02,327 y tercero, qué tan importante es la pregunta para ti. 83 00:03:02,327 --> 00:03:03,702 Con toda esta información, 84 00:03:03,702 --> 00:03:07,128 OO Cupid puede averiguar qué tan bien se llevarán dos personas. 85 00:03:07,128 --> 00:03:09,458 El algoritmo desmenuza los números y les da un resultado. 86 00:03:09,458 --> 00:03:11,262 Como un ejemplo práctico, 87 00:03:11,262 --> 00:03:13,712 veamos cómo te apareamos con otra persona, 88 00:03:13,712 --> 00:03:15,581 que llamaremos "B". 89 00:03:15,581 --> 00:03:17,479 Tu porcentaje de compatibilidad con B se basa en 90 00:03:17,479 --> 00:03:19,424 preguntas que ambos respondieron. 91 00:03:19,424 --> 00:03:21,978 Que llamaremos el conjunto de preguntas comunes, "s". 92 00:03:21,978 --> 00:03:24,932 Como un ejemplo muy sencillo, usaremos un conjunto pequeño "s" 93 00:03:24,932 --> 00:03:26,434 con solo dos preguntas en común 94 00:03:26,434 --> 00:03:28,310 y calcularemos de eso, una pareja. 95 00:03:28,310 --> 00:03:30,144 He aquí nuestros dos preguntas ejemplo. 96 00:03:30,144 --> 00:03:32,349 La primera, digamos, "¿qué tan desordenado eres?" 97 00:03:32,349 --> 00:03:34,669 y las posibles respuestas son: 98 00:03:34,669 --> 00:03:35,618 muy desordenado, 99 00:03:35,618 --> 00:03:36,398 promedio 100 00:03:36,398 --> 00:03:38,172 y muy ordenado. 101 00:03:38,172 --> 00:03:39,755 Digamos que contestas "muy ordenado", 102 00:03:39,755 --> 00:03:42,581 y quisieras a alguien que conteste, "muy ordenado", 103 00:03:42,581 --> 00:03:45,202 y la preguntas es muy importante para ti. 104 00:03:45,202 --> 00:03:46,498 En suma tienes manía por el orden. 105 00:03:46,498 --> 00:03:47,212 Eres ordenada, 106 00:03:47,212 --> 00:03:48,296 quieres a alguien ordenado, 107 00:03:48,296 --> 00:03:49,248 sin más. 108 00:03:49,248 --> 00:03:51,015 Digamos que B es un poquito diferente. 109 00:03:51,015 --> 00:03:53,539 Responde que es muy ordenado consigo mismo 110 00:03:53,539 --> 00:03:55,171 pero promedio le parece bien 111 00:03:55,171 --> 00:03:56,740 como respuesta del otro. 112 00:03:56,740 --> 00:03:58,748 Y la pregunta le es poco relevante. 113 00:03:58,748 --> 00:04:00,308 Miremos la segunda pregunta, 114 00:04:00,308 --> 00:04:01,896 es la del ejemplo anterior: 115 00:04:01,896 --> 00:04:03,653 "¿te gusta ser el centro de atención?" 116 00:04:03,653 --> 00:04:05,231 Las respuestas son sí y no. 117 00:04:05,231 --> 00:04:06,407 Ahora si contestas "no", 118 00:04:06,407 --> 00:04:08,235 cómo quieres que sea el "no" del otro. 119 00:04:08,235 --> 00:04:10,862 Y la pregunta tiene poca relevancia para ti. 120 00:04:10,862 --> 00:04:12,419 Ahora B, contesta "sí", 121 00:04:12,419 --> 00:04:14,087 quiere a alguien que conteste "no", 122 00:04:14,087 --> 00:04:16,332 porque quiere destacarse, 123 00:04:16,332 --> 00:04:19,334 y la pregunta le es relevante. 124 00:04:19,334 --> 00:04:21,716 Intentemos calcular todo esto. 125 00:04:21,716 --> 00:04:22,855 Nuestro primer paso es, 126 00:04:22,855 --> 00:04:24,376 dado que usamos computadoras, 127 00:04:24,376 --> 00:04:26,162 necesitamos asignar valores numéricos 128 00:04:26,162 --> 00:04:29,041 a ideas como "algo importante" y "muy importante" 129 00:04:29,041 --> 00:04:31,335 porque las computadoras necesitan todo en números. 130 00:04:31,335 --> 00:04:33,523 Nosotros en OK Cupid elegimos la siguiente escala: 131 00:04:33,523 --> 00:04:35,858 irrelevante equivale a 0, 132 00:04:35,858 --> 00:04:38,307 un poco importante equivale a 1, 133 00:04:38,307 --> 00:04:40,302 algo importante equivale a 10, 134 00:04:40,302 --> 00:04:42,426 muy importante equivale a 50, 135 00:04:42,426 --> 00:04:46,353 y es absolutamente obligatorio a 250. 136 00:04:46,353 --> 00:04:48,852 Siguiente paso, el algoritmo hace dos simples cálculos. 137 00:04:48,852 --> 00:04:51,941 El primero es qué tanto te gustaron las respuestas de B, 138 00:04:51,941 --> 00:04:55,568 esto es, ¿cuántos puntos posibles obtuvo B en tu escala? 139 00:04:55,568 --> 00:04:58,138 Bueno, tú indicaste que la respuesta de B 140 00:04:58,138 --> 00:04:59,947 a la primera pregunta sobre el desorden 141 00:04:59,947 --> 00:05:01,448 era muy importante para ti. 142 00:05:01,448 --> 00:05:04,041 Lo que equivale a 50 puntos y B acertó. 143 00:05:04,041 --> 00:05:05,947 La segunda pregunta equivale solo a 1 144 00:05:05,947 --> 00:05:07,558 porque dijiste que era solo poco relevante, 145 00:05:07,558 --> 00:05:09,036 y B la tiene mal. 146 00:05:09,036 --> 00:05:12,392 Así, las respuestas de B fueron 50 de 51 puntos posibles. 147 00:05:12,392 --> 00:05:14,023 Esto es 98 % satisfactorio, 148 00:05:14,023 --> 00:05:15,220 lo cual es bastante bueno. 149 00:05:15,220 --> 00:05:16,832 Y la segunda pregunta del algoritmo ve 150 00:05:16,832 --> 00:05:18,918 qué tanto le satisfaces a B. 151 00:05:18,918 --> 00:05:20,768 Bueno, B te dio 1 punto en tu respuesta 152 00:05:20,768 --> 00:05:22,353 a la pregunta del desorden 153 00:05:22,353 --> 00:05:24,745 y 10 en la respuesta a la segunda. 154 00:05:24,745 --> 00:05:27,156 De esos 11, es decir 1 más 10, 155 00:05:27,156 --> 00:05:28,324 te ganaste 10, 156 00:05:28,324 --> 00:05:30,617 de la segunda pregunta ambos están satisfechos entre sí. 157 00:05:30,617 --> 00:05:32,611 Entonces sus respuestas fueron 10 de 11 158 00:05:32,611 --> 00:05:35,240 que equivale al 91% de satisfacción para B. 159 00:05:35,240 --> 00:05:36,117 No está mal. 160 00:05:36,117 --> 00:05:38,286 El paso final es tomar estos dos porcentajes de compatibilidad 161 00:05:38,286 --> 00:05:40,454 y obtener un número para ambos. 162 00:05:40,454 --> 00:05:42,747 Para hacer esto, el algoritmo multiplica sus resultados, 163 00:05:42,747 --> 00:05:44,500 hace la raíz de n, 164 00:05:44,500 --> 00:05:46,792 donde n es el número de preguntas. 165 00:05:46,792 --> 00:05:49,401 Dado que s, es el número de preguntas, 166 00:05:49,401 --> 00:05:51,507 en este ejemplo, es solamente 2, 167 00:05:51,507 --> 00:05:54,093 tenemos porcentajes de compatibilidad que equivalen 168 00:05:54,093 --> 00:05:58,154 a la raíz cuadrada de 98 % por 91 %, 169 00:05:58,154 --> 00:06:00,304 que equivale a 94 %. 170 00:06:00,304 --> 00:06:03,194 Este 94 % es tu porcentaje de compatibilidad con B. 171 00:06:03,194 --> 00:06:04,561 Es una expresión matemática 172 00:06:04,561 --> 00:06:06,405 de qué tan feliz serían entre sí 173 00:06:06,405 --> 00:06:07,749 con base a lo que sabemos. 174 00:06:07,749 --> 00:06:10,131 Ahora bien, ¿por qué el algoritmo se multiplica opuesto a, digamos, 175 00:06:10,131 --> 00:06:12,284 el promedio de los dos resultados de compatibilidad juntos 176 00:06:12,284 --> 00:06:14,530 y por qué la raíz cuadrada? 177 00:06:14,530 --> 00:06:16,479 En general, esta fórmula se llama media geométrica, 178 00:06:16,479 --> 00:06:17,881 que es un gran camino para combinar valores 179 00:06:17,881 --> 00:06:19,076 que tienen rangos amplios 180 00:06:19,076 --> 00:06:20,861 y representan propiedades muy diferentes. 181 00:06:20,861 --> 00:06:23,164 Es decir, es perfecto para relaciones románticas. 182 00:06:23,164 --> 00:06:24,248 Tenemos rangos amplios 183 00:06:24,248 --> 00:06:26,206 y tenemos toneladas de datos diferentes, 184 00:06:26,206 --> 00:06:27,156 como dije, de películas, 185 00:06:27,156 --> 00:06:28,006 de política, 186 00:06:28,006 --> 00:06:29,201 de religión, 187 00:06:29,201 --> 00:06:30,395 de todo. 188 00:06:30,395 --> 00:06:32,256 Intuitivamente, a su vez, tiene sentido. 189 00:06:32,256 --> 00:06:34,918 Dos personas que se satisfecen en 50 % a la otra 190 00:06:34,918 --> 00:06:36,052 debieran ser una mejor pareja 191 00:06:36,052 --> 00:06:39,180 que otros dos que se satisfacen entre 0 y 100, 192 00:06:39,180 --> 00:06:40,847 porque el afecto necesita ser mutuo. 193 00:06:40,847 --> 00:06:43,147 Pero sumando una pequeña corrección de margen de error, 194 00:06:43,147 --> 00:06:45,770 en el caso que haya una pequeña cantidad de preguntas, 195 00:06:45,770 --> 00:06:47,234 como hicimos en este ejemplo, 196 00:06:47,234 --> 00:06:48,811 estamos listos para salir. 197 00:06:48,811 --> 00:06:50,191 Cada vez que OK Cupid junta a dos personas, 198 00:06:50,191 --> 00:06:52,234 prosigue con los pasos que acabamos de esbozar. 199 00:06:52,234 --> 00:06:54,484 Primero se recolectan los datos de sus respuestas, 200 00:06:54,484 --> 00:06:56,619 luego se comparan sus elecciones y preferencias 201 00:06:56,619 --> 00:06:59,740 con las de otros en modo simple y matemático. 202 00:06:59,740 --> 00:07:02,453 Esto, la habilidad de tomar fenómenos del mundo real 203 00:07:02,453 --> 00:07:05,167 y hacer que un microchip los pueda entender, 204 00:07:05,167 --> 00:07:05,742 es, creo, 205 00:07:05,742 --> 00:07:08,565 la destreza más importante que uno puede tener en la actualidad. 206 00:07:08,565 --> 00:07:10,919 Así como usas oraciones para contar una historia a una persona, 207 00:07:10,919 --> 00:07:13,665 usas algoritmos para contar una historia a una computadora. 208 00:07:13,665 --> 00:07:14,921 Si aprendes el lenguaje, 209 00:07:14,921 --> 00:07:16,381 puedes salir y contar tus historias. 210 00:07:16,381 --> 00:07:18,768 Espero que esto te sirva para hacerlo.