Amazon Neptune ML でのモデルとモデルトレーニング - Amazon Neptune

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

Amazon Neptune ML でのモデルとモデルトレーニング

Neptune ML は、グラフニューラルネットワーク (GNN) を使用して、さまざまな機械学習タスクのモデルを作成します。グラフニューラルネットワークは、グラフ機械学習タスクの結果を取得 state-of-the-artすることが示されており、グラフ構造化データから情報パターンを抽出するのに優れています。

Neptune ML のグラフニューラルネットワーク (GNNs)

Graph Neural Networks (GNNs) は、近くのノードの構造と特徴を考慮してノード表現を計算するニューラルネットワークのファミリーに属します。 は、グラフデータには適していない他の従来の機械学習やニューラルネットワークメソッドをGNNs補完します。

GNNs は、ノード分類と回帰 (ノードのプロパティを予測する) やエッジ分類と回帰 (エッジのプロパティを予測する) やリンク予測 (グラフ内の 2 つのノードを接続するかどうかを予測する) などの機械学習タスクを解決するために使用されます。

一般的に、機械学習タスクGNNに を使用するには、次の 2 つの段階があります。

  • エンコーディングステージ。 はグラフ内の各ノードの d 次元ベクトルをGNN計算します。これらのベクトルは、表現または埋め込みです。

  • 符号化された表現に基づいて予測を行う復号化ステージ。

ノードの分類と回帰では、ノード表現が分類および回帰タスクに直接使用されます。エッジ分類と回帰では、エッジ上のインシデントノードのノード表現が分類または回帰の入力として使用されます。リンク予測の場合、エッジ尤度スコアは、ノード表現とエッジタイプ表現のペアを使用して計算されます。

Deep Graph Library (DGL) は、これらのタスクの の効率的な定義とトレーニングを容易にGNNsします。

メッセージパスの策定では、さまざまなGNNモデルが統合されます。このビューでは、グラフ内のノードの表現は、ノードの近傍の表現 (メッセージ) とノードの初期表現を使用して計算されます。NeptuneML では、ノードの初期表現は、ノードのプロパティから抽出された特徴から導出されるか、または学習可能であり、ノードのアイデンティティに依存します。

Neptune ML には、ノード特徴と学習可能なノード表現を連結して、元のノード表現として機能するオプションも用意されています。

ノードプロパティを持つグラフを含む Neptune ML のさまざまなタスクでは、リレーショナルグラフ畳み込みネットワーク (R-GCN) を使用してエンコードステージを実行します。R-GCN は、複数のノードタイプとエッジタイプ (異種グラフと呼ばれます) を持つグラフに適したGNNアーキテクチャです。

R-GCN ネットワークは、固定数のレイヤーで構成され、次々に積み上げられます。R-GCN の各レイヤーは、学習可能なモデルパラメータを使用して、ノードの直接の 1 ホップ近傍からの情報を集約します。後続のレイヤーは前のレイヤーの出力表現を入力として使用するため、ノードの最終埋め込みに影響を与えるグラフ近傍の半径は、R-GCN ネットワークのレイヤー数 (num-layer) によって異なります。

たとえば、これは、2 層ネットワークが 2 ホップ離れたノードからの情報を使用することを意味します。

の詳細についてはGNNs、グラフニューラルネットワークに関する包括的なアンケートを参照してください。Deep Graph Library (DGL) の詳細については、 DGL ウェブページを参照してください。DGL での の使用に関する実践的なチュートリアルについてはGNNs、「ディープグラフライブラリを使用したグラフニューラルネットワークの学習」を参照してください。

トレーニンググラフニューラルネットワーク

機械学習では、タスクに対して適切な予測を行う方法を学ぶためにモデルを取得するプロセスをモデルトレーニングと呼びます。これは、通常、最適化する具体的な目的と、この最適化を実行するために使用するアルゴリズムを指定することによって実行されます。

このプロセスは、ダウンストリームタスクの適切な表現を学習GNNするために、 のトレーニングにも使用されます。モデルトレーニング中に最小化される、そのタスクの目的関数を作成します。たとえば、ノード分類では を目標CrossEntropyLossとして使用し、誤分類にペナルティを課し、ノード回帰では を最小限に抑えますMeanSquareError

目的は通常、特定のデータポイントのモデル予測を取得し、そのデータポイントのグラウンドトゥルース値と比較する損失関数です。これは、モデルの予測がどれくらい離れているかを示す損失値を返します。トレーニングプロセスの目標は、損失を最小限に抑え、モデルの予測がグラウンドトゥルースに近いことを確認することです。

トレーニングプロセスのディープラーニングで使用される最適化アルゴリズムは、通常、勾配降下の一種です。Neptune MLでは、Adam を使用します。これは、低次モーメントの適応的推定に基づいて、確率的目的関数を一次勾配に基づいて最適化するアルゴリズムです。

モデルトレーニングプロセスでは、学習したモデルパラメータが目的関数の最小値に近いことを確認しようとしますが、モデルの全体的なパフォーマンスは、モデルのハイパーパラメータに依存し、これは、トレーニングアルゴリズムで学習されないモデル設定です。たとえば、学習したノード表現、num-hidden、の次元性は、モデルのパフォーマンスに影響するハイパーパラメータです。したがって、機械学習では、ハイパーパラメータの最適化 (HPO) を実行して適切なハイパーパラメータを選択することが一般的です。

Neptune ML は SageMaker AI ハイパーパラメータ調整ジョブを使用して、さまざまなハイパーパラメータ設定でモデルトレーニングの複数のインスタンスを起動し、さまざまなハイパーパラメータ設定に最適なモデルを見つけようとします。「Neptune ML でのモデルのハイパーパラメータ設定のカスタマイズ」を参照してください。

Neptune ML にモデルを埋め込むナレッジグラフ

ナレッジグラフ (KGs) は、さまざまなエンティティ (ノード) とその関係 (エッジ) に関する情報をエンコードするグラフです。Neptune ML では、グラフにノードプロパティが含まれず、他のノードとの関係のみが含まれている場合に、リンク予測を実行するためにデフォルトでナレッジグラフ埋め込みモデルが適用されます。学習可能な埋め込みを持つ R GCNモデルは、モデルタイプを に指定することでこれらのグラフにも使用できますが"rgcn"、ナレッジグラフの埋め込みモデルはよりシンプルで、大規模なナレッジグラフの表現を学習するために効果的であるように設計されています。

ナレッジグラフ埋め込みモデルは、リンク予測タスクで使用され、h が始点ノードであり、r がリレーションタイプ、t が終点ノードであるトリプル (h, r, t) を完了するノードまたはリレーションを予測します。

Neptune MLで実装されたナレッジグラフ埋め込みモデルは distmulttransE および rotatE です。ナレッジグラフの埋め込みモデルの詳細については、DGL「-KE」を参照してください。

Neptune ML のカスタムモデルのトレーニング

Neptune ML では、特定のシナリオに対して、独自のカスタムモデルを定義して実装できます。カスタムモデルの実装方法と、Neptune ML インフラストラクチャを使用してトレーニングする方法については、Neptune ML のカスタムモデル を参照してください。