¿Qué es Graph Neural Networks? Explicación y aplicaciones [con diagramas]

Publicado: 2021-01-08

Tabla de contenido

Introducción

En los últimos tiempos, las redes neuronales han ganado gran popularidad debido a su aplicación y facilidad de uso en el campo del reconocimiento de patrones y la minería de datos. La aplicación de Deep Learning a tareas como la detección de objetos y el reconocimiento de voz utilizando técnicas como CNN, RNN y codificadores automáticos ha generado una gran cantidad de trabajo en la investigación y el desarrollo de redes neuronales.

La aplicación de Deep Learning en los datos, como imágenes, texto y videos, se realiza fácilmente ya que se basan en datos euclidianos. ¿Qué pasa con las aplicaciones donde los datos se representan como gráficos (no euclidianos) con relaciones altamente complejas entre objetos?

Aquí es donde traemos el concepto de Graph Neural Networks (GNN). En este artículo, repasaremos las definiciones y los conceptos básicos de Graphs y GNN y veremos algunas de las últimas aplicaciones de Graph Neural Networks.

¿Qué es un gráfico?

Desde el título – Graph Neural Networks, vemos que la parte más fundamental de GNN es un gráfico.

En informática, un gráfico se define como una estructura de datos con dos componentes. Vértices y Aristas. Un gráfico G, se puede definir como G = VE . Donde V es el conjunto de vértices y E son las aristas entre ellos. Los términos vértices y nodos a menudo se usan indistintamente. Si hay una marca de flecha en los bordes llamada dependencia direccional, entonces es un gráfico dirigido. Si no, son grafos no dirigidos.

Fuente

Un gráfico puede representar varias cosas: red de medios sociales, red de ciudades, moléculas, etc. Considere el siguiente gráfico que representa una red de ciudades. Las ciudades se representan como los nodos y las carreteras que las conectan son los bordes.

Fuente

Usando la red gráfica anterior, podemos resolver varios problemas relacionados con estas ciudades, como encontrar qué ciudades están bien conectadas o encontrar la distancia más corta entre dos ciudades.

¿Qué son las redes neuronales gráficas?

Como los gráficos tienen poderes expresivos extremadamente fuertes, están ganando mucha atención en el campo del aprendizaje automático. Cada nodo tiene una incrustación asociada a él. Esa incrustación define el nodo en el espacio de datos. Las redes neuronales gráficas se refieren a las arquitecturas de redes neuronales que operan en un gráfico.

El objetivo principal de una arquitectura GNN es aprender una incrustación que contenga información sobre su vecindario. Usando esta incrustación, podemos resolver varios problemas como el etiquetado del nodo, la predicción de nodos y bordes, etc.

En otras palabras, las redes neuronales gráficas son una clase adicional de métodos de aprendizaje profundo que están diseñados para realizar inferencias en los datos proporcionados por los gráficos. Se aplican en gráficos y pueden realizar fácilmente tareas de predicción a nivel de nodo, de borde y de gráfico.

¿Por qué no CNN?

La principal ventaja de GNN es que puede realizar tareas que las redes neuronales convolucionales (CNN) no pudieron realizar. Las CNN se utilizan para realizar tareas como detección de objetos, clasificación y reconocimiento de imágenes. Usando capas convolucionales ocultas y capas de agrupación, CNN logra esto.

Es computacionalmente difícil realizar CNN en datos gráficos ya que es una topología altamente arbitraria y compleja, lo que significa que no hay localidad espacial. Además, hay un orden de nodos no fijo que dificulta la aplicación de CNN.

Graficar Redes Neuronales

Por lo tanto, se entiende que, como se le llama, GNN es una red neuronal que se aplica directamente a los gráficos y proporciona una manera conveniente para las tareas de predicción a nivel de borde, nivel de nodo y nivel de gráfico. Existen principalmente tres tipos de redes neuronales gráficas:

  1. Red neuronal de gráficos recurrentes
  2. Red convolucional espacial
  3. Red convolucional espectral

