Slide 1

Slide 1 text

ネットワーク可視化の世界 尾上 洋介 2024年12月28日 Data Visualization Japan Meetup 2024

Slide 2

Slide 2 text

● 尾上洋介 ● 日本大学文理学部情報科学科教授 ● 興味:情報可視化、Web 自己紹介 https://vdslab.jp/ http://judgit.net/ https://x.com/_likr

Slide 3

Slide 3 text

ネットワークデータの可視化

Slide 4

Slide 4 text

● ネットワークデータを可視化することでネットワークの 全体的・局所的な構造 を読み取ることを助ける ● 視覚的に興味を惹きやすい ● 例:省庁の部局と事業支出先の関係ネットワーク ネットワークデータの可視化 全体的な構造: 省庁ごとにクラスタを形成する ➡省庁ごとに「得意先」が存在 局所的な構造: 複数クラスタに分割される省庁の存在 ➡複数の離れた政策領域を持つ

Slide 5

Slide 5 text

ネットワークデータの作成 ● ネットワークデータ ○ 2要素間の関係性の有無を集約 ○ 例:SNSのフォロー・被フォロー関係   ECサイトの購入履歴 ● 非ネットワークデータ ○ 要素間の関係性を定義することで ネットワークデータに変換できる ○ 例:単語の共起関係   ベクトルデータの類似度 ● サンプリング・粗視化 ○ 大規模なネットワークデータを 全体的な構造を保ったまま削減 A B C D E データ(要素の集合) B C BとCが友達 etc.

Slide 6

Slide 6 text

ネットワーク可視化のアプローチ ● ノードリンク表現(今日は主にこちらの話) ○ 接続関係のあるノード間を線で結んで可視化 ● 行列表現 ○ ノード間の接続関係を 表す隣接行列を用いた可視化 https://bost.ocks.org/mike/miserables/ https://observablehq.com/@d3/force-directed-graph/2 同一データ

Slide 7

Slide 7 text

ネットワークデータの視覚的表現 ● 視覚属性 ○ ノードの大きさ、色、etc. ○ リンクの太さ・色、etc. ● 反映する情報 ○ データの属性を反映 ○ ネットワークから特徴を計算 eg. 中心性、コミュニティ ● エッジバンドリング

Slide 8

Slide 8 text

ネットワーク可視化ツール ネットワーク可視化ソフトウェア ● Gephi https://gephi.org/ ● Cytoscape https://cytoscape.org/ ● Tulip https://tulip.labri.fr/site/ ● GraphViz https://graphviz.org/ ネットワーク可視化ライブラリ ● NetworkX(Python) https://networkx.org/ ● igraph(C、Python、R) https://igraph.org/ ● OGDF(C++) https://ogdf.uos.de/ ● d3-force(JavaScript) https://d3js.org/d3-force ● cola.js(JavaScript) https://marvl.infotech.monash.edu/webcola/ ● sigma.js(JavaScript) https://www.sigmajs.org/

Slide 9

Slide 9 text

ネットワーク可視化の現実 ● ツールを利用することで可視化図を作ることは簡単 ● 有意義な分析につなげるためには様々な工夫 が必要 ○ データ作成方法 ○ 配置(グラフ描画)アルゴリズム ○ 視覚的表現 ○ ユーザーインタラクション

Slide 10

Slide 10 text

グラフ描画

Slide 11

Slide 11 text

グラフ描画 ● グラフ:G = (V, E) 頂点(ノード)集合:V 辺(エッジ、リンク)集合:E ● グラフ描画:グラフを入力して 頂点の空間への埋め込みを出力する ● 用途に応じて様々なアルゴリズム が存在 https://cs.brown.edu/people/rtamassi/gdhandbook/ プレプリント版PDFは無料公開

Slide 12

Slide 12 text

グラフ描画アルゴリズムの違い 同じネットワークから全く異なる可視化図が得られる spring_layout kamada_kawai_layout forceatlas2_layout circular_layout spectral_layout random_layout

Slide 13

Slide 13 text

