Meituanグラフニューラルネットワークトレーニングフレームワークの実践と探索

Meituanグラフニューラルネットワークトレーニングフレームワークの実践と探索

著者 | Fu Haoxian、Peng Xiangzhou 他

グラフニューラルネットワークの長期的な実装において、Meituan SearchとNLPチームは、実際のビジネスシナリオに基づいてグラフニューラルネットワークフレームワークTulongとそれをサポートするグラフ学習プラットフォームを独自に設計・開発し、モデルのスケールと反復効率を向上させました。

1. はじめに

すべてはつながっています。一般的なデータ構造として、グラフはエンティティ間の関係を適切に記述できます。たとえば、ソーシャル ネットワークでは、グラフはユーザー間の友情を表すために使用されます。電子商取引の Web サイトでは、グラフはユーザーと製品間のクリックと購入の行動を表すために使用されます。ナレッジ グラフの構築では、グラフはエンティティ間のさまざまな関係を表すためにも使用できます。一方、ディープラーニング技術は、コンピュータービジョン、自然言語処理、音声処理などの分野で大きな成功を収めています。ディープラーニング技術は、画像、テキスト、音声などのさまざまなデータを高密度のベクトル表現に変換し、データを表現する別の方法を提供します。ますます強力になるハードウェア コンピューティング機能の助けを借りて、ディープラーニングは膨大な量のデータからデータ間の複雑で多様な相関関係を学習できます。

こうなると、ディープラーニングはグラフなどのより広い分野に適用できるのだろうかと疑問に思う人もいるでしょう。実際、業界ではディープラーニングが登場するずっと前からグラフ埋め込み技術の検討が始まっていました[1]。初期のグラフ埋め込みアルゴリズムは、主にヒューリスティックな行列分解と確率的グラフモデルに基づいていました。その後、DeepWalk[2]やNode2vec[3]などの比較的「浅い」ニューラルネットワークモデルが登場しました。最終的に、GCN[4]に代表される一連の研究は、グラフ信号処理とニューラルネットワークの間の障壁を打ち破り、メッセージパッシングメカニズムに基づくグラフニューラルネットワーク(GNN)モデルの現在の基本パラダイムの基礎を築きました。

近年、グラフニューラルネットワークは徐々に学術界の研究ホットスポットの一つになってきています[5]。産業界では、グラフニューラルネットワークは電子商取引の検索、推奨、オンライン広告、金融リスク管理、交通予測などの分野でも広く応用され、大きな利益をもたらしています。

グラフ データの独特のスパース性 (グラフ内のすべてのノード ペアを接続するエッジの数が少ない) により、一般的なディープラーニング フレームワーク (TensorFlow や PyTorch など) を使用した直接トレーニングのパフォーマンスが低下することがよくあります。仕事をうまくやり遂げたいなら、まず道具を研がなければなりません。グラフニューラルネットワーク用のディープラーニングフレームワークが登場しています。PyG(PyTorch Geometric)[6]やDGL(Deep Graph Library)[7]などのオープンソースフレームワークは、グラフニューラルネットワークのトレーニング速度を大幅に向上させ、リソース消費を削減し[17][18]、コミュニティによる積極的なサポートも受けています。多くの企業も、自社のビジネス特性に基づいて独自のグラフ ニューラル ネットワーク フレームワークを構築しています。長期的な実装において、Meituan Search チームと NLP チームは実践的な経験をまとめ、トレーニングの規模とパフォーマンス、機能の豊富さ、使いやすさの面で多くの最適化を行いました。この記事では、まず過去のアプリケーションで遭遇した実際的な問題と課題を紹介し、次に具体的な解決策を紹介します。

1.1 問題と課題

産業応用の観点から、「使いやすい」グラフ ニューラル ネットワーク フレームワークには、少なくとも次の特性が必要です。

(1)現在普及しているグラフニューラルネットワークモデルのサポートを改善する。

グラフニューラルネットワークモデルは、グラフ自体の種類の観点から、同種グラフ、異種グラフ、動的グラフなどのタイプに分けられます。訓練方法の観点からは、フルグラフメッセージパッシング[4]とサブグラフサンプリングに基づくメッセージパッシング[8]に分けられます。推論方法の観点から見ると、直接推論と帰納的推論に分けられる[9]。

