DGL 0.5ユーザガイド : 6 章 巨大グラフ上の確率的訓練 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 09/23/2020 (0.5.2)
* 本ページは、DGL の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
ユーザガイド : 6 章 巨大グラフ上の確率的訓練
例えば、数百万あるいは数十億ものノードやエッジを持つ大規模なグラフを持つ場合、5 章 グラフ・ニューラルネットワークを訓練する で説明されたような full-グラフ訓練は通常は動作しません。$N$-ノードグラフ上で動作する隠れ状態サイズ $H$ を持つ $L$-層グラフ畳込みネットワークを考えます。中間隠れ状態をストアするには \(O(NLH)\) メモリを必要とし、large $N$ を持つ一つの GPU のキャパシティを容易に越えます。
このセクションは確率的ミニバッチ訓練を遂行する方法を提供します、そこでは総てのノードの特徴を GPU に適合させなくてもかまいません。
近傍サンプリング・アプローチの概要
近傍サンプリング法は一般に以下のように動作します。各勾配効果ステップについて、($L$-th 層でそれらの最終的な表現が計算される) ノードのミニバッチを選択します。それから $L-1$ 層のそれらの近傍の総てか幾つかを取ります。このプロセスは入力に達するまで続けられます。この反復的プロセスは、下の図が示すように、出力から始まり入力へと後方に動作する依存性グラフをビルドします :
これにより、巨大なグラフ上で GNN を訓練するための作業負荷と計算リソースを節約できます。
DGL は近傍サンプリングで GNN を訓練するための 2, 3 の近傍サンプラーとパイプライン、そしてサンプリング・ストラテジーをカスタマイズする方法を提供します。
以上