¿Qué es una GNN (red neuronal gráfica)?

Introducción a las GNN

Las redes neuronales gráficas (GNN) son una arquitectura de red neuronal profunda que es popular tanto en aplicaciones prácticas como en la investigación de machine learning de vanguardia. Utilizan un modelo de red neuronal para representar datos sobre entidades y sus relaciones. Son útiles para la minería de datos del mundo real, la comprensión de las redes sociales, los gráficos de conocimiento, los sistemas de recomendación y la bioinformática.

El desarrollo de las GNN se inspiró en algoritmos de deep learning como las redes neuronales convolucionales (CNN) y las redes neuronales recurrentes (RNN), pero tienen varias diferencias clave. Las CNN están diseñadas para datos que tienen una estructura en forma de cuadrícula, como los píxeles de una imagen. Cualquier píxel puede conectarse, como máximo, a otros ocho píxeles. Por el contrario, las RNN se adaptan a estructuras de secuencia en las que cada elemento puede conectarse a otros dos elementos como máximo, como una cadena de palabras en un texto. Sin embargo, en los datos estructurados en grafos, cualquier elemento puede tener una o más conexiones y puede que no haya coherencia entre el número de conexiones de un elemento concreto.

Las redes neuronales gráficas son una implementación del deep learning1, que se clasifica en cuatro categorías:

Aprendizaje basado en grafos, que aprende sobre datos de tipo grafo.

Aprendizaje basado en cuadrículas, que aprende sobre imágenes similares a datos y otros tipos de datos que pueden describirse mediante cuadrículas.

Aprendizaje basado en grupos, que aprende cómo se relaciona la información con un grupo principal. Esto resulta muy eficaz cuando se adquieren datos de un grupo como una esfera, por ejemplo, datos geológicos de distintas fuentes de toda la Tierra.

Aprendizaje basado en mallas, que aprende cómo se distribuye la información a través de una malla irregular, como analizar y predecir elementos de un modelo 3D de un objeto.

Las GNN son un área de investigación activa en inteligencia artificial, pero están bien respaldadas por bibliotecas y kits de herramientas creados en lenguajes como Python y marcos como TensorFlow y PyTorch.

¿Qué es un grafo?

Un conjunto de objetos y las conexiones entre ellos se pueden expresar como un gráfico. Los investigadores en informática desarrollaron redes neuronales para operar en estructuras de datos de grafos.

Un grafo representa las relaciones, que se denominan "edges", entre un conjunto de entidades, que se denominan "nodos". Matemáticamente, un grafo G se define como una tupla de un conjunto de nodos y vértices V, y un conjunto de edges y enlaces. E:G = (V, E). Cada edge es un par de dos vértices y representa una conexión entre ellos.

Para describir con más detalle cada nodo, edge o el grafo completo, podemos almacenar información en cada una de estas piezas del grafo.

Ilustración que muestra los vértices de un grafo y cómo están conectados por aristas Los vértices (a veces llamados nodos) de un grafo están conectados por aristas

Los grafos pueden describirse aún más asignando una direccionalidad a cada edge. Un grafo se describe como dirigido o no dirigido. Un grafo no dirigido representa una relación bidireccional. Si Rosa tiene un hermano, Juan, entonces Juan también tiene un hermano, Rosa. La relación entre Rosa y su hermano no tiene ninguna direccionalidad, simplemente los conecta a los dos. Un grafo dirigido representa relaciones que son direccionales. Si Rosa tiene un hermano mayor, Juan, entonces la relación "hermano mayor" solo va en una dirección: de Juan a Rosa, Juan no tiene un "hermano mayor".

Ilustración de un grafo no dirigido y un grafo dirigido El tipo de grafo está determinado por si las aristas tienen direccionalidad o no

Una forma de visualizar la conectividad de un grafo es a través de su matriz de adyacencia. Se trata de una representación matricial de los vértices del grafo que puede representar tanto grafos no dirigidos como dirigidos.

