Graph Neural Networks (GNNs) en análisis de datos complejos

  • Artículos
  • Data Science & IA

Introducción 

La ciencia de datos, en particular el área del Machine Learning (ML) en las últimas décadas ha avanzado a pasos agigantados y, este progreso se debe en gran medida a la aparición de algoritmos más complejos y sofisticados para una amplia variedad de aplicaciones. Uno de los campos que más ha evolucionado es el de los sistemas de recomendación, que hasta ahora se ha basado en técnicas más tradicionales como recomendaciones populares y filtros colaborativos. Sin embargo, se han integrado gradualmente técnicas más avanzadas para mejorar la personalización y la relevancia de las recomendaciones como lo son las Graph Neural Networks (GNNs), que son un tipo de redes neuronales diseñadas para trabajar con datos estructurados en forma de grafos. 

Los modelos GNNs han revolucionado los sistemas de recomendación al permitir una mejor comprensión de las relaciones complejas entre usuarios e ítems, permitiendo tener recomendaciones más precisas y relevantes para los usuarios. En esta entrada del blog abordaremos el concepto de grafos, los tipos de modelos que hay, la arquitectura de las GNNs y una breve comparación entre GNNs y sistemas de recomendación tradicionales. 

Grafos  

Los grafos son estructuras matemáticas utilizadas para modelar relaciones entre objetos/entidades (West, 2018). Se encuentran compuestos por un conjunto de nodos (también llamados vértices) y un conjunto de aristas (también llamados enlaces o ejes) que permiten conectar pares de nodos (Figura 1).  A su vez, los grafos pueden ser: homogéneos y heterogéneos (la principal diferencia es que los grafos homogéneos contienen un sólo tipo de nodo y un sólo tipo de eje, mientras que el heterogéneo puede contener múltiples), así como dirigidos y no dirigidos (la diferencia en este caso es que los grafos dirigidos poseen una estructura donde las conexiones entre los nodos presentan una dirección específica, mientras que los no dirigidos no tienen dirección específica), lo cual permite identificar el tipo de algoritmo o técnicas a utilizar, así como interpretar en mejor medida las relaciones entre los nodos (Figura 1). 

Figura 1: Izquierda: representación de un grafo de una red social y sus elementos (Ribeiro Neto, J.A., 2023). Derecha: tipos de grafos que hay (Data Science Research Perú, 2022). 

Con el paso del tiempo la ciencia de datos ha enfrentado diferentes desafíos, entre ellos un incremento significativo en la cantidad y complejidad de los datos, particularmente en situación donde se tienen muchas conexiones entre diferentes elementos. En este sentido, los grafos han surgido como herramientas claves para dar solución a este problema, ya que permiten modelar estas interacciones complejas. No obstante, el valor real que aportan los grafos surge cuando se aplican técnicas avanzadas para obtener patrones y conocimiento sobre las estructuras, y es aquí donde los modelos de GNN juegan un papel importante, pues ofrecen una poderosa metodología para interpretar las complejas conexiones dentro de un grafo, así como el identificar comunidades, predecir comportamientos y optimizar procesos en diferentes ámbitos, lo cual permite explotar mucho más el potencial que tienen los datos. 

Los modelos GNN han adquirido una gran popularidad en la actualidad, pues empresas líderes en tecnología como Google (que utiliza grafos para mejorar su algoritmo de búsqueda), Meta (que utiliza grafos para modelar y analizar las relaciones entre usuarios, amigos y el contenido que se visualiza), Amazon (que utiliza grafos para recomendaciones de productos) y Netflix (utiliza grafos para personalizar la recomendación de películas/series a los usuarios), ya cuentan con grafos dentro de sus operaciones. Este reconocimiento, se podría decir, que se debe en gran medida a la capacidad que tienen las GNNs de capturar relaciones complejas entre nodos en un grafo, así como a la evolución que han tenido las librerías y arquitecturas para abordar diversas problemáticas que es posible modelar con otras técnicas. Entre las tareas que se pueden realizar con grafos están la clasificación de nodos para entender el papel de cada nodo en una red, la detección de comunidades para identificar grupos de usuarios con intereses similares (también llamada clustering y es muy común en entidades financieras para detección de fraudes), la recomendación personalizada para mejorar la satisfacción del cliente o sistemas de recomendación (también conocido como predicción de enlaces, un ejemplo se puede visualizar en la Figura 3), y la optimización de rutas para conectar diferentes puntos. Estas capacidades permiten a las empresas tomar decisiones con más información, ofrecer servicios más personalizados y mejorar la eficiencia en sus operaciones, consolidando el valor de las GNNs en el análisis de datos complejos. Para comprender un poco mejor las tareas que permiten los grafos ver la Figura 2. 

