lunes, agosto 26, 2019

La generación exacta o inexacta de insights o cómo me llegan anuncios sobre mi sexualidad

Cuando se tienen datos en bruto, de ellos se puede sacar conocimiento. A partir de una serie datos de por dónde se mueve una persona se puede conocer muchas cosas de su vida, sus gustos o su forma de ser. A partir de lo que busca en Internet, de qué vídeos ve en la red o de qué páginas web visita también se puede sacar conocimiento. Ese conocimiento es lo que se llama "insight" que no es más que una forma de comprender o conocer más una cosa en función de un análisis de la información que se tiene. En el mundo del análisis de datos es el equivalente a inferir conocimiento a partir de datos en bruto.

Figura 1: La generación exacta o inexacta de insights o cómo me llegan anuncios sobre mi sexualidad

Se puede inferir conocimiento a partir de los datos obtenidos de forma puntual de una persona. También se puede inferir conocimiento distinto si en lugar de datos puntuales se cuenta con una serie de datos temporales de una sola persona. O se pueden generar esos insights porque los datos de una persona se parezcan a los de un grupo concreto, llamado cluster, ya que todos los insights que se tengan de ese cluster se le podrían aplicar a ese individuo en particular.

Insights de individuos

En cualquier caso, estos "insights" se generan a partir de datos recogidos en bruto, pero lo más importante que quiero que entendáis de esta larga introducción que voy a hacer a partir de ahora es que estos "insights" pueden ser ciertos totalmente o solo en un porcentaje de los casos. Os voy a poner unos ejemplos, y luego hablamos de la importancia de controlar su seguridad.

Antes de comenzar dejadme que os ponga en situación. A lo largo de estos puntos voy a explicaros en el lenguaje más didáctico posible cómo se pueden generar insights a partir de tres conjuntos de datos de diferente manera. En primer lugar cruzando un único dato de una persona que releva información. En segundo lugar generando conocimiento a partir de series temporales de datos de esa persona para entender su comportamiento. En tercer lugar a partir de datos dispersos de esa persona que se asemejan a grupos catalogados que ya se conocen.

Hay que tener en cuenta que cuando hablamos de inferir "insights" o generar conocimiento a partir de datos estamos hablando de generar atributos informativos más cercanos a la comprensión humana. Podríamos determinar que una persona tiene el insight de "nervioso" a partir de datos que se recogen del uso que hace de su smartphone o el insight de "embarazada" a partir las páginas que vista en la web y los búsquedas que realiza en la red. Y esta es información que puede acabar en una base de datos como un atributo más asociado a un individuo y del que deberemos preocuparnos doblemente. Por si ese insight es verdad, o por si ese insight es falso.

Generando insights de una persona

Supongamos que en mi smartphone se ha instalado una app que dentro del largo texto de los Terms & Conditions ha puesto que va a acceder a mi localización y va a compartir esos datos con terceros si quiero que la app funcione. Probablemente lo ponga en un lenguaje enrevesado, tal vez en inglés, y lejos de estar al alcance de todos los usuarios que puede que ni comprendan la totalidad de los términos utilizados en la redacción, ni las implicaciones de ellos puestos de esa forma en las frases del texto.

Ahora supongamos que cruza mi localización con un PoI (Punto de Interés), por ejemplo, de una cárcel. Algo que puede pasar perfectamente si visitas una cárcel, si estás en la cárcel, si acompañas a alguien a ella, si manipulas la información origen que sirve para calcular tu ubicación, o si pasas cerca de esa ubicación. En cada app instalada la generación del dato de ubicación, y en cada PoI, puede ser diferente el cálculo, la exactitud y la veracidad de esa información por muchos motivos que van desde el tipo de terminal móvil y la configuración del mismo, al tipo de cálculo que se haga para obtener el dato de de la ubicación. 

Pensemos por ejemplo que la persona que ha instalado esa app que captura nuestros datos como forma de pago por su uso, ha dado permisos de acceso a la ubicación GPS a dicha app. Y ahora pensemos en que esa persona tiene un móvil de cuatro años de antigüedad, con poca batería y con la red WiFi desactivada para que no se le gaste más batería de la necesaria cuando no hace uso de ninguna red inalámbrica. En ese caso, el cálculo de la ubicación GPS de ese terminal será bastante inexacto, ya que ,como se sabe, los terminales móviles usan todas las capacidades a su alcance para conocer la ubicación, y estas van desde el análisis de redes WiFi cercano, hasta los puntos de conexión a la red móvil y el acceso a Internet.

