spinner

Private Set Intersection: Cruzando datos a ciegas

La privacidad de los datos es una de las principales preocupaciones cuando hablamos de tratamiento de datos e inteligencia artificial, por lo que están apareciendo una serie de tecnologías que nos ayudan a explotar los datos sin poder verlos.

Si tuviésemos que dar un nombre a la última época de la tecnología, probablemente sería la “era de los datos”. Se evalúa a muchas empresas por su capacidad para obtener y explotar datos. Hay un afán por exprimir cada registro y poder obtener la ansiada ventaja competitiva. Pero con el estallido de la explotación de datos también llegan las limitaciones, la legislación y la conciencia del respeto a los clientes y usuarios.

Las nuevas tecnologías de Inteligencia Artificial no nos ayudan a reducir esta necesidad. Lejos de reducir la cantidad de datos necesarios, tecnologías como el Deep Learning requieren de una gran cantidad de datos. Muchas veces esta cantidad de datos es mayor que la cantidad que una organización posee y, por ello, necesita obtener más datos del exterior. Esto lleva a que sea necesario explotar datos de forma conjunta entre organizaciones, pero respetando el marco de trabajo ético y legal que hemos dibujado.

En este contexto aparecen escenarios que requieren de herramientas especializadas, y es aquí donde aparecen las denominadas PET’s (Privacy Enhancing Technologies). Estas tecnologías están diseñadas para la explotación de datos “a ciegas”. Es decir, para poder explotar datos sin verlos en claro, manipulando algún tipo de abstracción, forma cifrada o acceso remoto, pero evitando acceder a los datos en claro.

Ya hemos hablado de alguna de estas tecnologías, como el Aprendizaje Federado, en publicaciones anteriores.

Sin embargo, el Aprendizaje Federado está orientado al entrenamiento de un modelo de inteligencia artificial, pero existen casos donde no es necesario utilizar un modelo de este tipo. A veces, o bien únicamente queremos cruzar datos, o bien este es un paso inicial para filtrar los datos a explotar mediante otra aproximación más compleja.
En este caso trataremos la técnica PSI (Private Set Intersection), una de las tecnologías dentro de las citadas PETs.

PSI es una técnica que permite conocer qué elementos tienen dos o más conjuntos en común, sin revelar los elementos originales. En realidad, técnicamente, sin revelar ninguna otra información. PSI está basada en otra PET, la Computación Multiparte (MPC).

Pongamos un ejemplo para darle forma. La aproximación más sencilla de implementar PSI, y quizás la menos ortodoxa, es la que se denomina “server-aided”, que se ayuda de un servidor externo. En este caso, supongamos que tenemos a Alberto y a Beatriz, cada uno con un conjunto de datos, que quieren conocer cuales tienen en común, sin revelar ninguna otra información. Para ello se van a ayudar de Carlos, del que no se fían tampoco.

  • Alberto y Beatriz acuerdan un número aleatorio, que hace de semilla de una función de «hash», pero no lo comparten con Carlos.
  • Alberto y Beatriz obtienen, por separado, los hashes de los registros de sus respectivos conjuntos, y se los envían a Carlos.
  • Carlos puede ver qué «hashes» están repetidos, pero no puede conocer los datos originales al desconocer la semilla de la función de hash.
  • Carlos informa a Alberto y a Beatriz de qué registros comparten.
  • Alberto y Beatriz pueden saber cuales son los registros originales, al tener los pares registro-«hash» almacenados.

Por supuesto, este enfoque tiene debilidades, como que Carlos no sea honesto y su respuesta sea errónea a propósito, o que Carlos pueda saber el número de elementos comunes aunque no sepa cuales, y algunas otras. Muchas de estas debilidades ya tienen sus contramedidas, como que Alberto y Beatriz introduzcan elementos comunes adicionales que deben aparecer en el resultado como indicadores de que Carlos es honesto, o variar el número de estos para que Carlos no pueda saber cuántos elementos son únicamente indicadores y cuántos son elementos comunes de verdad. Durante el resto de este artículo obviaremos este tipo de detalles, aunque nos encantaría que nos escribieseis y poder conversar sobre estos temas en detalle.

Esta es la forma más sencilla de mostrar PSI usando aproximaciones tradicionales y sin entrar en complejidades criptográficas. Por sencillez hemos elegido este ejemplo, pero existen otros enfoques, de mayor complejidad criptográfica, donde Alberto y Beatriz pueden obtener el mismo resultado sin ayuda de terceros, como Carlos.

Habiendo explicado el caso básico de PSI, podemos comenzar a hablar de sus distintos sabores y los diferentes casos de uso.

Sabores y casos de uso

El enfoque de PSI se puede aplicar en diferentes entornos, donde la información que se quiere obtener es ligeramente diferente, dando lugar a diferentes casos de uso. Los podemos dividir en escenarios donde dos o más entes quieren conocer cierta información sobre elementos comunes, sin revelar ninguna otra información. Algunos de los principales escenarios son:

  • Quieren saber qué elementos tienen en común.
  • Quieren saber cuántos elementos tienen en común.
  • Quieren obtener estadísticas de los elementos agregados.
  • Quieren saber qué elementos tienen en común y completar conocimiento sobre ellos.
  • Quieren saber si la cardinalidad del conjunto intersección supera cierto umbral.
  • Quiere obtener una lista de los elementos que aparecen en más de X conjuntos.