さらに、ダウンストリーム タスクには、従来のノード分類、リンク予測、グラフ分類のほか、多くのフィールド関連のエンドツーエンドの予測タスクが含まれます。実際のアプリケーションでは、ビジネス シナリオによってグラフ ニューラル ネットワーク モデルと下流タスクの要件が異なり、個別のカスタマイズが必要になります。たとえば、食品の推奨シナリオでは、ユーザー、販売者、料理などのノードがあります。同種グラフまたは異種グラフを使用して、それらの関係を特徴付けることができます。さまざまな時点でのユーザーの好みを特徴付けるには、動的グラフ モデルを使用する必要がある場合もあります。推奨システムのリコールとソートの段階に合わせて、さまざまなトレーニング タスクを設計する必要もあります。既存のフレームワークは共通モデルの実装を提供していますが、これらのモデルを単に呼び出すだけでは上記の要件を満たすことはできません。現時点では、ユーザーはモデルとトレーニングプロセスのコードを独自に開発する必要があり、追加の作業負荷が発生します。カスタマイズされたモデルをより便利にユーザーが実装できるようにする方法は大きな課題です。

(2)大規模グラフ上でのモデルトレーニングを合理的なコストでサポートする。

ビジネス アプリケーションでは、グラフの規模が非常に大きくなることが多く、エッジの数は数十億、さらには数百億にも達します。最初の試みでは、既存のフレームワークを使用すると、分散環境で数百億のエッジを持つモデルしかトレーニングできず、大量のハードウェア リソース (数千の CPU と数 TB のメモリ) を消費することがわかりました。単一のマシンで数百億のエッジを持つモデルを妥当な時間内にトレーニングし、ハードウェア リソースの需要を削減できることを期待しています。

(3)業務システムとのシームレスな統合。

グラフ ニューラル ネットワークの完全な実装プロセスには、少なくとも次の手順が含まれます: ビジネス データに基づくマッピング、モデルのオフライン トレーニングと評価、オンライン推論、ビジネス指標の観察。グラフニューラルネットワーク技術をうまく実装するには、ビジネスロジックとビジネスニーズを十分に理解し、ビジネスシナリオを統一的かつ効率的に管理する必要があります。食品の推奨シナリオを例にとると、オンライン ログには、露出、クリック、注文などの行動イベントが記録されます。ナレッジ グラフは、販売業者や料理に関する豊富な属性データを提供します。これらの異種データからグラフを構築する方法を決定するには、実際のビジネス条件に基づいた複数の実験が必要です。適切なツールを使用すると、ビジネス データへの接続の効率を向上させることができます。ただし、既存のグラフ ニューラル ネットワーク フレームワークは、主にモデルのオフライン トレーニングと評価に重点を置いており、そのようなツールが不足しています。

(4)十分な拡張性を備えながら、研究開発担当者が容易に開始できる。

R&D効率の観点から、自社構築のグラフニューラルネットワークフレームワークを構築する目的は、モデリングにおける反復作業を削減し、R&D担当者がビジネスそのものの特性に集中できるようにすることです。したがって、「使いやすい」グラフ ニューラル ネットワーク フレームワークは使いやすく、簡単な構成でほとんどのタスクを完了できる必要があります。これに基づいて、いくつかの特殊なモデリングのニーズに対して適切なサポートも提供できます。

1.2 美団の解決策