Force-directedアルゴリズム ● ノード間にはたらく力学的な力から エネルギーの停留点を求める ○ フックの法則 ● Spring-electricモデル ○ リンクで結ばれた頂点ペアを バネで結ぶ ○ 全ての頂点間にクーロン力による 斥力がはたらく ● Springモデル ○ 全ての頂点ペアをバネで結ぶ 自然長 伸びたとき 縮んだとき

Slide 14

Slide 14 text

Spring-electricモデル ● 全頂点ペアの斥力の計算に時間計算量O(|V|2) ➡ Barnes-Hut近似を用いてO(|V|log|V|) ● 初期配置の影響を受けやすい ● 主要なアルゴリズム ○ Fruchterman-Reingold(Fruchterman and Reingold 1991)、 Fast Multipole Multilevel Method(Hachul and Junger 2004)、 ForceAtlas2(Jacomy et al. 2014)、 etc. ● 解説:https://computing2.vdslab.jp/docs/network/graph-drawing

Slide 15

Slide 15 text

Springモデル(ストレスモデル) ● 自然長を理想距離としたバネで全頂点ペアを結ぶ ○ グラフ理論的最短経路長が理想距離として用いられる ○ バネの弾性エネルギー(ストレス関数)を最小化 ○ 非凸非線形最適化問題 ➡ 最適解を得ることは理論的に難しい ○ 全頂点対最短経路問題が必要 ➡ 時間計算量 O(|V|3) or O(|V|2log|V|) ● 主要なアルゴリズム ○ Kamada-Kawai(Kamada and Kawai 1989)、Stress Majorization(Gansner et al. 2005)、 MDS(Brandes and Pich 2006)、SGD(Zheng et al. 2018)

Slide 16

Slide 16 text

Springモデルの主要なアルゴリズム

Slide 17

Slide 17 text

Kamada-Kawai ● ニュートン法を用いてストレスが小さくなるように1ノードずつ配置 ● デモ:https://egraph.vdslab.jp/kamada-kawai Kamada, T., & Kawai, S. (1989). An algorithm for drawing general undirected graphs. Information processing letters, 31(1), 7-15.

Slide 18

Slide 18 text

Stress Majorization ● 優関数法(Majorization Technique)を用いたストレス関数の最小化 ● デモ:https://egraph.vdslab.jp/stress-majorization ● 解説:https://qiita.com/_likr/items/a7070f6188a7a11ad89e Gansner, E. R., Koren, Y., & North, S. (2005). Graph drawing by stress majorization. In Graph Drawing: 12th International Symposium, GD 2004, New York, NY, USA, September 29-October 2, 2004, Revised Selected Papers 12 (pp. 239-250). Springer Berlin Heidelberg.

Slide 19

Slide 19 text

SGD ● 確率的勾配降下法(SGD:Stochastic Gradient Descent)を 用いたストレス関数の最小化 ○ 質の低い局所的最小解に陥りにくい ○ 実装が容易 ○ 拡張が容易 ● デモ:https://egraph.vdslab.jp/sgd Zheng, J. X., Pawar, S., & Goodman, D. F. (2018). Graph drawing by stochastic gradient descent. IEEE transactions on visualization and computer graphics, 25(9), 2738-2748.

Slide 20

Slide 20 text

MDS ● 重みなしストレス関数の最小化問題を古典的多次元尺度構成法 (MDS:Multi-dimensional Scaling)で解く ● 初期配置に依存しない ➡他のグラフ描画アルゴリズムの初期配置として利用可能 ● デモ:https://egraph.vdslab.jp/mds Brandes, U., & Pich, C. (2006, September). Eigensolver methods for progressive multidimensional scaling of large data. In International Symposium on Graph Drawing (pp. 42-53). Berlin, Heidelberg: Springer Berlin Heidelberg.

Slide 21

Slide 21 text

余談:グラフ描画と次元削減 ● MDSによるグラフ描画は次元削減手法の古典的MDSと等価 ● Stress Majorizationによるグラフ描画は 次元削減手法のメトリックMDSと等価 ● 次元削減手法のRadVizはバネを用いて各点の位置を決定する ● 次元削減手法のUMAPは内部的にSpring-electricモデルを用いる ● (主にForce-directedアルゴリズムを用いた)グラフ描画は、 高次元ネットワークデータの低次元への埋め込み と解釈できる