Si has utilizado un navegador como Google Maps, o Waze, o Apple Maps,  habrás notado que a veces tarda en "situarte bien en el mapa". Pues bien, haz una prueba muy sencilla. Desactiva la red WiFi y úsalo como navegador. Será bastante inexacto. Ahora activa la red WiFi - no hace falta que te conectes a ninguna red, basta con que esté activada la tarjeta WiFi para que el terminal pueda ir "espiando" todos los "Access Point" que hay a tu alcance y con qué potencia de señal se reciben -. Ahora la navegación será mucho más exacta.

Esta captura de datos de redes WiFi por parte de tu sistema operativo le ha permitido a Apple y Google tener las bases de datos más fiables de redes WiFi en el mundo, así como usarlas como forma de ubicar todos y cada uno de los terminales móviles que tienen con mayor exactitud aprovechando la ubicación física de puntos de acceso WiFi que no cambian.

Luego, cuando una app accede a la información de ubicación GPS en la que te encuentras, esta puede ser más o menos exacta en función de muchos parámetros. Y por tanto puede que estés o no ese Punto de Interés. Aún así, en el mundo en el que nos movemos hoy en día, ese dato se va a procesar y puede que se utilice para generar un insight sobre ti. Es decir, un insight sobre ti basado en una ubicación GPS que puede ser más o menos exacta.


Figura: 2 You are where you are

Esto es algo que, como os conté en la charla de "You Are Where You Are", puede pasar tranquilamente en cualquier momento. Un dato de una ubicación cruzado con un PoI que puede ser una cárcel. Ahora bien, ¿qué insight debería sacarse? Pues puede que ninguno, ya que puede ser un error. O puede que es que tenga amigos en la cárcel, y eso podría ser un insight interesante para alguien que pudiera comprar esta información para utilizarla. La interpretación de ese dato depende de la que dé el Data Scientist, y puede que sea correcta, pero también cabe la posibilidad de que sea errónea, o en algún caso inexacta.

Supongamos que eso se cruza con un PoI que tiene que ver, en lugar de con una cárcel, con un bar de una orientación sexual concreta. Por ejemplo un bar frecuentado y promocionado para personas de la comunidad LGTB, que ha sido marcado como tal en una base de datos de PoI de una ciudad. Y tú pasas por ahí con tu smartphone, o pasas cerca. Porque eres de esa comunidad, porque vas con un amigo/a, o por casualidad paseabas por allí cerca, te gustó, y entraste a tomar algo. Algo muy común que sucede muy habitualmente.

¿Debería esa app sacar un insight sobre mí, asociado a mi cuenta de Google, a mi número de teléfono o a mi dirección de e-mail? Pues tal vez no, porque el grado de exactitud no es del cien por cien ni en el cálculo de la ubicación GPS como ya he descrito al principio, ni en el motivo por el que se está en esa ubicación. Pero os aseguro que sí tiene una eficiencia un poco mayor ese insight en el resultado de descubrir gente que sea objetivo de una campaña de publicidad, probablemente se generará un insight.

Podríamos pensar que un insight de ese tipo no se puede generar, y menos guardar dentro de la base datos, pero tampoco será necesario si se puede utilizar en bruto sin calcular. Son lo que yo llamaba los datos Semi-Personales en la web. Se podría hacer un conjunto de bares objetivos y marcar a la gente que visita esos bares y enviarles publicidad vendida a terceros sin tener nunca almacenado un insight de ese tipo.

Esto mismo pasa con generación de insights basados en series de datos. Hasta el momento hablaba del caso puntual en el que se cruza un PoI de carácter muy marcado, es decir, una ubicación en el mapa en el que las personas que van conscientemente lo hacen por un motivo bastante claro. Supongamos que un día a una hora en un PoI de un estadio de fútbol hay un partido entre dos equipos. Si la persona va a ese estadio en el espacio de tiempo durante el cual se juega el partido, quiere decir un alto grado de probabilidad de que le gusta el fútbol, y se pueda generar ese insight.

Pero si en lugar del insight que se genera al cruzar un dato con un PoI de carácter muy marcado, utilizamos una serie de datos, la cosa cambia. Supongamos que tenemos que una persona está en la ubicación de la cárcel todas las semanas el mismo día en una franja de horas parecidas. O que una persona va a un hospital todas las semanas. O que una persona va a un PoI de un gimnasio la mayoría de los días o va a PoI de una fábrica de cerveza de lunes a viernes en horario laboral.