美団の検索およびNLPチームは、検索、推奨、広告、配信などの業務の長期にわたる実践経験を集約し、グラフニューラルネットワークフレームワークTulongとそれをサポートするグラフ学習プラットフォームを独自に設計・開発し、上記の問題を効果的に解決しました。

  1. まず、現在普及しているグラフニューラルネットワークモデルを詳細に分析し、一連のサブ操作をまとめ、一般的なモデルフレームワークを実装しました。既存のグラフ ニューラル ネットワーク モデルの多くは、構成を変更するだけで実装できます。
  2. サブグラフサンプリングに基づくトレーニング手法では、グラフデータのメモリ使用量とサブグラフサンプリング速度を大幅に最適化したグラフコンピューティングライブラリ「MTGraph」を開発しました。シングルマシン環境では、DGLに比べてトレーニング速度が約4倍向上し、メモリ使用量が約60%削減されます。 1 台のマシンで、10 億ノード、数百億エッジの規模でのトレーニングを実現できます。
  3. 当社は、グラフニューラルネットワークフレームワークTulongをベースにしたワンストップグラフ学習プラットフォームを構築し、ビジネスデータへのアクセス、グラフデータの構築と管理、モデルのトレーニングと評価、モデルのエクスポートと起動など、プロセス全体にわたるグラフィカルツールをR&D担当者に提供しています。
  4. Tulong は、高度に構成可能なトレーニングと評価を実装します。パラメータの初期化から学習率、モデル構造から損失関数のタイプまで、すべてを一連の構成ファイルを通じて制御できます。一般的なビジネス アプリケーション シナリオ向けのトレーニング テンプレートをいくつかまとめており、R&D 担当者は構成を変更することでほとんどのビジネス シナリオに適応できます。たとえば、多くのビジネスでは、午後と夕方のピーク時に周期的な変動があります。この目的のために、私たちは一日のさまざまな時間帯に異なる GNN 表現を生成できる周期的な動的グラフのトレーニング テンプレートを設計しました。 Meituan の配送業務への応用では、下流の予測タスクの入力特徴として、異なる期間の各地域の GNN 表現を生成する必要があります。開発プロセスでは、構成の変更を開始してからモデルの最初のバージョンを作成するまで、わずか 3 日しかかかりませんでした。それ以前は、同様のモデル ソリューションを独自に実装するのに約 2 週間かかっていました。

2. システムの概要

下の図 1 に示すように、Tulong のサポート グラフ コンピューティング ライブラリとグラフ学習プラットフォームは完全なシステムを構成します。システムは下から上に向かって次の 3 つのコンポーネントに分けられます。

図1. ニューラルネットワークコンピューティングエンジン、フレームワーク、プラットフォームのシステムアーキテクチャ

(1)グラフとディープラーニングエンジン

グラフ ニューラル ネットワークの基礎となる演算子を、グラフ構造クエリ、スパース テンソル計算、および密なテンソル計算の 3 つのカテゴリに分類します。グラフ データの保存とクエリ機能を提供し、メモリ使用量とサブグラフのサンプリング速度を大幅に最適化するグラフ コンピューティング ライブラリ MTGraph を開発しました。 MTGraph は PyTorch および DGL と互換性があり、ユーザーは MTGraph に基づいて DGL ベースのモデル コードを直接記述できます。

(2)トゥロンフレームワーク

Tulong フレームワークは、まずグラフと特徴データの前処理プロセス、サブグラフ サンプラー、一般的な GNN モデル フレームワーク、トレーニングと評価などの基本タスクなど、グラフ ニューラル ネットワークのトレーニングに必要な基本コンポーネントをカプセル化して実装します。上記のコンポーネントに基づいて、Tulong フレームワークは、豊富な定義済みモデルとトレーニング/推論プロセスを提供します。ユーザーは、構成ファイルを変更することで、ビジネス データで GNN モデルをトレーニングおよび評価できます。

(3)グラフ学習プラットフォーム

グラフ学習プラットフォームは、オフライン モデルの開発と反復プロセスを簡素化し、ビジネス システムのドッキング プロセスを簡素化することを目的としています。グラフ学習プラットフォームは、ビジネス データへのアクセスからモデルの起動までのプロセス全体を簡素化する一連の視覚化ツールを提供します。以下の記事では、モデル フレームワーク、トレーニング プロセス フレームワーク、パフォーマンス最適化、グラフ学習プラットフォームの 4 つの側面から、各モジュールの分析および設計ソリューションを詳しく紹介します。

3. モデルフレームワーク

エンジニアリング実装の観点から、現在主流のグラフニューラルネットワークモデルの基本的なパラダイムをまとめ、さまざまな GNN モデルをカバーする一般的なフレームワークを実装します。以下の説明は、グラフの種類 (同種グラフ、異種グラフ、動的グラフ) に基づいています。

