Amazon Neptune ML에서의 모델 및 모델 훈련 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Neptune ML에서의 모델 및 모델 훈련

Neptune ML은 그래프 신경망(GNN)을 사용하여 다양한 기계 학습 작업을 위한 모델을 생성합니다. 그래프 신경망은 그래프 기계 학습 작업에 대해 최첨단 결과를 얻고 구조화된 그래프 데이터에서 유익한 패턴을 추출하는 데 탁월한 성과를 보이는 것으로 나타났습니다.

Neptune ML의 그래프 신경망(GNN)

그래프 신경망(GNN)은 주변 노드의 구조와 특성을 고려하여 노드 표현을 계산하는 신경망 패밀리에 속합니다. GNN은 그래프 데이터에 적합하지 않은 다른 기존 기계 학습 및 신경망 메서드를 보완합니다.

GNN은 노드 분류 및 회귀(노드의 속성 예측), 엣지 분류 및 회귀(엣지의 속성 예측) 또는 연결 예측(그래프의 두 노드를 연결해야 하는지 여부 예측)과 같은 기계 학습 작업을 해결하는 데 사용됩니다.

일반적으로 기계 학습 작업에 GNN을 사용하는 단계는 2가지로 이루어집니다.

  • 하나는 인코딩 단계인데, GNN이 그래프의 각 노드에 대해 d차원 벡터를 계산하는 단계입니다. 이러한 벡터를 표현 또는 임베딩이라고도 합니다.

  • 다음은 디코딩 단계로, 인코딩된 표현을 기반으로 예측을 수행하는 단계입니다.

노드 분류 및 회귀의 경우 노드 표현은 분류 및 회귀 작업에 직접 사용됩니다. 엣지 분류 및 회귀의 경우 엣지에 있는 인시던트 노드의 노드 표현이 분류 또는 회귀를 위한 입력으로 사용됩니다. 연결 예측의 경우 한 쌍의 노드 표현과 엣지 유형 표현을 사용하여 엣지 가능성 점수를 계산합니다.

딥 그래프 라이브러리(DGL)를 사용하면 이러한 작업을 위한 GNN을 효율적으로 정의하고 훈련할 수 있습니다.

메시지 전달 방식을 통해 다양한 GNN 모델이 통합됩니다. 이 보기에서 그래프의 노드 표현은 노드의 초기 표현과 함께 노드의 이웃 표현(메시지)을 사용하여 계산됩니다. Neptune ML에서 노드의 초기 표현은 노드 속성에서 추출한 특성에서 파생되거나, 학습 가능하며 노드의 자격 증명에 따라 달라집니다.

또한 Neptune ML은 노드 특성과 학습 가능한 노드 표현을 연결하여 원래 노드 표현으로 사용할 수 있는 옵션을 제공합니다.

노드 속성이 있는 그래프와 관련된 Neptune ML의 다양한 작업에서는 관계형 그래프 컨볼루션 네트워크(R-GCN)를 사용하여 인코딩 단계를 수행합니다. R-GCN은 여러 노드 및 엣지 유형이 있는 그래프(이기종 그래프)에 적합한 GNN 아키텍처입니다.

R-GCN 네트워크는 고정된 개수의 계층으로 구성되며, 계층은 차례로 쌓여 있습니다. R-GCN의 각 계층은 학습 가능한 모델 파라미터를 사용하여 노드의 즉각적인 1홉 이웃으로부터 정보를 집계합니다. 후속 계층은 이전 계층의 출력 표현을 입력으로 사용하므로, 노드의 최종 임베딩에 영향을 미치는 그래프 이웃의 반경은 R-GCN 네트워크의 계층 수(num-layer)에 따라 달라집니다.

예를 들어, 2계층 네트워크는 2홉 떨어진 노드의 정보를 사용합니다.

GNN에 대해 자세히 알아보려면 그래프 신경망에 대한 포괄적인 조사를 참조하세요. 딥 그래프 라이브러리(DGL)에 대한 자세한 내용은 DGL 웹 페이지를 참조하세요. DGL을 GNN과 함께 사용하는 방법에 대한 실습 자습서는 딥 그래프 라이브러리를 통한 그래프 신경망 학습을 참조하세요.

