Archivo de la etiqueta: algoritmo

Comunicando los resultados de Big Data eficientemente

(Artículo escrito por Izaskun Larrea, alumna de la promoción de 2017 en el Programa en Big Data y Business Intelligence en Bilbao)

¡Hacer predicciones no es suficiente! Los científicos de datos eficaces saben explicar e interpretar sus resultados y comunicar los hallazgos con precisión a las partes interesadas para tomar decisiones empresariales. La visualización es el campo de investigación que estudia la comunicación efectiva de resultados cuantitativos vinculando percepción, cognición y algoritmos.  Es necesario aprender a reconocer, diseñar y utilizar visualizaciones efectivas.

Como Data Scientist debemos explorar las consideraciones éticas sobre el Big Data y cómo estas consideraciones están comenzando a influir en la política y en la sociedad. Tenemos limitaciones en el uso de la tecnología para proteger la privacidad y los códigos de conducta que emergen para guiar el comportamiento de los científicos de los datos.

Las inferencias estadísticas del Big Data, heterogéneos y ruidosos son inútiles si no puede comunicarlos a sus colegas, a sus clientes, a su administración y a todas las partes interesadas, parece ir paradójicamente empeorando. Pero la reproducibilidad no es sólo para los académicos: los científicos de datos que no pueden compartir, explicar y defender sus métodos para que otros puedan construir son difíciles de entender. La importancia de la investigación reproducible y cómo el cloud computing está ofreciendo nuevos mecanismos para compartir código, datos, entornos e incluso costos que son críticos para la reproducibilidad práctica.

comunicación Big Data

Últimamente, he trabajado en una serie de proyectos que requieren la recapitulación del Big Data para desarrollar materiales de comunicación que transmiten mensajes clave con claridad y precisión.

Si bien el tipo y la cantidad de datos, las áreas temáticas y el público objetivo de cada pieza de comunicaciones varían, cada proyecto implica el uso de los siguientes pasos para producir piezas de comunicaciones efectivas en el Big Data:

  1. Evaluar la exactitud de tus datos. Ya sea porque esté explorado en Internet, interpretando un informe técnico de 100 páginas, analizando los datos de demostración reportados por el usuario o resumiendo los resultados de un trabajo, es importante hacer preguntas sobre tus datos. ¿Tus fuentes proporcionan información conflictiva que es contraria a lo que esperabas? Si es así, haz un poco de investigación adicional para resolver estos problemas y excluir cualquier fuente no confiable.
  2. Analizar lo que dice la información – Ahora que sabes que tus datos son más precisos, es el momento de organizarlo en categorías lógicas. ¿Cuáles son los principales bloques de información con los que se trata? ¿Tienes información cualitativa y cuantitativa? Una vez que tengas una mejor comprensión de la profundidad y amplitud de tus datos, puedes resumir con mayor facilidad los puntos clave de cada agrupación de datos.
  3. Determinar lo que es más importante para tu audiencia – Es fácil resumir todos los datos con los que estás trabajando, pero algunos datos son más importantes para tu audiencia que otros. ¿Alguno de tus puntos clave fue sorprendente o nuevo? Trate de encontrar tus puntos clave, preguntarse qué es significativo y por qué cada punto importa. Si tú no puedes llegar a una respuesta, es probable que el punto clave no debe ser incluido.
  4. Identificar el formato más significativo para la presentación de tus datos – Para aumentar la eficacia de tu análisis, este paso debe estar realmente en tu mente durante todo el proceso del análisis de datos. Es importante determinar qué formato de comunicaciones será más útil para tu audiencia, para que tu proyecto inspire acción en lugar de simplemente una exposición de información masiva. ¿Es probable que tu público realice físicamente un resumen ejecutivo o una hoja informativa? ¿Es probable que eliminen las páginas o el capítulo de un informe que más se relaciona con tu investigación? El propósito de la información debe determinar el formato de tu informe. Y por supuesto, no olvides que vivimos en una edad muy visual. Debemos de usar señales visuales para comunicar temas complejos.

Un análisis de datos eficaz requiere hacer el trabajo desde abajo para que nadie más en la organización se atasque con el Big Data. Tu audiencia no tendrá tiempo para luchar para determinar qué información es más importante. Es tu trabajo interpretar los datos para ellos.

Un algoritmo que escribe texto y nos entretiene

Quizás ya hayan leído alguna noticia al respecto. Suelen ser noticias bastante «trágicas» o «extremas». Que, como siempre, difícilmente llegará a darse. Aunque sí marcan tendencia, y sobre todo generan conversación. Me refiero a noticias que hablan de software, de algoritmos, que escriben por sí solos noticias, artículos de deporte o incluso sentencias o textos de defensa de acusados. IBM Watson, incluso ha creado ya un trailer:

