

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

# 그래프에 대한 기계 학습을 위한 Amazon Neptune ML
<a name="machine-learning"></a>

연결된 대규모 데이터 세트에는 사람의 직관만으로는 쿼리를 사용하여 추출하기 어려운 귀중한 정보가 있는 경우가 많습니다. 기계 학습(ML) 기법은 수십억 개의 관계가 있는 그래프에서 숨겨진 상관관계를 찾는 데 도움이 될 수 있습니다. 이러한 상관관계는 제품 추천, 신용도 예측, 사기 식별 및 기타 여러 작업에 유용할 수 있습니다.

Neptune ML 기능을 사용하면 몇 주가 아닌 몇 시간 만에 대규모 그래프에 유용한 기계 학습 모델을 구축하고 훈련할 수 있습니다. 이를 위해 Neptune ML은 [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/)에서 제공하는 그래프 신경망(GNN) 기술과 [딥 그래프 라이브러리(DGL)](https://www.dgl.ai/)([오픈 소스](https://github.com/dmlc/dgl/))를 사용합니다. 그래프 신경망은 인공 지능 분야에서 새롭게 부상하는 분야입니다([그래프 신경망에 대한 포괄적인 조사](https://arxiv.org/abs/1901.00596) 등 참조). GNN을 DGL과 함께 사용하는 방법에 대한 실습 자습서는 [딥 그래프 라이브러리를 통한 그래프 신경망 학습](https://www.amazon.science/videos-webinars/learning-graph-neural-networks-with-deep-graph-library)을 참조하세요.

**참고**  
Neptune ML 모델에서는 그래프 버텍스가 '노드'로 식별됩니다. 예를 들어, 버텍스 분류는 노드 분류 기계 학습 모델을 사용하고 버텍스 회귀는 노드 회귀 모델을 사용합니다.

## Neptune ML이 할 수 있는 작업
<a name="machine-learning-capabilities"></a>

Neptune은 훈련 당시 그래프 데이터를 기반으로 사전 계산된 예측을 반환하는 변환 추론과 현재 데이터를 기반으로 데이터 처리 및 모델 평가를 실시간으로 적용하여 반환하는 유도 추론을 모두 지원합니다. [유도 추론과 변환 추론의 차이](machine-learning-overview-evolving-data.md#inductive-vs-transductive-inference)을(를) 참조하세요.

Neptune ML은 기계 학습 모델을 훈련시켜 다음과 같은 5가지 범주의 추론을 지원할 수 있습니다.

**현재 Neptune ML에서 지원하는 추론 작업 유형**
+ **노드 분류**   –   버텍스 속성의 범주형 특성을 예측합니다.

  예를 들어, 영화 *쇼생크 탈출*의 경우 Neptune ML은 `[story, crime, action, fantasy, drama, family, ...]`의 후보 세트에서 `genre` 속성을 `story`로 예측할 수 있습니다.

  노드 분류 작업에는 다음과 같은 두 유형이 있습니다.
  + **단일 클래스 분류**: 이러한 유형의 작업에서는 각 노드에 대상 특성이 하나씩만 있습니다. 예를 들어, `Alan Turing`의 `Place_of_birth` 속성 값은 `UK`입니다.
  + **다중 클래스 분류**: 이러한 유형의 작업에서는 각 노드에 대상 특성이 2개 이상 있을 수 있습니다. 예를 들어, 영화 *대부*의 `genre` 속성 값은 `crime` 및 `story`입니다.
+ **노드 회귀**   –   버텍스의 수치적 속성을 예측합니다.

  예를 들어, 영화 *어벤져스: 엔드게임*에서 Neptune ML은 해당 속성 `popularity`의 값이 `5.0`이라고 예측할 수 있습니다.
+ **엣지 분류**   –   엣지 속성의 범주형 특성을 예측합니다.

  엣지 분류 작업에는 다음과 같은 두 유형이 있습니다.
  + **단일 클래스 분류**: 이러한 유형의 작업에서는 각 엣지에 대상 특성이 하나씩만 있습니다. 예를 들어, 사용자와 영화 사이의 평점 엣지에는 값이 "예" 또는 “아니오”인 속성 `liked`가 있을 수 있습니다.
  + **다중 클래스 분류**: 이러한 유형의 작업에서는 각 엣지에 대상 특성이 2개 이상 있을 수 있습니다. 예를 들어, 사용자와 영화 간의 평점에는 속성 태그에 여러 값이 포함될 수 있습니다(예: “재밌다”, “마음이 따뜻해진다”, “짜릿하다” 등).
+ **엣지 회귀**   –   엣지의 수치적 속성을 예측합니다.

  예를 들어, 사용자와 영화 사이의 평점 엣지에는 수치적 속성 `score`가 있을 수 있는데, Neptune ML은 이 수치적 속성을 통해 사용자와 영화의 주어진 값을 예측할 수 있습니다.
+ **연결 예측**   –   특정 소스 노드와 발신 엣지에 대해 가장 가능성이 높은 대상 노드 또는 특정 대상 노드와 수신 엣지에 대해 가장 가능성이 높은 소스 노드를 예측합니다.

  예를 들어, Neptune ML은 `Aspirin`을 소스 노드로 지정하고 `treats`를 발신 엣지로 지정하는 약물-질병 지식 그래프를 사용하여 `heart disease`, `fever` 등과 같이 가장 관련성이 높은 대상 노드를 예측할 수 있습니다.

  아니면 `President-of`를 엣지 또는 관계로, `United-States`을 대상 노드로 삼는 Wikimedia 지식 그래프를 통해, Neptune ML은 `George Washington`, `Abraham Lincoln`, `Franklin D. Roosevelt` 등과 같이 가장 관련성이 높은 헤드를 예측할 수 있습니다.

**참고**  
노드 분류 및 엣지 분류는 문자열 값만 지원합니다. 즉, 문자열에 해당하는 항목인 `"0"` 및 `"1"`은 지원되지만, `0` 또는 `1`과 같은 숫자 속성 값은 지원되지 않습니다. 마찬가지로, 부울 속성 값 `true` 및 `false`도 작동하지 않지만, `"true"` 및 `"false"`는 작동합니다.

Neptune ML을 사용하면 다음과 같은 두 일반적인 범주에 속하는 기계 학습 모델을 사용할 수 있습니다.

**현재 Neptune ML에서 지원하는 기계 학습 모델 유형**
+ **그래프 신경망(GNN) 모델**   –   여기에는 [관계형 그래프 컨볼루션 네트워크(R-GCNs)](https://arxiv.org/abs/1703.06103)가 포함됩니다. GNN 모델은 상기 세 유형의 작업 모두에 사용할 수 있습니다.
+ **지식 그래프 임베딩(KGE) 모델**   –   여기에는 `TransE`, `DistMult`, `RotatE` 모델이 포함됩니다. 연결 예측에만 사용할 수 있습니다.

**사용자 정의 모델**   –   Neptune ML을 사용하면 위에 나열된 모든 유형의 작업에 대해 자체 사용자 지정 모델 구현을 제공할 수도 있습니다. 모델에 Neptune ML 훈련 API를 사용하기 전에 [Neptune ML 도구 세트](https://github.com/awslabs/neptuneml-toolkit)를 사용하여 Python 기반 사용자 지정 모델 구현을 개발하고 테스트할 수 있습니다. Neptune ML의 훈련 인프라와 호환되도록 구현을 구조화하고 구성하는 방법에 대한 자세한 내용은 [Neptune ML의 사용자 지정 모델](machine-learning-custom-models.md)을 참조하세요.