3.1 同次グラフ

同次グラフは、ノードのセットとエッジのセットとして定義できます。エッジは 2 つのノード間の接続を表します。ノードとエッジには追加の機能があることが多く、これらはノード機能およびエッジ機能として記録されます。 PyG や DGL を含む多くのグラフ ニューラル ネットワーク フレームワークは、均質グラフ上の GNN を要約し、対応する計算パラダイムを提案しています。例えば、DGLはGNNの順方向計算プロセスをメッセージ関数、削減関数、更新関数にまとめています[7]。

集約関数の種類を拡張し、より一般的な計算パラダイムを提案します。

上記の計算パラダイムは、メッセージの生成、メッセージの集約、現在のノードの更新という 3 つのステップに分かれています。

  • 階層ディメンションの集計関数: モデルの異なるレベルで同じノードの表現を集計するために使用されます。例えば、ほとんどのGNNモデルでは、階層次元の集約関数は前の層のノード表現であるが、JKNet[10]では、階層次元の集約関数はLSTM[11]に設定することができる。
  • メッセージ機能: 開始ノードとターゲット ノード、およびエッジの機能を組み合わせて、メッセージ パッシング用のメッセージ ベクトルを生成します。
  • ノード次元集約関数: 隣接ノードからのすべてのメッセージ ベクトルを集約します。さまざまな実装が可能であることは注目に値します。たとえば、GCNではすべての隣接ノードが対象ですが、GraphSage[9]では隣接ノードのサブセットが対象となります。
  • 更新機能: 前のレイヤーと現在のレイヤーのノード自身の表現を集約するために使用されます。

上記の計算パラダイムが現在の GNN モデルのほとんどをカバーできることは容易にわかります。エンジニアリングの実践では、上記の機能をさらに分解して改良し、さまざまな効率的な実装を事前に提供します。構成オプションを通じてさまざまな組み合わせを実現できるため、ほとんどの主流の GNN モデルを実現できます。

3.2 異種グラフ

同種グラフと比較すると、異種グラフではノード タイプとエッジ タイプが拡張されます。例えば、学術引用ネットワーク[13]には、論文、著者、機関などのタイプのノードが含まれています。ノードは、「論文が他の論文を引用している」、「著者が論文を書いている」、「著者が機関に所属している」などのタイプのエッジを介して直接接続されています(下の図2を参照)。

図2 同種グラフと異種グラフの比較

異種グラフは、それぞれが 1 つのエッジ タイプに対応する複数の 2 部グラフの重ね合わせとして考えます。上記の学術引用ネットワークは、「論文-引用-論文」、「著者-執筆-論文」、「著者-所属-機関」の合計 3 つの二部グラフとして表すことができます。同次グラフの GNN モデル フレームワークを少し変更して、二部グラフに適用することができます。

これに基づいて、ノードは異なる二部グラフ内で異なる表現を持つことになります。さらに、異なる二部グラフ内のノードの表現を集約するためのエッジ タイプ次元の集約関数を提案します (下の図 3 を参照)。このフレームワークは、構成オプションを通じて呼び出すことができるエッジ タイプのディメンション集計関数の複数の実装も提供します。たとえば、RGCN を実装するには、二部グラフに GCN を適用し、エッジ タイプの次元にわたって平均化します。

図3 異種グラフモデルフレームワーク

3.3 動的グラフ

動的グラフは、時間の経過とともに変化するグラフです。これに対して、上記の同種グラフと異種グラフは静的グラフと呼ぶことができます。たとえば、学術引用ネットワークは時間の経過とともに拡大し続け、ユーザーと製品間の相互作用グラフはユーザーの関心に応じて変化します。動的グラフ上の GNN モデルは、特定の時間にノード表現を生成することを目的としています。時間の粒度の粗さに応じて、動的グラフは離散時間動的グラフと連続時間動的グラフに分けられます。

離散時間動的グラフでは、時間が複数の時間スライス (たとえば、日数/時間) に分割され、各時間スライスは静的グラフに対応します。離散時間動的グラフのGNNモデルでは、通常、各時間スライスに個別にGNNモデルを適用し、異なる時間におけるノードの表現を集約します[14]。集計プロセスを離散時間次元の集計関数に抽象化し、定義済みの実装も提供します。さらに、Tulong フレームワークは、離散時間の動的グラフ データをロードおよび管理するためのメカニズムも提供し、必要なタイム スライスのみをメモリに保持して、ハードウェア リソースの消費を削減します。

