2019 年、ニューヨーク大学と Amazon Cloud Technology は共同で、グラフ ニューラル ネットワーク フレームワーク DGL (Deep Graph Library) を立ち上げました。 DGL 1.0 が正式にリリースされました。 DGL 1.0 は、過去 3 年間の学術界または産業界におけるグラフ ディープ ラーニングおよびグラフ ニューラル ネットワーク (GNN) テクノロジーに対するさまざまなニーズをまとめています。最先端のモデルに関する学術研究から、GNN の産業用アプリケーションへのスケーリングに至るまで、DGL 1.0 は、グラフ機械学習をより効果的に活用するための包括的で使いやすいソリューションをすべてのユーザーに提供します。
さまざまなシナリオのソリューションに対応した DGL 1.0提供された。
DGL 1.0 は、さまざまなユーザーのニーズを満たすために、階層化されたモジュール設計を採用しています。このリリースの主な機能は次のとおりです。
#DGL 1.0 テクノロジー スタック図
このバージョンのハイライトの 1 つは、コア プログラミング抽象化としてスパース行列を使用する新しいプログラミング インターフェイスである DGL-Sparse の導入です。 DGL-Sparse は、既存の GNN モデル (グラフ畳み込みネットワークなど) の開発を簡素化するだけでなく、拡散ベースの GNN、ハイパーグラフ ニューラル ネットワーク、グラフ トランスフォーマーなどの最新モデルとも連携します。
DGL バージョン 1.0 のリリースは、ディープラーニングの 3 人の巨人の 1 人である Yann Lecun 氏や国立大学准教授の Xavier Bresson 氏などの学者から、インターネット上で熱狂的な反応を引き起こしました。シンガポール大学の皆様、いいねと転送をしていただきました。
#次の記事では、著者は 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 つのメソッドの違いを比較しています。
##メッセージング API を使用した GCN の実装
グラフ拡散に基づいた GNN
グラフ拡散は、エッジに沿ってノード フィーチャまたは信号を拡散または平滑化するプロセスです。 PageRank などの多くの古典的なグラフ アルゴリズムがこのカテゴリに分類されます。一連の研究により、グラフ拡散とニューラル ネットワークを組み合わせることが、モデル予測を強化する効果的かつ効率的な方法であることが示されています。次の方程式は、より代表的なモデルの 1 つである APPNP のコア計算を説明しています。 DGL Sparse に直接実装できます。
ハイパーグラフ ニューラル ネットワーク
ハイパーグラフは、エッジが任意の数のノード (ハイパーエッジと呼ばれる) を接続できるグラフを一般化したものです。ハイパーグラフは、電子商取引プラットフォームでの共同購入行動や引用ネットワークでの共著など、高次の関係を取得する必要があるシナリオで特に役立ちます。ハイパーグラフの典型的な特徴はその疎相関行列であるため、ハイパーグラフ ニューラル ネットワーク (HGNN) は多くの場合、疎行列を使用して定義されます。以下は、ハイパーグラフ畳み込みネットワーク (Feng et al.、2018) とそのコード実装です。
#グラフ トランスフォーマー
Transformer モデルは、自然言語処理において最も成功したモデル アーキテクチャになりました。研究者はまた、Transformer をグラフ機械学習に拡張し始めています。 Dwivedi らは、すべてのマルチヘッドの注意をグラフ内の接続されたノードのペアに限定するというアイデアを先駆者にしました。このモデルは、DGL Sparse ツールを使用すると、わずか 10 行のコードで簡単に実装できます。
DGL Sparse の主な機能
scipy.sparse や torch.sparse などの疎行列ライブラリと比較すると、DGL Sparse の全体的な設計はグラフ機械学習を提供することであり、これには次の主要な機能が含まれます。
これらの設計機能を活用することにより、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 サイトの他の関連記事を参照してください。