グラフニューラルネットワーク関連資料

元々はグラフニューラルネットワークの[勉強会](https://ml-for-experts.connpass.com/event/127716/)で使った資料だが、重要なものや新しいものは更新していく予定

# 参考資料

- AAAI2020の理論チュートリアル、理論素養がないと若干ハードルが高いがGraph Signalなど重要な理論的なことが丁寧に書いてある：[AAAI_tutorial_GNN](https://docs.google.com/presentation/d/1rvm6Yq6-Ss4UmxLDIPTReJJkAdcXdhFb/edit)
- スタンフォード大学のネットワーク解析ページ（チュートリアルが非常にいい）：[Stanford Network Analysis Project](http://snap.stanford.edu/)
- GNNの研究をリードしてきた研究者の[博士論文](https://dare.uva.nl/search?identifier=1b63b965-24c4-4bcd-aabb-b849056fa76d)、教科書レベルとの評判。
- 論文集（Survey papersもあるので、最近の発展などを追うのにいい）：[GitHub - thunlp/GNNPapers: Must-read papers on graph neural networks (GNN)](https://github.com/thunlp/GNNPapers)
- グラフとその応用についてneo4jの方による紹介、ディープラーニングに特化せず、応用について全体を見渡しているのがよい：[スライド](https://www.slideshare.net/neo4j/graphs-for-ai-guess-the-future-given-the-past)、[動画](https://www.youtube.com/watch?v=x6FkMFrjyF4)
- Yann LeCunの講演：[YouTube](https://www.youtube.com/watch?v=UGPT64wo7lU)
- GCNの著者によるブログ解説記事：[Graph Convolutional Networks \| Thomas Kipf | PhD Student @ University of Amsterdam](http://tkipf.github.io/graph-convolutional-networks/)
- [まとめ](https://qiita.com/shionhonda/items/d27b8f13f7e9232a4ae5)：三部からなっていて、研究や理論の背景などがよくまとめられている
- [KERNELの方による勉強会の資料](https://speakerdeck.com/roy29fuku/graph-neural-networksgai-guan)：文献サーベイがよい
- [早い段階での日本語の解説記事（シリーズモノ）](https://tech-blog.abeja.asia/entry/2017/04/27/105613)
- [会社の方による応用実験の資料](https://speakerdeck.com/nishiba/graph-convolutional-networkswoshi-tuta-tui-jian-sisutemu)

# ハンズオン資料

1. とりあえず動かしてみる
[DGL at a Glance — DGL 0.2 documentation](https://docs.dgl.ai/tutorials/basics/1_first.html)

1. グラフメッセージ伝搬でみるページランク
[PageRank with DGL Message Passing — DGL 0.2 documentation](https://docs.dgl.ai/tutorials/basics/3_pagerank.html)

1. モデルのチュートリアル 
[Model overview — DGL 0.2 documentation](https://docs.dgl.ai/tutorials/models/index.html)

- ローカルで環境構築しなくてもこちらのgoogle colabを試せる:  
[1_first.ipynb - Google ドライブ](https://drive.google.com/open?id=1DNBPkAL0AbAuRESFhlAe5pysySXjHpDJ)



# 面白そうな応用研究
- Pinterestのリコメンドシステム（大量なデータで学習を行ったものでA/BテストでKPIが３０％改善）: [PinSage: A new graph convolutional neural network for web-scale recommender systems](https://medium.com/pinterest-engineering/pinsage-a-new-graph-convolutional-neural-network-for-web-scale-recommender-systems-88795a107f48)、[PinSage: A new graph convolutional neural network for web-scale recommender systems](https://medium.com/pinterest-engineering/pinsage-a-new-graph-convolutional-neural-network-for-web-scale-recommender-systems-88795a107f48)

# その他のリソース

- ナレッジグラフ：[Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page)
- ナレッジグラフの埋め込み：[GitHub - facebookresearch/PyTorch-BigGraph: Software used for generating embeddings from large-scale graph-structured data.](https://github.com/facebookresearch/PyTorch-BigGraph)
- [ポアンカレ埋め込み、Gensim](https://radimrehurek.com/gensim/models/poincare.html)
- ポアンカレ埋め込みの実装：[GitHub - facebookresearch/poincare-embeddings: PyTorch implementation of the NIPS-17 paper "Poincaré Embeddings for Learning Hierarchical Representations"](https://github.com/facebookresearch/poincare-embeddings)

# dgl以外のライブラリ

- chainerの化学用ライブラリ：
[GitHub - pfnet-research/chainer-chemistry: Chainer Chemistry: A Library for Deep Learning in Biology and Chemistry](https://github.com/pfnet-research/chainer-chemistry), [化学、生物学分野のための深層学習ライブラリChainer Chemistry公開 \| Preferred Research](https://research.preferred.jp/2017/12/chainer-chemistry-beta-release/)

- tensorflowの化学用ライブラリ
[GitHub - deepchem/deepchem: Democratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology](https://github.com/deepchem/deepchem)

- pytorch geometric(dglの競合？ビルドはcuda10の方がすんなりいく、と思う)
[GitHub - rusty1s/pytorch_geometric: Geometric Deep Learning Extension Library for PyTorch](https://github.com/rusty1s/pytorch_geometric)

- DeepMind提供、趣が少し違うが、[元論文](https://arxiv.org/pdf/1806.01261.pdf)の最初の方はなぜグラフなのかについて説明してあって、一読の価値がある：[GitHub - deepmind/graph_nets: Build Graph Nets in Tensorflow](https://github.com/deepmind/graph_nets)