Modelos e treinamento de modelos no Amazon Neptune ML - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Modelos e treinamento de modelos no Amazon Neptune ML

O Neptune ML usa redes neurais para grafos (GNN) a fim de criar modelos para as várias tarefas de machine learning. Foi demonstrado que as redes neurais para grafos obtêm resultados de última geração para tarefas de machine learning para grafos e são excelentes para extrair padrões informativos de dados estruturados em grafos.

Redes neurais para grafos (GNNs) no Neptune ML

As redes neurais para grafos (GNNs) pertencem a uma família de redes neurais que calculam representações de nós levando em consideração a estrutura e os atributos dos nós próximos. As GNNs complementam outros métodos tradicionais de machine learning e rede neural que não são adequados para dados de grafos.

As GNNs são usadas para resolver tarefas de machine learning, como classificação e regressão de nós (previsão de propriedades de nós) e classificação e regressão de bordas (previsão de propriedades de bordas) ou previsão de links (previsão se dois nós no grafo devem estar conectados ou não).

Em geral, o uso de uma GNN para uma tarefa de machine learning envolve duas fases:

  • Uma fase de codificação, em que s GNN calcula um vetor d-dimensional para cada nó no grafo. Esses vetores também são denominados representações ou incorporações.

  • Uma fase de decodificação, que faz previsões com base nas representações codificadas.

Para classificação e regressão de nós, as representações de nós são usadas diretamente para as tarefas de classificação e regressão. Para classificação e regressão de bordas, as representações dos nós incidentes em uma borda são usadas como entrada para a classificação ou a regressão. Para previsão de links, uma pontuação de probabilidade de borda é calculada usando um par de representações de nós e uma representação do tipo de borda.

A Deep Graph Library (DGL) viabiliza a definição e o treinamento eficientes de GNNs para essas tarefas.

Diferentes modelos de GNN são unificados sob a formulação da transmissão de mensagens. Nessa visualização, a representação de um nó em um grafo é calculada usando as representações dos vizinhos do nó (as mensagens), junto com a representação inicial do nó. No NeptuneML, a representação inicial de um nó é derivada dos atributos extraídos de suas propriedades do nó ou pode ser aprendida e depende da identidade do nó.

O Neptune ML também oferece a opção de concatenar atributos de nós e representações de nós que podem ser aprendidos para servir como representação do nó original.

Para as várias tarefas no Neptune ML envolvendo grafos com propriedades de nós, usamos a Relational Graph Convolutional Network (R-GCN) para realizar a fase de codificação. A R-GCN é uma arquitetura de GNN adequada para grafos com vários tipos de nós e bordas (conhecidos como grafos heterogêneos).

A rede R-GCN consiste em um número fixo de camadas, empilhadas uma após a outra. Cada camada da R-GCN usa seus parâmetros de modelo que podem ser aprendidos para agregar informações da vizinhança imediata de 1 salto de um nó. Como as camadas subsequentes usam as representações de saída da camada anterior como entrada, o raio da vizinhança do grafo que influencia a incorporação final de um nó depende do número de camadas (num-layer) da rede R-GCN.

Por exemplo, isso significa que uma rede de duas camadas usa informações de nós que estão a dois saltos de distância.

Para saber mais sobre GNNs, consulte A Comprehensive Survey on Graph Neural Networks. Para obter mais informações sobre a Deep Graph Library (DGL), visite a página da web da DGL. Para ver um tutorial prático sobre como usar a DGL com GNNs, consulte Learning graph neural networks with Deep Graph Library.

Treinar redes neurais para grafos

No machine learning, o processo de obter um modelo para aprender a fazer boas previsões para uma tarefa é chamado de treinamento de modelos. Em geral, isso é realizado especificando um objetivo específico a ser otimizado, bem como um algoritmo a ser usado para realizar essa otimização.

Esse processo também é empregado no treinamento de uma GNN para aprender boas representações para a tarefa posterior. Criamos uma função objetiva para essa tarefa que é minimizada durante o treinamento de modelos. Por exemplo, para classificação de nós, usamos CrossEntropyLoss como o objetivo, o que penaliza erros de classificação, e para regressão de nós minimizamos o MeanSquareError.

O objetivo geralmente é uma função de perda que pega as previsões do modelo para um ponto de dados específico e as compara ao valor verdadeiro básico desse ponto de dados. Ela exibe o valor da perda, que mostra o quão distantes estão as previsões do modelo. O objetivo do processo de treinamento é minimizar a perda e garantir que as previsões do modelo estejam próximas da verdade.

O algoritmo de otimização usado no machine learning para o processo de treinamento geralmente é uma variante do gradiente descendente. No Neptune ML, usamos Adam, que é um algoritmo para otimização baseada em gradiente de primeira ordem de funções objetivas estocásticas com base em estimativas adaptativas de momentos de ordem inferior.

Embora o processo de treinamento de modelos tente garantir que os parâmetros do modelo aprendido estejam próximos dos mínimos da função objetiva, o desempenho geral de um modelo também depende dos hiperparâmetros do modelo, que são configurações do modelo que não são aprendidas pelo algoritmo de treinamento. Por exemplo, a dimensionalidade da representação do nó aprendido, num-hidden, é um hiperparâmetro que afeta o desempenho do modelo. Portanto, é comum no machine learning realizar a otimização de hiperparâmetros (HPO) para escolher os hiperparâmetros adequados.

O Neptune ML usa uma tarefa de ajuste de hiperparâmetros do SageMaker para iniciar várias instâncias de treinamento de modelos com diferentes configurações de hiperparâmetros para tentar encontrar o melhor modelo para uma variedade de configurações de hiperparâmetros. Consulte Personalizar as configurações de hiperparâmetros do modelo no Neptune ML.

Modelos de incorporação de grafos de conhecimento no Neptune ML

Grafos de conhecimento (KGs) são grafos que codificam informações sobre diferentes entidades (nós) e suas relações (bordas). No Neptune ML, os modelos de incorporação de grafos de conhecimento são aplicados por padrão para realizar a previsão de links quando o grafo não contém propriedades de nós, somente relações com outros nós. Embora os modelos de R-GCN com incorporações que podem ser aprendidas também possam ser usados para esses grafos especificando o tipo de modelo como "rgcn", os modelos de incorporação de grafos de conhecimento são mais simples e foram projetados para ser eficazes para aprender representações de grafos de conhecimento em grande escala.

Os modelos de incorporação de grafos de conhecimento são usados em uma tarefa de previsão de links para prever os nós ou relações que completam uma (h, r, t) tripla em que h é o nó de origem, r é o tipo de relação e t é o nó de destino.

Os modelos de incorporação de grafos de conhecimento implementados no Neptune ML são distmult, transE e rotatE. Para saber mais sobre os modelos de incorporação de grafos de conhecimento, consulte DGL-KE.

Treinar modelos personalizados no Neptune ML

O Neptune ML permite definir e implementar os próprios modelos personalizados, para cenários específicos. Consulte Modelos personalizados no Neptune ML para obter informações sobre como implementar um modelo personalizado e como usar a infraestrutura do Neptune ML para treiná-lo.