Un grafo dirigido y una matriz de adyacencia de números que lo representan Las aristas de un grafo dirigido se pueden representar mediante una matriz de adyacencia

La matriz de adyacencia de un grafo dirigido que se muestra indica todos los vértices y la dirección de la arista que los crea. Por ejemplo, el nodo 0 en el grafo dirigido se conecta al nodo 1, pero la inversa no es cierta debido a la direccionalidad de la conexión. En la matriz de adyacencia, [fila 0, columna 1] contiene un valor, mientras que [fila 1, columna 0] no.

Las representaciones de grafos deben tener invariancia de permutación, lo que significa que las representaciones del grafo deben producir los mismos resultados si la estructura del grafo es la misma pero el orden de los nodos es diferente. Este enfoque garantiza que la representación del grafo tenga las mismas propiedades que el propio grafo.

Redes neuronales de grafos

Las GNN suelen adoptar una arquitectura de "grafo de entrada, gráfico de salida". Esto significa que estos tipos de modelos aceptan un grafo como entrada, con información cargada en sus nodos, aristas y contexto global. Los modelos transforman progresivamente estos embeddings sin cambiar la conectividad del grafo de entrada. Los embeddings representan los nodos como embeddings de nodos y los vértices como embeddings de vértices. Estos embeddings permiten al modelo aprender qué tipos de nodos se producen y dónde en el grafo, así como los tipos y ubicaciones de las aristas.

Normalmente, el entrenamiento de una red neuronal se realiza actualizando los parámetros de la red con gradientes que se calculan en un subconjunto aleatorio de los datos de entrenamiento. Para entrenar redes de grafos, las redes neuronales de grafos para crear subgrafos que preserven las propiedades esenciales del gran grafo principal.

Las GNN utilizan un mecanismo de paso de mensajes para agregar información de los nodos vecinos, lo que les permite captar las complejas relaciones de los grafos. Un reto a la hora de modelar datos estructurados en grafos es capturar las interacciones entre los nodos. El paso de mensajes neuronal aborda este reto proporcionando un marco para modelar las dependencias e interacciones en los datos de grafos. Los nodos intercambian información con sus nodos vecinos y agregan esa información para actualizar sus propias representaciones. Este proceso de paso de mensajes es similar al de los nodos de un grafo que intercambian mensajes o señales.

Tipos de análisis de grafos

Las GNN permiten varios tipos diferentes de análisis, cada uno de los cuales proporciona conocimientos sobre diferentes elementos de los datos de los grafos.

Tareas a nivel de grafo

En una tarea a nivel de grafo, la GNN predice una propiedad de todo un grafo. Para una molécula representada como un grafo, es posible que desee predecir si se unirá a un receptor asociado con una enfermedad. Para una red social, es posible que desee predecir si es probable que estén asociados con una institución en particular, como una universidad o facultad. Este tipo de reconocimiento de patrones puede enmarcarse como una forma de clasificación de grafos porque clasifica todo el grafo.

Tareas a nivel de nodo

Las tareas a nivel de nodo se ocupan de predecir la identidad o la función de cada nodo dentro de un grafo. Por ejemplo, un problema de clasificación de nodos en un conjunto de datos de una red social podría ser predecir si es probable que un usuario tenga un interés específico en función de la conexión de su red amiga. Tener amigos que solo compartan un interés por el golf pero ningún otro interés en común es un buen indicio de que es probable que un nuevo amigo también disfrute del golf. Este tipo de características de los nodos a menudo se pueden predecir con una GNN.

Tareas a nivel de arista

El último tipo de problema de predicción en grafos es la predicción de aristas, a veces llamada predicción de enlaces.