図 4. 離散時間動的グラフの GNN モデル フレームワーク。連続時間動的グラフでは、各エッジにタイムスタンプが付加され、相互作用イベントが発生した瞬間を示します。静的グラフと比較して、連続時間動的グラフのメッセージ関数は、指定されたサンプルのタイムスタンプとエッジのタイムスタンプにも依存します。さらに、隣接ノードは時間と関連している必要があります。たとえば、特定の時間以降に出現するノードは、隣接ノードに出現できません。この問題に対処するために、指定された時間範囲内で効率的に隣接ノードをサンプリングできる、連続時間動的グラフ上のさまざまな隣接ノード サンプラーを開発しました。

図5 連続時間動的グラフGNNモデルフレームワーク

上記の分析は、同種グラフ、異種グラフ、動的グラフの計算パラダイムに関するものです。メッセージ関数、集約関数、更新関数、隣接ノード関数など、それらから共通関数(演算子)を抽出し、さまざまな定義済み実装を提供します。フレームワーク ユーザーは、オプションを構成して組み合わせ演算子を組み立て、必要な GNN モデルを実装できます。

4. トレーニングプロセスのフレームワーク

GNN モデルのトレーニングには通常、データの読み込み、GNN モデルの定義、トレーニングと評価、モデルのエクスポートなどのプロセスが含まれます。 GNN モデルとトレーニング タスクの多様性のため、実際の開発プロセスでは、ユーザーが独自のシナリオに合わせてモデルとプロセス コードを記述しなければならないことがよくあります。面倒な基礎の詳細を処理すると、ユーザーがアルゴリズム モデル自体の調整に集中することが難しくなります。 GraphGym[12]とDGL-Go[16]は、複数のモデルとトレーニングタスクを統合し、インターフェースを簡素化することでこの問題を解決し、ユーザーがGNNモデルをより直接的に開始してトレーニングできるようにしました。

私たちはこの問題をより「工業化された」方法で解決します (下の図 6 を参照)。フレームワークは、基本コンポーネントとプロセス コンポーネントの 2 つのレイヤーに分かれています。基本コンポーネントは、単一の機能に重点を置いています。たとえば、グラフ データ コンポーネントは、グラフ データ構造をメモリ内に維持するだけで、グラフ上でのサンプリング機能やテンソル計算機能は提供しません。グラフ上のサンプリング機能は、グラフ サンプラーによって提供されます。プロセス コンポーネントは、基本コンポーネントを組み立てることで、比較的完全なデータ前処理、トレーニング、および評価プロセスを提供します。たとえば、トレーニング プロセスでは、グラフ データ、グラフ サンプラー、GNN モデルなどのコンポーネントを組み合わせて、完全なトレーニング機能を提供します。

図6 トレーニングプロセスのフレームワーク

さらに一歩進んで、さまざまなプロセス構成テンプレートと GNN モデル テンプレートを提供します。テンプレートは、トレーニング データ パス、モデル タイプ、学習率、その他のパラメータなど、いくつかのハイパーパラメータを公開します。ユーザーが指定したハイパーパラメータと組み合わせることで、トレーニング タスクを完全に定義できます。つまり、テンプレートとパラメータに基づいて、GNN モデル実験を完全に再現できます。フレームワークはこれらの構成を解析し、実行可能なアプリケーションを生成します。

たとえば、ユーザーは GraphSage モデルの構成テンプレートとリンク予測タスクのトレーニング テンプレートを選択し、モデルのレイヤーと次元の数、トレーニングおよび評価データ パスを指定して、GraphSage に基づくリンク予測モデルのトレーニングを開始できます。

5. パフォーマンスの最適化

事業が発展するにつれて、下図の事業シナリオの規模はどんどん大きくなります。数十億、あるいは数百億ものエッジを持つ GNN モデルを、いかにして合理的なコストで効率的にトレーニングするかが、解決すべき緊急の課題となっています。この問題は、単一マシンのメモリ使用量を最適化し、サブグラフ サンプリング アルゴリズムを最適化することで解決します。

