Upgrade to Pro — share decks privately, control downloads, hide ads and more …

グラフ分析ナイト - グラフデータ分析 入門編

OpenJNY
February 12, 2020

グラフ分析ナイト - グラフデータ分析 入門編

グラフ畳み込みネットワークなど、グラフ上の機械学習/深層学習技術の概要についてご説明します。

OpenJNY

February 12, 2020
Tweet

More Decks by OpenJNY

Other Decks in Science

Transcript

  1. グラフとは? • グラフ (graph) はエンティティの二項関係を 表現するデータ構造 • エンティティ: ノード (node)

    • 関係: エッジ (edge) • 実データの多くがグラフとして表現することが 出来る • ソーシャル ネットワーク • 引用ネットワーク • 地図、道路交通網 • 分子構造、プロテインの相互作用 • EC サイトのアイテム=ユーザの購買履歴 v u ノード エッジ
  2. Protein-Protein Interaction https://www.biophys.jp/highschool/B-12.html • システム生物学では、生物のコンポー ネントに見られる相互作用を調べるの にグラフ構造が使われる • 例えば、タンパク質相互作用 •

    ノード = タンパク質 • エッジ = 相互作用 • 通常の状態の相互作用関係が分か れば異常 (疾患) を検知できる • タンパク質の他にも、遺伝子 (e.g. mRNA) でも解析の試みがある
  3. 交通ネットワーク解析 • 道路交通網もグラフの例 • 通常の地図 • 航空網 • 交通ネットワーク解析では、最短経路 問題等、多くをグラフ理論に根ざした

    解析手法で交通を紐解く • 例えば “最適” ルート検索 • 燃料を消費しない? • 時間をかけずに? • 空いた道路を快適に? • 他にも防災計画などの応用も
  4. グラフ/ネットワークという用語について • 明確な定義はないので、人それぞれの解釈がある • 個人的には… • グラフは応用を意識しない抽象的な概念 • ネットワークは出発点が実データであり、データを意識した具体的な概念 グラフ

    ネットワーク 抽象度 より抽象的 より具体的 歴史的経緯 数学 (グラフ理論) 社会学 (ネットワーク理論) 経緯的関心事 定義を定めて グラフの性質 (定理) を調べる 特徴を設計して ネットワークの性質を調べる
  5. 新たな分析パラダイム:グラフ ✕ 機械学習 機械学習は、明示的な指示を用いることなく、その代わりにパターンと推論に依存して、 特定の課題を効率的に実行するためにコンピュータシステムが使用するアルゴリズムおよび 統計モデルの科学研究である。 なぜ?既にネットワーク分析があるのに・・・ (出典: Wikipedia) •

    従来のネットワーク分析では、特徴・注目ポイントを人力 で設計し、それを元にネットワークの性質を説明 • 次数、中心性、コミュニティ構造… • 優秀な特徴抽出器である深層ニューラルネットワークにこ れらの処理を任せる Representation Learning 表現学習
  6. 話すこと • グラフの表現学習 • word2vec、畳み込みニューラルネットワーク表現学習の理解 • タスクを意識するか?意識しないか? • どのようなタスクが解けるのか •

    グラフ畳み込みネットワーク (Graph Convolutional Network) • 歴史的経緯 • 動作の簡単な理解 • 実装フレームワーク • 近年の動向 • 主要な国際学会での動き、理論的な研究など
  7. 話さないこと • グラフ理論、ネットワーク分析手法の話 • 最短経路問題、オイラーグラフ、次数分布、中心性、コミュニティ、ネットワーク モデル(スケールフリー、スモールワールド)、etc • Network Embedding/Graph Kernel

    について • DeepWalk, LINE, node2vec, … • グラフ畳み込み以外の Graph Neural Networks • 再帰的手法 • Autoencoder などの再帰的手法 • GCN 以外のグラフ畳み込みレイヤーの詳細
  8. 表現学習 表現学習 (Representation Learning) とは、後続のタスク (回帰や 分類) に利用できる、観測値・入力の分散表現を獲得すること 単語の分散表現 (word2vec)

    分散表現は、多次元の実ベ クトルであり、各次元が表現 対象を密に説明しないもの (Hinton+ 1986) 例えば、one-hot encoding は分散表現でない。 https://www.slideshare.net/yukinoguchi999/ss-59238906 次元数を N とすると、そのう ちの k < N 次元の値が独立 に動ける。
  9. word2vec (Mikolov+ 2013) 単語の分散表現 (word2vec) • 言語モデルを用いて、各単語の表 現を獲得する手法 • 潜在空間でのベクトル演算が解

    釈できることが話題になった • 例) Tokyo – Japan + America = Washington DC • 多くの自然言語のタスクに利用さ れている • 例) word2vec をもとにしてドキュメン トの表現を構築する
  10. グラフの表現学習 実物 表現 グラフ全体 ノード単位 他にもエッジ単位/サブグラフ単位があるが、上 の2つがポピュラー Graph Embedding Node

    Embedding 機械学習モデルによる グラフの表現生成 この表現で良いのだろうか? https://ai.googleblog.com/2019/06/innovations-in-graph-representation.html
  11. Graph MLのタスク設定 グラフ 表現 タスク Graph-focused Node-focused Edge-focused • ノード分類/回帰

    • クラスタリング • ランキング • リンク予測 • グラフ分類/回帰 • 可視化 表現の獲得 なんらかの機 械学習アルゴ リズム
  12. Graph MLのタスク設定 タスク Graph-focused Node-focused Edge-focused • ノード分類/回帰 • クラスタリング

    • ランキング • リンク予測 • グラフ分類/回帰 • 可視化 ? ?
  13. アプローチ: task-agnostic • 純粋にグラフ表現を得るだけの教師なし学習 (unsupervised learning) のアプローチ • Network/Graph Embedding

    の名前で知られて いる • DeepWalk (Perozzi+ 2014) • LINE (Tang+ 2015) • node2vec (Grover&Leskovec 2016) • 後続タスクが graph-focused であれば、Graph Kernel も有効な手法 • Weisfeiler-Lehman Kernel (Shervashidze+ 2011) グラフ 表現
  14. アプローチ: end-to-end • タスクも解きつつ、その過程として表現を獲得する (半)教師あり ((semi-)supervised) なアプローチ • 深層ニューラルネットワークが活きる •

    Graph Neural Networks (GNN) • ノード分類など、いくつかのタスクで state-of-the-art を達成し、近年注目されている (Kipf+ 2017) • 表現獲得レイヤー + 最終予測用レイヤーのよくある アーキテクチャ パターン • 焦点は「表現獲得レイヤー」の設計をどうするか • 画像に対する畳込みを拡張した、グラフ畳み込みが 主流 グラフ 表現 タスク
  15. 補足: Graph Neural Network • Graph Neural Network (GNN) は、グラフを入力として扱うニューラルネットワー

    ク全般を指す言葉 • まったく同名の手法もあるので注意 • 明確な分類方法は定まっていないが、本セッションでは・・・ • GRU や LSTM を内部モジュールに含む = 再帰的 GNN • グラフ畳み込みレイヤーを含む = 畳込み GNN Graph Neural Network (GNN) Graph Convolutional Network Graph Recurrent Neural Networks Graph Autoencoders Graph Reinforcement Learning Graph Adversarial Methods Zhang, Ziwei, et al. “Deep Learning on Graphs: A Survey.” ArXiv Preprint ArXiv:1812.04202, 2018.
  16. グラフ畳み込みの種類 Spectral Spatial • 従来の画像に対する畳込みレイヤーをベース にして、グラフ構造に拡張する方法 • ノード空間での演算しか考えないので、より直 感的に理解できる •

    一方で、理論的な裏付けがないのが難点 • グラフ信号処理に根差した手法で、「畳み込 み定理」を根拠に周波数領域での要素積を 行う • 音声データで言うとこの、イコライザ的処理 • 周波数領域への変換には、グラフ フーリエ変 換を利用 周波数領域での処理を考える 頂点領域での処理を考える
  17. グラフ畳み込みの系譜 ChebNet (Defferrard+ 2016) Spectral Networks (Bruna+ 2014) 周波数空間での畳込み シェビチェフ多項近似

    でグラフラプラシアンの 固有分解を回避 シェビチェフ近似に強い仮定を置け ば、近傍ノードの集約演算として畳 み込みを定義できることを示した Diffusion-CNN (Atwood&Towsley 2016) Spectral Spatial Message Passing Neural Network (Gilmer+ 2017) Graph Convolutional Network (Kipf&Welling 2017) MoNet (Monti+ 2017) GAT (Velickovic+ 2018) GraphSAGE (Hamilton+ 2017) NRI (Kipf+ 2018) GIN (Xu+ 2019) Relational-GCN (Schlichtkrull+ 2017) Neural Network for Graph (Micheli 2009) 多くのニューラルネットワークの モデルを、メッセージパッシング のフレームワークで説明 頂点空間での畳込み DiffPool (Ying+ 2018) さまざまな派生モデルたち
  18. Graph Convolutional Network (GCN) • Kipf&Welling によって提案されたグラフ上の畳み込み手法 • 周波数空間での畳み込みとノード空間の畳込みを結びつけた •

    以降、GCN をベースとした手法が続々と登場 • GCN + Attention = Graph Attention Network (GAT) • GCN + 辺の有向性/種類 = Relational GCN (R-GCN) • Message Passing と呼ばれるフレームワークで簡単に説明できる • Message = 各ノードが持つノードの特徴ベクトル • Passing = メッセージを交換し合うこと
  19. GCN の性能 • Citeseer,Cora,Pubmed は引用ネットワーク • NELL はナレッジグラフ • 一部のノードに正解ラベル(クラス)

    が与えられ ている時に、残りのノードをどれくらいの accuracy でラベル付けできたか? 論文での報告 State-of-the-art
  20. Deep Graph Libaray (DGL) • DGL はグラフ ニューラル ネットワークを 実装するための

    Python ライブラリ • PyTorch/Tensorflow/MXnet をバッ クエンドに使える • 開発スピードを見る限り PyTorch がメイン • グラフ畳み込みを Message Passing フレームワークで記述していくのが特徴 • 基本的には次の3点を定義するだけ • どんなメッセージを近傍ノードに送る? • メッセージはどうやって集計する? • 自分の特徴量と集計をどうマージする?
  21. DGL の良いところ:実装が簡単 • 前述の通り、Message Passing の形式で実装できる • メッセージ/集約関数の定義に注目するだけでよい • Heterogeneous

    なグラフへの柔軟な対応 • ノードやエッジに複数の種類が存在するグラフのこと • 例えば、知識グラフ (knowledge graph) などが該当する • Relational-GCN のチュートリアルがわかりやすい • 特別に意識せずにバッチ処理が書ける • バッチにまとめるグラフたち = 複数コンポーネントからなる巨大なグラフと見立て るトリックを利用している • 同じ API で一気に複数のグラフに対する学習が可能
  22. DGL の良いところ:サンプルが豊富 API の呼び出し一つ でこれだけの畳み込み レイヤーが利用可能 プリミティブな DGL の API

    で再現実装された グラフ畳み込みネット ワークたち https://docs.dgl.ai/api/python/nn.html https://github.com/dmlc/dgl/tree/master/examples/pytorch
  23. GNN に関する Workshop Workshop on Deep Learning on Graphs: Methodologies

    and Applications (DLGMA’20) https://dlg2019.bitbucket.io/aaai20/ Learning and Reasoning with Graph-Structured Representations | ICML 2019 https://graphreason.github.io/ Graph Representation Learning | NeurIPS 2019 https://grlearning.github.io/ Representation Learning on Graphs and Manifolds | ICLR 2019 https://rlgm.github.io/
  24. 理論的分析の出現 • Over-smoothing (Li+ 2018) • GCN 層を重ねると性能が悪化する • semi-supervised

    学習で、訓練データの割合が下がるにつれて急激に性能が低下 • まだ数は少ないが、Message Passing (aggregate / combine / readout) で実装可能な GNN のクラスに対する、表現能力の理論的研究が始まってきて いる (Morris+ 2019, Xu+ 2019, Dehmamy+ 2019) • グラフ同型問題への性能が良いことが知られる Weisfeiler-Lehman カーネルと表現能力を 比較する
  25. Trends in ICLR20 https://towardsdatascience.com/top-trends-of-graph-machine-learning-in-2020-1194175351a3 What graph neural networks cannot learn:

    depth vs width Graph Neural Networks Exponentially Lose Expressive Power for Node Classification 理論面 Over-smoothing (Li+ 2018) 現象がどのような条件で発 生するのかを理論的に調べて、密なグラフ に対して GNN が有効でないという仮説を提案 応用面 プログラミング言語の構文木に対して GNN を適用し、バグの発 見を行う応用例の紹介。知識グラフに対する手法が人気
  26. おしながき • グラフの表現を機械学習によって獲得して、様々なタスクをこなせる • グラフ分類、ノード分類、リンク予測 • 表現学習時に後続タスクを意識するか?が大事な観点 • Graph Neural

    Network を利用すると、end-to-end のマナーで表 現を獲得することが出来る • その中で中心的な存在を担うのがグラフ畳み込み (GCN) • メッセージパッシングと呼ばれるフレームワークで表現可 • 応用論文も増え盛り上がりを見せているが、ある特定の GNN の表現 能力の限界を示唆する文献も登場している • 今後、さらなる理論的分析、新たなアーキテクチャの開発が期待される
  27. 参考文献: 表現学習 (Mikolov+ 2013) Mikolov, Tomas, et al. “Distributed Representations

    of Words and Phrases and Their Compositionality.” Advances in Neural Information Processing Systems 26, 2013, pp. 3111–3119. Bengio, Y., et al. “Representation Learning: A Review and New Perspectives.” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 35, no. 8, 2013, pp. 1798–1828. Vol.31.No.4(2016/7)ネットワークの表現学習 – 人工知能学会 https://www.ai-gakkai.or.jp/my-bookmark_vol31-no4/ 言語と画像の表現学習 https://www.slideshare.net/yukinoguchi999/ss-59238906
  28. 参考文献: task-agnostic Graph ML (Perozzi+ 2014) B. Perozzi, R. Al-Rfou,

    and S. Skiena, “Deepwalk: Online learning of social representations,” in Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014, pp. 701–710. (Tang+ 2015) J. Tang, M. Qu, M. Wang, M. Zhang, J. Yan, and Q. Mei, “Line: Large-scale information network embedding,” in Proceedings of the 24th international conference on world wide web. International World Wide Web Conferences Steering Committee, 2015, pp. 1067–1077. (Grover&Leskovec 2016) A. Grover and J. Leskovec, “node2vec: Scalable feature learning for networks,” in Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016, pp. 855–864. (Shervashidze+ 2011) Shervashidze, Nino, et al. “Weisfeiler-Lehman Graph Kernels.” Journal of Machine Learning Research, vol. 12, 2011, pp. 2539–2561.
  29. 参考文献: Graph Neural Netowrks Spectral Networks (Bruna+ 2014) Bruna, Joan,

    et al. “Spectral Networks and Locally Connected Networks on Graphs.” ICLR 2014 : International Conference on Learning Representations (ICLR) 2014, 2014. ChebNet (Defferrard+ 2016) Defferrard, Michaël, et al. “Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering.” NIPS’16 Proceedings of the 30th International Conference on Neural Information Processing Systems, 2016, pp. 3844–3852. Graph Convolutional Network (Kipf&Welling 2017) Kipf, Thomas N., and Max Welling. “Semi-Supervised Classification with Graph Convolutional Networks.” ICLR 2017 : International Conference on Learning Representations 2017, 2017. Message Passing Neural Network (Gilmer+ 2017) Gilmer, Justin, et al. “Neural Message Passing for Quantum Chemistry.” ICML’17 Proceedings of the 34th International Conference on Machine Learning - Volume 70, 2017, pp. 1263–1272. Neural Networks for Graph (Micheli 2009) Micheli, A. “Neural Network for Graphs: A Contextual Constructive Approach.” IEEE Transactions on Neural Networks, vol. 20, no. 3, 2009, pp. 498–511. DCNN (Atwood&Towsley 2016) Atwood, James, and Don Towsley. “Diffusion-Convolutional Neural Networks.” Advances in Neural Information Processing Systems, 2016, pp. 1993–2001. GAT (Velickovic+ 2018) P. Velickovic, G. Cucurull, A. Casanova, A. Romero, P. Lio, and Y. Bengio, “Graph attention networks,” ICLR 2018, 2018.
  30. 参考文献: Graph Neural Networks Relational-GCN (Schlichtkrull+ 2017) M. Schlichtkrull, T.

    N. Kipf, P. Bloem, R. van den Berg, I. Titov, and M. Welling, “Modeling relational data with graph convolutional networks,” in ESWC 2018 MoNet (Monti+ 2017) F. Monti, D. Boscaini, J. Masci, E. Rodola, J. Svoboda, and M. M. Bronstein, “Geometric deep learning on graphs and manifolds using mixture model cnns,” CVPR 2017, pp. 5425–5434, 2017. GraphSAGE (Hamilton+ 2017) Hamilton, William L., et al. “Inductive Representation Learning on Large Graphs.” Advances in Neural Information Processing Systems, 2017, pp. 1024– 1034. DiffPool (Ying+ 2018) Ying, Zhitao, et al. “Hierarchical Graph Representation Learning with Differentiable Pooling.” NIPS 2018: The 32nd Annual Conference on Neural Information Processing Systems, 2018, pp. 4805–4815. NRI (Kipf+ 2018) Kipf, Thomas, et al. “Neural Relational Inference for Interacting Systems.” ICML 2018: Thirty-Fifth International Conference on Machine Learning, 2018, pp. 2688–2697. GIN (Xu+2019) Xu, Keyulu, et al. “How Powerful Are Graph Neural Networks.” ICLR 2019 : 7th International Conference on Learning Representations, 2019.
  31. 参考文献: Graph Neural Networks Over-smoothing (Li+ 2018) Qimai Li, Zhichao

    Han, and Xiao-Ming Wu. Deeper insights into graph convolutional networks for semi- supervised learning. In Thirty-Second AAAI Conference on Artificial Intelligence (AAAI), 2018. (Morris+ 2019) Morris, Christopher, et al. “Weisfeiler and Leman Go Neural: Higher-Order Graph Neural Networks.” AAAI 2019 : Thirty-Third AAAI Conference on Artificial Intelligence, vol. 33, no. 1, 2019, pp. 4602–4609. (Xu+ 2019) Xu, Keyulu, et al. “How Powerful Are Graph Neural Networks.” ICLR 2019 : 7th International Conference on Learning Representations, 2019. (Dehmamy+ 2019) Dehmamy, Nima, et al. “Understanding the Representation Power of Graph Neural Networks in Learning Graph Topology.” NeurIPS 2019 : Thirty-Third Conference on Neural Information Processing Systems, 2019, pp. 15387–15397.
  32. 参考文献: サーベイ関連 グラフ構造にまつわるサーベイ結果まとめ GNNからApplicationsまで Part1 - ログミーTech https://logmi.jp/tech/articles/321767 サーベイ レポジトリ

    • https://github.com/naganandy/graph-based-deep-learning-literature • https://github.com/nnzhan/Awesome-Graph-Neural-Networks • https://github.com/benedekrozemberczki/awesome-graph-classification • https://github.com/thunlp/GNNPapers • https://awesomeopensource.com/project/yazdotai/graph-networks
  33. 参考文献: 大学講義 Stanford: CS224W: Machine Learning with Graphs http://web.stanford.edu/class/cs224w/ UC

    Berkeley: AI-Sys Spring 2019 https://ucbrise.github.io/cs294-ai-sys-sp19/ EPFL: A Network Tour of Data Science https://github.com/mdeff/ntds_2019 Master Seminar "Deep Learning for Graphs" / "Recent Developments in Data Science" (WS 2019/20) https://www.dbs.ifi.lmu.de/cms/studium_lehre/lehre_master/semrecent1920/index.html
  34. グラフ分類の正しい実験 A Fair Comparison of Graph Neural Networks for Graph

    Classification https://openreview.net/forum?id=HygDF6NFPB • いくつかのモデルについて、丁寧な性能比較を試みた論文 • グラフ分類タスクにおいて注意しなければならないポイントがわかる