Un ejemplo de inferencia a nivel de arista es la comprensión de escenas de imágenes. Después de identificar objetos en una imagen, los modelos de deep learning también pueden predecir la relación entre ellos. Se trata de una clasificación a nivel de arista porque los nodos representan los objetos en la imagen y la predicción indica cuáles de estos nodos comparten una arista o cuál es el valor de esta. Si desea descubrir conexiones entre entidades, puede considerar que el grafo está "totalmente conectado" y, en función de su valor predicho, podar las aristas para llegar a un grafo disperso.

Variantes y extensiones

Redes convolucionales gráficas4 (GCN): se trata de un enfoque de aprendizaje semisupervisado basado en una variante de las redes neuronales convolucionales que puede aprender y predecir a partir de datos basados en grafos. Estos modelos se escalan linealmente en el número de aristas del grafo, lo que los hace adecuados para grandes conjuntos de datos. Los modelos también aprenden la estructura del grafo local y las características de los nodos.

Autocodificadores de grafos2: estas variantes son modelos de redes neuronales entrenables de principio a fin para el aprendizaje no supervisado, el clúster y la predicción de enlaces en grafos. Por lo general, utilizan una GCN como codificador para crear embeddings y tienen un decodificador que reconstruye el grafo a partir de la representación latente aprendida.

Redes de atención grafos3 (GAT): una arquitectura de redes neuronales que opera con datos estructurados por grafos. Las GAT aprovechan un mecanismo de atención en forma de capas de autoatención para abordar las deficiencias de los métodos anteriores basados en convoluciones de grafos o sus aproximaciones. Al apilar capas en las que los nodos pueden atender a las características de sus vecindarios, un GAT permite (implícitamente) especificar diferentes pesos a diferentes nodos en un vecindario. Esto es posible sin necesidad de costosas operaciones matriciales como la inversión o sin depender de conocer la estructura del grafo por adelantado.

Representación de grafos: el aprendizaje es un área de investigación que amplía las redes neuronales de grafos como una forma de encontrar una representación significativa y potencialmente de baja dimensión de los nodos a partir de las complejas relaciones presentes en un grafo. Un ejemplo de esta extensión es GraphSage6, un proyecto de la Universidad de Stanford, que crea representaciones vectoriales de baja dimensión para nodos, lo que lo hace adecuado para trabajar con datos en los que los nodos representan datos de alta dimensión.

Arquitecturas GNN

Como muestra de cómo puede estructurarse una GNN, consideremos una red convolucional de grafos (GCN) sencilla para clasificar un grafo entero. La GCN más sencilla tiene tres capas:

Capa convolucional : esta capa realiza la convolución en cada nodo para aprender sus conexiones.

Capa de activación no lineal: esta capa aplica una función de activación como ReLU al resultado de la convolución.

Capa lineal de resultados: esta capa final suma los resultados para generar una predicción final.

En primer lugar, se realiza una convolución con cada nodo del grafo de capa de convolución. Esta capa convolucional utiliza información de características de los vecinos de cada nodo y la agrega, actualizando los pesos asociados a cada nodo. A continuación, se aplica una función de activación no lineal, como ReLU, al resultado de la capa de convolución. Para obtener la máxima precisión, una red puede utilizar varias convoluciones y capas de activación no lineales apiladas. Por último, se utiliza una capa lineal de resultados para predecir a qué clase es más probable que pertenezca un grafo.

Las GCN son conceptualmente simples, adecuadas para grafos a gran escala y fáciles de programar, pero también tienen varios inconvenientes clave. Por un lado, las GCN no son compatibles con las características de arista. Solo pueden aprender y predecir las características de los nodos o las características generales del grafo. La noción de paso de mensajes no existe con las GCN. Este problema restringe su uso solo a aquellos casos en los que toda la información requerida está presente en los nodos en lugar de existir en las aristas.