Es de destacar que la tecnología aún está en un estado incipiente, y las principales herramientas sólo permiten los casos más sencillos, como el conocer qué elementos se tienen en común. Las funcionalidades más avanzadas se basan en incorporar capas de valor añadido a esta funcionalidad más básica.

Qué elementos tienen en común

Este es el ejemplo inicial, donde dos o más propietarios de datos quieren conocer qué elementos tienen en común.
El caso típico es saber qué contactos de una agenda tienen dos personas en común, sin que cada uno revele sus contactos a la otra persona. El caso de este tipo más común sucede cuando un usuario se registra en una red social y quiere saber cuáles de sus contactos ya pertenecen a la red social, pero sin revelar su agenda.
Otro ejemplo de este caso lo realiza Apple con iCloud, para evitar cierto tipo de imágenes en sus servidores. Utiliza una base de datos conocida de imágenes o adecuada, obtiene sus hashes y los compara con los «hashes» de las imágenes de sus usuarios. Si hay coincidencias sabe que ese usuario tiene imágenes indebidas.

Esta técnica también se puede utilizar como un preprocesado de datos, de forma que sólo se procesen los registros comunes de interés y no el dataset entero.

Cuántos elementos tienen en común

En este caso únicamente se quiere conocer el número de elementos en común, sin saber cuáles son en concreto. Es una información mucho más sencilla, aunque muy complicada de obtener.
Un posible caso de uso, con las salvaguardas jurídicas adecuadas, podría ser saber qué clientes tienen en común dos empresas por segmento de clientes. Así, podrían saber que en el segmento de 25-35 años tienen un 23% de coincidencia. Esto, sin revelar información personal, permite conocer mejor a su segmentación y lanzar campañas adecuadas. Por ejemplo, si un alto porcentaje de clientes de una empresa de telecomunicaciones también son clientes de una empresa de alarmas con videocámara, la empresa de telecomunicaciones les puede ofrecer un plan de datos más adecuado a todo ese segmento. Todo ello mediante campañas por segmentación y sin violar la intimidad de cada cliente.

Saber si la cardinalidad del conjunto intersección supera cierto umbral

Este caso es un refinamiento del anterior. Ni siquiera se quiere conocer el número de elementos comunes, si no únicamente si este número es mayor que un valor dado.

Por ejemplo, dos empresas hacen una segmentación de clientes pero, antes de cruzarlos, quieren saber el número de clientes en común. Entonces fijan un umbral, pongamos que 1.000. Así, si el número de clientes en común es demasiado pequeño, y pueden ser identificables, no realizan ningún paso posterior. Lo que obtienen en este es únicamente es un sí o no.

Obtener estadísticas de los elementos agregados

Volviendo a resultados un poco más completos, quizás queramos obtener una métrica agregada de todas las coincidencias.
Por ejemplo, queremos saber el total de dinero que adeudan en conjunto a un ayuntamiento en multas todas las personas cuyo coche es de una determinada marca. Así, se podrían cruzar datos del registro de tráfico y del ayuntamiento y obtener el total de dinero adeudado, sin revelar ninguna otra información.

Saber qué elementos tienen en común y completar conocimiento sobre ellos

En este escenario los datos están divididos, pero existe algún tipo de identificador común, y el objetivo es obtener estadísticas agregadas.

Un caso de ejemplo es buscar la correlación entre asistencia al gimnasio y niveles de la tensión arterial. Una red de gimnasios pueden tener datos de asistencia y una red de asistencia médica puede tener datos de tensión arterial. Usando un identificador común «hasheado» y eliminándolo del resultado final, se puede obtener un conjunto de datos final incluyendo ambas,  la información de asistencia al gimnasio y información médica de la población, sin saber a qué personas pertenece cada registro.
Con este conjunto de datos se pueden obtener estadísticas sobre el conjunto de la población, sin obtener las de la persona. También es una de las aproximaciones a la técnica aprendizaje federado vertical, al obtenerse un dataset conjunto de diferentes características.

Por supuesto, hay muchos matices a tener en cuenta, como que los datos a cruzar no sean de tan pocas personas que se las pueda identificar, o que habría que tener cuidado con datos extremos (por ejemplo, si sólo una o dos personas van todos los días al gimnasio). No obstante, son problemas comunes a otros trabajos de ciencia de datos.

Sacar una lista final de elementos que aparezcan en más de X datasets

Por último, dentro de esta lista de casos, se puede dar la circunstancia de que queramos conocer si un elemento está en más de una cantidad de conjuntos.

Por ejemplo, podemos tener conjuntos de personas que han pasado por determinados lugares, un conjunto por lugar, donde se ha detectado covid, y queremos saber si una persona ha pasado por más de 5 de estos lugares. El resultado obtenido es únicamente un sí o un no, sin revelar otra información.

Conclusiones

Como hemos podido ver, algo tan sencillo como obtener los elementos comunes de dos conjuntos, o características suyas, puede aportar valor en diferentes casos. La coyuntura actual de explotación de datos puede hacer difícil extraer valor de cruzar datos de diferentes fuentes, pero PSI, de forma aislada o en conjunto con otras PETs, puede ser una habilitadora de estos casos de uso.

Si te ha parecido interesante esta publicación y tienes dudas que quieres resolver, o alguno de los casos de uso te son familiares, por favor, escríbenos a hablemos.es@bbvanexttechnologies.com. Estaríamos encantados de contrastar ideas y enfrentarnos contigo a nuevos retos.

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de BBVA Next Technologies.

¿Quieres saber que más cosas hacemos en BBVA Next Technologies?