Teoria dos grafos para aprendizado de máquina
Nós, arestas, matriz de adjacência, tipos de grafos, atributos de grafos e representações de redes sociais.
Teoria dos grafos para aprendizado de máquina é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
O que é um grafo
Um grafo representa entidades e as relações entre elas. Formalmente, um grafo é G = (V, E), em que V é o conjunto de vértices (nós) e E é o conjunto de arestas que conectam pares de nós. Muitos sistemas reais são naturalmente grafos.
Nós e arestas
Cada nó representa uma entidade (um usuário, um átomo, uma página da web). Cada aresta representa uma relação (uma amizade, uma ligação química, um hiperlink). O aprendizado de máquina em grafos aprende com essa estrutura de conexões, não apenas com amostras isoladas.
A matriz de adjacência
A matriz de adjacência A codifica quais nós estão conectados. Para n nós, A tem dimensão n por n; A[i][j] = 1 se uma aresta conecta o nó i ao nó j e, caso contrário, 0.
import numpy as np
# Triangle: 0-1, 1-2, 0-2
A = np.array([
[0, 1, 1],
[1, 0, 1],
[1, 1, 0],
])Atributos dos nós X
Além da estrutura, cada nó geralmente contém um vetor de atributos. Empilhados, eles formam a matriz de atributos X com formato (num_nodes, num_features). Em um grafo social, uma linha pode conter a idade de um usuário, a quantidade de publicações e a idade da conta.
X = np.array([
[25, 120, 3.0], # node 0
[31, 45, 5.5], # node 1
[22, 300, 1.2], # node 2
])Matriz de graus
O grau de um nó é o número de suas arestas. A matriz de graus D é diagonal, com cada entrada da diagonal igual ao grau daquele nó. Ela é o bloco fundamental do laplaciano do grafo.
D = np.diag(A.sum(axis=1))
# Each diagonal entry = number of neighborsO laplaciano do grafo
O laplaciano do grafo é definido como L = D - A. Ele captura como os valores diferem entre nós conectados e é fundamental para a teoria espectral de grafos e para muitas formulações de GNN.
L = D - A
print(L)Por que o laplaciano é importante
Os autovalores e autovetores do laplaciano revelam a estrutura global: conectividade, agrupamentos e suavidade. As convoluções em grafos geralmente são derivadas do laplaciano, portanto entender L = D - A é essencial para entender as GNNs.
Direcionados versus não direcionados
Em um grafo não direcionado, uma aresta não tem direção (amizade), portanto A é simétrica. Em um grafo direcionado, as arestas apontam em uma única direção (um seguidor, uma citação), portanto A pode ser assimétrica: A[i][j] pode ser diferente de A[j][i].
# Directed: 0 -> 1 but not 1 -> 0
A_dir = np.array([
[0, 1, 0],
[0, 0, 1],
[0, 0, 0],
])Grafos ponderados
As arestas podem conter pesos que representam intensidade ou distância. Nesse caso, as entradas da matriz de adjacência são números reais, não apenas 0/1. Uma rede rodoviária pode ponderar as arestas pelo tempo de viagem; um grafo de similaridade, pela similaridade do cosseno.
Representando arestas com eficiência
Em grafos esparsos grandes, a matriz de adjacência desperdiça memória, pois a maioria das entradas é zero. Em vez disso, as estruturas de aprendizado de máquina armazenam as arestas como uma lista de arestas (formato COO): dois vetores que fornecem a origem e o destino de cada aresta. O PyTorch Geometric chama isso de edge_index.
# Triangle edges as edge_index [2, num_edges]
edge_index = [
[0, 0, 1], # sources
[1, 2, 2], # targets
]Aplicações do aprendizado de máquina em grafos
Os grafos aparecem em toda parte:
- Sociais: recomendação de amigos, detecção de comunidades
- Moleculares: previsão de propriedades de moléculas (átomos = nós, ligações = arestas)
- Grafos de conhecimento: previsão de conexões entre entidades e relações
- Web/citações: classificação e ordenação
Verificação rápida
Teste seus conhecimentos sobre teoria dos grafos.
Revisão
Você aprendeu os fundamentos da teoria dos grafos para o aprendizado de máquina:
- Um grafo é
G = (V, E), com nós e arestas - A matriz de adjacência A codifica a conectividade; X contém os atributos dos nós
- O laplaciano do grafo é
L = D - A - Os grafos podem ser direcionados ou não direcionados, ponderados ou não ponderados
- As aplicações abrangem grafos sociais, moleculares e de conhecimento
Perguntas Frequentes
A aula “Teoria dos grafos para aprendizado de máquina” é grátis?
Sim — o texto completo de “Teoria dos grafos para aprendizado de máquina” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Teoria dos grafos para aprendizado de máquina”?
Nós, arestas, matriz de adjacência, tipos de grafos, atributos de grafos e representações de redes sociais. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Teoria dos grafos para aprendizado de máquina”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Teoria dos grafos para aprendizado de máquina
- Redes convolucionais de grafos (GCN)
- Classificação de nós com GNN
- Previsão de links e classificação de grafos