5.1 グラフデータ構造の最適化

グラフ データ構造のメモリ使用量は、トレーニング可能なグラフのスケールを制限する重要な要因です。 MAG240M-LSCデータセット[13]を例にとると、逆エッジを追加した後、グラフには2億4000万個のノードと35億個のエッジが存在する。サブグラフ サンプリングに基づくトレーニング方法では、単一のマシン上の PyG と DGL のグラフ データ構造はどちらも 100 GB を超えるメモリを必要とし、他のオープン ソース フレームワークではさらに多くのメモリが必要になることがよくあります。大規模なビジネス シナリオでは、メモリ使用量がハードウェア構成を超えることがよくあります。よりコンパクトなグラフ データ構造を設計および実装し、単一のマシンでサポートできるグラフの規模を拡大しました。メモリ使用量を削減するためにグラフ圧縮技術を使用します。従来のグラフ圧縮問題とは異なり、GNN シナリオではランダム クエリ操作をサポートする必要があります。たとえば、特定のノードの隣接ノードを照会し、特定の 2 つのノードがグラフ内で接続されているかどうかを判断します。この問題に対する私たちの提案する解決策は、次の 2 つの部分から構成されます。

  • グラフ データの前処理と圧縮: まず、グラフの統計特性を分析し、軽量な方法でノードをクラスタ化して番号を付け直します。これにより、番号が似ているノードはドメイン構造がより類似したものになります。次に、エッジの順序を調整し、エッジデータをブロックに分割してエンコードし、「ノード-ブロックインデックス-隣接エッジ」階層を持つグラフデータファイルを生成します(下の図7を参照)。最後に、データにノード機能またはエッジ機能が含まれている場合は、その機能も圧縮されたグラフに合わせて調整する必要があります。

図7 圧縮グラフデータ構造

  • グラフのランダム クエリ: クエリ操作は 2 つのステップに分かれています。まず、必要なエッジ データ ブロックを見つけ、次にメモリ内のデータ ブロックを解凍して、クエリされたデータを読み取ります。たとえば、ノードとが接続されているかどうかを照会する場合、まず 2 つのノードの番号に基づいてエッジ データ ブロックのアドレスを計算し、データ ブロックを解凍して少数の候補隣接エッジ (通常は 16 個以下) を取得し、次にエッジが含まれているかどうかを検索します。

圧縮後、MAG240M-LSC データセットをロードするのに必要なメモリは 15 GB のみになります。数百億、あるいは数千億のエッジを持つグラフのメモリ使用量は、下の図 8 に示すように、単一のマシンでサポートできるレベルまで大幅に削減されます。

図8 グラフデータ構造のメモリ使用量の比較

5.2 サブグラフサンプリングの最適化

サブグラフ サンプリングは、GNN モデルのトレーニングにおけるパフォーマンスのボトルネックの 1 つです。一部のビジネス グラフでは、サブグラフのサンプリングに費やされる時間が全体のトレーニングの 80% 以上を占めていることもわかりました。静的グラフと動的グラフそれぞれに対して、さまざまな効率的な隣接ノード サンプリング アルゴリズムを設計し、実装しました。主な最適化方法は次のとおりです。

  • 乱数ジェネレータ: 通信暗号化などのアプリケーションと比較すると、グラフ サンプリングでは乱数ジェネレータの「ランダム性」に関する厳格な要件はありません。ランダム性の要件を適切に緩和し、置換ありまたは置換なしのサンプリング操作に直接適用できる、より高速な乱数ジェネレータを設計および実装しました。
  • 確率の量子化: 加重サンプリングでは、浮動小数点数で表される確率値が、許容できる精度の損失でよりコンパクトな整数に量子化されます。サンプラーのメモリ消費を削減するだけでなく、一部の浮動小数点演算を整数演算に変換します。
  • タイムスタンプ インデックス: 動的グラフのサブグラフ サンプリング操作では、エッジの時間範囲を制限する必要があります。サンプラーはまず、エッジのタイムスタンプのインデックスを作成します。サンプリング時には、まずインデックスに基づいてサンプリング可能なエッジの範囲を決定し、次に実際のサンプリング操作を実行します。

