Graph neural networks (GNNs) são uma classe de redes neurais artificiais projetadas para tarefas cujas entradas são grafos, como estruturas moleculares, redes sociais ou redes de citação. Diferentemente das redes neurais padrão que assumem entradas ordenadas de tamanho fixo, os GNNs operan em grafos de tamanho e topologia arbitrários. Como os grafos geralmente não têm uma ordenação canónica de nós, as arquiteturas de GNN são tipicamente projetadas para ser equivariantes à permutação: reordenar os nós de entrada reordena as representações de nó correspondentes da mesma maneira. Para tarefas de predição a nível de grafo, os GNNs usam uma função de leitura invariante à permutação, garantizando que a saída não seja alterada pela ordenação dos nós.
O elemento de design fundamental dos GNNs é o message passing (passagem de mensagens) entre pares, onde os nós atualizam iterativamente suas representações intercambiando informações com os vizinhos. Isso permite que a rede capture tanto informações estruturais locais como globais. Uma aplicação proeminente é o design de fármacos moleculares, onde as moléculas são representadas como grafos com átomos como nós e ligações como arestas, frequentemente incluendo propriedades químicas como características. Tarefas a nível de grafo incluem predecir a eficacia de uma molécula para um uso médico específico, como eliminar a bactéria E. coli. Os GNNs também foram aplicados em processamento de linguagem natural, análise de redes sociais, física e otimização combinatória NP-difícil.
Desenvolvimento Histórico
O conceito de aplicar redes neurais a dados estruturados como grafos emergiu no final dos anos 1990 e início dos anos 2000. Trabalhos iniciais de pesquisadores como Franco Scarselli e colegas introduzieron redes neurais recursivas para grafos, que processavam estruturas de grafo de maneira recorrente. Aproximadamente na mesma época, foram desenvolvidas abordagens convolucionais, levando às primeiras redes convolucionais de grafos. Estas arquiteturas iniciais estabeleceron a base para os GNNs modernos, que evoluíron através de contribuciones de muitos grupos de pesquisa académicos e industriais.
Um marco significativo foi a introducción das redes neurais de passagem de mensagens (MPNNs) em 2017, que unificaron muitas variantes existentes de GNN sob um marco comum. Desde então, numerosas arquiteturas foram propostas, cada uma implementando diferentes sabores de passagem de mensagens. Um artigo de posicionamento de 2022 argumentou que muitas arquiteturas descritas como "além" da passagem de mensagens podem ser interpretadas como passagem de mensagens sobre grafos modificados adequadamente, cunhando o termo "passagem de mensagens aumentada" para tais abordagens.
Arquitectura
A arquitetura de um GNN genérico tipicamente incluye três tipos fundamentais de capas: capas equivariantes à permutação, capas de pooling local e capas de pooling global. As capas equivariantes à permutação, frequentemente implementadas via passagem de mensagens, atualizan as representações de nó agregando mensagens dos vizinhos imediatos. Cada uma dessas capas aumenta o campo receptivo por um salto, permitendo que os nós incorporen informações de partes mais distantes do grafo.
As capas de pooling local coarsen o grafo via downsampling, similar ao pooling em redes neurais convolucionais para imagens. Exemplos incluyen pooling de k-vizinhos mais próximos, pooling top-k e pooling de auto-atención. As capas de pooling global, também conhecidas como capas de leitura, producen uma representación de tamaño fixo de todo o grafo e devem ser invariantes à permutación. Funções de leitura comuns incluyen soma elemento a elemento, média ou máximo.
Os GNNs padrão de passagem de mensagens são, na melhor das hipóteses, tão expressivos como o teste de isomorfismo de grafos de Weisfeiler-Lehman, o que significa que existem estruturas de grafo distintas que não podem ser distinguidas por tais redes. GNNs más potentes que operan em geometrías de dimensión superior, como complexos simpliciais, foram propuestos. A partir de 2022, se permanece uma pregunta de pesquisa aberta se futuras arquiteturas superarán a primitiva de passagem de mensagens.
Capas de Passagem de Mensagens
As capas de passagem de mensagens são o núcleo da maioria dos GNNs. Formalmente, podem ser expressas como redes neurais de passagem de mensagens (MPNNs). Dado um grafo G = (V, E) com características de nó x_u e características de aresta e_uv, uma capa MPNN atualiza a representación de cada nó h_u usando uma função diferenciable φ e uma função de mensagem ψ:
h_u = φ(x_u, ⊕_{v∈N_u} ψ(x_u, x_v, e_uv))
Aquí, N_u denota a vizinhanza do nó u, e ⊕ é uma função de agregación invariante à permutación como soma, média ou máximo. A função de mensagem ψ calcula uma mensagem de cada vizinho, e a agregación combina estas mensagens. A função de atualización φ então combina as características do próprio nó com as mensagens agregadas para producir a nova representación.
Diferentes arquiteturas de GNN varían em como definen ψ e φ. Por exemplo, as redes convolucionais de grafos (GCNs) usan uma soma normalizada simples de características de vizinhos, enquanto as redes de atención de grafos (GATs) empregam mecanismos de atención para ponderar as contribuciones dos vizinhos. Estas variaciones permiten que os GNNs capturen diferentes aspectos da estrutura do grafo.
Aprendizaje Profundo Geométrico
Os GNNs fazem parte do campo más amplio do aprendizaje profundo geométrico, que visa generalizar redes neurais a domínios não euclidianos. Neste contexto, muitas arquiteturas existentes podem ser interpretadas como GNNs operando em grafos definidos adequadamente. Por exemplo, uma capa de red neuronal convolucional em visión por computador pode ser vista como um GNN aplicado a grafos onde os nós são píxeles e as arestas conectan píxeles adyacentes. Similarmente, uma capa de Transformer (architecture) em procesamiento de lenguaje natural pode ser vista como um GNN aplicado a grafos completos cujos nós são palabras ou tokens em um texto.
Esta perspectiva levou a uma polinización cruzada entre campos. Técnicas desarrolladas para GNNs, como mecanismos de atención, influyeron en las arquitecturas de transformadores, e insights de los transformadores informaron el diseño de GNNs. La visión unificada del aprendizaje profundo geométrico ha sido articulada por investigadores como Michael Bronstein y Joan Bruna, entre otros.
Aplicaciones
Los GNNs han encontrado aplicaciones en una amplia gama de dominios. En biología molecular y química, se utilizan para el descubrimiento de fármacos, la predicción de funciones de proteínas y el diseño de materiales. Por ejemplo, los GNNs pueden predecir propiedades moleculares o generar nuevas moléculas con características deseadas. En redes sociales, los GNNs impulsan sistemas de recomendación, detección de comunidades y predicción de enlaces. Las redes de citación, donde los artículos son nodos y las citas son aristas, se benefician de los GNNs para la clasificación de temas y la predicción de impacto.
En física, los GNNs modelan interacciones de partículas y simulan sistemas dinámicos. También se aplican a problemas de optimización combinatoria NP-difíciles, como el problema del viajante o el coloreado de grafos, donde pueden aprender heurísticas. En procesamiento de lenguaje natural, los GNNs se utilizan para el análisis semántico, la extracción de relaciones y el razonamiento sobre grafos de conocimiento. Además, los GNNs se han empleado en visión por computador para la generación de grafos de escenas y el procesamiento de nubes de puntos.
Bibliotecas de Software
Varias bibliotecas de código abierto implementan GNNs, haciéndolos accesibles a investigadores y profesionales. PyTorch Geometric, construido sobre PyTorch, es una de las bibliotecas más utilizadas, ofreciendo una rica colección de capas y conjuntos de datos de GNN. TensorFlow GNN proporciona funcionalidad similar para el ecosistema TensorFlow. La Deep Graph Library (DGL) es agnóstica al marco, soportando tanto PyTorch como TensorFlow. Para usuarios de JAX, jraph ofrece primitivas de GNN. En el lenguaje Julia, GraphNeuralNetworks.jl y GeometricFlux.jl proporcionan implementaciones de GNN.
Estas bibliotecas han acelerado la investigación y el despliegue de GNNs al proporcionar implementaciones eficientes de operaciones de paso de mensajes, pooling y lectura. También incluyen utilidades para manejar datos de grafos, como el batching y la carga de datos, que son esenciales para entrenar en grafos grandes.
Desafíos y Direcciones Futuras
A pesar de su éxito, los GNNs enfrentan varios desafíos. Un problema importante es la escalabilidad, ya que el paso de mensajes sobre grafos grandes puede ser computacionalmente costoso. Se han desarrollado técnicas como el muestreo de grafos y el entrenamiento por mini-lotes para abordar esto. Otro desafío es el sobre-suavizado, donde el paso repetido de mensajes hace que las representaciones de los nodos se vuelvan indistinguibles, limitando la profundidad de los GNNs.
La expresividad es otra área activa de investigación. Dado que los GNNs estándar están limitados por la prueba de Weisfeiler-Lehman, los investigadores han explorado GNNs de orden superior, transformadores de grafos y arquitecturas que operan en complejos simpliciales o hipergrafos. Estos enfoques buscan capturar información estructural más compleja. A partir de 2022, la cuestión de si el paso de mensajes seguirá siendo el paradigma dominante está abierta, con trabajo en curso sobre el paso de mensajes aumentado y primitivas alternativas.
La interpretabilidad y la robustez también son importantes. Comprender qué aprenden los GNNs y hacerlos robustos a ataques adversariales en grafos son temas de investigación activos. A medida que los GNNs se despliegan cada vez más en dominios de alto riesgo como la atención médica y los sistemas autónomos, abordar estos desafíos será crucial para su adopción más amplia.