Un algoritmo es una secuencia de pasos lógicos que permiten solucionar un problema. Hasta ahí bien. Pero ¿para qué sirve? ¿Por qué estamos hablando todo el día de ellos? ¿Son la antesala de la inteligencia artificial? ¿A qué nos referimos con la auditoría de algoritmos? De esto me gustaría escribir hoy.
Cómo os he venido explicando, he estado trabajando en un montón de temas relacionados con los datos. Por ahora lo he plasmado en dos cursos Data literacy y Data Driven company y espero que en breve poder publicar mi primer libro sobre el mundo de los datos.
Mientras voy acabando el libro voy a ir publicando algunos capítulos, y he pesando que el capítulo de los algoritmos es una buena muestra de los que estoy preparando en el libro. Si te interesa este tema, no lo dudes, compra el libro. Al final del post verás el índice y los temas que voy a tocar.
Patrocinador: Adam patrocina el blog de @titonet. Te ofrecemos servicios cercanos y flexibles de data center, infraestructura cloud y conectividad en Madrid y Barcelona. DESCUBRE ADAM
La fórmula de Google
Casi seguro que el primer contacto que hemos tenido con los algoritmos ha sido gracias a Google.
Creo que se ha hablado del algoritmo de Google como si fuera la fórmula secreta de la Coca cola. Una fórmula mágica que lleva al negocio a otra dimensión y que no es ni copiable. Pero lo que no entendemos en muchos casos es cómo funciona ese algoritmo. Empezaré por ahí. Explicando cómo funciona el algoritmo de Google.
Aunque parezca increíble, muchas personas creen que cuando ponen una palabra en el recuadro de búsquedas de Google y le dan al ‘enter’, hay una especie de robot que rastrea toda la información que hay en el mundo y en apenas décimas de segundo, te devuelve los resultados ordenados por relevancia. Ese robot, se creen que es un algoritmo. Tú no serás de esos, ¿verdad?
Como bien sabes, eso no funciona así.
Técnicamente es imposible rastrear todas las búsquedas, por todo Internet, en el momento que alguien quiera y devolverlas a esa velocidad. Si esto se hiciera de esta manera se tardarán horas o días en devolver cada resultado, dependiendo del número de búsquedas que se esté efectuando en ese momento. Esto acabaría con la paciencia de cualquier humanoide del S.XXI.
El buscador de Google funciona de otra manera.
Google lo que hace primero es copiar toda la información que hay por Internet. Sí lo has oído bien, TODA. La guarda en almacenes de datos de dimisiones enormes. Busca Google Data warehouse y verás de lo que hablo. Es algo parecido a Matrix.
Para guardar esa información, utiliza spiders o arañas que van entrando de forma sistemática en todas las páginas web, busca las palabras importantes, busca analizar sus contenidos, su atractivo y lo guarda. En la actualidad se estima que casi la mitad del tráfico que hay en internet son arañitas simpáticas analizando lo que publicamos los humanos (recordarme que otro día hable de esto).
Una vez las arañitas han guardado la información, entonces tocará ordenarla. Y es ahí donde entra el famoso algoritmo de Google.
El algoritmo se encarga de, en base a hipotéticas búsquedas de un usuario, analizar los datos que ya han guardado en sus almacenes preparar las respuestas más relevantes.
El algoritmo funciona así: para conseguir un resultado (output), necesita analizar datos guardados (process) en base a la previsión de búsquedas (input). Todos los algoritmos con los que nos relacionamos funcionan así, se activan por un impulso, realizan su trabajo para devolver un resultado.
Cada vez que haces una búsqueda, te contactas a un almacén de datos, que ya tienen preparados los resultados de la búsqueda. Google ya sabía que ibas a buscar eso. Los humanos somos predecibles y por eso lo que te devuelven ya lo tenían preparado.
Para mejorar los resultados, Google observa tu comportamiento frente a los resultados, si los clicas, es que la búsqueda era buena. Si no la reformulan. La retroalimentación de los datos y la gran cantidad de datos es lo que mejora de forma continuada la fórmula mágica.
¿Qué es un algoritmo?
Gracias a este ejemplo podemos llegar a entender qué es eso de los algoritmos. Un algoritmo no deja de ser una fórmula matemática. Es una ecuación. Punto. No tiene más magia. Lo que ocurre es que, gracias a las capacidades de cálculo actuales, esas ecuaciones son cada vez más sofisticadas.
Si lo piensas, estamos rodeados de algoritmos. Unos simples, otros más complejos. Cuando reservas una habitación de hotel, hay un algoritmo que selecciona de todas las habitaciones de una misma categoría, la que te toca. Cuando pides vas a un restaurante y el camarero apunta tu pedido en una tableta, el algoritmo ordena los pedidos que le llegarán a los cocineros, por orden de llegada o por facilidad de elaboración. Alguien ha tomado esa decisión.
A la que introduces tecnología, alguien ha pensado el mecanismo de automatizar un proceso y hacerlo eficiente. Esto es un algoritmo.
Características de los algoritmos.
Si te das cuenta, un algoritmo tiene una serie de características muy claras.
Todos los algoritmos tienen inicio y fin.
Si lo piensas todo algoritmo comienza en un estado inicial con una serie de datos específicos, y acaba con una solución o salida.
El algoritmo de google acaba con el resultado. El algoritmo del hotel no hace nada para asignarte una habitación a no ser que hagas la reserva.
Un algoritmo funciona en secuencia
Los algoritmos están compuestos por un conjunto de pasos ordenados que representan un conjunto de decisiones.
El algoritmo del hotel, mira las habitaciones disponibles de la categoría que has comprado, después mira si has estado alguna vez en el hotel, si has estado mira si está disponible la habitación que habías estado, si no está disponible busca otra cerca. Si las valoraciones que hiciste en Internet del hotel fueron buenas, entonces te asigna la misma habitación. Si no lo fueron, entonces te asigna otra.
Las secuencias del algoritmo son concretas
Cada paso es claro y no deja lugar a la ambigüedad. El algoritmo del hotel no opina. Si has estado previamente va por un camino. Si no has estado, va por otro. No hay lugar a dudas.
Si reservaste una vez, pero no fuiste, la realidad es que no has estado en el hotel. Punto. No vale es ‘casi’ estuve.
Los algoritmos son abstractos
Son modelos o guías para ordenar procesos. Al final alguien ha pensado en la lógica de un proceso y lo que hace el algoritmo es seguir esa lógica. Todo en nuestra vida puede ser simplificado con un modelo matemático.
Por último, la cantidad de pasos de un algoritmo es finita.
Da igual que sea el algoritmo más sofisticado del mundo, siempre acaba con un resultado. Puede tener miles o millones de secuencias. Pero el fin del un algoritmo es entregar un resultado.
Al final, si lo piensas un algoritmo no deja de ser como una receta de cocina. Pones unos ingredientes (input), vas siguiendo un orden determinado (process), cortando, friendo, calentando con un orden determinado, siguiendo unos tiempos, para llegar a un resultado final (output).
¿Para qué sirven los algoritmos?
Los algoritmos se utilizan para ordenar resultados, para buscar mejor, para darte la probabilidad de que un suceso ocurra, para dividir un problema y buscar una solución global óptima. Vamos a ir uno por uno con algunos ejemplos.
Algoritmos de Búsqueda
Existen algoritmos cuya única función es buscar.
Ya hemos visto uno en el ejemplo de Google. Las arañitas que rastrean Internet son un algoritmo de búsqueda.
Las instrucciones son simples: abre internet, ves entrando en direcciones por un orden establecido. Si no existe apúntalo, si existe, busca de qué va la página web, apunta las palabras clave, guárdalas, si ya hemos estado en esta página, revisa los cambios, si hay cambios guárdalos y anota que esta pagina esta viva. Esta sería una forma simplificada de explicar un algoritmo de búsqueda.
Algoritmos de ordenación
Los algoritmos de ordenación lo que hacen es hacer un listado con un conjunto de premisas previas.
Las apps de taxis utilizan esta tipología de algoritmos para poder priorizar a quien asignan una solicitud de un cliente. Cuando alguien llama un taxi por la app, el algoritmo se conecta y busca el taxista los taxistas más cercanos, los ordena en una lista y se le pasa un aviso.
Algoritmos voraces.
Se trata de algoritmos que buscan la optimización. En cada paso que dan del proceso escogen el mejor elemento (elemento prometedor) y comprueban que pueda formar parte de una solución global factible.
En el ejemplo de las arañitas, hay un algoritmo que revisa y optimiza la información que recoge de las páginas web y va comparando como impacta el cambio de esa recogida con la mejora de los resultados que entrega google en los resultados de búsqueda.
Algoritmos probabilísticos.
Mediante un muestreo aleatorio de los datos de entrada, llega a una solución que puede no ser totalmente óptima, pero que es adecuada para el problema planteado. Analizan una situación y establecen la mejor solución basado en probabilidades.
El clásico ejemplo de este tipo de algoritmo está en el juego online. Desde que los casinos se pasaron a Internet, ya no es una bolita en la ruleta la que determina la suerte de los jugadores, sino un algoritmo que analiza el perfil de los usuarios, sus características y optimiza los números que aparecen en base la probabilidad de que los jugadores gasten más. Ya sabes el dicho, la banca siempre gana, pero con los algoritmos, gana mucho más que siempre.
Algoritmos de programación dinámica
La última tipología de algoritmos se refiera a algo que se le llama programación dinámica
Es un método de resolución de problemas en el que dividimos un problema complejo en subproblemas y calculamos y almacenamos sus soluciones, para que no haga falta volver a calcularlas más adelante para llegar a la solución del problema.
El algoritmo de resultados de Google no deja de tener esta naturaleza. Guarda búsquedas y soluciones ya predeterminadas que ayudan a los humanos a encontrar todo lo que quedamos en Internet.
El uso de los algoritmos está cambiando nuestra vida. Como todo lo que toca la tecnología parece en muchos casos casi magia. De hecho la barrera que separa la realidad y la ciencia ficción se está estrechando por lago que le hemos llamado inteligencia artificial. Pero de esto hablamos otro día.
Auditoría de algoritmos
Qué las empresas desarrollen sus algoritmos para resolver problemas es algo imparable, pero ¿Qué ocurre si las decisiones que se están programando en los algoritmos no son éticas? Cuando decimos que la decisión no es ética es que sus acciones incrementan la desigualdad, la injusticia o la discriminación.
Voy a poner unos ejemplos.
El algoritmo que selecciona el taxista que te va a recoger, prioriza una raza concreta de conductores. O qué pasa si el algoritmo que selecciona a las reservas del avión, selecciona para los casos de overbooking por defecto a personas homosexuales. O otro ejemplo, las búsquedas de Googlee están priorizadas en el algoritmo por empresas de EEUU.
Estos casos son una un simple ejercicio de imaginación, pero queda claro que en muchas empresas se ha priorizado el beneficio por encima de las consecuencias de sus acciones. Queda claro que no podemos dejar en manos privadas la garantía del cumplimiento ético de algunas normas. Es por ello que nos vamos a hablar mucho durante la próxima década del término «auditoría de algoritmos».
Un algoritmo debe tener la obligatoriedad de ser auditado siempre que este recopile o trate datos personales o sensibles, pueda afectar a la vida de las personas y/o a grupos sociales relevantes o grupos vulnerables, o que pueda implicar alguna forma de discriminación o sesgo. Es especialmente relevante si afectan a cuestiones como el acceso a la educación, al trabajo, a prestaciones o beneficios sociales y o que funcionen en ámbitos como el judicial o el de la salud pública.
¿Qué debe revisar una auditora de algoritmos?
Cumplimiento legal y ético:
uál es el marco jurídico aplicable y cuáles son los derechos y valores de los implicados. El algoritmo de Instagram, puede cumplir las normas legales, pero si fomenta la ansiedad y gracias a esa ansiedad, las personas entran más, ¿Es ético?
Deseabilidad del algoritmo
Un algoritmo de impacto social debe ser siempre explicable, preciso, replicable, transparente y justo. Si el algoritmo de twitter te muestra las opiniones opuestas a tí para reaccionar y así generar más interacciones ¿Es deseable para la sociedad?
Aceptabilidad del algoritmo
Un sistema que tiene efectos sobre la vida de las personas, debe ser comprensible, controlable, sostenible y beneficioso para las partes afectadas por el mismo. Si todos entendiéramos la ordenación y priorización que hace google en sus resultados, podría ayudarnos a comprender mejor los beneficios que nos proporciona en su filtro de información, y esto sería beneficioso tanto para las personas como para la empresa.
¿Te imaginas a alguien revisando el algoritmo de Google?
Puede sonar extraño, pero con sinceridad creo que lo veremos.
La gran mayoría de empresas, a partir de un cierto tamaño tienen la obligatoriedad de que sus cuentas sean auditadas para evitar que sus posibles problemas económicos tengan impacto negativo sobre la economía de un país. Incluso hemos vivido casos de expropiación (Rumasa) y cierres de empresas (Lehman Brothers)por la problemática que podrían suponer para el sistema global. ¿Veremos lo mismo sobre empresas cuyos algoritmos nos impacten socialmente?
Para conseguir que los algoritmos sean auditables se necesita asegurar dos lados. Desde la perspectiva de la empresa, hay que garantizar la confidencialidad de su lógica. Mientras no existan garantías, las empresas no dejarán que se auditen. Por otro lado, desde el auditor, se necesita disponer de los procesos y recursos técnicos para realizarlo. En la actualidad, estamos lejos, muy lejos de garantizar cualquiera de los dos lados, pero llegaremos.
Uno de los valores que veríamos en la cultura digital es la trasparencia. La sociedad quiere tener las cosas claras. La era de los monopolios nos ha desviado un poco de este valor.
A los que os interese profundizar yo revisaría esta Guía de Auditoría Algorítmica.
Libro del data
Si os ha gustado, en breve publicaré un libro sobre todo el mundo de los datos. Este has sido el capítulo de muestra, La portada y el índice es provisional. Podéis hacer una Pre-compra y espero antes del 1 diciembre poder presentarlo. Si quieres que te avise por e-mail, suscríbete a titonet.
Espacio Patrocinado por ADAM La transformación digital es un proceso necesario, que afecta a la cultura y a la estrategia de tu negocio. La tecnología es solo una parte, pero es una pieza fundamental para la que necesitas un partner cercano y atento, que te acompañe en tus retos y te ayude a tomar las mejores decisiones. En Adam nos gusta tener un trato personal y cercano. Entender tu proyecto y tus objetivos y ofrecerte la solución más efectiva y escalable para cada situación. Tenemos 30 años de experiencia ayudando a clientes en todos los sectores del mercado. Si quieres saber más, te podemos ayudar en servicios de colocation, infraestructura cloud y conectividad, desde nuestros 3 data centers en Madrid y Barcelona. DESCUBRE ADAM