上記の最適化後、サブグラフのサンプリング速度は DGL と比較して 2 ~ 4 倍向上します (下の図 9 を参照)。 DGL を使用したビジネス シナリオ グラフ A (2 億ノード、40 億エッジ) のトレーニング時間はエポックあたり 2.5 時間ですが、最適化後はエポックあたり 0.5 時間に短縮できます。ビジネス シナリオ グラフ B (2 億 5,000 万ノード、124 億エッジ) は、当初は分散方式でのみトレーニング可能で、エポックごとに 6 時間かかりました。最適化後は、1 台のマシンでエポックごとに最大 2 時間の速度でトレーニングできます。

図9 サブグラフのサンプリング速度の比較(2層、層あたり20の隣接エッジ)

6. グラフ学習プラットフォーム

グラフ学習プラットフォームは、ビジネス システムのドッキング プロセスを簡素化しながら、オフライン モデル開発の反復プロセスを簡素化することを目的としています。モデル開発の完全な反復プロセスには、データ セットの準備、モデルとトレーニング タスクの定義、モデルのトレーニングと評価という少なくとも 3 つの段階が含まれます。私たちは、次の 3 つの段階でユーザーのニーズを分析し、開発効率を向上させるための適切なツールを提供します。

  • データセット管理: ビジネスデータからグラフを構築することは、モデル開発の最初のステップです。グラフ学習プラットフォームは、Hive に保存されているビジネスデータを Tulong がカスタマイズしたグラフデータ形式に変換できる Spark ベースのグラフ構成機能を提供します。ビジネス データはイベント ログの形式で保存されることが多く、そこからグラフを抽出するためのオプションは多数あります。たとえば、推奨シナリオでは、ビジネス ログには、ユーザーのクリックと販売店への注文の記録が含まれます。「ユーザー - クリック - 販売店」イベントをグラフとして表すだけでなく、短期間に一緒にクリックした販売店間の関係を表すことも検討できます。さらに、販売者の地理的位置、販売者が販売する料理などの追加データを導入することもできます。どの構成スキームを使用するかは、実験を通じて決定する必要があります。この点に関して、グラフ学習プラットフォームは、ユーザーが構成プランを整理するのに役立つグラフィカルな構成ツール(下の図 10 を参照)を提供します。また、さまざまな構成プランの効果を比較しやすくするために、グラフ データセットのバージョン管理も提供します。

図10 グラフィカル構成ツール

  • 実験管理: グラフ データを決定した後、モデリング スキームとトレーニング戦略が最終的な効果に影響を与える重要な要素となります。たとえば、どのような GNN モデルを使用すればよいでしょうか?損失関数をどのように選択するのでしょうか?モデルのハイパーパラメータとトレーニングのハイパーパラメータをどのように決定するのでしょうか?これらの質問に答えるには多くの実験が必要です。 Tulong フレームワークに基づいて、一連の構成を通じてモデリング スキームとトレーニング戦略を制御できます。グラフ学習プラットフォームは、構成およびバージョン管理機能用のビジュアル エディターを提供するため、さまざまなソリューションの長所と短所を簡単に比較できます。
  • プロセス管理: グラフ データセットとモデリング/トレーニング ソリューションを用意したら、プロセス全体を自動化する必要があります。これはモデルをオンラインにするために必要な条件であり、チーム メンバーが互いのソリューションを再現するのにも役立ちます。グラフ学習プラットフォームは、一般的な「構成、トレーニング、評価、エクスポート」プロセスの自動スケジュールを提供し、適切な場合には前の段階の結果を再利用して効率を向上させることができます。たとえば、データセットの定義が変更されていない場合は、Spark グラフの構築フェーズをスキップして、既存のグラフデータを直接使用できます。さらに、モデルオンラインのニーズに応えて、プラットフォームは構成とモデリングソリューションの統合、時間指定のスケジュール設定などの機能を提供します。

7. 結論

