Cómo evitar crear un monstruo de machine learning

Juan Pablo Rubio

20 diciembre 2018

181219 frankenstein wp 1 1

Últimamente es fácil encontrar miles de programas, servicios, anuncios o lo que sea vendiendo, o prometiendo vender, Inteligencia Artificial aplicado a lo que sea. Obviamente las palabras de moda atraen, impresionan, venden, pero realmente ¿qué estamos comprando? Bueno, antes que nada, empecemos con el tweet más atinado que ha salido en los últimos meses sobre el tema.

(“Diferencia entre Machine Learning e Inteligencia Artificial: Si está escrito en Python, probablemente sea Machine Learning. Si está escrito en PowerPoint, probablemente sea Inteligencia Artificial.”) Mat Velloso (Asesor técnico de Satya Nadella, CEO de Microsoft)

Esto nos habla sobre la precaución que debemos tener cuando alguien nos viene a vender Inteligencia Artificial. Entonces demos dos pasos atrás y hablemos de Machine Learning, ya que por el momento esto es mucho más “real”.

¿Qué es Machine Learning?

La forma más simple de definirlo es; el conjunto de algoritmos que las máquinas usan para mejorar su desempeño. Básicamente es “la habilidad de una computadora de aprender sin ser explícitamente programada”.

Por supuesto que no voy a negar los beneficios de Machine Learning, yo lo amo y todos los días lo intento aprender, pero es importante saber que hay ciertas limitaciones.

Sigamos con otro tweet:

Ya no voy a estar traduciendo tweets, es 2018.

Sin entrar mucho en detalle, y a manera muy simplificada, el tweet deja muy claro qué puede pasar cuando alimentamos nuestro algoritmo con los datos equivocados, ya sea sin querer o con toda la intención. Y es aquí donde empieza todo el problema, ya que en Machine Learning la computadora depende de la calidad de los data sets que usa para aprender y, sobre todo, depende del humano que hace la programación.

¿Cómo sabemos cuáles son los datos equivocados o si están incompletos? o peor aún, ¿qué tal si los datos nos alejan del objetivo al que queremos llegar? Y al final, no sólo son los datos, sino qué peso le damos a cada uno de esos datos.

«La verdadera cuestión de seguridad, si quiere llamarse así, es que si les damos a estos sistemas datos sesgados, estarán sesgados«.

-John Giannandrea

Actualmente hay muchos casos donde estos sesgos han causado problemas: El analizador de sentimiento de Google pensando que ser gay es malo (aquí el problema son los datos con los que se alimenta). Las aerolíneas separando familias para que tengan que pagar más para poder sentarse juntos (aquí es cuando tu empresa se enfoca más en las ganancias que en los clientes). Los algoritmos que intentan predecir futuros crímenes (aquí creo que todo está mal).

Ahora veamos algunas limitaciones o problemas un poco más enfocado en nuestro lado del negocio:

Retención vs adquisición.

Hemos encontrado una gran variedad de servicios que se dedican a optimizar campañas digitales utilizando Machine Learning basado en los resultados de estas mismas. Adicionalmente van creado audiencias usando los subsegmentos que van teniendo el mejor desempeño. Esto mejora prácticamente todos los KPIs que tenemos a disposición; tasa de rebote, tiempo de sesión, páginas por sesión, tasa de conversión y costo por conversión. Toda una maravilla. Sin embargo, hay un problema; esto en su gran mayoría optimiza a retención. Estos subsegmentos que funcionan mejor en las campañas son, por lo general, clientes que ya nos han comprado anteriormente y que muchas veces íbamos a tener esa venta independientemente del anuncio.

Utilizar este método nos hace increíblemente efectivos, pero no eficientes. Y al final, esto no es culpa del servicio contratado, ellos están haciendo el trabajo que se les encargo con los datos a los que tienen acceso. Esto es un problema de silos de información donde alguien encargado de optimizar no tiene acceso al panorama completo.

Imaginemos ahora ese mismo algoritmo con un objetivo mucho más completo, no sólo optimizar las campañas con base en conversiones, sino optimizar campañas con base en conversiones manteniendo siempre un balance entre retención y adquisición.

Pareto; Costo, calidad y tiempo.

Uno de los casos más sonados sobre discriminación racial en un algoritmo es la herramienta COMPAS. Esta herramienta intenta predecir qué tan probable es que una persona que ha cometido un crimen vuelva a cometer otro en el futuro. Independientemente del debate sobre si la herramienta es efectiva, eficiente y/o racista o no, es el tema de cuántas características utiliza para hacer su predicción. COMPAS es una herramienta compleja que usa 137 características para predecir si alguien va a reincidir. Lo curioso es que utilizando una regresión logística y sólo 7 características se obtuvo la misma precisión en la predicción. Y, curiosamente, utilizando sólo 2 características se podían aproximar mucho al resultado.

Recordando la frase de “todos los modelos están mal, la pregunta práctica es ¿qué tan mal tienen que estar para no ser útiles?” nos podemos dar cuenta que utilizar una herramienta o un servicio parecido a COMPAS puede llegar a ser un desperdicio de tiempo y dinero. Muchas veces con 20% del esfuerzo puedes llegar al 80% o inclusive 99% de los resultados.

Se puede debatir que hay una discusión moral sobre el utilizar 137 o 1,000 características para mejorar COMPAS (aunque eleve exponencialmente el costo) si eso ayuda a que por lo menos una persona más no sea acusada equivocadamente, pero eso es otro tema.

¿Entonces, qué soluciones hay?

En todas las metodologías para proyectos de datos, el primer y el segundo paso siempre son los mismos; entender el negocio y entender los datos.

Primero, asegúrate que tú como empresa sabes exactamente qué es lo que necesitas y qué información tienes disponible.

Segundo, si quieres contratar un servicio que use cualquier tipo de inteligencia o tecnología en datos asegúrate de que entiendan tu negocio, tu marca, tus servicios, tus metas, a tus clientes, y tus datos. Y asegúrate que tengan acceso y entiendan todos los datos que necesiten.

Siempre recuerda que un modelo decente con los datos correctos es mejor que un gran modelo con los datos incorrectos.