Descripción
Graph Neural PDEs es un repositorio de GitHub desarrollado por twitter-research, que ofrece el código fuente para sus publicaciones GRAND (Graph Neural Diffusion) y BLEND (Beltrami Flow and Neural Diffusion on Graphs). Estos modelos conceptualizan el aprendizaje profundo en grafos como un proceso de difusión continua, con las Redes Neuronales de Grafos (GNNs) sirviendo como discretizaciones de Ecuaciones Diferenciales Parciales (EDPs) subyacentes.
La innovación principal radica en cómo la estructura de capas y la topología de las GNNs se mapean a las elecciones de discretización de los operadores temporales y espaciales. Este desarrollo principista conduce a una nueva clase de GNNs diseñadas para superar problemas prevalentes en el aprendizaje de grafos, como las limitaciones de profundidad, el sobre-suavizado y los cuellos de botella. Un aspecto clave de estos modelos es su estabilidad con respecto a las perturbaciones de datos, abordada a través de esquemas de discretización implícitos y explícitos.
El repositorio incluye implementaciones para versiones lineales y no lineales de GRAND, que han demostrado un rendimiento competitivo en varios benchmarks de grafos estándar. BLEND extiende GRAND operando en un espacio no euclidiano, evolucionando conjuntamente las características de los nodos y las codificaciones posicionales. Esto proporciona un método robusto para la reestructuración de grafos. El proyecto también detalla los requisitos y comandos para configurar las dependencias necesarias, centrándose principalmente en PyTorch y sus bibliotecas relacionadas, y ofrece consejos de solución de problemas para problemas comunes de instalación, particularmente aquellos relacionados con incompatibilidades de versión de CUDA.
Para los usuarios interesados en ejecutar los experimentos, el repositorio describe los pasos de preparación de datos y preprocesamiento tanto para GRAND como para BLEND. Especifica la creación de una carpeta `./data` para los conjuntos de datos y, para BLEND, una carpeta adicional `./data/pos_encodings` para las codificaciones posicionales. Se proporcionan instrucciones para ejecutar experimentos en conjuntos de datos como Cora, Citeseer, Computers, Photo y ogbn-arxiv, junto con orientación para generar o descargar codificaciones posicionales.
El proyecto fomenta las contribuciones y reporta problemas de seguridad a través del programa de recompensa por errores de Twitter. Tiene licencia bajo la licencia Apache-2.0, lo que lo hace libremente disponible para su uso y modificación. El repositorio también incluye citas para los artículos de GRAND y BLEND, lo que permite a los investigadores referenciar el trabajo fundamental.
Aspectos destacados de Graph Neural PDEs
Implementación del modelo GRAND (Graph Neural Diffusion)
Implementación del modelo BLEND (Beltrami Flow and Neural Diffusion on Graphs)
Trata el aprendizaje profundo en grafos como un proceso de difusión continua
Modela las GNNs como discretizaciones de EDPs subyacentes
Aborda desafíos del aprendizaje de grafos como el sobre-suavizado y las limitaciones de profundidad
Proporciona estabilidad con respecto a las perturbaciones de datos
Incluye versiones lineales y no lineales de GRAND
BLEND ofrece extensión no euclidiana para la reestructuración de grafos
Instrucciones detalladas de instalación para dependencias (PyTorch, etc.)
Orientación sobre la preparación de datos y codificaciones posicionales
Scripts para ejecutar experimentos en conjuntos de datos de referencia
Solución de problemas de instalación de dependencias
Licencia Apache-2.0
Primeros pasos con Graph Neural PDEs
Configurar entorno: Crear y activar un entorno conda con la versión de Python especificada.
Instalar dependencias: Usar pip para instalar las bibliotecas requeridas, incluyendo PyTorch, PyTorch Geometric y otras.
Preparar datos: Crear una carpeta `./data` para los conjuntos de datos y `./data/pos_encodings` para BLEND.
Generar codificaciones posicionales: Usar los scripts proporcionados o descargar codificaciones precalculadas si es necesario para BLEND.
Ejecutar experimentos: Navegar al directorio `src` y ejecutar `run_GNN.py` con los parámetros del conjunto de datos.
Solucionar problemas de instalación: Verificar las versiones de CUDA y PyTorch si se encuentran errores de instalación.
Casos de uso de Graph Neural PDEs
- Investigación de Redes Neuronales de Grafos
- Clasificación de Nodos
- Reestructuración de Grafos
- Abordar el Sobre-suavizado
- Benchmarking de Modelos GNN
- Aprendizaje Continuo de Grafos







