はじめに
Graph Neural Networksが2年程前にから徐々に注目を浴びているように感じます。 CNNやRNNなど、データに対して適切な構造のネットワークを組んでやることで劇的に性能向上を達成してきたディープラーニング界隈でも、新たなアーキテクチャとして今後更に重要なポジションになってくるのではないかと思われます。
研究を加速してきたのは間違いなくChainerやTensorFlow、PyTorchなどのライブラリの出現による影響も大きいでしょう。C++でスクラッチ、あるいはcaffeで書かなければならなかった時代に比べると、ずいぶん誰でもアイデアを試すことができるようになりました。
ここでは自分のメモ用としてGraph Neural Networkのライブラリをまとめておきます。
PyTorch
PyTorchはPythonファーストを標榜しており、非常に柔軟かつ手軽にネットワークを組むことができることで人気の自動微分ライブラリです。PyTorchベースのGNNライブラリがいくつか見つかったので下記にまとめます。
Deep Graph Library
既にチュートリアルやドキュメントがしっかり準備されており、 最も普及する可能性が高いと私が思っているライブラリです。
PyTorch Geometric
上記のDeep Graph Libraryよりも高速に動作するとされこちらも pip
で入る。
TensorFlow
TensorFlowで実装するのはTensorFlowのプロじゃないと無理そうですが、TensorFlowのプロみたいな人たちが唯一のライブラリを作っていました。
graphnets
TensorFlowのラッパーであるsonnetを利用して実装されている模様。sonnet自体もdeepmindが自分たちでTFを使いやすくするために作ったライブラリで、特に詳しいチュートリアルやドキュメントはなく、更に今回のgraphnetsもgithubで自分で読むしか無いので、まあまあ学習コストは高そう。
おすすめ
Deep Graph Libraryはチュートリアルもドキュメントもかなりしっかりしているので、手を動かしながらGNNの勉強をするのに使えそうだなと思いました。graphnetsは明らかに既にGNNを知っている人が便利なツールとして使いこなすような段階にいないと、自分が何やってんだか最初から最後までわからない状態になるでしょう…(というかtfがむき出しな時点でまあまあキツイ…)。