그래프 신경망 훈련

기계 학습에서는 모델이 작업을 효과적으로 예측하는 방법을 학습하도록 하는 프로세스를 모델 훈련이라고 합니다. 이는 일반적으로 최적화할 특정 목표와 이 최적화를 수행하는 데 사용할 알고리즘을 지정하여 수행됩니다.

이 프로세스는 다운스트림 작업에 대한 올바른 표현을 학습하도록 GNN을 훈련시키는 데도 사용됩니다. 해당 작업에 대한 목적 함수가 생성되는데, 이 함수는 모델 훈련 중에 최소화됩니다. 예를 들어, 노드 분류의 경우 CrossEntropyLoss를 목표로 사용하여 잘못된 분류에 불이익을 주고, 노드 회귀의 경우 MeanSquareError를 최소화합니다.

목적 함수는 일반적으로 특정 데이터 포인트에 대한 모델 예측값을 가져와서 해당 데이터 포인트에 대한 실측 값과 비교하는 손실 함수입니다. 모델의 예측과 얼마나 상이한지를 보여주는 손실 값을 반환합니다. 훈련 프로세스의 목표는 손실을 최소화하고 모델 예측이 실제와 비슷하도록 만드는 것입니다.

딥 러닝에서 훈련 프로세스에 사용되는 최적화 알고리즘은 일반적으로 경사 하강법의 변형입니다. Neptune ML에서는 저차 모멘트의 적응형 추정치를 기반으로 확률적 목적 함수의 1차 경사 기반 최적화를 위한 알고리즘인 Adam을 사용합니다.

모델 훈련 프로세스에서는 학습된 모델 파라미터를 목적 함수의 최소값에 가깝게 만들려고 하지만, 모델의 전체 성능은 훈련 알고리즘으로 학습되지 않는 모델 설정인 모델의 hyperparameters에 따라서도 달라집니다. 예를 들어, 학습된 노드 표현의 차원 num-hidden은 모델 성능에 영향을 미치는 하이퍼파라미터입니다. 따라서 기계 학습에서는 하이퍼파라미터 최적화(HPO)를 수행하여 적절한 하이퍼파라미터를 선택하는 것이 일반적입니다.

Neptune ML은 SageMaker 하이퍼파라미터 조정 작업을 통해 다양한 하이퍼파라미터 구성으로 모델 훈련의 여러 인스턴스를 실행하여 다수의 하이퍼파라미터 설정에 가장 적합한 모델을 찾습니다. Neptune ML의 모델 하이퍼파라미터 구성 사용자 지정 섹션을 참조하세요.

Neptune ML의 지식 그래프 임베딩 모델

지식 그래프(KG)는 다양한 엔터티(노드)와 해당 관계(엣지)에 대한 정보를 인코딩하는 그래프입니다. Neptune ML에서는 그래프에 노드 속성이 없고 다른 노드와의 관계만 포함된 경우 연결 예측을 수행하기 위해 지식 그래프 임베딩 모델이 기본적으로 적용됩니다. 모델 유형을 "rgcn"으로 지정하여 학습 가능한 임베딩이 있는 R-GCN 모델을 해당 그래프에 사용할 수도 있지만, 지식 그래프 임베딩 모델은 더 간단하며 대규모 지식 그래프의 학습 표현에 효과적이도록 설계되었습니다.

지식 그래프 임베딩 모델은 연결 예측 작업에서 트리플 (h, r, t)를 완료하는 노드 또는 관계를 예측하는 데 사용됩니다. 여기서 h는 소스 노드, r은 관계 유형, t는 대상 노드입니다.

Neptune ML에 구현된 지식 그래프 임베딩 모델은 distmult, transE, rotatE입니다. 지식 그래프 임베딩 모델에 대한 자세한 내용은 DGL-KE를 참조하세요.

Neptune ML에서 사용자 지정 모델 훈련

Neptune ML을 사용하면 특정 시나리오에 맞게 사용자 지정 모델을 정의하고 구현할 수 있습니다. 사용자 지정 모델을 구현하는 방법과 Neptune ML 인프라를 사용하여 모델을 훈련하는 방법에 대한 자세한 내용은 Neptune ML의 사용자 지정 모델을 참조하세요.