IMAGE: Ilya Akinshin - 123RFAlgunos bancos norteamericanos afirman estar teniendo problemas con sus algoritmos de machine learning para funciones con trascendencia de cara al cliente, tales como los que se encargan de tomar decisiones de riesgo en la concesión de créditos: a medida que la complejidad de los modelos empleados aumenta, la interpretabilidad de esos modelos disminuye.

El resultado es que los bancos se encuentran con modelos muy eficientes, que posiblemente mejoran de manera tangible los ratios previos de morosidad o los porcentajes de créditos impagados, pero que son básicamente una caja negra, un modelo de difícil explicación susceptible de generar problemas de diversa naturaleza. Como comenta en el artículo Hari Gopalkrishnan, directivo de tecnología en Bank of America,

“en el negocio bancario no nos gusta la falta de transparencia y de las cajas negras, donde la respuesta es simplemente ‘sí’ o ‘no’. Necesitamos entender cómo se toma la decisión, para poder respaldarla y demostrar que no estamos desfavoreciendo a nadie.”

Este problema, que habíamos comentado en una entrada de hace algo más de un año que escribí a partir de una serie de conversaciones con mis amigos de BigML, compañía en la que colaboro como asesor estratégico, es algo con lo que es muy posible que muchas compañías se encuentren a medida que progresan en sus desarrollos de machine learning. Existe una cierta tendencia a avanzar tratando de utilizar los modelos más sofisticados a nuestro alcance, sin tener en cuenta que a medida que se incrementa la complejidad de los modelos y la cantidad de datos utilizados, tiende a incrementarse también la dificultad para su interpretación.

En fases iniciales o en el prototipado rápido de proyectos de machine learning, en los que se busca obtener una representación del problema razonablemente buena aunque no esté completa ni perfectamente ajustada, se tiende a recurrir a modelos como la regresión logística o los árboles de decisión, que ofrecen una interpretabilidad razonable con una complejidad escasa y con períodos de entrenamiento no excesivamente largos. A medida que avanzamos hacia las fases intermedias del proyecto, en las que buscamos ya aplicaciones con resultados más optimizados y probados, se suele evolucionar hacia modelos más complejos y con mejor representación como los basados en decision forests, que cuando vamos alcanzando las fases finales en las que las prestaciones del algoritmo ya resultan críticas, pueden evolucionar hacia metodologías como los boosted trees y las deepnetsdeep learning. El atractivo de esa progresión resulta evidente dado que tiende a mejorar la representación, el ajuste y la performance del modelo, pero la contrapartida también es evidente: esas ganancias tienen lugar a costa de mayores tiempos de entrenamiento y, sobre todo, de una interpretabilidad cada vez menor. Cuando el modelo ya alcanza un cierto grado de complejidad, las posibilidades de poder correlacionar un resultado con sus variables de entrada se reducen sensiblemente, la interpretación de la causalidad se hace más difícil, y poder demostrar que esa decisión no se ha tomado en función de un criterio potencialmente discriminatorio se vuelve una fuente de posibles problemas que, dada la legislación existente expresada en leyes como la Equal Credit Opportunity Act, que impiden la discriminación basada en variables como raza, religión, origen, sexo, estado civil o edad, pueden llegar a generar responsabilidades legales. 

El valor del machine learning no está en plantear modelos cada vez más complejos, sino en hacerlo más fácil de usar. Los negocios son procesos complejos, aunque llevemos desde la época de la revolución industrial pretendiendo tratarlos como conjuntos de fenómenos con reglas simples. El problema de la caja negra no es en absoluto trivial, precisa de mecanismos que añadan transparencia al proceso y que intenten llegar a explicaciones sobre las predicciones realizadas por los modelos, y supone una restricción que las compañías deben tener en cuenta a la hora de escalar en sus iniciativas de machine learning. Un proceso largo y complejo, en el que un 90% del esfuerzo se invierte en procesos como la definición de objetivos, el manejo y transformación de los datos y la ingeniería funcional, y tan solo el 10% final corresponde a lo que tradicionalmente consideramos como el resultado: las predicciones y la medición del impacto.

El problema del machine learning a día de hoy no es que no funcione, sino que las compañías tienen dificultades para utilizarlo. Proyectos largos, complejos, pero que vale la pena plantearse porque van a marcar la diferencia entre compañías capaces de utilizar modelos predictivos y las que no lo son y se limitan a tomas de decisiones basadas en cuestiones arbitrarias, en la intuición o en reglas poco científicas, y que progresivamente van a ir pasando de plantearse como servicio, a hacerlo como commodity o incluso como utility… si te has preparado para ello.

 

