異種グラフをサポートし、非常に使いやすいグラフニューラルネットワークライブラリであるGraphGymを統合したPyGがバージョン2.0にアップデートされました。

異種グラフをサポートし、非常に使いやすいグラフニューラルネットワークライブラリであるGraphGymを統合したPyGがバージョン2.0にアップデートされました。

最も人気があり、広く使用されている GNN ライブラリ PyG (PyTorch Geometric) のバージョン 2.0 が利用可能になりました。新しいバージョンでは、包括的な異種グラフ サポート、GraphGam、その他多くの機能が提供されます。この一連の改善により、ユーザー エクスペリエンスが向上します。

PyTorch Geometric (PyG) は、構造化データに関連するさまざまなアプリケーション用のグラフ ニューラル ネットワーク (GNN) を記述およびトレーニングするために PyTorch 上に構築されたライブラリです。 PyG は、機械学習の研究者と機械学習ツールキットの初心者の両方にとって使いやすいものです。

[[423998]]

機能と機能の面では、PyG は使いやすく統合された API を備えているため、ユーザーはグラフ ニューラル ネットワークの基礎となるメカニズムの実装と実行に費やす時間を短縮できます。カスタム GNN モデルのトレーニングには、わずか 10 ~ 20 行のコードしか必要ありません。 PyG は、多数の SOTA GNN アーキテクチャ、トレーニングおよびスケーラビリティ プロセスをカバーしており、ユーザー独自のユース ケースに合わせて簡単に拡張したり、独自の GNN 研究を実施したりできます。

さらに、PyG の新しい GraphGym を使用すると、ユーザーは GNN 実験を簡単に再現し、何千もの GNN 実験を実行および分析し、カスタム モジュールを GNN 学習パイプラインに埋め込むことができます。

最近、PyG コアリーダーの Matthias Fey が、PyG 2.0 バージョンがリリースされたことを発表しました。新しいバージョンでは、包括的な異種グラフ サポート、GraphGam、その他多くの機能が提供されます。

PyG 2.0 の詳細アドレス: https://github.com/pyg-team/pytorch_geometric/releases/tag/2.0.0

PyG 2.0 の新機能

PyG 2.0 は、複雑な異種グラフのサポート、GraphGym 統合、およびその他の新機能を提供する新しいバージョンです。

PyG 2.0 では完全な異種グラフ サポートが利用できます。異種グラフのサポートには、データ ストレージ レイヤーの完全な書き換え (下位互換性は維持)、異種グラフの変換、近傍サンプリングによるリレーショナル データ読み込みルーチン、異種 GNN モデル/例の完全なセットが含まれます。

ハイライト

異種グラフ ストレージ: 異種グラフを専用の data.HeteroData クラスに保存できるようになりました。

  1. torch_geometric.data から HeteroDataをインポート
  2. データ = HeteroData()
  3. # 単一の特徴マトリックスを保持する 2 つのノード タイプ「paper」「author」を作成します。
  4. データ[ '論文' ].x = torch.randn(論文数, 論文の特徴数)
  5. データ[ 'author' ].x = torch.randn(num_authors, num_authors_features)
  6. # グラフの接続性を保持するエッジ タイプ ( 「paper」「written_by」「author」 ) を作成します。
  7. data[ '論文' , '執筆者' , '著者' ].edge_index = ... # [ 2 , num_edges]

異種ミニバッチロード: loader.DataLoader と loader.NextorLoader を使用して、それぞれ多数の小さなグラフと単一の巨大なグラフを変換することにより、異種グラフをミニバッチに変換できます。これらのローダーは、同種グラフと異種グラフの両方を処理できるようになりました。

  1. torch_geometric.loader から DataLoaderをインポートします
  2. ローダー = DataLoader(heterogeneous_graph_dataset、batch_size= 32 、shuffle=True)
  3. torch_geometric.loader から NeighborLoaderをインポートします
  4. ローダー = NeighborLoader(heterogeneous_graph, num_neighbors=[ 30 , 30 ], batch_size= 128 ,
  5. input_nodes=( 'paper' , data[ 'paper' ].train_mask), shuffle=True)

異種グラフ ニューラル ネットワーク: nn.to_hetero、nn.to_hetero_with_bases を介して、同種 GNN から異種 GNN を簡単に作成できるようになりました。これらのプロセスは、既存の GNN モデルを取得し、そのメッセージ機能を複製して、さまざまなノードとエッジ タイプを考慮します。

  1. torch_geometric.nn から SAGEConvをインポートし、to_hetero をインポートします。
  2. クラスGNN(torch.nn.Module):
  3. def __init__(hidden_​​channels, out_channels):
  4. スーパー().__init__()
  5. self.conv1 = SAGEConv((- 1 , - 1 ), 隠しチャンネル)
  6. self.conv2 = SAGEConv((- 1 , - 1 ), out_channels)
  7. def forward(self, x, edge_index):
  8. x = self.conv1(x, edge_index).relu()
  9. x = self.conv2(x, エッジインデックス)
  10. xを返す
  11. モデル = GNN(hidden_​​channels= 64 、out_channels=dataset.num_classes)
  12. モデル = to_hetero(モデル、data.metadata()、aggr= 'sum' )

GraphGym で実験を管理する