Como os podéis imaginar, esas series de datos dan insights bastante precisos de que una persona esté visitando a alguien en la cárcel, o de que esté en un tratamiento médico crónico, o de que sea una persona deportista o un trabajador de una empresa en concreto. Pero aún así no son cien por cien exactos. ¿Podríamos asegurar que esos insights son exactos para todos los que tengan esos patrones? La respuesta es no.

Podría ser que la persona que vaya a la cárcel periódicamente sea un trabajador de mantenimiento de una máquina de café que hay en la sala de espera y se ocupe de recargar de vasos, cucharillas y azucar en la máquina expendedora y tenga una ruta pre-establecida. O que la que visita el hospital sea una persona que cuida a otra persona mayor y le acompañe a la revisión de su enfermedad crónica. O que la que va al gimnasio simplemente sea para limpiar los baños. Y que el que visita la fábrica de cerveza sea una persona que trabaja en la oficina de paquetería que está en la planta de arriba del mismo edificio y que nada tiene que ver con la fábrica de cerveza.

Pero, seguramente, en la mayoría de los casos en los que se saquen insights sobre series de datos, estos serán acertados. Solo hay un porcentaje de personas a los que se asociará insights erróneos. Sin embargo con la mayoría acertarán, y podrán producir un incremento de negocio para la empresa que hace publicidad dirigida y cobra  por ventas. O para la empresa que vende un determinado producto a un grupo de personas que tengan varios insighs concretos.

Y aún nos queda el último caso del que quería hablaros. Supongamos ahora que se sabe que el grupo de personas que tiene una determinada app con un marcado insight visita determinados contenidos en Internet - que no son nada más que PoI virtuales en la red - , o que visita determinados PoI en el mundo físico tiene un determinado insight. Por ejemplo, que un Data Scientist define que las personas que tienen instalada la app de clasificaciones deportivas de Karate "KaCla" significa que implica el insigth de "le gustan las artes marciales". 

Es decir, a partir de un insight muy marcado generado por un dato muy concreto, hemos generado un cluster de navegación web con las páginas webs más visitadas por el colectivo de usuarios KaCla. Ahora podríamos inferir a partir de la navegación web que una persona tiene instalada esa app o que directamente tiene ese insight. Esto es algo muy común que se basa en una transitividad muy directa que usa en el mundo de los negocios para muchos fines.

Si yo analizo los clientes que más usan mi app y veo donde navegan o como se comportan, podría tener un cluster de navegación y comportamiento que defina el perfil de a qué personas de la sociedad le resulta más útil mi producto. Con esa info, podría ir a un proveedor de Data-Driven Advertising y pedirle que promocionara mi app entre gente que tuviera ese patrón de navegación.

En nuestro caso, supongamos que la gente que tiene "KaCla" instalada ve vídeos de Bruce Lee, y de campeonatos de karate en Youtube, y visita un número concreto de páginas con mayor asiduidad. Luego ya no necesitamos saber que tiene instalada la app KaCla para saber que "le gustan las artes marciales" si somos capaces de saber que direcciones en la red visita. Es más, como ya hemos dicho, sería un buen objetivo para nuestra aplicación "KaCla".

Supongamos ahora que una persona que tenga una app con un insight marcado, como sería Grindr de contactos para el colectivo gay. Y  de ellos se genera el cluster de PoI de navegación que tienen. Qué tipos de páginas web visitas, qué tipo de vídeos ven en Youtube, etcétera. Así, una empresa que tenga el cluster de navegación de esas apps con insights tan marcados, podrán saber, a partir del patrón de navegación de esas personas si tienen o no ese insight.

Piensa ahora en todos los patrones de navegación con clusters que se pueden sacar con todo tipo de apps o PoIs en la ciudad que existan. Por ejemplo, apps de cocina, de deporte, de religión, de pesca, de hacking, de sexo, de arte, de música, etc.... Si tienes todos los patrones de navegación de Internet, eres perfecto para ofrecer como servicio un grupo de personas que pertenece al cluster concreto que te interesa para promocionar tu app.

Exactitud de los insights

Pero volvamos a la pregunta. ¿Es esto siempre 100% exacto? Por supuesto que no. Habría que garantizar que ese patrón de búsqueda de vídeos en Youtube, ese patrón de búsqueda de URLs o ese patrón de búsqueda de términos en un buscador es correcto y está hecho por la misma persona. Y en segundo lugar, habría que asegurar que ese insight asociado a ese cluster de URLs es correcto, y no solo una mera coincidencia.