Figura 2: Tareas permitidas en los modelos de GNN (Awan, A.A, 2022). 

Figura 3: Ejemplo de una aplicación de GNNs para una tarea de predicción de enlaces (tomado de Falabella.com). Izquierda: producto seleccionado por el cliente. Derecha: nuevas recomendaciones que también podría preferir el cliente. 

 

Arquitectura de los modelos GNN 

La arquitectura de un modelo GNN tiene su base en la representación de las entidades o nodos y sus relaciones. Inicialmente, suelen representarse con un vector de características relacionado con cada eje del modelo, cuando este existe. Desde aquí se inicia la parte más fundamental en la arquitectura de un GNN, la propagación de mensajes entre nodos, donde cada uno interactúa con sus pares intercambiando información con sus vecinos en cada capa de la red. De esta manera, la representación de cada nodo se va actualizando conforme sus características se van agregando con las de otros. 

A medida que se avanza por cada una de las capas del modelo, cada nueva representación de los nodos se va transformando o combinando para generar nuevas representaciones de nodos. Esto permite que la información de nodos más alejados en el grafo se integre, dejando de lado los detalles locales y capturando patrones más amplios y globales. 

Cada capa convolucional en el grafo no solo transforma las representaciones de los nodos, sino que también aplica una función de activación, que introduce no linealidades en el modelo y permite aprender características de forma más detallada, profunda y compleja. Este proceso se itera a través de varias capas, refinando cada vez más las representaciones de los nodos (Wu, Z. et al., 2019). 

Finalmente, se encuentran las capas convolucionales de salida del modelo, las cuales permiten generar predicciones diversas, sea en función de los nodos, los ejes o sobre el grafo en su totalidad, de acuerdo con las necesidades y contexto específico que se esté tratando. En este sentido, los modelos GNN son bastante flexibles y robustos, ya que presentan menos restricciones que los modelos CNN. (ver Figura 4). 

Figura 4: Arquitectura general de los modelos de GNN (Wu, Z. et al., 2019). 

Tipos de modelos de GNN 

Existen varios modelos de GNN, cuya principal diferencia radica en la forma de utilizar la información del grafo. Algunos modelos como LightGCN sólo consideran la topología del grafo, es decir, solo se enfocan en las conexiones existentes entre nodos. Este tipo de modelo es computacionalmente eficiente, menos complejo y más escalable. Por otro lado, algunos modelos consideran tanto la topología del grafo como las características de los nodos o de los ejes. Los más utilizados son GCN (Graph Convolutional Network), GraphSAGE (Graph Sample and Aggregate) y GAT (Graph Attention Networks), que pueden generar representaciones más ricas y contextuales. Estos modelos tienen la ventaja de poder resolver problemas complejos integrando diferentes fuentes de datos, y son más flexibles y adaptables a diferentes tipos de grafos y tareas. Por último, pero no menos importante, modelos como GIN (Graph Isomorphism Network) y GATv2 (que es una versión mejorada del modelo GAT) pueden distinguir entre diferentes estructuras en un grafo y utilizar técnicas de atención para determinar qué conexiones y propiedades son más importantes. 

Figura 5: Izquierda: Ejemplo del funcionamiento de un modelo LightGCN (Nastran, J. et al., 2022). Derecha: Ejemplo del funcionamiento de un modelo GraphSAGE (Ahmed, F. et al., 2021). 

 

GNNs y sistemas de recomendación tradicionales 

En la ciencia de datos existen diferentes estrategias para crear sistemas de recomendación siendo popularity (recomendación basada en popularidad), content-based (recomendación basada en contenido) y colaborative (filtros colaborativos) algunas de las más reconocidas. En este caso, nos enfocaremos en la metodología de filtros colaborativos, comparándola y contrastándola con los modelos basados en GNNs para entender sus diferencias y ventajas en el contexto de los sistemas de recomendación. 

Los sistemas de recomendación basados en filtros colaborativos han sido pioneros y ampliamente utilizados en la personalización de contenidos, ya que aprovechan las interacciones históricas para predecir las preferencias futuras. Este enfoque tiene su fundamento en la premisa de que, si dos personas han tenido preferencias muy similares en el pasado, es muy probable que también puedan coincidir en el futuro. Existen dos tipos de filtros colaborativos: basado en usuarios, donde las recomendaciones están sujetas a las preferencias de usuarios similares y basado en ítems, donde las recomendaciones están sujetas a interacciones previas del usuario y se sugieren ítems similares. Este tipo de modelos cuentan con muchas ventajas como: simplicidad en la implementación, personalización de las recomendaciones, versatilidad en los campos de aplicación, entre otras. Sin embargo, también enfrenta desafíos como el problema del cold start (este problema indica que el sistema de recomendación no funciona bien cuando hay pocos datos disponibles sobre un usuario o un ítem nuevo), falta de diversidad y novedad en las recomendaciones (los filtros colaborativos tienden a recomendar ítems que son populares entre los usuarios con preferencias similares, lo que puede llevar a una falta de diversidad en las recomendaciones) y problemas para encontrar patrones significativos en la matriz esparza (en los sistemas de recomendación es muy común tener que trabajar con una matriz esparza, es decir una matriz con muchos ceros y pocos unos, ya que es muy probable que los usuarios interactúen con tan sólo un pequeño conjunto de ítems y no con todo el conjunto disponible de ítems). 

