# Redes Neuronales Gráficas

Las redes neuronales gráficas (GNNs, por sus siglas en inglés) han emergido como una poderosa herramienta dentro del campo de la inteligencia artificial, especialmente diseñadas para trabajar con datos estructurados como lo son los grafos, a diferencia de las redes neuronales convencionales, que operan sobre datos Euclidianos como imágenes o secuencias de texto, las GNNs permiten procesar relaciones complejas entre objetos que pueden ser representados de manera más natural en forma de grafos, como en las redes sociales, moléculas químicas o sistemas de recomendación, este tipo de redes lo que tratan de hacer es aprovechar la estructura inherente de los grafos, que son ampliamente utilizados en muchas disciplinas, para obtener representaciones de nodos y relaciones que mejoren tareas como la clasificación, predicción de enlaces, y la recomendación personalizada.

## Qué son las Redes Neuronales Gráficas

Las Redes Neuronales Gráficas (GNNs) son un tipo de modelo de aprendizaje profundo diseñado para trabajar directamente con datos estructurados como grafos. Un grafo es una colección de nodos (vértices) y aristas (conexiones) entre ellos, y las GNNs permiten procesar estos datos al realizar operaciones iterativas en los nodos del grafo, propiciando la agregación de información de los nodos vecinos y actualizando las representaciones de los nodos a través de múltiples iteraciones.
El proceso de aprendizaje de una GNN se basa en un concepto clave que es el paso de mensajes entre nodos, donde cada nodo manda información a sus vecinos y luego recibe información de ellos para actualizar su propia representación, este proceso es repetido durante varias iteraciones, lo que permite que cada nodo obtenga información no solo de sus vecinos inmediatos, sino también de nodos más distantes, enriqueciendo la representación.

## Características Importantes de las GNNs

* Iteratividad y Agregación de Información: Realizaa iteraciones de transmisión de mensajes, donde los nodos agregan la información de sus vecinos a lo largo de múltiples pasos, cada iteración permite que un nodo obtenga información de su vecindad de un salto, dos saltos, y así sucesivamente, dependiendo de cuántas iteraciones se realicen.
* Invarianza ante Permutaciones: Estas redes se consideran inherentemente invariables ante permutaciones de los nodos, lo que significa que la red es capaz de manejar grafos en los que el orden de los nodos no está predefinido, lo que las hace muy flexibles y adecuadas para muchas aplicaciones.
* Capacidad para Capturar Información Estructural y de Características: Además de la información estructural del grafo (por ejemplo, los grados de los nodos o la conectividad), también capturan características adicionales de los nodos y aristas. Esto permite que las GNNs manejen una amplia variedad de datos, desde información numérica hasta características más complejas como propiedades químicas o características de usuario en una red social.

## Funcionamiento de las Redes Neuronales Gráficas

El funcionamiento básico de una GNN se puede entender en términos de la transmisión de mensajes entre nodos. En cada iteración del algoritmo, cada nodo agrega información de sus vecinos inmediatos (de acuerdo con su vecindad) y actualiza su representación interna, llamada *incrustación* (embedding). Esta operación de actualización se puede formular como una función de agregación y una función de actualización, ambas diferenciables y generalmente implementadas mediante redes neuronales.
Formalmente, en cada iteración k, el vector de características h$_u$$^k$ del nodo u se actualiza a partir de un conjunto de mensajes provenientes de sus nodos vecinos. Estos mensajes son agregados y luego se combinan con la representación del nodo en la iteración anterior para obtener la nueva representación del nodo. De esta manera, el nodo recopila información no solo de sus vecinos directos, sino también de nodos más distantes a medida que aumentan las iteraciones.
En cuanto al tipo de información que las GNNs capturan, existen dos tipos principales:
* Información Estructural: Después de varias iteraciones, las incrustaciones de los nodos contienen detalles estructurales del grafo, como los grados de los nodos o la conectividad dentro de una vecindad específica. Esta información puede ser útil para tareas como la clasificación de nodos o la detección de patrones en grafos, como los anillos de benceno en moléculas.
* Información Basada en Características: Además de la información estructural, las GNNs también capturan características locales de los nodos dentro de su vecindad, lo cual es útil para tareas como la predicción de enlaces o la clasificación de nodos, dicho comportamiento es similar al de los núcleos de convolución en redes neuronales convolucionales (CNNs), pero en lugar de trabajar sobre imágenes, las GNNs operan sobre grafos, agregando información de vecindades locales.

## Bibliografía

* Hamilton, William L. (2020). Graph Representation Learning. Synthesis Lectures on Artificial Intelligence and Machine Learning, Vol. 14, No. 3, Páginas 1-159.
* Negro, A. (2020). Graph-powered machine learning. Manning Publications.
* Wu, L., Zhang, P., Yu, P. S., & Pan, S. (2022). Graph neural networks: Foundations, frontiers, and applications. Springer.
* Datos: Q107750691