Este tipo de piezas de software, están dando un paso más allá, y están empezando a entrar en el mundo del entretenimiento. En cierto modo, ese trailer creado por IBM Watson no deja de ser una primera aproximación a cómo tratar de crear contenido que nos pueda entretener a los humanos. Pero, creado, de manera automática. Es decir, sin dedicar tiempo de creatividad y entendimiento del cerebro humano para ello. Esto sí que es nuevo. Hasta la fecha habíamos tratado de aproximarnos a ello, pero no conseguido.

Y dado que el mercado del entretenimiento es muy jugoso, ya hay mucha gente haciendo cosas. En este artículo, podéis ver como Max Deutsch, utilizando un modelo de LSTM Recurrent Neural Network (algoritmo de aprendizaje cognitivo), y empleando como datos de entrada los textos de los primeros cuatro libros de Harry Potter, fue capaz de producir un nuevo capítulo. El capítulo lo pueden encontrar en el enlace que ponía antes. Hizo lo mismo para producir un capítulo de la serie Silicon Valley de HBO o para guiones para Expediente X. Twitter, para mucho del texto automático que genera (sí, mucho del que leeis), emplea cadenas de Markov. Es decir, empleando los textos que se mueven en dicha red, analiza qué palabras son más probables de aparecer de seguido a otras en el material fuente. El escritor/autor, poco tiene que decir. Las cadenas de Markov hacen todo por él o ella.

Prueben ustedes mismos. Navegando un poco por la red, he encontrado en GitHub este algoritmo creado por Jamie Brew, escrito en Python, y que permite entrenar modelos a partir de textos que le demos. Si quisiéramos crear cuentos para nuestros hijos, podéis introducir en la carpeta de textos aquellos con los que queráis que el software aprenda sus estructuras, para que sea capaz, a partir de ellas, de construir nuevas historias.