Por otro lado, los sistemas de recomendación basados en grafos han ganado una importancia significativa en la actualidad por su capacidad para modelar relaciones complejas y estructurales entre nodos (entidades). Estos sistemas utilizan grafos para representar y analizar interacciones entre usuarios e ítems, y entre los mismos ítems, lo que permite obtener relaciones más profundas y relevantes del entorno. Las implementaciones de GNNs como GCN, graphSAGE y GAT, han revolucionado la forma en que abordamos las recomendaciones al aprender representaciones contextuales ricas de los nodos en un grafo. Esta capacidad de integrar información contextual y estructural hace que los sistemas basados en grafos sean muy eficaces para superar problemas como el cold start, el no encontrar patrones significativos en la matriz esparza y el proporcionar recomendaciones más personalizadas, precisas y novedosas. En un mundo de datos cada vez más complejos e interacciones multidimensionales, la flexibilidad y la profundidad de los grafos son una pieza clave que permite a las empresas aumentar la personalización y la relevancia de las recomendaciones a niveles que los enfoques tradicionales no pueden igualar. 

Conclusiones 

Los modelos de GNN se han convertido en importantes herramientas analíticas a medida que las empresas necesitan cada vez más generar recomendaciones que comprendan las complejas relaciones entre los datos. Estos modelos se destacan no solo por su capacidad para reconocer patrones en datos complejos, sino también por su precisión, flexibilidad y robustez, lo que permite a las empresas brindar experiencias altamente personalizadas a sus clientes y de este modo aumentar la satisfacción y lealtad. 

Este tipo de modelos también ofrece una manera ágil en la generación de información e insights, en un mundo globalizado que fluye constantemente entre grandes volúmenes de datos y la necesidad de tener resultados rápidos y precisos. Adicionalmente, su habilidad para transformar estas interrelaciones complejas entre nodos y aristas entre capas genera una ventaja para estos modelos en aplicaciones tan diversas como el análisis de redes sociales, la detección del fraude, la gestión de clientes o la recomendación de productos en el campo del retail, por ejemplo. 

La escalabilidad es otra de las ventajas que los modelos GNN presentan en comparación a otros modelos menos robustos, permitiendo el ajuste a datos que provienen de redes locales hasta redes generadas a partir de grandes volúmenes de datos. 

Finalmente, es importante destacar que, como muchas de las herramientas que han surgido en los últimos tiempos, las comunidades científicas y estadísticas se encuentran consolidando constantemente avances y cambios significativos relacionados con estas técnicas, con el objetivo de incrementar su precisión y eficiencia al momento de realizar predicciones o establecer recomendaciones. 

 

Referencias 

  1. Ahmed, F. et al. (2021) Illustration of sampling and aggregation in graphsage method. A sample… | download scientific diagram. https://www.researchgate.net/figure/Illustration-of-sampling-and-aggregation-in-GraphSAGE-method-A-sample-of-neighboring_fig1_351575091. 
  2. Awan, A.A. (2022) A comprehensive introduction to Graph Neural Networks (GNNS), DataCamp. https://www.datacamp.com/tutorial/comprehensive-introduction-graph-neural-networks-gnns-tutorial. 
  3. Blumenfeld, Z. (2023) Graph machine learning: An overview, Medium. https://towardsdatascience.com/graph-machine-learning-an-overview-c996e53fab90. 
  4. Data Science Research Perú (2022) Grafos: Encontrando Sentido en el Planeta, Grafos: encontrando sentido en el planeta. https://datasciencepe.substack.com/p/grafos-encontrando-sentido-en-el. 
  5. Nastran, J. et al. (2022) Better Recommender Systems with lightgcn, Medium. https://medium.com/@jn2279/better-recommender-systems-with-lightgcn-a0e764af14f9 
  6. Ribeiro Neto, J.A. (2023) Big data en las redes sociales, Medium. https://medium.com/xnewdata/big-data-en-las-redes-sociales-367d87abcfb3. 
  7. West, D.B. (2018). Introduction to graph theory. 4th ed. Pearson. 
  8. Wu, Z. et al. (2019) A comprehensive survey on Graph Neural Networks, arXiv.org. https://arxiv.org/abs/1901.00596.