Graph Neural Network (GNN)
Explora as Graph Neural Networks (GNNs) para processar dados não euclidianos. Aprende como as GNNs melhoram o raciocínio relacional juntamente com o Ultralytics YOLO26 para uma Vision AI avançada.
Uma Rede Neural de Grafos (GNN) é uma classe especializada de arquiteturas de aprendizagem profunda concebida para processar dados representados como grafos. Enquanto os modelos tradicionais, como as Redes Neuronais Convolucionais (CNNs), são otimizados para estruturas semelhantes a grelhas, como imagens, e as Redes Neuronais Recorrentes (RNNs) são excelentes para dados sequenciais, como texto ou Análise de Séries Temporais, as GNNs são especialmente capazes de lidar com dados não euclidianos. Isto significa que operam em conjuntos de dados definidos por nós (entidades) e arestas (relações), permitindo-lhes aprender com as interdependências complexas que caracterizam as redes do mundo real. Ao captarem tanto os atributos de pontos de dados individuais como as ligações estruturais entre eles, as GNNs permitem obter insights avançados em domínios onde as relações são tão importantes como as próprias entidades.
Como funcionam as Redes Neuronais de Grafos#
O mecanismo fundamental por trás de uma GNN é um processo frequentemente denominado "passagem de mensagens" ou agregação da vizinhança. Neste contexto, cada nó do grafo atualiza a sua própria representação ao recolher informações dos seus vizinhos imediatos. Durante o treino do modelo, a rede aprende a produzir embeddings eficazes — representações vetoriais densas — que codificam as características de um nó juntamente com a topologia da sua vizinhança local.
Através de várias camadas de processamento, um nó pode eventualmente incorporar informações de pontos mais distantes do grafo, alargando efetivamente o seu "campo recetivo". Isto permite ao modelo compreender o contexto de um nó dentro da estrutura mais ampla. Frameworks modernos, como o PyTorch Geometric e a Biblioteca de Grafos Profundos (DGL), facilitam a implementação destes complexos esquemas de passagem de mensagens, permitindo aos programadores criar aplicações sofisticadas baseadas em grafos sem terem de começar do zero.
GNNs vs. Outras Arquiteturas Neuronais#
Para compreender o papel distinto das GNNs, é útil diferenciá-las de outros tipos comuns de redes neuronais (NN) presentes no panorama da IA:
- Redes Neuronais Convolucionais (CNNs): Estas são a referência principal para tarefas visuais, como a classificação de imagens ou a deteção de objetos. Modelos como o Ultralytics YOLO26 dependem de CNNs para processar dados de píxeis dispostos numa grelha fixa. No entanto, as CNNs têm dificuldades com estruturas irregulares nas quais o número de vizinhos varia para cada nó.
- Redes Neuronais Recorrentes (RNNs): As RNNs processam as entradas numa sequência específica, o que as torna ideais para tarefas de linguagem ou para o Processamento de Linguagem Natural (NLP). Em contrapartida, as GNNs lidam com dados nos quais as relações são espaciais ou relacionais, em vez de serem estritamente temporais ou sequenciais.
- Grafo de Conhecimento: Um grafo de conhecimento é uma base de dados estruturada de factos (entidades e relações), enquanto uma GNN é o modelo computacional utilizado para aprender com essas estruturas. As GNNs são frequentemente implementadas sobre grafos de conhecimento para executar tarefas como a previsão de ligações, melhorando muitas vezes os pipelines de Geração Aumentada por Recuperação (RAG).
Aplicações no mundo real#
A capacidade de modelar relações arbitrárias torna as GNNs indispensáveis em vários setores de elevado impacto:
-
Descoberta de Fármacos e Cuidados de Saúde: Na indústria farmacêutica, as moléculas químicas são naturalmente representadas como grafos, nos quais os átomos são nós e as ligações são arestas. As GNNs estão a transformar a IA nos cuidados de saúde ao preverem propriedades moleculares e simularem interações entre proteínas. Inovações como o AlphaFold da Google DeepMind realçam o poder da aprendizagem profunda geométrica para compreender estruturas biológicas.
-
Análise de Redes Sociais e Recomendação: As plataformas utilizam GNNs para analisar vastas redes de interações entre utilizadores. Ao modelarem os utilizadores como nós e as amizades ou os gostos como arestas, estas redes alimentam Sistemas de Recomendação que sugerem conteúdos, produtos ou ligações. Esta abordagem, semelhante aos métodos utilizados no GraphSage da Pinterest, adapta-se eficazmente a milhares de milhões de interações.
-
Logística e Previsão de Tráfego: Na IA na logística, as redes rodoviárias são tratadas como grafos, nos quais os cruzamentos são nós e as estradas são arestas. As GNNs podem prever o fluxo de tráfego e otimizar as rotas de entrega através da análise das dependências espaciais entre diferentes segmentos rodoviários, superando amplamente as linhas de base estatísticas simples.
Integração de Conceitos de Grafos com IA de Visão#
As Redes Neuronais de Grafos estão a ser cada vez mais integradas em pipelines multimodais. Por exemplo, um sistema abrangente pode utilizar a segmentação de imagens para identificar objetos distintos numa cena e, em seguida, recorrer a uma GNN para raciocinar sobre as relações espaciais entre esses objetos — algo frequentemente designado por "Grafo de Cena". Isto estabelece uma ligação entre a perceção visual e o raciocínio lógico.
O exemplo seguinte em Python demonstra como estabelecer uma ligação entre a IA de Visão e as estruturas de grafos. Utiliza o modelo Ultralytics YOLO26 para detetar objetos, que funcionam como nós, e prepara uma estrutura básica de grafo utilizando torch.
import torch
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on an image to find entities (nodes)
results = model("https://ultralytics.com/images/bus.jpg")
# Extract box centers to serve as node features
# Format: [center_x, center_y] derived from xywh
boxes = results[0].boxes.xywh[:, :2].cpu()
x = torch.tensor(boxes.numpy(), dtype=torch.float)
# Create a hypothetical edge index connecting the first two objects
# In a real GNN, edges might be defined by distance or interaction
edge_index = torch.tensor([[0, 1], [1, 0]], dtype=torch.long)
print(f"Graph constructed: {x.size(0)} nodes (objects) and {edge_index.size(1)} edges.")Os programadores que pretendam gerir os conjuntos de dados necessários para estes pipelines complexos podem utilizar a Ultralytics Platform, que simplifica os fluxos de trabalho de anotação e treino dos componentes de visão do sistema. Ao combinarem modelos de visão robustos com o raciocínio relacional das GNNs, os engenheiros podem criar sistemas autónomos conscientes do contexto que compreendem melhor o mundo à sua volta.









