グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

WBOY
リリース: 2023-04-11 23:52:01
転載
1361 人が閲覧しました

2019 年、ニューヨーク大学と Amazon Cloud Technology は共同で、グラフ ニューラル ネットワーク フレームワーク DGL (Deep Graph Library) を立ち上げました。 DGL 1.0 が正式にリリースされました。 DGL 1.0 は、過去 3 年間の学術界または産業界におけるグラフ ディープ ラーニングおよびグラフ ニューラル ネットワーク (GNN) テクノロジーに対するさまざまなニーズをまとめています。最先端のモデルに関する学術研究から、GNN の産業用アプリケーションへのスケーリングに至るまで、DGL 1.0 は、グラフ機械学習をより効果的に活用するための包括的で使いやすいソリューションをすべてのユーザーに提供します。


グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

さまざまなシナリオのソリューションに対応した DGL 1.0提供された。

DGL 1.0 は、さまざまなユーザーのニーズを満たすために、階層化されたモジュール設計を採用しています。このリリースの主な機能は次のとおりです。

  • 100 を超えるすぐに使用できる GNN モデルのサンプル、Open Graph Benchmark (OGB) で上位にランクされた 15 を超えるサンプルベースライン モデル;
  • 新しいモデル アーキテクチャの構築に使用できる、GNN レイヤー、データ セット、グラフ データ変換モジュール、グラフ サンプラーなどを含む 150 を超える一般的に使用される GNN モジュールまたは GNN ベースのソリューション;
  • 新しい GNN モジュールを開発するための柔軟で効率的なメッセージ パッシングと疎行列の抽象化;
  • マルチ GPU および分散トレーニング機能は、数百億のグラフでのトレーニングをサポートします。


グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

#DGL 1.0 テクノロジー スタック図

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表


##アドレス: https://github. com/dmlc/dgl

このバージョンのハイライトの 1 つは、コア プログラミング抽象化としてスパース行列を使用する新しいプログラミング インターフェイスである DGL-Sparse の導入です。 DGL-Sparse は、既存の GNN モデル (グラフ畳み込みネットワークなど) の開発を簡素化するだけでなく、拡散ベースの GNN、ハイパーグラフ ニューラル ネットワーク、グラフ トランスフォーマーなどの最新モデルとも連携します。

DGL バージョン 1.0 のリリースは、ディープラーニングの 3 人の巨人の 1 人である Yann Lecun 氏や国立大学准教授の Xavier Bresson 氏などの学者から、インターネット上で熱狂的な反応を引き起こしました。シンガポール大学の皆様、いいねと転送をしていただきました。

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表#次の記事では、著者は 2 つの主流の GNNパラダイム、つまりメッセージ パッシング ビューとマトリックス ビューについて概説します。これらのパラダイムは、研究者が GNN の内部動作メカニズムをより深く理解するのに役立ちます。また、行列の観点は DGL Sparse 開発の動機の 1 つでもあります。

メッセージ パッシング ビューとマトリックス ビュー

映画「Arrival」には、次のような言葉があります。あなたは物事の見方を考え、影響を与えます。」 この文は GNN にも当てはまります。

グラフ ニューラル ネットワークには 2 つの異なるパラダイムがあることを意味します。 1 つ目は、メッセージ パッシング ビューと呼ばれるもので、きめの細かいローカルな観点から GNN モデルを表現し、エッジに沿ってメッセージがどのように交換され、それに応じてノードの状態がどのように更新されるかを詳しく説明します。グラフは疎な隣接行列と代数的等価性を持っているため、多くの研究者は粗粒のグローバルな観点から GNN モデルを表現することを選択し、疎な隣接行列と固有ベクトルを含む演算を強調しています。

メッセージ パッシングの観点からは、GNN とヴァイスフェイラー リーマン (WL) グラフの同型性テストとの間の関係が明らかになります。これも近隣からの情報の集約に依存しています。行列の観点は代数の観点から GNN を理解するため、過剰平滑化問題などのいくつかの興味深い発見につながります。

つまり、これら 2 つの視点は GNN を研究するために不可欠なツールであり、相互に補完し合い、研究者が GNN モデルの性質と特性をよりよく理解し、説明するのに役立ちます。このため、DGL 1.0 リリースの主な動機の 1 つは、既存のメッセージ パッシング インターフェイスに基づくマトリックス パースペクティブのサポートを追加することです。

DGL Sparse: グラフ機械学習用に設計されたスパース行列ライブラリ

