

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# グラフ上の機械学習のための Amazon Neptune ML
<a name="machine-learning"></a>

多くの場合、大きな接続データセットには、人間の直感だけに基づくクエリを使用して抽出するのが難しい貴重な情報があります。機械学習 (ML) 手法は、数十億もの関係を持つグラフの隠れた相関を見つけるのに役立ちます。これらの相関関係は、製品の推奨、信用力の予測、詐欺の特定、その他多くの事柄に役立ちます。

Neptune ML 機能を使用すると、数週間ではなく数時間で、大きなグラフで便利な機械学習モデルを構築し、トレーニングすることができます。これを達成するために、Neptune ML は、[Amazon SageMaker AI](https://aws.amazon.com/sagemaker/) と [Deep Graph Library (DGL)](https://www.dgl.ai/) (これは[オープンソース](https://github.com/dmlc/dgl/)です) を活用したグラフニューラルネットワーク (GNN) 技術を使用しています。グラフニューラルネットワークは、人工知能における新たな分野です（例えば、[グラフニューラルネットワークに関する包括的な調査](https://arxiv.org/abs/1901.00596)を参照してください)。DGL での GNN の使用に関する実践的なチュートリアルについては、[ディープグラフライブラリを使用したグラフニューラルネットワークの学習](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 はその `genre` プロパティを `[story, crime, action, fantasy, drama, family, ...]` の候補集合から `story` として予測できます。

  ノード分類タスクには 2 つのタイプがあります。
  + **単一クラス分類**: この種のタスクでは、各ノードにはターゲットフィーチャが 1 つしかありません。たとえば、プロパティ、`Alan Turing` の `Place_of_birth` には `UK` 値があります。
  + **複数クラス分類**: この種のタスクでは、各ノードにはターゲットフィーチャが 1 つしかありません。たとえば、映画*ゴッドファーザー*のプロパティ `genre` には `crime` および `story` の値があります。
+ **ノードリグレッション** — 頂点の数値プロパティを予測します。

  たとえば、映画*[アベンジャーズ/エンドゲーム]*では、Neptune MLはそのプロパティ `popularity` は `5.0` の値を有すると予測できます。
+ **ノード分類** — 頂点プロパティのカテゴリカル特徴を予測します。

  ノード分類タスクには 2 つのタイプがあります。
  + **単一クラス分類**: この種のタスクでは、各ノードにはターゲットフィーチャが 1 つしかありません。たとえば、ユーザーと映画の間の評価エッジには、「はい」または「いいえ」のいずれかの値を持つ、プロパティ `liked` が含まれる場合があります。
  + **複数クラス分類**: この種のタスクでは、各ノードにはターゲットフィーチャが 1 つしかありません。たとえば、ユーザーと映画の間の評価には、「面白い」、「心温まる」、「リラックスできる」などのプロパティタグに対する複数の値が含まれる場合があります。
+ **エッジリグレッション** — エッジの数値プロパティを予測します。

  たとえば、ユーザーと映画の間の評価エッジには、数値プロパティ `score` が含まれる場合があります。このためにNeptune MLは、ユーザーと映画を特定する値を予測できます。
+ **リンク予測** — 特定のソースノードと発信エッジの最も可能性の高いデスティネーションノード、または特定のデスティネーションノードと着信エッジの最も可能性の高いソースノードを予測します。

  例えば、薬物疾患の知識グラフでは、ソースノードとして `Aspirin`、出力エッジとして `treats`があり、Neptune ML は最も関連性の高い宛先ノードを `heart disease`、`fever`、などと予測できます。

  または、ウィキメディアのナレッジグラフで与えられたエッジ `President-of` またはデスティネーションノードとしてリレーションおよび `United-States`の場合、Neptune MLは、最も関連性の高いヘッドを `George Washington`、`Abraham Lincoln`、`Franklin D. Roosevelt`、などのように予測できます。

**注記**  
ノード分類とエッジ分類は文字列値のみをサポートします。つまり、`0` や `1` などの数値プロパティ値はサポートされませんが、該当する文字列 `"0"` および `"1"` はサポートされます。同様に、ブールのプロパティ値 `true` および `false` は機能しませんが、`"true"` および `"false"` は機能します。

Neptune ML では、次の 2 つの一般的なカテゴリに分類される機械学習モデルを使用できます。

**Neptune ML で現在サポートされている機械学習モデルの種類**
+ **グラフニューラルネットワーク (GNN) モデル** — [ここにはリレーショナルグラフ畳み込みネットワーク (R-GCNS)](https://arxiv.org/abs/1703.06103) が含まれます。GNN モデルは、上記の 3 種類のタスクすべてに対して機能します。
+ **ナレッジグラフ埋め込み (KGE) モデル** — ここには `TransE`、`DistMult`、`RotatE` モデルが含まれます。リンク予測のみに機能します。

**ユーザー定義のモデル** — Neptune ML では、上記のすべてのタイプのタスクに対して独自のカスタムモデル実装を提供することもできます。[Neptune ML ツールキット](https://github.com/awslabs/neptuneml-toolkit)で Neptune ML トレーニング API を使用する前に、Python ベースのカスタムモデル実装を開発およびテストします。Neptune ML のトレーニングインフラストラクチャと互換性があるように、実装を構造化して編成する方法の詳細については、[Neptune ML のカスタムモデル](machine-learning-custom-models.md) を参照してください。