Las redes neuronales gráficas (GNN) son un concepto moderno que ayuda a analizar gráficos, inferir relaciones entre objetos y predecir datos significativos a partir de ellos.
La popularidad de la inteligencia artificial y el aprendizaje automático ha aumentado aún más la demanda de conceptos como las GNN en empresas y consumidores.
Son útiles para múltiples industrias y usuarios para realizar tareas como la clasificación de imágenes y textos, el procesamiento del lenguaje natural, las recomendaciones de productos, el análisis de medios sociales, etc.
Ahora bien, el problema es que cuando se trata de grafos, analizarlos y representarlos utilizando métodos estándar como las CNN puede ser todo un reto.
Aquí es donde entran en juego las GNN para resolver varios problemas de grafos.
En este artículo, hablaré sobre qué son las GNN, cómo funcionan, sus aplicaciones en el mundo real y mucho más.
Así que, ¡permanezca atento!
Introducción a los grafos
Un gráfico es esencialmente una forma de representar datos relacionados. Ayuda a visualizar la relación entre objetos, personas y conceptos. Los grafos también pueden ayudar a entrenar modelos de aprendizaje automático (ML ) para tareas complejas. Ejemplos de grafos podrían ser las redes de medios sociales, el modelado de diversos sistemas físicos, el análisis de huellas dactilares, etc.
En el mundo de la informática, los grafos son un tipo de estructura de datos que tiene dos componentes: aristas y nodos (o vértices). Las aristas también se denominan enlaces que determinan la relación entre distintos nodos, mientras que los nodos son entidades u objetos, lugares, etc.
Matemáticamente, un grafo puede describirse mediante esta fórmula
G = (V, E)
Aquí, G representa un grafo, V representa un conjunto de vértices y E representa las aristas.
Un grafo puede ser de dos tipos
- Dirigido: Un grafo dirigido significa la dependencia direccional entre dos nodos. Este tipo de grafo puede ser unidireccional o bidireccional.
- No dirigido: Un grafo no dirigido carece de dependencia direccional, en el que los nodos sólo están unidos entre sí.
¿Por qué es difícil analizar un grafo?
Analizar un grafo puede ser un reto debido a muchas razones:
- Los grafos existen en el espacio no euclidiano, lo que significa que los datos tratan superficies curvas en lugar de superficies planas como 2D o 3D. Esto dificulta la interpretación del gráfico y sus datos.
- Un grafo puede tener sus nodos en decenas, cientos o incluso millones, y el número de aristas puede variar para cada nodo. Debido al gran tamaño y a su factor de dimensionalidad, aumenta la complejidad de la interpretación del gráfico.
- El tamaño del gráfico es dinámico, sin forma fija. Dos grafos pueden tener un aspecto diferente pero representaciones similares para las matrices de adyacencia. De este modo, analizar el grafo con las herramientas tradicionales puede resultar ineficaz y complicado.
Por otra parte, los grafos pueden expandirse o contraerse con el tiempo. Esto también significa que si desea representar los datos gráficos mediante una matriz, puede resultar ineficaz y crear métricas escasas que signifiquen el mismo gráfico. Además, no son invariantes de la permutación, ya que podrían no dar el mismo resultado.
Teniendo en cuenta todos estos problemas, se introdujeron las GNN para resolver los problemas de predicción gráfica con mayor eficacia.
¿Qué son las redes neuronales gráficas?
Una red neuronal gráfica (GNN) es un tipo de red neuronal artificial (RNA) que se utiliza para procesar datos representados como gráficos.
Las GNN se construyen en torno a los conceptos del aprendizaje profundo y la teoría de grafos. Estas redes utilizan la inteligencia predictiva del aprendizaje profundo, que es un subconjunto del aprendizaje automático y la inteligencia artificial) para analizar y procesar datos.
Una GNN puede tomar los datos de entrada como un grafo con nodos incrustados, aristas y contexto para crear la salida como un grafo cuyas incrustaciones se actualizan y transforman preservando la simetría del grafo de entrada.
Piense en las GNN como un grafo cuyos datos son nodos y las conexiones entre los datos son aristas. Puede aplicar directamente las GNN a los grafos y obtener una forma más sencilla de realizar tareas de predicción a nivel de arista, nodo o grafo.
Las GNN pueden combinar mejor la estructura del grafo y la información de las características para aprender representaciones gráficas mediante la agregación y propagación de características.
En el mundo real, las GNN se utilizan para estudiar y resolver problemas complejos en múltiples sectores. Algunos casos de uso son la identificación de nodos específicos en una gran red, la clasificación de patrones, la visualización, el filtrado y el análisis de gráficos, el análisis de redes sociales, la predicción de precios, etc.
Las GNN se presentaron por primera vez en un artículo publicado en 2009 por investigadores italianos. Dos investigadores de Ámsterdam también demostraron la potencia de las GNN con otra variante llamada Graph Convolutional Network (GCN).
Tipos de GNN
Las redes neuronales son de muchos tipos, y la mayoría contienen alguna forma de GNN. Los tipos de GNNs son:
#1. Redes neuronales gráficas recurrentes (RGNN)
Las RGNN estudian los patrones de difusión y pueden manejar grafos multirrelacionales con nodos que tienen múltiples relaciones. Estas redes utilizan regularizadores para mejorar la suavidad y evitar la sobreparametrización.
Utilizan una potencia computacional limitada para generar mejores resultados. Las RGNN se utilizan en traducción automática, generación de textos, reconocimiento del habla, etiquetado de vídeos, generación de descripciones de imágenes, resumen de textos, etc.
#1. Redes neuronales de grafos cerrados (GGNN)
Estas redes son aún mejores que las RGNN cuando se trata de realizar tareas en las que intervienen dependencias a largo plazo. Las GGNN mejoran las RGNN añadiendo puertas temporales, una arista y un nodo en las dependencias a largo plazo. Estas redes se utilizan para recordar y olvidar información en varios estados.
#2. Redes convolucionales gráficas (GCN)
Las GCN son como las CNN tradicionales. Las GCN aprenden las características de un objeto o entidad inspeccionando sus nodos vecinos. Las GCN agregan varios vectores de nodos y pasan el resultado a la capa densa. A continuación, las redes realizan la no linealidad utilizando la función de activación. Las GCN se dividen a su vez en dos tipos: redes convolucionales espaciales y espectrales.
#3. Redes autoincodificadoras de grafos
Estas redes neuronales estudian la representación de los grafos con la ayuda de un codificador e intentan reconstruir los grafos de entrada con la ayuda de un decodificador. Además, el decodificador y el codificador se unen con una capa cuello de botella. Las redes autocodificadoras de grafos son excelentes en la predicción de enlaces porque tratan mejor con los equilibradores de clases.
¿Cómo funcionan las GNN?
El aprendizaje profundo tradicional se centra principalmente en textos e imágenes, que son datos estructurados descritos como cuadrículas de píxeles o secuencias de palabras.
Por el contrario, los gráficos no están estructurados, pueden tener cualquier tamaño o forma y pueden contener cualquier tipo de datos aparte de texto e imágenes.
Las GNN pueden organizar los grafos con la ayuda del paso de mensajes, lo que permite a los algoritmos de aprendizaje automático aprovechar los grafos. El paso de mensajes incrusta la información sobre su vecino en cada nodo. A continuación, los modelos de IA utilizan los datos incrustados para detectar patrones y hacer predicciones significativas.
Por ejemplo, las incrustaciones de bordes se utilizan en los sistemas de detección de fraudes para detectar transacciones sospechosas, de modo que se tomen las medidas adecuadas a tiempo y se detengan las actividades fraudulentas.
Las GNN utilizan matemáticas dispersas y sus modelos suelen tener sólo 2 o 3 capas. En cambio, otras redes y modelos de IA utilizan matemáticas densas y tienen cientos de capas de redes neuronales.
Diferencia entre GNN y CNN
Las GNN y las redes neuronales convolucionales (CNN) son dos tipos de redes neuronales, pero siguen siendo diferentes.
Las CNN son otro tipo de red neuronal que se utiliza para ayudar a las máquinas a visualizar objetos o cosas y realizar tareas como el reconocimiento de imágenes, la detección de objetos, la clasificación de imágenes, etc. Son excelentes para espacios regulares, planos, 2D y 3D, pero las GNN brillan en espacios curvos o no euclidianos.
Las CNN están diseñadas para operar específicamente sobre información estructurada o espacios euclidianos. En cambio, las GNN se ocupan de espacios no euclidianos en los que sus nodos no están ordenados y pueden variar.
Esto significa que puede aplicar las CNNS a información estructurada como texto o imágenes. No se aplica a datos no estructurados como el tiempo, el sonido, etc. Sin embargo, las GNN se aplican a datos estructurados y no estructurados. Es una forma generalizada de las CNN.
Además, las GNN ayudan a analizar gráficos y a predecir información significativa allí donde las CNN son inadecuadas para analizar gráficos.
Eso significa que las GNN son más eficientes en la resolución de problemas de grafos que las CNN.
Aplicaciones de las GNN
Las organizaciones y empresas que aplican las GNN se están expandiendo. Se están adoptando en múltiples sectores, desde industrias hasta ramas de la ciencia. He aquí algunas de las aplicaciones de las GNN:
#1. Clasificación de gráficos
Las GNN se utilizan en la clasificación de grafos, en la que un grafo completo se divide en varias categorías. Es similar a la clasificación de imágenes, salvo que el objetivo se transforma en el dominio de los grafos.
La clasificación de grafos tiene muchas aplicaciones, como en bioinformática para comprobar si una proteína pertenece a una enzima, realizar análisis de redes sociales, categorizar archivos en PNL, etc.
#2. Visualización de grafos
La visualización de grafos es una parte de la informática y las matemáticas, en la que se entrecruzan la visualización de información y la teoría geométrica de grafos. Se ocupa de representar gráficos visualmente, revelando anomalías y estructuras en los datos. A través de la visualización de gráficos, los usuarios pueden comprender mejor el gráfico.
#3. Agrupación de gráficos
Las GNN se utilizan en la agrupación de gráficos, un proceso que consiste en agrupar datos en forma de gráficos. Se pueden realizar dos tipos de clustering en datos de gráficos dados: clustering de vértices y clustering de objetos. La agrupación de vértices organiza o agrupa los nodos del grafo en diferentes grupos de regiones que están densamente conectadas.
Se basan en las distancias o pesos de los bordes. La segunda toma los grafos como objetos o entradas a agrupar. Agrupa o clusteriza los objetos en función de su similitud.
#4. Clasificación de nodos
Una de las aplicaciones importantes de las GNN es la clasificación de nodos para determinar su etiquetado comprobando las etiquetas de los vecinos de los nodos. Aquí se añade nueva información a los nodos en los que existe un vacío de información.
Los modelos en este tipo de tareas necesitan un entrenamiento semisupervisado. Aquí, sólo debe etiquetarse una parte de un grafo dado.
Por ejemplo, si quiere determinar si hay cuentas de bots creadas en su red organizativa, debe entrenar un modelo GNN basado en las incrustaciones de grafos de bots conocidos y desconocidos y clasificar a los usuarios si son usuarios normales o bots.
#5. Predicción de enlaces o bordes
Las GNN son útiles en la predicción de enlaces o bordes para averiguar la relación entre varios objetos o entidades en un grafo dado. Esto también se hace para predecir si existe alguna conexión entre las dos entidades dadas.
Por ejemplo, se puede utilizar la predicción de vínculos en las redes sociales para comprender las interacciones sociales y sugerir a los usuarios posibles amigos. También se utiliza en las fuerzas de seguridad para predecir y comprender las asociaciones delictivas y en los sistemas de recomendación para sugerir los mejores productos, películas, música, etc.
#6. Visión por ordenador
Las GNN se aplican en visión por ordenador para resolver diversos problemas relacionados con la interacción persona-objeto, la clasificación de imágenes, la generación de gráficos de escenas y muchos más.
Por ejemplo, se pueden utilizar las GNN en la generación de grafos de escenas, donde el modelo debe analizar una imagen dada para convertirla en un grafo formado por objetos y relaciones semánticas entre ellos. Este proceso puede reconocer y detectar objetos y prever relaciones semánticas entre varios pares de objetos.
#7. Clasificación de textos
Los grafos pueden representar un grupo de palabras, donde las palabras son nodos y las conexiones entre estas palabras son aristas. Puede realizar la clasificación de texto a nivel de grafo o de nodo.
El uso de GNN para la clasificación de texto tiene muchos casos de uso en el mundo real, como la recomendación de un producto, la categorización de nuevos productos y la detección de enfermedades a partir de ciertos síntomas.
#8. Clasificación y segmentación de nubes de puntos
LiDAR puede representar datos del mundo real en varias nubes de puntos 3D para completar procesos de segmentación 3D. Puede representar las nubes de puntos mediante GNN y clasificarlas y segmentarlas fácilmente.
#9. Representar la interacción persona-objeto
Los grafos son una forma excelente de representar interacciones entre vínculos y objetos. Así, puede modelar objetos y humanos como nodos, mientras que las relaciones e interacciones entre ellos como aristas.
#10. Procesamiento del lenguaje natural (PLN)
En PNL, el texto se considera un dato secuencial descrito por una LSTM (memoria a largo plazo) o una RNN ( red neuronal recurrente). Muchas tareas de PNL utilizan mucho los grafos porque son fáciles de representar y tienen un aspecto natural y crudo.
Las GNN se utilizan en la resolución de muchos problemas de PNL, como la búsqueda de semántica en la traducción automática, la clasificación de textos, la extracción de relaciones, la clasificación de textos, la respuesta a preguntas, etc.
#11. Descubrimiento de fármacos
Descubrir el fármaco o la cura para una enfermedad o dolencia no es sólo un reto para la química, sino también para la sociedad. Este campo requiere una investigación exhaustiva y miles de millones de dólares y años para formular un fármaco que cure una enfermedad.
Las GNN con IA pueden ayudar a acortar los procesos de investigación y cribado para que un fármaco más seguro y eficaz pueda ser lanzado al público más rápidamente.
#12. Representación de interacciones moleculares
Las GNN son útiles en la física de partículas, que se ocupa de las leyes relativas a las interacciones entre partículas. Los gráficos pueden utilizarse aquí para comprender las relaciones e interacciones entre partículas. Las GNN pueden ayudar a predecir las propiedades de la dinámica de las colisiones.
En la actualidad, el Gran Colisionador de Hadrones (LHC) utiliza GNNs para identificar partículas interesantes a partir de imágenes generadas en diversos experimentos.
#13. Predicción del tráfico
Un dispositivo o sistema de transporte inteligente implica la predicción de la velocidad del tráfico y la densidad de las carreteras como características principales. Estas tareas de predicción pueden realizarse con la ayuda de las STGNN o redes neuronales gráficas espaciotemporales.
Aquí, la red de tráfico se considerará como un grafo espacio-temporal con nodos como sensores situados en las carreteras y las aristas son las distancias entre pares de nodos. Además, considere que cada nodo tendrá como entrada una velocidad media del tráfico.
#14. Otras aplicaciones
Aparte de las anteriores, las GNN se utilizan en el modelado de historias clínicas electrónicas, la prevención de ataques adversarios, las redes cerebrales, la predicción de influencias sociales, la programación, el razonamiento, la verificación de programas, la predicción de resultados electorales y muchas más.
Recursos de aprendizaje
A continuación encontrará algunos de los mejores libros para aprender sobre las GNN.
#1. Graph Neural Networks (Redes neuronales gráficas) de Lingfei Wu y otros
Este libro es una guía completa sobre las GNN que analiza los objetivos del aprendizaje de la representación gráfica.
Vista previa | Producto | Valoración | |
---|---|---|---|
Graph Neural Networks: Foundations, Frontiers, and Applications | Buy on Amazon |
También dilucida los desarrollos actuales, la historia y el futuro de las GNN junto con algunas de sus teorías y métodos básicos.
#2. Las redes neuronales gráficas en acción
Vista previa | Producto | Valoración | |
---|---|---|---|
Graph Neural Networks in Action | Buy on Amazon |
Se trata de una guía práctica sobre modelos de aprendizaje profundo basados en grafos y sobre cómo construir GNN avanzadas para modelado molecular, motores de recomendación y mucho más.
#3. Introducción a las redes neuronales de grafos por Zhiyuan Liu
Vista previa | Producto | Valoración | |
---|---|---|---|
Introduction to Graph Neural Networks (Synthesis Lectures on Artificial Intelligence and Machine… | Buy on Amazon |
Aprenda los conceptos básicos, las aplicaciones y los modelos de las GNN.
#4. Redes neuronales gráficas por Younes Sadat-Nejad
Es un curso introductorio a las GNN disponible en Udemy. Le ayudará a aprender el aprendizaje representacional de grafos y las GNN.
Conclusión
Con la creciente popularidad de la IA y unos grafos cada vez más sofisticados y ricos en datos, las redes neuronales de grafos (GNN) están resultando cada vez más útiles. Son una herramienta poderosa para hacer predicciones y se aplican en múltiples sectores, desde las redes y la visión por ordenador hasta la química, la física y la sanidad.
También puede explorar la regresión frente a la clasificación en el aprendizaje automático.