DGL Sparse という新しいライブラリが DGL バージョン 1.0 に追加されました ( dgl.sparse) を DGL のメッセージ パッシング インターフェイスと組み合わせることで、あらゆる種類のグラフ ニューラル ネットワーク モデルのサポートが向上します。 DGL Sparse は、グラフ機械学習専用の疎行列クラスと演算を提供し、行列の観点から GNN を簡単に作成できるようにします。次のセクションでは、著者らはいくつかの GNN の例を示し、その数学的定式化と DGL Sparse での対応するコード実装を示します。

グラフ畳み込みネットワーク

GCN は、GNN モデリングの先駆者の 1 つです。 GCN は、メッセージ パッシング ビューとマトリックス ビューの両方で表現できます。次のコードは、DGL のこれら 2 つのメソッドの違いを比較しています。

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表


グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

##メッセージング API を使用した GCN の実装


グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

#DGL Sparse を使用して GCN を実装する

グラフ拡散に基づいた GNN

グラフ拡散は、エッジに沿ってノード フィーチャまたは信号を拡散または平滑化するプロセスです。 PageRank などの多くの古典的なグラフ アルゴリズムがこのカテゴリに分類されます。一連の研究により、グラフ拡散とニューラル ネットワークを組み合わせることが、モデル予測を強化する効果的かつ効率的な方法であることが示されています。次の方程式は、より代表的なモデルの 1 つである APPNP のコア計算を説明しています。 DGL Sparse に直接実装できます。

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

ハイパーグラフ ニューラル ネットワーク

ハイパーグラフは、エッジが任意の数のノード (ハイパーエッジと呼ばれる) を接続できるグラフを一般化したものです。ハイパーグラフは、電子商取引プラットフォームでの共同購入行動や引用ネットワークでの共著など、高次の関係を取得する必要があるシナリオで特に役立ちます。ハイパーグラフの典型的な特徴はその疎相関行列であるため、ハイパーグラフ ニューラル ネットワーク (HGNN) は多くの場合、疎行列を使用して定義されます。以下は、ハイパーグラフ畳み込みネットワーク (Feng et al.、2018) とそのコード実装です。

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表#グラフ トランスフォーマー

Transformer モデルは、自然言語処理において最も成功したモデル アーキテクチャになりました。研究者はまた、Transformer をグラフ機械学習に拡張し始めています。 Dwivedi らは、すべてのマルチヘッドの注意をグラフ内の接続されたノードのペアに限定するというアイデアを先駆者にしました。このモデルは、DGL Sparse ツールを使用すると、わずか 10 行のコードで簡単に実装できます。

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

グラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表

DGL Sparse の主な機能

scipy.sparse や torch.sparse などの疎行列ライブラリと比較すると、DGL Sparse の全体的な設計はグラフ機械学習を提供することであり、これには次の主要な機能が含まれます。

  • 自動スパース形式選択: DGL Sparse は、ユーザーがスパース行列 (また、スパース形式として知られています)。ユーザーは、dgl.sparse.spmatrix が疎行列を作成することだけを覚えておく必要があり、DGL は
  • # という演算子に基づいて内部で最適な形式を自動的に選択します。ゼロ以外のスカラーまたはベクトル要素 : 多くの GNN モデルは、エッジ上の複数の重みを学習します (グラフ トランスフォーマーの例で示されているマルチヘッド アテンション ベクトルなど)。この状況に対応するために、DGL Sparse では、非ゼロ要素がベクトル形状を持つことが可能になり、疎密行列乗算 (SpMM) などの一般的なスパース演算が拡張されます。 Graph Transformer の例で bspmm 操作を参照できます。

これらの設計機能を活用することにより、DGL Sparse は、メッセージ パッシング インターフェイスを使用した以前のマトリックス ビュー モデルの実装と比較して、平均コード長を短縮しました。 の2.7倍。簡素化されたコードにより、フレームワークのオーバーヘッドも 43% 削減されます。さらに、DGL Sparse は PyTorch と互換性があり、PyTorch エコシステム内のさまざまなツールやパッケージと簡単に統合できます。 DGL 1.0 を始めましょう

DGL 1.0 はすべてのプラットフォームでリリースされており、pip または conda を使用して簡単にインストールできます。前に紹介した例に加えて、DGL Sparse の最初のバージョンには 5 つのチュートリアルと 11 のエンドツーエンドの例も含まれており、そのすべてはローカルにインストールすることなく Google Colab で直接体験できます。

DGL 1.0 の新機能の詳細については、作成者のリリース ログを参照してください。 DGL の使用中に問題が発生したり、提案やフィードバックがある場合は、Discuss フォーラムまたは Slack を通じて DGL チームに連絡することもできます。

以上がグラフを完成させるための 10 行のコード Transformer、グラフ ニューラル ネットワーク フレームワーク DGL のバージョン 1.0 が発表の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!