Wikipedia toolsGoogle adiestra un algoritmo para ser capaz de escribir artículos en Wikipedia. ¿Cómo lo adiestra? Qué pregunta tan tonta, ¿no? Con artículos de Wikipedia. En pocos años, las enciclopedias pueden pasar de ser una tarea llevada a cabo por cientos o miles de expertos en temáticas de todo tipo, a ser escritos por algoritmos capaces de resumir y documentar con enlaces el conocimiento humano.

Obviamente, el artículo va más allá del simple hecho de imaginarse a un robot escribiendo en Wikipedia. ¿Cuántas tareas repetitivas o pesadas haces a lo largo del día, y por qué no te planteas su automatización? Sencillamente, porque la automatización de determinadas tareas no es tan sencilla como parece. Imaginemos, por poner un ejemplo que conozco bien, mi propio día a día: me levanto por la mañana, y en cuanto tengo un rato relativamente tranquilo, reviso mis feeds en Feedly para saber qué ha pasado en el mundo. Marco aquellos que me han resultado interesantes, para, en una segunda pasada, escoger el mejor o los mejores de cada tema, y pasarlos a mi tablero de Pinterest y mi revista de Flipboard. En ambos casos hablamos de herramientas de trabajo, bien porque posteriormente las utilizo para recuperar información cuando la necesito, o porque son seguidas por un cierto número de personas que las utilizan a modo resumen de prensa filtrada. ¿Qué criterio utilizo para decidir qué noticias son mejores en cada tema? La verdad es que no lo sé con certeza, pero… ¿podría educar a un algoritmo para que supiese hacerlo, si tengo datos históricos de las noticias que he ido seleccionando a lo largo del tiempo? Muy posiblemente, sí.

A la hora de escribir, la verdad es que preferiría seguir haciéndolo yo mismo: me relaja, me ofrece ciertas posibilidades y libertades creativas, y me permite retener algunos temas algo mejor. Sin embargo, añadir enlaces a mis artículos es una tarea pesada e intensiva, dado que cuando escribo, procuro enlazar muchísimo para poder tener a mano las fuentes que utilicé (recordemos que mi actividad principal es la de profesor, y que cuando escribo estoy, en realidad, preparando materiales para mis clases). Dado que lo que enlazo proviene, por lo general, de artículos de mi archivo o de fuentes generales que uso para documentar, ¿podría un algoritmo educado con los artículos que he escrito durante muchos años aprender mi criterio a la hora de enlazar, cuándo usar un enlace a Wikipedia para documentar un término, cuándo recurrir a un artículo de mis archivos, etc., y ayudarme en esa fase de la redacción? Una vez escrito, comparto el artículo en redes sociales, una tarea puramente repetitiva, pero que la mayoría de las herramientas que conozco no hacen bien, así que termino haciendo mediante copiado y pegado manual. ¿Podría un algoritmo entender cómo y con qué criterio copio y pego de manera más o menos mecánica el titular y el enlace de mis artículos, y pasar a hacerlo por mí? ¿Puede un algoritmo revisar los artículos que he escrito a lo largo del tiempo, monitorizar los enlaces a contenidos que han desaparecido o no están accesibles, y sustituirlos por los enlaces válidos correspondientes, si existen?

La respuesta a esas preguntas es, estoy prácticamente seguro, afirmativa. Y hablamos de tareas muy específicas, que seguramente muy pocas personas hacen como yo, con la misma combinación de necesidades y motivaciones. ¿Para cuándo algoritmos que permitan ese tipo de aprendizaje a partir de tareas relativamente repetitivas – pero no completamente mecánicas – y que puedan ser utilizados a modo de asistentes personales? ¿Qué haría falta para conseguir que una persona normal, sin conocimientos de machine learning, pudiese definir una tarea, aportar datos para un aprendizaje, y monitorizar el progreso de un algoritmo a la hora de completar una tarea de su día a día? Estoy convencido de que ese tipo de tareas serán así dentro de no mucho tiempo: llevar a cabo la tarea un cierto número de veces, para que el algoritmo de turno sea capaz de entender lo que hacemos, con qué criterios lo hacemos, y pueda posteriormente repetirlo de manera automatizada para nosotros. ¿Cuántas cosas de tu día a día querrías mecanizar con ese tipo de criterios? ¿Cuánto mejor trabajarías si pudieses hacerlo?