Slide 22

Slide 22 text

Springモデルの拡張

Slide 23

Slide 23 text

ストレスモデルの展望 ● ストレス関数の最小化においてSGDは十分なパフォーマンスを発揮する ● ストレスモデルの拡張 ○ 重みや理想距離のモデリング ○ 制約付きストレスモデル ○ 近似による高速化 ○ 非ユークリッド空間への描画

Slide 24

Slide 24 text

Gasner et al. 2004 辺重みの反映 適切な辺の長さの設定も描画結果の改善に有向

Slide 25

Slide 25 text

制約付きストレスモデル ● ノードの配置に制約を加えたストレスモデル ● IPSep-CoLA(Dwyer et al. 2006) ○ 階層制約 ○ 重なり除去 ○ クラスタグループ ○ etc. ● デモ:https://marvl.infotech.monash.edu/webcola/ Dwyer, T., Koren, Y., & Marriott, K. (2006). IPSep-CoLa: An incremental procedure for separation constraint layout of graphs. IEEE transactions on visualization and computer graphics, 12(5), 821-828.

Slide 26

Slide 26 text

スパースストレスモデル ● 全頂点対最短経路を求める計算量を削減 ● PivotMDS ● SparseSGD ● 描画品質と実行時間のトレードオフ

Slide 27

Slide 27 text

非ユークリッド空間でのグラフ描画 ● リーマン多様体上でのノードに 働く力は接平面で計算可能 ● ノード位置の差がベクトルとして 得られたら計算可能 ➡ SGDを用いて位置を決定 ● 実用例 ○ 球面、双曲面、(平坦)トーラス面 Kobourov, S. G., & Wampler, K. (2005). Non-Eeuclidean spring embedders. IEEE Transactions on Visualization and Computer Graphics, 11(6), 757-767. Kobourov and Wampler 2005

Slide 28

Slide 28 text

球面でのグラフ描画 ● 球の表面でのグラフ描画 ● VR空間での描画でも有用 ● デモ:https://editor.p5js.org/16777215.likr/sketches/cTBt_VsWj

Slide 29

Slide 29 text

双曲面でのグラフ描画 ● 双曲面をポアンカレ円盤に投影 ○ 外側に行くほど広がった空間 ➡双曲面でグラフ描画をすることで 魚眼レンズのような効果が得られる ● デモ:https://egraph.vdslab.jp/hyperbolic-geometry https://ja.wikipedia.org/wiki/ポワンカレの円板モデル Miller, J., Kobourov, S., & Huroyan, V. (2022, April). Browser-based hyperbolic visualization of graphs. In 2022 IEEE 15th Pacific Visualization Symposium (PacificVis) (pp. 71-80). IEEE.

Slide 30

Slide 30 text

平坦トーラス面でのグラフ描画 ● 上下・左右がそれぞれつながった平面上 でのグラフ描画 ● デモ :https://ialab.it.monash.edu/~kche0088/WebCola/examples/torusgraphex ample.html Chen, K. T., Dwyer, T., Marriott, K., & Bach, B. (2020, April). Doughnets: Visualising networks using torus wrapping. In Proceedings of the 2020 CHI Conference on Human Factors in Computing Systems (pp. 1-11). Chen et al. 2020

Slide 31

Slide 31 text

Force-directedアルゴリズムの主要な実装 ● Fruchterman-Reingold ○ NetworkX(spring_layout)、GraphViz(fdp) ● FMMM ○ OGDF(FMMMLayout) ● ForceAtlas2 ○ NetworkX(forceatla2_layout)、Gephi、Sigma.js ● Kamada-Kawai ○ NetworkX(kamada_kawai_layout) ● Stress Majorization ○ GraphViz(naeto)

Slide 32

Slide 32 text

おわりに

Slide 33

Slide 33 text

まとめ ● ネットワーク可視化の特にグラフ描画アルゴリズムを紹介 ○ アルゴリズムの選び方によって可視化結果が全く異なる ○ 目的に応じて適切なアルゴリズム・パラメータを選択する必要がある ○ 各種グラフ描画アルゴリズムは様々なツールに実装されている ● ネットワーク可視化のお困りごとがあればご相談ください!