この記事では、GNN モデルの誘導と抽象化の考え方と主要な設計、基本フレームワーク、パフォーマンスの最適化、上位レベルのツールなど、グラフ ニューラル ネットワーク フレームワークの構築における Meituan Search と NLP チームの実践的な経験を紹介します。このフレームワークの設計思想は、大規模グラフの最適化や複数人コラボレーションにおけるプロセス管理など、ビジネス実装で遭遇する実際的な問題から派生したものです。同時に、動的グラフのコンピューティングパラダイムなど、学術界における最新の研究成果も取り入れています。技術的な最適化に加えて、フレームワークの構築はエンジニアリング チームとアルゴリズム チームの緊密な協力からも恩恵を受けました。共通の深い理解に基づいて、プロジェクトはスムーズに進行することができました。

Tulong フレームワークの助けにより、グラフ ニューラル ネットワーク テクノロジは、検索、推奨、広告、配信など、Meituan の複数のビジネス シナリオに適用され、大きなビジネス上のメリットを実現しました。グラフ ニューラル ネットワークはさらに幅広い応用の可能性を秘めており、インフラストラクチャとしてのグラフ ニューラル ネットワーク フレームワークもさらに最適化および改善する価値があると考えています。

8. 著者について

Fu Hao、Xian Peng、Xiang Zhou、Yu Ji、Xu Hao、Meng Di、Wu Wei などは、すべて Meituan プラットフォーム/検索および NLP 部門の出身です。

<<:  科学者らは初めてAIメタ学習を神経科学に導入し、脳画像精密医療の向上が期待される

>>:  優れたプレーンテキストモデル? GPT-4は準備完了

ブログ    
ブログ    

推薦する

AIは人間の教師に取って代わるでしょうか?どれだけの能力があるのか​​を確かめるためにレッスンを受けました

少し前に、「ピーター」と「トニー」という名前の二人の英語教師が人々の注目を集めました。彼らはあらゆる...

Protobufを勉強していたら、良いアルゴリズムを見つけました - ZigZag

[[434311]]もともと Protobuf の原理を勉強したかったのですが、研究の過程で Pr...

人工知能がサイバーセキュリティの世界に及ぼす影響

サイバーセキュリティは、今日世界中の企業が直面している戦略的な課題です。パンデミックによって加速した...

初心者からプロまでが使用する機械学習ソフトウェア トップ 10

この記事では、機械学習に最適なソフトウェアについて説明します。これらのソフトウェアは、ML コードを...

7.4K スター! わずか数分で機械学習モデル用の美しいインタラクティブ インターフェースを生成できます

Gradio は、機械学習やデータ サイエンス関連のデモや Web アプリケーションを構築するための...

人間の心臓細胞から作られたロボット魚は本物の魚よりも速く泳ぐ。ハーバード大学の新しい研究がサイエンス誌に掲載される。

心臓ペースメーカーの正確なメカニズムはわかっていませんが、この物理的プロセスを再現する「心臓」を私た...

TensorFlow を使用して Android デバイスでディープラーニング推論を実装する方法

[[211369]]個人や企業にとって、ローカルデバイスでディープラーニング推論を実行することが望ま...

教育省:100 以上の AI 専門専攻を構築し、500 万人の AI 人材のギャップを埋めます。

AIが再び国家の議題に!教育部は、「国務院による新世代人工知能発展計画の公布に関する通知」を実施し...

...

...

人工知能とコールセンターの衝突が新たな時代を創る

[[430158]]コールセンターは1960年代から存在しており、NASAのミッションコントロールで...

2019年インターネット人材採用レポート:Javaは人気だが、アルゴリズムエンジニアは不足している

技術の変化、才能主導。インターネットにおける現在の仕事の機会とトレンドはどこにありますか?本稿では、...

猿人歩行からAIまで:三次元戦略で一人ひとりに寄り添う「真のセキュリティ」

[[420527]]有名なドイツの社会学者ウルリッヒ・ベックはかつてこう言いました。「近代化の過程...

JD.comクラウドファンディング599元、業界最安値を突破、Nokelock X1セルフパワースマートドアロックがイノベーション革命をリード

2019年5月15日、深センIoTロックテクノロジー株式会社は北京金宇シェラトンホテルで「nokel...