Modelos y entrenamiento de modelos en Amazon Neptune ML - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Modelos y entrenamiento de modelos en Amazon Neptune ML

Neptune ML utiliza redes neuronales de gráficos (GNN) para crear modelos para las distintas tareas de machine learning. Se ha demostrado que las redes neuronales de gráficos obtienen resultados de última generación para las tareas de machine learning de gráficos y son excelentes para extraer patrones informativos a partir de datos estructurados mediante gráficos.

Redes neuronales de gráficos (GNN) en Neptune ML

Las redes neuronales de gráficos (GNN) pertenecen a una familia de redes neuronales que calculan las representaciones de los nodos teniendo en cuenta la estructura y las características de los nodos cercanos. Las GNN complementan otros métodos tradicionales de machine learning y redes neuronales que no son adecuados para los datos de gráficos.

Las GNN se utilizan para resolver tareas de machine learning, como la clasificación y regresión de nodos (predicción de propiedades de nodos) y la clasificación y regresión de bordes (predicción de propiedades de los bordes) o la predicción de enlaces (predicción de si dos nodos del gráfico deben estar conectados o no).

En general, el uso de una GNN para una tarea de machine learning consta de dos etapas:

  • Una etapa de codificación, en la que la GNN calcula un vector de dimensión d para cada nodo del gráfico. Estos vectores también se denominan representaciones o incrustaciones.

  • Una etapa de decodificación, que hace predicciones basadas en las representaciones codificadas.

Para la clasificación y regresión de nodos, las representaciones de los nodos se utilizan directamente para las tareas de clasificación y regresión. Para la clasificación y regresión de bordes, las representaciones de nodos de incidentes en un borde se utilizan como entrada para la clasificación o la regresión. Para la predicción de enlaces, se calcula una puntuación de probabilidad de borde mediante un par de representaciones de nodos y una representación de tipo de borde.

La biblioteca Deep Graph Library (DGL) facilita la definición y el entrenamiento eficaces de las GNN para estas tareas.

Los diferentes modelos de GNN se unifican bajo la formulación de transferencia de mensajes. En esta vista, la representación de un nodo en un gráfico se calcula mediante las representaciones de los vecinos del nodo (los mensajes), junto con la representación inicial del nodo. En Neptune ML, la representación inicial de un nodo se deriva de las características extraídas de sus propiedades, o se puede aprender y depende de la identidad del nodo.

Neptune ML también ofrece la opción de concatenar características de nodos y representaciones de nodos que se pueden aprender para que sirvan como representación del nodo original.

Para las diversas tareas de Neptune ML que implican gráficos con propiedades de nodos, utilizamos la red convolucional de gráficos relacional (R-GCN) para realizar la etapa de codificación. La R-GCN es una arquitectura de GNN adecuada para gráficos con varios tipos de nodos y bordes (estos se conocen como gráficos heterogéneos).

La red R-GCN consta de un número fijo de capas, apiladas una tras otra. Cada capa de la R-GCN utiliza los parámetros de su modelo que se pueden aprender para agregar información de la vecindad inmediata de un salto de un nodo. Dado que las capas posteriores utilizan las representaciones de salida de la capa anterior como entrada, el radio de la vecindad del gráfico que influye en la incrustación final de un nodo depende del número de capas (num-layer) de la red R-GCN.

Por ejemplo, esto significa que una red de dos capas usa información de nodos que están a dos saltos de distancia.

Para obtener más información sobre las GNN, consulte A Comprehensive Survey on Graph Neural Networks (Una encuesta exhaustiva sobre las redes neuronales de gráficos). Para obtener más información sobre la biblioteca Deep Graph Library (DGL), visite la página web de la DGL. Para ver un tutorial práctico sobre el uso de la DGL con las GNN, consulte Learning graph neural networks with Deep Graph Library (Obtener información sobre las redes neuronales de gráficos con Deep Graph Library).

Entrenamiento de las redes neuronales de gráficos

