著者 | 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とそれをサポートするグラフ学習プラットフォームを独自に設計・開発し、上記の問題を効果的に解決しました。
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 モデルのほとんどをカバーできることは容易にわかります。エンジニアリングの実践では、上記の機能をさらに分解して改良し、さまざまな効率的な実装を事前に提供します。構成オプションを通じてさまざまな組み合わせを実現できるため、ほとんどの主流の 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 圧縮グラフデータ構造
圧縮後、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 つの段階でユーザーのニーズを分析し、開発効率を向上させるための適切なツールを提供します。
図10 グラフィカル構成ツール
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は準備完了
少し前に、「ピーター」と「トニー」という名前の二人の英語教師が人々の注目を集めました。彼らはあらゆる...
[[434311]]もともと Protobuf の原理を勉強したかったのですが、研究の過程で Pr...
サイバーセキュリティは、今日世界中の企業が直面している戦略的な課題です。パンデミックによって加速した...
この記事では、機械学習に最適なソフトウェアについて説明します。これらのソフトウェアは、ML コードを...
Gradio は、機械学習やデータ サイエンス関連のデモや Web アプリケーションを構築するための...
心臓ペースメーカーの正確なメカニズムはわかっていませんが、この物理的プロセスを再現する「心臓」を私た...
[[211369]]個人や企業にとって、ローカルデバイスでディープラーニング推論を実行することが望ま...
AIが再び国家の議題に!教育部は、「国務院による新世代人工知能発展計画の公布に関する通知」を実施し...
[[430158]]コールセンターは1960年代から存在しており、NASAのミッションコントロールで...
技術の変化、才能主導。インターネットにおける現在の仕事の機会とトレンドはどこにありますか?本稿では、...
[[420527]]有名なドイツの社会学者ウルリッヒ・ベックはかつてこう言いました。「近代化の過程...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
2019年5月15日、深センIoTロックテクノロジー株式会社は北京金宇シェラトンホテルで「nokel...