Una de las intuiciones de GNN es que los nodos están definidos por sus vecinos y conexiones. Podemos visualizarlo imaginando que si se eliminan todos los vecinos de un nodo, el nodo perderá toda su información. Así, el concepto de vecinos de un nodo y las conexiones a los vecinos definen un nodo.

Con esto en mente, demos a cada nodo un estado (x) para representar su concepto. Podemos usar el estado del nodo (x) para producir una salida (o), que es la decisión sobre el concepto. El estado final (x_n) del nodo se denomina "incrustación del nodo". La tarea principal de toda la red neuronal gráfica es determinar la "incrustación de nodo" de cada nodo, observando la información de sus nodos vecinos.

Comencemos con la versión más poderosa de GNN, Recurrent Graph Neural Network o RecGNN

Red neuronal de gráficos recurrentes

Como se mencionó en el documento original, RecGNN se construye con una suposición del teorema de punto fijo de Banach que establece que: Sea (X,d) un espacio métrico completo y sea (T:X→X) una representación cartográfica de contracción. Entonces T tiene un único punto fijo (x∗) y para cualquier x∈X la sucesión T_n(x) para n→∞ converge a (x∗). Esto significa que si aplico el mapeo T en x por k veces, x^k debería ser casi igual a x^(k-1).

Red convolucional espacial

La intuición de la Red Convolucional Espacial es similar a la de la CNN. Como sabemos en CNN, la idea es realizar una convolución sumando los píxeles vecinos alrededor de un píxel central con un filtro y pesos aprendibles. Las redes convolucionales espaciales adoptan una idea similar agregando las características de los nodos vecinos hacia el nodo central.

Fuente

Red convolucional espectral

A diferencia de otras redes neuronales gráficas, este tipo de GNN tiene una sólida base matemática. Está desarrollado sobre la Teoría del Procesamiento de Señales Gráficas. Utiliza la aproximación polinomial de Chebyshev para la simplificación.

¿Qué puede hacer una GNN?

Los problemas que puede resolver una GNN se clasifican en términos generales en 3 categorías:

  1. Clasificación de nodos
  2. Predicción de enlaces
  3. Clasificación de gráficos

Clasificación de nodos

implica predecir la incrustación de nodos para cada nodo en un gráfico. En tales casos, solo se etiqueta una parte del gráfico y, por lo tanto, se conoce como gráfico semisupervisado. Algunas aplicaciones son videos de YouTube, recomendación de amigos de Facebook, etc.

Predicción de enlaces

la tarea principal es identificar la relación entre dos entidades en un gráfico y predecir si existe alguna conexión entre las dos entidades. Por ejemplo, considere un sistema de recomendación en el que un modelo recibe un conjunto de reseñas de usuarios de diferentes productos. La tarea es predecir las preferencias de los usuarios y ajustar el sistema de recomendación para promocionar productos que coincidan con el interés de los usuarios.

Clasificación de gráficos

implica clasificar el gráfico completo en varias categorías diferentes. Es bastante similar a la tarea de clasificación de imágenes, pero el objetivo aquí está en el dominio gráfico. Hay varios ejemplos de clasificación de gráficos, como en química, a un modelo se le da una estructura molecular en forma de gráfico y la tarea es clasificar el objetivo en una categoría particular.

Aplicaciones en tiempo real de GNN

Desde su introducción en 2018, las GNN han encontrado bastantes aplicaciones en tiempo real que se resumen a continuación.

Procesamiento natural del lenguaje

GNN encuentra sus aplicaciones en una amplia variedad de aplicaciones de NLP, como clasificación de sentimientos, clasificación de texto, etiquetado de secuencias. Se utilizan en PNL por su facilidad de aplicación. También se utilizan en análisis de redes sociales, como la predicción de publicaciones similares y la recomendación de contenido específico a los usuarios.

Visión por computador

