O que são Redes Grafos Neurais?

As Redes Grafos Neurais (GNNs - Graph Neural Networks) aplicam o poder preditivo do deep learning a estruturas de dados avançados que descrevem objetos e suas relações como pontos conectados por linhas em um gráfico.
por Rick Merritt

Quando duas tecnologias convergem, elas podem criar algo novo e maravilhoso, como celulares e navegadores que foram fundidos para criar os smartphones.

Hoje, os desenvolvedores estão aplicando a capacidade da AI de encontrar padrões de bancos de dados gráficos enormes que armazenam informações sobre relações entre pontos de dados de todos os tipos. Juntos, eles produzem uma nova e poderosa ferramenta chamada Graph Neural Networks.

O que são Redes Grafos Neurais?

As Redes Grafos Neurais (GNNs) aplicam o poder preditivo do deep learning a estruturas de dados avançados que descrevem objetos e suas relações como pontos conectados por linhas em um gráfico.

Nas GNNs, os pontos de dados são chamados de nós, que são vinculados por linhas, chamadas de edges, com elementos expressos matematicamente para que algoritmos de machine learning possam fazer previsões úteis no nível de nós, edges ou gráficos inteiros.

O Que as GNNs Podem Fazer?

Uma lista cada vez maior de empresas está aplicando GNNs para melhorar a descoberta de medicamentos, a detecção de fraudes e os sistemas de recomendação. Essas aplicações e muitas outras dependem de encontrar padrões nas relações entre os pontos de dados.

Pesquisadores estão explorando casos de uso de GNNs na computação gráfica, na cibersegurança, na genômica e na ciência de materiais. Um artigo recente relatou como as GNNs usavam mapas de transporte como gráficos para melhorar as previsões do tempo de chegada.

Muitos setores da ciência e da indústria já armazenam dados valiosos em bancos de dados de gráficos. Com deep learning, eles podem treinar modelos preditivos que oferecem novas percepções dos gráficos.

Example uses of graph neural networks
O conhecimento de muitos campos da ciência e da indústria pode ser expresso como gráfico.

“As GNNs são uma das áreas de pesquisa em deep learning mais em alta, e vemos um número crescente de aplicações aproveitando as GNNs para melhorar seu desempenho”, disse George Karypis, Cientista Principal Sênior da AWS, em uma palestra no início deste ano.

Outros concordam. As GNNs estão “sendo motivo de entusiasmo devido à sua flexibilidade para modelar relações complexas, algo que as redes neurais tradicionais não podem fazer”, disse Jure Leskovec, Professor Associado de Stanford, falando em uma palestra recente, onde mostrou o gráfico abaixo de artigos de AI que as mencionam.

Recent papers on graph neural networks

Quem Usa Redes Grafos Neurais?

Em 2017, a Amazon comunicou sobre seu trabalho usando GNNs para detectar fraudes. Em 2020, ela lançou um serviço público de GNN que outros poderiam usar para detecção de fraudes, sistemas de recomendação e outras aplicações.

Para manter o alto nível de confiança de seus clientes, a Amazon Search emprega GNNs para detectar vendedores, compradores e produtos mal-intencionados. Usando GPUs da NVIDIA, ela é capaz de explorar gráficos com dezenas de milhões de nós e centenas de milhões de edges, reduzindo o tempo de treinamento de 24 para 5 horas.

Por sua vez, a biofarmacêutica GSK mantém um gráfico de conhecimento com quase 500 bilhões de nós que é usado em muitos de seus modelos de linguagem de máquina, afirmou Kim Branson, Diretor Global de AI da empresa, falando em um painel em um workshop sobre GNNs.

O LinkedIn usa GNNs para fazer recomendações sociais e entender as relações entre as habilidades das pessoas e seus cargos, disse Jaevirus Yang, Engenheiro de Software Sênior da empresa, falando em outro painel no workshop.

“As GNNs são ferramentas de uso geral, e todos os anos descobrimos um monte de novas aplicações para elas”, disse Joe Eaton, um engenheiro de destaque da NVIDIA e líder de uma equipe que aplica computação acelerada a GNNs. “Ainda não chegamos nem perto do que as GNNs podem fazer.”

Em outro sinal do interesse nas GNNs, vídeos de um curso sobre elas que Leskovec ministra em Stanford receberam mais de 700 mil visualizações.

Como Funcionam as GNNs?

Até o momento, o deep learning se concentrou principalmente em imagens e textos, tipos de dados estruturados que podem ser descritos como sequências de palavras ou grades de pixels. Os gráficos, por outro lado, não são estruturados. Eles podem tomar qualquer forma ou tamanho e conter qualquer tipo de dados, incluindo imagens e textos.