Supongamos que una persona visita 75 URLs que están incluidas en el cluster de navegación de personas que tienen y hacen uso de Grindr. La primera pregunta que hay que hacerse es si el cluster de direcciones ha sido hecho correctamente por el Data Scientist, ya que una dirección como www.gooogle.com seguramente está en todos los cluster posibles y debe ser eliminada de cualquier cluster. Es decir, la relevancia de las URLs que están en ese cluster es importante.

La segunda consideración que hay que tener presente es si el cluster de personas de KaCla tiene 1.000 URLs  o 150 URLs, o si el número de estas URLs en el total de navegación es grande o pequeño, lo que marcará lo marcado que es el insight que se puede generar. Un cluster muy marcado es aquel en el que con pocos datos implica directamente el insight, lo que significaría que las personas que tienen ese insight mantienen un comportamiento muy similar, mientras que si el cluster tiene muchas direcciones de navegación, es decir, un grado de dispersión alto, implicaría que hay múltiples comportamientos entre las personas con ese insight.

Esto es no es más que la generación de conjuntos definidos por un centro y un grado de dispersión que se utilizan en algoritmos de clasificación. Si tenemos clusters solapados porque son muy dispersos o comparten elementos, tendremos un mal conjunto de datos para generar el insight.

Al final, el trabajo de un buen Data Scientist es precisamente todo esto, generar insights correctos a partir de datos correctos, pero por desgracia no siempre se encuentran hechos de manera correcta. Esto, que podría ser un gran problema, normalmente no lo es, ya que si un insight aporta una mejora de un 5% en el objetivo de negocio, a pesar de haber generado de forma inexacta el insight para el 80% de los individuos, supondrá una mejora sobre no utilizar ningún insight. Esto fomenta que se utilicen en procesos de negocio algoritmos que generan insights que distan mucho de ser perfectos. No importa. Son mejores que nada.

Mi caso con Youtube

El ejemplo concreto que me motivó a escribir todo este artículo - perdón por la extensión - fue el que me llegara en un vídeo de Youtube el anuncio de una nueva app de contactos gay. Y no entendía por qué había generado ese anuncio para mí. Dejando atrás que pudiera ser que esté usando Análitica Predictiva sobre mi futuro, y dándome información que yo desconozco hoy en día, lo cierto es que me quedé a reflexionar sobre cuáles habrían sido los motivos por lo que me hubieran mostrado ese anuncio a mí.

Podría ser que el anunciante hubiera elegido clusters muy básico "Hombres entre 20 y 50 años en Madrid". Esto podría ser un motivo, pero seguro que no hubiera elegido yo ese cluster para gastar mi dinero en una campaña de anuncios. Si yo tuviera que elegir cómo gastar mi dinero en una campaña de promoción de mi app para contactos gay, probablemente hubiera buscado "Hombres *gay* de entre 20 y 50 años", por ejemplo.

Figura 3: Anuncio dirigido a mí en Youtube

Por supuesto, para generar ese cluster necesitas tener todos los insights. Necesitas saber que es hombre, entre 20 y 50 años y que es gay. Suponiendo que este fuera el objetivo que buscaba el anunciante, y teniendo claro que una empresa como Google no tiene un insight como el de "gay" entre la lista de los clusters objetivos que comercializa, ¿cómo podría obtenerse algo similar? Pues buscando el cluster de navegación de o visualización de vídeos que podrían indicar que una persona tuviera ese insight.

Como hemos visto antes, podríamos generar un cluster de navegación en Internet, búsquedas de vídeos de Youtube y búsqueda de términos en Internet a partir de una app con un insight muy marcado (nuestra app de contactos gay). A partir de esos datos, algún Data Scientist podría llegar a la conclusión, correcta o no, de que las personas "gay" en sus plataformas ven determinados conjuntos de vídeos en Internet. Unos concretos, o una mezcla de ellos.

Así, en mi caso, donde Mi Survivor de 6 años me quita el smartphone para ver vídeos en Youtube desde que tenía 3 o 4 años (ella quiere ser "Youtuber") para ver vídeos de juguetes, los contenidos que se visualizan en mi terminal son muy "mezclados". Por un lado vídeos de hacking, por otro vídeos musicales de Despistaos o 30 Seconds to Mars, y por otro vídeos de niños y niñas jugando. Lo que ha generado una mezcla de vídeos visualizados un tanto extraña en mi historial que Google seguro que tiene bien guardados en forma de insights de algún tipo. Algo como "videos de niños", "vídeos musicales de rock", o "vídeos de hacking".