La visión artificial es un campo amplio que ha crecido rápidamente con la ayuda del aprendizaje profundo en áreas como la clasificación de imágenes, la detección de objetos, etc. La aplicación más popular son las redes neuronales convolucionales. Más tarde, los GNN también se han aplicado en este dominio. Aunque la aplicación de GNN en Visión por Computador se encuentra en una etapa incipiente, muestra un gran potencial en los próximos años.

Ciencia

Los GNN también se utilizan ampliamente en ciencias, como los sistemas de física, la predicción de efectos secundarios y la clasificación de enfermedades. Los químicos también están utilizando GNN para estudiar la estructura gráfica de compuestos y moléculas.

Otros Dominios

La aplicación de GNN no solo se limita a las tareas anteriores. Ha habido varios intentos de aplicación de GNN a una variedad de dominios, como sistemas de recomendación, análisis de redes sociales, etc.

Conclusión

En los últimos años, desde que se introdujeron las GNN, se han convertido en una herramienta sólida y confiable para resolver problemas que pueden modelarse mediante gráficos. Esto se debe a su flexibilidad, poder expresivo y fácil visualización. Por lo tanto, los GNN son una solución intuitiva para datos no estructurados con una amplia gama de aplicaciones del mundo real.

Si desea obtener más información sobre GCN y sus características y beneficios, regístrese en upGrad Education Pvt. Ltd. Y el curso de Postgrado y Diplomado de IIITB en Machine Learning e Inteligencia Artificial. Este curso sobre Machine Learning e IA está diseñado para estudiantes y profesionales que trabajan.

El curso proporciona una colección de estudios de casos y asignaciones, sesiones de tutoría de la industria, estado de ex alumnos de IIIT Bangalore, asistencia para la colocación laboral en las mejores empresas y, lo que es más importante, una rica experiencia de aprendizaje.

¿A qué te refieres con red neuronal?

Las redes neuronales son algoritmos de red que ayudan a identificar patrones y están diseñados de alguna manera según el cerebro humano. Utilizan el aprendizaje automático y la inteligencia artificial para comprender las entradas sensoriales, categorizando o agrupando datos sin procesar. Todas las estadísticas reales, ya sean imágenes, música, texto o series temporales, deben traducirse a los caracteres que reconoce la red neuronal, que son numéricos y están codificados en vectores. Ayudan en la clasificación y agrupación de datos. Clasifican los datos cuando tienen un conjunto de datos etiquetados y ayudan a agrupar los datos no etiquetados en función de las similitudes entre las entradas de ejemplo. Forman parte de aplicaciones de aprendizaje automático más amplias que incluyen algoritmos para aprendizaje por refuerzo, variedad y regresión.

¿Qué es una red neuronal convolucional?

Una red neuronal convolucional, también conocida como CNN o ConvNet, es una técnica que puede tomar una imagen de entrada y dar prioridad a varios elementos de la imagen, así como distinguir entre ellos. La cantidad de procesamiento requerida por una CNN es significativamente menor que la de otros algoritmos. CNN se diseñó con la ayuda de la corteza visual y tiene un patrón similar al de las neuronas de nuestro cerebro. Incluso en CNN, las neuronas individuales solo pueden reaccionar a los impulsos en una pequeña área del campo visual llamada Campo Receptivo.

¿En qué se diferencian las redes neuronales del aprendizaje automático?

Machine Learning es un conjunto de poderosos algoritmos que analizan datos, estudian a partir de ellos y aplican lo que han estudiado para encontrar patrones intrigantes. Una red neuronal, por otro lado, es un conjunto de técnicas utilizadas en el aprendizaje automático para modelar datos utilizando gráficos de neuronas. Una red neuronal organiza los algoritmos de tal manera que puede emitir juicios fiables por sí misma, mientras que un modelo de aprendizaje automático toma decisiones en función de lo que ha aprendido de los datos. Como resultado, si bien los modelos de aprendizaje automático pueden aprender de los datos, es posible que requieran cierta interacción humana en las primeras etapas. Las redes neuronales no requieren interacción humana, ya que las capas apiladas dentro de ellas transmiten información a través de jerarquías de conceptos distintos, lo que les permite aprender de sus propios errores.