Usando um processo chamado “transmissão de mensagens”, as GNNs organizam gráficos para que algoritmos de machine learning possam usá-los.

A transmissão de mensagens incorpora informações em cada nó sobre seus vizinhos. Os modelos de AI empregam as informações incorporadas para encontrar padrões e fazer previsões.

Message passing in GNNs
Exemplo de fluxos de dados em três tipos de GNNs.

Por exemplo, os sistemas de recomendação usam uma forma de incorporação de nó em GNNs para combinar clientes com produtos. Os sistemas de detecção de fraudes usam incorporações no edge para identificar transações suspeitas, e os modelos de descoberta de medicamentos comparam gráficos inteiros de moléculas para descobrir como reagem entre si.

As GNNs são únicas de duas outras maneiras: usam matemática esparsa, e os modelos geralmente têm apenas duas ou três camadas. Outros modelos de AI geralmente usam cálculos densos e têm centenas de camadas de rede neural.

Example pipeline for a graph neural network
Um pipeline de GNN tem um gráfico como entrada e previsões como saídas.

Qual é a História das GNNs?

Um artigo de 2009 de pesquisadores na Itália foi o primeiro a dar nome a Redes Grafos Neurais. Mas levou oito anos até que dois pesquisadores em Amsterdã demonstrassem seu poder com uma variante chamada graph convolutional network (GCN), que é uma das GNNs mais populares atualmente.

O trabalho da GCN inspirou Leskovec e dois colegas de Stanford a criar o GraphSage, uma GNN que mostrou novas maneiras de a função de transmissão de mensagens funcionar. Ele colocou sua criação à prova no verão de 2017 no Pinterest, onde atuou como cientista-chefe.

The GraphSage graph neural network
O GraphSage foi pioneiro em técnicas avançadas de agregação para a transmissão de mensagens em GNNs.

Sua implementação, PinSage, foi um sistema de recomendação que contava com 3 bilhões de nós e 18 bilhões de edges para superar outros modelos de AI na época.

O Pinterest aplica-o hoje em mais de 100 casos de uso em toda a empresa. “Sem GNNs, o Pinterest não seria tão envolvente quanto é hoje”, disse Andrew Zhai, Engenheiro Sênior de Machine Learning da empresa, falando em um painel on-line.

Enquanto isso, outras variantes e híbridos surgiram, incluindo graph recurrent networks e graph attention networks. As GATs pegam emprestado o mecanismo de atenção definido nos modelos transformer para ajudar as GNNs a se concentrarem em partes de conjuntos de dados mais interessantes.

Variations of graph neural networks
Uma visão geral das GNNs retratou uma árvore genealógica de suas variantes.

Dimensionamento das Redes Grafos Neurais

No futuro, as GNNs precisarão ser dimensionadas em todas as dimensões.

As empresas que ainda não mantêm bancos de dados de gráficos precisam de ferramentas para facilitar o trabalho de criação dessas estruturas complexas de dados.

Aquelas que usam bancos de dados de gráficos sabem que estão crescendo em alguns casos para ter milhares de recursos incorporados em um único nó ou edge. Isso apresenta os desafios de carregar grandes conjuntos de dados de maneira eficiente, de subsistemas de armazenamento a redes e processadores.

“Estamos oferecendo produtos que maximizam a memória e a largura de banda computacional e a taxa de transferência de sistemas acelerados para solucionar esses problemas de carregamento e dimensionamento de dados”, disse Eaton.

Como parte desse trabalho, a NVIDIA anunciou no GTC que agora é compatível com PyTorch Geometric (PyG) além da Deep Graph Library (DGL). Esses são dois dos frameworks de software de GNN mais populares.

NVIDIA tools for creating graph neural networks
A NVIDIA oferece várias ferramentas para acelerar a criação de GNNs.

Os contêineres de DGL e PyG otimizados pela NVIDIA são ajustados para oferecer o maior desempenho e testados para GPUs NVIDIA. Eles oferecem um lugar fácil para começar a desenvolver aplicações usando GNNs.

Para saber mais, assista a uma palestra sobre aceleração e dimensionamento de GNNs com DGL e GPUs por Da Zheng, Cientista Aplicado Sênior da AWS. Além disso, os engenheiros da NVIDIA realizaram palestras separadas sobre aceleração de GNNs com DGL e PyG.

Para começar hoje, inscreva-se no nosso programa de acesso antecipado para DGL e PyG.