Sin embargo, una red neuronal de paso de mensajes permite representaciones de aristas5. El proceso de paso de mensajes es, aproximadamente, el siguiente. Cada nodo del grafo recibe un embedding inicial que actúa como las características de entrada iniciales del nodo. En cada iteración del paso de mensajes, el nodo agrega información de sus nodos vecinos. Esa información agregada se combina con el embedding actual del nodo mediante una función de actualización. Los embeddings actualizados se pasan a la siguiente iteración de paso de mensajes. Después de varias iteraciones adecuadas para representar la complejidad del grafo, los embeddings finales se utilizan para representar cada nodo en el grafo. Por último, las redes neuronales realizan los pasos de agregación, actualización e iteración para aprender patrones complejos en el grafo en general.

El uso del paso de mensajes permite una clasificación más sofisticada de los nodos, la clasificación de las aristas o incluso la predicción de dónde pueden aparecer las aristas en el grafo (lo que se denomina predicción de enlaces).

Aplicaciones de las GNN

Las GNN tienen muchas aplicaciones en el procesamiento del lenguaje natural (PLN). Por ejemplo, en la clasificación de documentos, las GNN se pueden utilizar para modelar las relaciones entre palabras u oraciones en documentos. Esta capacidad permite mejorar la clasificación de documentos y la recuperación de información. Las GNN pueden ayudar en las tareas de respuesta a preguntas al representar las relaciones entre las palabras de una pregunta y las respuestas de los candidatos dentro de un gráfico de conocimiento. Las GNN pueden capturar información contextual y dependencias de sentimiento en el texto, lo que mejora el análisis de sentimientos en situaciones con alta ambigüedad o relaciones de entidad muy específicas.

También tienen muchas aplicaciones en visión artificial. En las tareas de segmentación de imágenes, las GNN se pueden emplear para tareas de segmentación de imágenes a nivel de píxel modelando las relaciones entre píxeles adyacentes como un grafo. Las GNN pueden ayudar en la detección de objetos al capturar información contextual y relaciones entre objetos en imágenes. En las tareas de comprensión de escenas, las GNN se utilizan para comprender escenas complejas y generar grafos de escenas que representan las relaciones espaciales entre los objetos de una imagen.

Las GNN también son herramientas potentes en bioinformática. En el análisis de secuencias genómicas, las GNN pueden modelar relaciones entre genes o secuencias genéticas, lo que ayuda en las tareas de predicción de la expresión génica y clasificación de secuencias. En el descubrimiento de fármacos, las GNN se pueden utilizar para la predicción de la interacción fármaco-objetivo y la predicción de propiedades moleculares, lo cual es vital en la investigación farmacéutica.

Notas a pie de página

1. Inductive representation learning on large graphs. Will Hamilton, Zhitao Ying, Jure Leskovec. https://papers.nips.cc/paper_files/paper/2017/hash/5dd9db5e033da9c6fb5ba83c7a7ebea9-Abstract.html

2. Variational Graph Auto-Encoders. Thomas N. Kipf, Max Welling. https://arxiv.org/abs/1611.07308

3. Graph Attention Networks. Petar Veličković, et al. https://arxiv.org/abs/1710.10903

4. Semi-Supervised Classification with Graph Convolutional Networks. Thomas N. Kipf, Max Welling. https://arxiv.org/abs/1609.02907

5. Hierarchical Graph Representation Learning with Differentiable Pooling. NeurIPS. 2018. · Rex Ying, et al. https://arxiv.org/abs/1806.08804

6. GraphSage. https://snap.stanford.edu/graphsage/

Soluciones relacionadas
watsonx.ai

Acelere el impacto de la IA generativa en los flujos de trabajo principales e impulse la productividad.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA

Recursos

Procesamiento del lenguaje natural
Temas relacionados
Deep learning
Temas relacionados
Dé el siguiente paso

Explore la biblioteca de modelos fundacionales de IBM en la cartera de IBM watsonx para escalar la IA generativa para su negocio con confianza.

Descubra watsonx.ai Manténgase al día sobre la IA en IBM