Código en Github de Jamie Brew para producir textos (Fuente: https://github.com/jbrew/pt-voicebox)
Código en Github de Jamie Brew para producir textos (Fuente: https://github.com/jbrew/pt-voicebox)

Este algoritmo me ha llamado la atención porque utiliza un enfoque híbrido algoritmo + humano. Por eso mismo decía al comienzo del artículo que suele ser difícil quedarse en un extremo o en otro. Brew visualiza estos algoritmos como un soporte a la creación humana. Que es, por cierto, como creo que más valor cogen estos algoritmos. En lugar de generar directamente las palabras, sugiere una lista de palabras, para que el creador elija la que más le gusta. Este modelo, en cierto modo no deja de ser diferente a cómo funcionamos los que escribimos o creamos en la vida real. Que nos quedamos pensando cuál es la mejor opción a seguir mientras vamos escribiendo. Es decir, es un proceso gradual que se nutre de pasos anteriores. Como las cadenas de Markov, que por eso son tan buen apoyo.

Este modelo de aproximación híbrido me gusta porque no hace un «commodity» la creatividad humana. Algo nos tiene que quedar a nosotros 🙂 Y, de hecho, ese «momento Eureka» que solemos tener al crear, es difícil de automatizar en un software. En un algoritmo. Por eso mismo, un modelo en el que en lugar de externalizar la creatividad, tenemos un algoritmo que nos ayuda en la parte más mecánica (darnos un conjunto de «mejores» alternativas a elegir para ir creando las diferentes piezas del puzzle final). Siempre habrá un humano por detrás, una mano artística.

De esta manera, no vemos el mundo de la inteligencia artificial, de los modelos como algo que compite contra nosotros. Que es lo que llevo diciendo mucho tiempo. Básicamente, porque esos discursos catastróficos o triunfalistas, ya digo serán luego difíciles de ser implementados.  El software es una herramienta que empleamos para hacer mejor nuestro trabajo. Para crearlo, necesitamos saber muchas cosas (tecnología, estadística, enfoque a aplicación -negocio-). Pero la creatividad, de momento, no hemos conseguido externalizarla. Y si queremos hacer cosas de calidad, es probable que ese monopolio artístico siga siendo del ser humano.

Cuando los algoritmos se convierten en cajas negras

Les voy a recomendar un libro que me ha parecido realmente espectacular: «The Black Box Society: The Secret Algorithms That Control Money and Information«.

Fuente: Amazon
Fuente: Amazon

Empecemos por lo básico, definiendo qué son los algoritmos y por qué hablamos ahora de «cajas negras». Los algoritmos básicamente es lo que hacemos los informáticos cuando nos ponemos a crear una serie de reglas abstractas para transformar datos. Es decir, cogemos una fuente de información o datos, y dado que no está expresado ni representan aquello que queremos obtener, diseñaños y desarrollamos una serie de reglas que permiten encontrar, expresar y representar aquello que estábamos buscando.

Además, desde que hemos introducido el paradigma Big Data, los algoritmos también buscan, patrones, relaciones, etc. Dado que cada vez codificamos y automatizamos un mayor número de nuestras conductas, deseos, emociones, etc. en entornos digitales, producimos una mayor cantidad de datos. Y más interesante resulta para muchas industrias desarrollar algoritmos para encontrar inteligencia que transformar en negocio.

Por ello, hoy en día, tenemos muchos, muchísimos algoritmos. Además, cada vez más sofisticados. Junto con el hardware y las redes, constituyen los ejes clave sobre los que pivota esta transformación digital de muchas industrias. Estamos ya ante las máquinas más sofisticadas del planeta. Lo cual está muy bien: más seguridad, optimización de las rutas para evitar perder tiempo, frenos automáticos, etc. 100 millones de líneas de código incorporan los nuevos vehículos (frente a las 60 millones de líneas que tiene Facebook y las 5 millones de líneas que tiene el colisionador de hadrones, para que se hagan a la idea de la complejidad de la que habalmos). Estamos ante las primeras máquinas que están alcanzando los límites biológicos de la complejidad.

El problema, además de su complejidad, es que fueron concebidos por una serie de personas, que seguían algún objetivo, no siempre claro. La intencionalidad del ser humano es inherente a lo que hacemos. Actuamos en base a incentivos y deseos. Por lo tanto, la pregunta que nos solemos hacer cuando pensamos en las cajas negras de los algoritmos pasan por su reingeniería. Es decir, saber cuáles son las reglas que los gobiernan.

Algoritmos de caja negra (Fuente: https://es.wikipedia.org/wiki/Caja_negra_(sistemas)#/media/File:Blackbox3D.png)

Cuando no sabemos qué reglas son éstas, hablamos de algoritmos de «caja negra». No sabemos cómo funcionan, cuál es el criterio con el que lo hacen, con qué objetivos fueron concebidos, etc. Por ello, el libro que os recomendaba al comienzo, sugiere que comencemos a discutir también sobre el «accountability» o «escrutinio» de los algoritmos. En una era en la que las apuestas contras las divisas de los países, los coches o servicios públicos son autónomos, o personas o sistemas de Big Data que toman decisiones de sanidad son codificadas en algoritmos, no podemos esquivar esta conversación.

En este sentido, el libro de Pasquale, introduce la «Ética de la tecnología» bajo tres perspectivas que debieran ser consideras cuando construimos algoritmos:

  • Crítica deontológica: es decir, que los resultados a obtener deban satisfacer una serie de reglas, políticas, principios, etc.
  • Crítica teleológica: valorar las consecuencias de los resultados que obtienen esos algoritmos.
  • Crítica de valores: diseño que considera de manera explítica e implítica los valores compartidos en una sociedad global, además de a los propios stakeholders que perciben y usan el sistema como se pensaba en un comienzo.

Con estas tres miradas a incorporar cada vez que enfrentamos el diseño y desarrollo de un algoritmos, son varios los elementos a considerar para ser responsable en su concepción y sus posibles consecuencias. Especialmente, para el campo del Big Data:

  • Disponibilidad: que sea fácil de disponer, no solo  ya el propio código, sino también su funcionamiento.
  • Facilidad de mantenimiento: que no resulte difícil de mantener para una persona ajena al que diseñó y desarrolló el algoritmo.
  • Inteligibilidad: entendible para más personas que los que formaron el equipo de su creación.
  • Integridad del algoritmo: que se mantenga íntegro y no solo funcione para un conjunto de datos determinados.
  • Selección del modelo y atributos: que el modelo sea representativo de la realidad que quiere reflejar. Los atributos a seleccionar para su caracterización, también resultan críticos.
  • Integridad de los datos: lo que decíamos a nivel de algoritmo, también a nivel de datos. Que se mantengan íntegros y no sean susceptibles de modificaciones fáciles o ser demasiado volátiles.
  • Propiedad colectiva de los datos: que los datos no sean propiedad del que desarrolló el algoritmo; desacoplando esa propiedad, podríamos hablar de un compromiso social y global.
  • Sesgo de selección: ¿qué preguntas nos estamos haciendo a la hora de construir el algoritmo? No caer en la trampa de seleccionar solo las partes que más nos interesan o favorecen.

En el congreso Governing Algorithms, se trataron muchos de estos temas. Pero, además hablaron también de otra forma de diseñar y desarrollar algoritmos, con ejemplos como:

  • Sunlight Foundation: una organización que trabaja en la explotación de datos en el campo de la innovación social, el análisis de las facturas de gobiernos para encontrar relaciones o patrones, etc.
  • Enroll America: búsqueda de ciudadanos no asegurados de manera activa e inteligente para mejorar su bienestar.
  • Data Science for Social Good: una iniciativa de la Universidad de Chigado para formar «data scientist» en la construcción de algoritmos para la mejora del bienestar global.

Como toda herramienta, en su uso, dependerá su evaluación. Una evaluación, que como han visto, tampoco es sencilla. ¿Es ético un algoritmo? Depende de todos los factores arriba listado. Lo que sí parece claro es que cuando cogen una forma de «caja negra», suponen un riesgo global importante. Está en nuestras manos que el «accountability» sea efectivo, y no construyamos reglas que no satisfagan esas perspectivas de análisis citadas.