PyG 2.0 は torch_geometric.graphgym を介して GraphGym を正式にサポートするようになりました。要約すると、GraphGym は、高度にモジュール化されたパイプラインを介して構成ファイルからグラフ ニューラル ネットワークを設計および評価するためのプラットフォームです。

  • GraphGym は、標準化された GNN の実装と評価を学習し始めるのに最適なプラットフォームです。
  • GraphGym は、何千もの GNN アーキテクチャを並行して試し、特定のタスクに最適な設計を見つけるためのシンプルなインターフェースを提供します。
  • GraphGym を使用すると、ハイパーパラメータ検索を簡単に実行し、どの設計選択が優れているかを視覚化できます。

主な変更点

datasets.AMiner データセットは、data.HeteroData オブジェクトを返すようになりました。transforms.AddTrainValTestMask は transforms.RandomNodeSplit に置き換えられました。異種グラフをサポートするために data.Data のストレージ レイアウトが大幅に変更されたため、処理済みのデータセットは、ルート/処理済みフォルダーを削除して再処理する必要があります。

さらに、data.Data.__cat_dim__ と data.Data.__inc__ には追加の入力パラメータが必要になります。

  1. def __cat_dim__(self, キー, 値, *args, **kwargs):
  2. 合格
  3. def __inc__(self, キー, 値, *args, **kwargs):
  4. 合格

カスタム data.Data オブジェクトで __cat_dim__ または __inc__ を変更する場合は、必ず上記の変更を適用してください。

さらなる変更については、元のプロジェクトを参照してください。

コアチームメンバー

PyG コア チームには、ドルトムント工科大学のグラフ機械学習博士課程 4 年生である Matthias Fey 氏、ドルトムント工科大学の博士課程学生である Jan Eric Lenssen 氏 (コア コントリビューター)、グラフ ネットワーク分野の大物でありスタンフォード大学のコンピューター サイエンスの准教授である Jure Leskovec 氏 (アドバイザー) を含む合計 6 人のメンバーがいます。

[[423999]]

左から右へ:マティアス・フェイ、ヤン・エリック・レンセン、ユレ・レスコベック。

さらに、中国人メンバーは3名で、スタンフォード大学コンピュータサイエンスの博士課程4年生であるJiaxuan You氏(コアリーダー)、スタンフォード大学コンピュータサイエンスの博士課程の学生であるRex Ying氏(コアコントリビューター、2022年にイェール大学の助教授として着任予定)、カーネギーメロン大学ハンスカレッジの博士課程3年生であるYue Zhao氏(コアコントリビューター)である。

[[424000]]

左から右へ:You Jiaxuan、Rex Ying、Zhao Yue。

最近、趙悦氏は知乎でPyG 2.0バージョンの設計とアップグレードプロセスに参加した経験を共有しました。興味のある読者は参考にしてください。

知乎リンク: https://www.zhihu.com/pin/1420674585365196800

<<:  ビジネス開発における感情AIの重要性

>>:  ボーダーライン上の質問:テクノロジー企業はAIアルゴリズムを使って従業員の採用と解雇を行っている

ブログ    
ブログ    

推薦する

私たちは本当にロボットの「カンブリア紀の進化」に近づいているのでしょうか?

ロボット工学の分野は驚異的なスピードで進歩しており、多くの専門家がこの急速な発展を生物学における「カ...

AIが医療診断を改善する方法

人工知能システムは刻々と賢くなっています。運転や自然言語の理解などの複雑なタスクはすでに AI で実...

Python アルゴリズムの時間計算量

アルゴリズムを実装する場合、アルゴリズムの複雑さは通常、時間の複雑さと空間の複雑さという 2 つの側...

機械学習の公平性研究は正しい方向に進んでいるのでしょうか?

機械学習における公平性に関する研究は本当に正しい方向に進んでいるのでしょうか?人工知能の発展に伴い、...

...

2021年中国の人工知能産業市場規模とサブ産業の市場予測分析

人工知能は、人間による情報の統合、データの分析、機械の助けを借りた洞察の獲得のプロセスを再構築し、人...

...

テレンス・タオは数学の問題を解くために大規模なモデルを使用しています。コードの生成とLaTeXの数式の編集は非常に便利です。

過去数か月間、数学者のテレンス・タオ氏は、ChatGPT を使用して数学の問題を解くのに何度も試み、...

2021年4月のドローン業界の重要な動向の概要

2021年3月に入り、ドローン業界では新製品の登場、用途の深化、大きな出来事の連続など、発展は活気に...

...

新人新社、企業の急成長を支援する人事システムのデータデュアルエンジン版を発表

5月21日、新人新市は北京で2021年新人新市ブランドアップグレード記者会見を開催した。今回の記者会...

ガートナーは、世界のIT支出が2024年に6.8%増加すると予測している。

テクノロジー業界ではレイオフの波が起こっているものの、IT 市場は依然として成長を続けています。ガー...

国産大型モデルの推論能力がGPT-3.5を超えた! OpenAI評価リストの第1層に入る

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

PyTorch と TensorFlow の最新バージョンを比較すると、2021 年にはどちらを選択しますか?

ディープラーニングが再び認知されて以来、多くの機械学習フレームワークが登場し、研究者や業界の専門家の...