Figura 4: Recomendaciones en mi canal Youtube

Y puede que alguna combinación de esos vídeos de Jared Leto mezclados con vídeos de juguetes en ruso - Mi Survivor ve los vídeos muchas veces sin volumen porque no le dejo que lo tenga alto y el idioma le da un poco igual; esto ha hecho que se haya hecho fan de la Pantera Rosa -, ha lanzado algún insight definido por algún Data Scientist que estaba diseñando la campaña de Data-Driven Advertising que ha llevado esta publicidad hasta mí. ¿Por qué? Pues porque alguien no ha tenido en cuenta que un terminal móvil a veces es compartido entre papaete y su nenita.

¿Y todo esto para qué?

Como os podéis imaginar, los Data Scientist profesionales hacen bien su trabajo y ponen todo el cuidado en la generación de esos insights. Espero que me perdonen por haber dejado de lado los términos matemáticos de la profesión para intentar llegar a más personas con el texto. Sin embargo, no siempre tenemos la garantía de que la generación de insight se haya hecho correctamente en todos los casos, y esto es muy importante porque nuestra información se guarda en insights - al igual que en datos en bruto - en muchos sitios de Internet.

También hay que tener en cuenta que, como hemos dicho con anterioridad, el impacto de una campaña con un insight regular es mucho mayor que el impacto de una campaña no basada en insights, lo que fomenta que se premie más los aciertos que se penalicen los falsos positivos, así que muchos sistemas están en funcionamiento aún sabiendo que no son ni de lejos perfectos.

Como hemos visto pueden suceder múltiples situaciones en las que un insight sea asociada a una persona sin ser correcta, como todos los caso que he citado. Os los resumo aquí:
- Inexactitud en la captura del dato en bruto: Como en los ejemplos de ubicación basada en GPS. 
- Inexactitud en la atribución de quién genera el dato en bruto: Como en el caso de navegación por Youtube en la que yo comparto el terminal con mi hija. 
- Inexactitud en la interpretación de los datos: Como en el caso del hombre que cambia el café en la máquina expendedora de la cárcel. 
- Inexactitud en la generación del cluster: Como en el ejemplo de tener un cluster de insights poco marcados o con datos poco relevantes. 
- Inexactitud en la asignación de un cluster a una persona: Como en el caso de asignar un insight a una persona cuando la relevancia de los datos del cluster es muy pequeña por culpa del caso anterior.
Estos son algunos problemas que puede tener la generación de insights pero el modelo funciona. O al menos lo hace desde el punto de vista de negocio y empresarial. Y por eso las empresas lo utilizan masivamente. Pero... ¿y desde el punto de vista personal? ¿Qué pasa si una persona recibe una asignación de un insight que no tiene?

Pues a día de hoy no nos preocupamos mucho, pero si resulta que esos insights se almacenaran en una base de datos no controlada, o en un país donde la regulación de datos no es tan severa y restrictiva como la que tenemos en la Unión Europea, y el día de mañana esa base de datos se hiciera pública, podría suponer un daño para la persona. Por supuesto, mientras que el insight esté mal generado, también debería sufrir las molestias de ser tratado por lo que no es en sistemas que hagan uso de esos insights erróneos, que pueden ir desde Contact Centers, hasta aplicaciones de negocio como las que dan las valoraciones crediticias, o las que predicen cual Minority Report cualquier comportamiento.

A día de hoy no tenemos mucha regulación sobre la generación de insights erróneos sobre personas, pero estoy convencido de que este es un debate que vamos a tener que acelerar pues a medida que los sistemas de Big Data e Inteligencia Artificial se meten en nuestras tecnologías, más situaciones peligrosas, ofensivas o discriminatorias vamos a enfrentarnos por simplemente haber calculado imprecisamente un insight.

Saludos Malignos!

1 comentario:

  1. Jajaja, cierra sesión en la cuenta de google! Me acuerdo de una tarde dejarle el PC a prima peque y se pasó toda la tarde mirando videos de bebes, juguetes de bebes, etc. Anuncios de tik-tok a tutiplen, etc.

    No te exagero que me recomendo vídeos y anuncios por el estilo durante cerca de medio año.
    Bastate estúpido el algoritmo, una cuenta con más de 6000 vídeos sobre las misma temáticas, le metes 40 de otra temática y les dan prioridad a esos.

    De verdad que no entiendo la publicidad. Me abré comido millones de euros en publicidad. Y me abré gastado 10 euros en toda mi vida motivado por la publicidad.

    No sé como renta esto.

    ResponderEliminar