HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学、量子計算などをテーマに扱っていきます

Graph Neural Network 系のライブラリメモ

 

 

follow us in feedly

はじめに

Graph Neural Networksが2年程前にから徐々に注目を浴びているように感じます。 CNNやRNNなど、データに対して適切な構造のネットワークを組んでやることで劇的に性能向上を達成してきたディープラーニング界隈でも、新たなアーキテクチャとして今後更に重要なポジションになってくるのではないかと思われます。

研究を加速してきたのは間違いなくChainerやTensorFlow、PyTorchなどのライブラリの出現による影響も大きいでしょう。C++でスクラッチ、あるいはcaffeで書かなければならなかった時代に比べると、ずいぶん誰でもアイデアを試すことができるようになりました。

ここでは自分のメモ用としてGraph Neural Networkのライブラリをまとめておきます。

PyTorch

PyTorchはPythonファーストを標榜しており、非常に柔軟かつ手軽にネットワークを組むことができることで人気の自動微分ライブラリです。PyTorchベースのGNNライブラリがいくつか見つかったので下記にまとめます。

Deep Graph Library

既にチュートリアルやドキュメントがしっかり準備されており、 最も普及する可能性が高いと私が思っているライブラリです。

www.dgl.ai

PyTorch Geometric

上記のDeep Graph Libraryよりも高速に動作するとされこちらも pip で入る。

rusty1s.github.io

TensorFlow

TensorFlowで実装するのはTensorFlowのプロじゃないと無理そうですが、TensorFlowのプロみたいな人たちが唯一のライブラリを作っていました。

graphnets

TensorFlowのラッパーであるsonnetを利用して実装されている模様。sonnet自体もdeepmindが自分たちでTFを使いやすくするために作ったライブラリで、特に詳しいチュートリアルやドキュメントはなく、更に今回のgraphnetsもgithubで自分で読むしか無いので、まあまあ学習コストは高そう。

github.com

おすすめ

Deep Graph Libraryはチュートリアルもドキュメントもかなりしっかりしているので、手を動かしながらGNNの勉強をするのに使えそうだなと思いました。graphnetsは明らかに既にGNNを知っている人が便利なツールとして使いこなすような段階にいないと、自分が何やってんだか最初から最後までわからない状態になるでしょう…(というかtfがむき出しな時点でまあまあキツイ…)。