En el machine learning, el proceso de hacer que un modelo aprenda a hacer buenas predicciones para una tarea se denomina entrenamiento de modelos. Por lo general, esto se realiza especificando un determinado objetivo que se debe optimizar, así como un algoritmo que se debe utilizar para realizar esta optimización.

Este proceso se emplea para entrenar a una GNN con el fin de que aprenda también buenas representaciones para la tarea posterior. Creamos una función objetivo para esa tarea que se minimiza durante el entrenamiento de modelos. Por ejemplo, para la clasificación de nodos, utilizamos CrossEntropyLoss como objetivo, lo que penaliza las clasificaciones erróneas, y para la regresión de nodos, minimizamos MeanSquareError.

El objetivo suele ser una función de pérdida que toma las predicciones del modelo para un determinado punto de datos y las compara con el valor real de ese punto de datos. Devuelve el valor de pérdida, que muestra qué tan lejos están las predicciones del modelo. El objetivo del proceso de entrenamiento es minimizar la pérdida y garantizar que las predicciones del modelo se acerquen al valor real.

El algoritmo de optimización utilizado en el aprendizaje profundo para el proceso de entrenamiento suele ser una variante del gradiente descendente. En Neptune ML, utilizamos Adam, que es un algoritmo para la optimización basada en gradientes de primer orden de funciones objetivo estocásticas basadas en estimaciones adaptativas de momentos de orden inferior.

Si bien el proceso de entrenamiento del modelo intenta garantizar que los parámetros del modelo aprendidos estén cerca de los mínimos de la función objetivo, el rendimiento general de un modelo también depende de los hiperparámetros del modelo, que son ajustes del modelo que el algoritmo de entrenamiento no aprende. Por ejemplo, la dimensionalidad de la representación del nodo aprendida, num-hidden, es un hiperparámetro que afecta al rendimiento del modelo. Por lo tanto, en el machine learning es habitual realizar una optimización de hiperparámetros (HPO) para elegir los hiperparámetros adecuados.

Neptune ML utiliza un trabajo de ajuste de hiperparámetros de SageMaker para lanzar varias instancias de entrenamiento de modelos con diferentes configuraciones de hiperparámetros con el fin de encontrar el mejor modelo para una serie de ajustes de hiperparámetros. Consulte Personalización de las configuraciones de hiperparámetros de modelos en Neptune ML.

Modelos de incrustación de gráficos de conocimientos de Neptune ML

Los gráficos de conocimientos (KG) son gráficos que codifican información sobre diferentes entidades (nodos) y sus relaciones (bordes). En Neptune ML, los modelos de incrustación de gráficos de conocimientos se aplican de forma predeterminada para realizar la predicción de enlaces cuando el gráfico no incluye propiedades de nodo, solo relaciones con otros nodos. Aunque los modelos de R-GCN con incrustaciones que se pueden aprender también se pueden usar para estos gráficos (si indicamos "rgcn" como tipo de modelo), los modelos de incrustación de gráficos de conocimientos son más sencillos y se han diseñado para ser eficaces a la hora de aprender representaciones de gráficos de conocimiento a gran escala.

Los modelos de incrustación de gráficos de conocimientos se utilizan en una tarea de predicción de enlaces para predecir los nodos o relaciones que completan un triple (h, r, t), donde h es el nodo de origen, r es el tipo de relación y t es el nodo de destino.

Los modelos de incrustación de gráficos de conocimientos implementados en Neptune ML son distmult, transE y rotatE. Para obtener más información sobre los modelos de incrustación de gráficos de conocimientos, consulte DGL-KE.

Entrenamiento de modelos personalizados en Neptune ML

Neptune ML le permite definir e implementar sus propios modelos personalizados para situaciones específicas. Consulte Modelos personalizados de Neptune ML para obtener información sobre cómo implementar un modelo personalizado y cómo usar la infraestructura de Neptune ML para entrenarlo.