¿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 aprendizaje profundo, 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 similar a una cuadrícula, como los píxeles de una imagen. Cualquier píxel se puede conectar, como máximo, a otros ocho píxeles. Por el contrario, las RNN se adaptan a estructuras de secuencia en las que cada elemento se puede conectar a otros dos elementos como máximo, como una cadena de palabras en un texto. Sin embargo, en los datos estructurados por gráficos, cualquier elemento puede tener una o más conexiones y puede no tener coherencia entre el número de conexiones para un elemento específico.

Las redes neuronales son una implementación del aprendizaje profundo1, que se clasifica en categorías fundamentales:

Aprendizaje basado en grafos, que aprende sobre datos similares a grafos.

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

Aprendizaje basado en grupos, que aprende cómo se relaciona la información con un grupo principal. Esto resulta muy útil cuando los datos se adquieren de un grupo como una esfera, por ejemplo, datos geológicos de diferentes fuentes de todo el planeta.

Aprendizaje basado en malla, 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 de inteligencia artificial, pero están bien respaldadas por bibliotecas y kits de herramientas que están construidos en lenguajes como Python e infraestructura que incluyen TensorFlow y PyTorch.

¿Qué es un grafo?

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

Un grafo representa las relaciones, que se denominan "bordes", entre una colección 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 aristas y enlaces. E:G = (V, E). Cada arista es un par de dos vértices y representa una conexión entre ellos.

Para describir con más detalle cada nodo, borde o todo el grafo, podemos almacenar información en cada una de estas partes 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

Un grafo se puede describir aún más asignando direccionalidad a cada borde. Un grafo se describe como dirigido o no dirigido. Un gráfico no dirigido representa una relación, que es bidireccional. Si Rosa tiene un hermano Juan, entonces Juan también tiene una hermana, Rosa. La relación entre Rosa y su hermano no tiene ninguna direccionalidad, solo 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 una "hermana mayor".

Una 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 mediante su matriz de adyacencia. Esta es una representación basada en matrices de los vértices del grafo que puede representar grafos dirigidos y no 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 lo contrario no es cierto 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 “entrada y salida de grafos”. 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 estas incorporaciones sin cambiar la conectividad del grafo de entrada. Las incorporaciones representan los nodos como incorporaciones de nodos y los vértices como incorporaciones de vértices. Estas incorporaciones permiten que el modelo aprenda qué tipos de nodos ocurren 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 crean subgrafos que conservan las propiedades esenciales del grafo grande original.

Las GNN utilizan un mecanismo de paso de mensajes para agregar información de nodos vecinos, lo que les permite capturar las relaciones complejas en grafos. Un desafío en el modelado de datos estructurados por grafos es capturar las interacciones entre los nodos. El paso de mensajes neuronales aborda este desafío al proporcionar una infraestructura para modelar dependencias e interacciones en 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 a 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 información 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 un grafo completo. 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é asociada con una institución en particular, como una universidad o facultad. Este tipo de reconocimiento de patrones se puede enmarcar 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 de amigos. Tener amigos que solo comparten un interés en el golf, pero ningún otro interés en común es una buena indicación 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 borde

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

Un ejemplo de inferencia a nivel de borde es la comprensión de escenas de imágenes. Después de identificar objetos en una imagen, los modelos de aprendizaje profundo también pueden predecir la relación entre ellos. Esta es una clasificación a nivel de borde porque los nodos representan los objetos en la imagen y la predicción indica cuáles de estos nodos comparten un borde o cuál es el valor de ese borde. Si desea descubrir conexiones entre entidades, puede considerar que el grafo está "totalmente conectado" y, en función de su valor previsto, eliminar los bordes para llegar a un grafo disperso.

Variantes y extensiones

Redes convolucionales gráficas4 (GCN): este enfoque es para el aprendizaje semisupervisado basado en una variante de redes neuronales convolucionales que pueden aprender y predecir a partir de datos basados en grafos. Estos modelos 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 gráficos2: estas variantes son modelos de redes neuronales entrenables de extremo a extremo para el aprendizaje no supervisado, agrupación en clústeres y predicción de enlaces en grafos. Por lo general, utilizan una GCN como codificador para crear incorporaciones y tienen un decodificador que reconstruye el grafo a partir de la representación latente aprendida.

Redes de atención gráfica3 (GAT): una arquitectura de red neuronal 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 las características de sus vecindarios, una GAT permite (implícitamente) especificar diferentes ponderaciones a diferentes nodos en un vecindario. Esto es posible sin requerir operaciones matriciales costosas, como la inversión, o 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 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 donde los nodos representan datos de alta dimensión.

Arquitecturas GNN

Como ejemplo de cómo se puede estructurar una GNN, considere una red convolucional de grafos (GCN) simple para clasificar un grafo completo. La GCN más simple 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, a la salida de la convolución.

Capa lineal de salida: esta capa final suma las salidas para generar una predicción final.

Primero, se realiza una convolución utilizando cada nodo en el 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 las ponderaciones asociadas con cada nodo. Luego, se aplica una función de activación no lineal, como ReLU, a la salida de la capa de convolución. Para obtener la mejor precisión, una red puede utilizar múltiples convoluciones y capas de activación no lineales apiladas. Por último, se utiliza una capa lineal de salida para predecir a qué clase es más probable que pertenezca un grafo.

Las GCN son conceptualmente simples, adecuados para grafos a gran escala y fáciles de programar, pero también tienen varios inconvenientes clave. Por un lado, las GCN no admiten características de aristas. Solo pueden aprender y predecir características de nodos o características generales de grafos. 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 aristas.5 El proceso de transmisión de mensajes es, a grandes rasgos, el siguiente. Cada nodo del grafo recibe una incorporación 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 la incorporación actual del nodo mediante una función de actualización. Las incorporaciones actualizadas se pasan a la siguiente iteración de paso de mensajes. Después de varias iteraciones adecuadas para representar la complejidad del grafo, las incorporaciones finales se utilizan para representar cada nodo en el grafo. Finalmente, 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 de nodos más sofisticada, una clasificación de aristas o incluso una predicción de dónde podrían aparecer las artistas en el grafo (lo que se denomina predicción de enlaces).

Aplicaciones de las GNN

Las GNN tienen muchas aplicaciones en el procesamiento de 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 grafo de conocimiento. Las GNN pueden capturar información contextual y dependencias de sentimiento en el texto, mejorando el análisis de sentimiento 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 la generación de escenarios de grafos que representan las relaciones espaciales entre los objetos de una imagen.

Las GNN también son herramientas poderosas 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 interacciones fármaco-objetivo y la predicción de propiedades moleculares, que es vital en la investigación farmacéutica.

Notas de 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 a trabajar la IA en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.

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

Reinvente los flujos de trabajo y las operaciones 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
Tema relacionado
Aprendizaje profundo
Tema relacionado
Dé el siguiente paso

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

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