Pro Yearly is on sale from $80 to $50! »

Graph Convolutional Networks

7b478cab8e68f81b1f6830077b6649ca?s=47 Atom
October 09, 2020

Graph Convolutional Networks

研究室内のGNN勉強会の資料

7b478cab8e68f81b1f6830077b6649ca?s=128

Atom

October 09, 2020
Tweet

Transcript

  1. 第3回GNN勉強会: Graph Convolutional Networks 吉澤亜斗武 October 6, 2020 1 /

    40
  2. Contents 1 畳み込み層の正体 畳み込み?なにそれ?おいしいの? 畳み込みとは 相互相関関数 2 Graph Convolutional Networks

    (GCN) GCNの目的 Graph Convolutionalの基本 Graph Convolutionalの中身 3 論文紹介: Modeling Relational Data with Graph Convolutional Networks Entity classification Link prediction 実験結果
  3. 1 畳み込み層の正体 畳み込み?なにそれ?おいしいの? 畳み込みとは 相互相関関数 2 Graph Convolutional Networks (GCN)

    GCNの目的 Graph Convolutionalの基本 Graph Convolutionalの中身 3 論文紹介: Modeling Relational Data with Graph Convolutional Networks Entity classification Link prediction 実験結果 3 / 40
  4. 畳み込み?なにそれ?おいしいの? Figure: 引用[1] 4 / 40

  5. 畳み込みとは なんかスライドさせながら掛けて足す,みんな嫌いなアイツ (f ∗ g)(τ) = ∞ −∞ f(t)g(τ −

    t)dt (1.2.1) 離散で考えると (f ∗ g)(τ) = t f(t)g(τ − t) (1.2.2) 2次元で考えると (f ∗ g)(i, j) = m n f(m, n)g(i − m, j − n) (1.2.3) 5 / 40
  6. 入力Iとフィルター(カーネル)Kを畳み込んで出力Oi,j を計算してみる. Oi,j = m n Km,n Ii−m,j−n (1.2.4) Figure:

    引用[2] 6 / 40
  7. O0,0 = 1 m=0 1 n=0 Km,n Ii−m,j−n (1.2.5) =

    K0,0 I0,0 + K0,1 I0,−1 + K1,0 I−1,0 + K1,1 I−1,−1 (1.2.6) Figure: 引用[2] 7 / 40
  8. お気づき頂けただろうか? カーネルの座標軸が反転していることを… Figure: 引用[2] 8 / 40

  9. 座標軸が反転してようが,していまいが,入力にカーネルを掛けて足すこ とには変わりないので,本質的には何も問題がない. が,正直気持ち悪い. 同じ座標軸で,同じ位置のカーネルを掛けたいと思いませんか? 思いますよね? 少なくとも僕はそう思います. みんな,そうやっていますよ. やっていないのはあなただけです. 9 /

    40
  10. 相互相関関数 用語 1.1 (相互相関関数;cross-correlation function) (f g)(τ) = ∞ −∞

    f(t)g(τ + t)dt (1.3.7) Oi,j = m n Km,n Ii+m,j+n (1.3.8) Figure: 引用[2] 10 / 40
  11. O0,0 = 1 m=0 1 n=0 Km,n Ii+m,j+n (1.3.9) =

    K0,0 I0,0 + K0,1 I0,1 + K1,0 I1,0 + K1,1 I1,1 (1.3.10) = aw + bx + ey + fz (1.3.11) Figure: 引用[2] 11 / 40
  12. Figure: 引用[1] 12 / 40

  13. Figure: 引用[3] 13 / 40

  14. まとめ 畳み込み層の正体 畳み込み層では畳み込み相互相関が行なわれ,カーネルとの類似度を計算す ることで,特徴量を生成することができる. カーネルは実際には複数用意され,それらをチャンネルといい,様々な特徴 量を生成する. CNNではConvolution層の後に(Max-)Pooling層を適用して,特徴量を取り出すこ とができる. 特に画像処理では輪郭抽出,画像認識において重要である. 14

    / 40
  15. 1 畳み込み層の正体 畳み込み?なにそれ?おいしいの? 畳み込みとは 相互相関関数 2 Graph Convolutional Networks (GCN)

    GCNの目的 Graph Convolutionalの基本 Graph Convolutionalの中身 3 論文紹介: Modeling Relational Data with Graph Convolutional Networks Entity classification Link prediction 実験結果 15 / 40
  16. GCNの目的 GCNの目的(タスク)は大きく3つに分類できる. Graph-centric (Graph classification) Node-centric (Entity classification) Link prediction

    16 / 40
  17. Figure: 引用[4] 17 / 40

  18. Figure: 引用[4] 18 / 40

  19. Figure: 引用[4] 19 / 40

  20. Figure: 引用[4] 20 / 40

  21. Graph Convolutionalの基本 Figure: 引用[4] 21 / 40

  22. Figure: 引用[4] 22 / 40

  23. Figure: 引用[4] 23 / 40

  24. Figure: 引用[4] 24 / 40

  25. 2種類のGCN Spatial Method 周辺ノードの情報を同じフィルター(カーネル)による処理で畳 み込む手法. Spectral Method フーリエ級数展開によるスペクトル分解(固有値分解)を用いた クラスタリングを基にした手法.固有値分解が必要のため処理が 重い(詳しくは知らない…)

    現在はSpectral MethodはSpatial Methodで近似できるとされ,処理が軽い Spatial Methodに合流された(参考[5]) . 25 / 40
  26. Graph Convolutionalの中身 Figure: 引用[6] 26 / 40

  27. Figure: 引用[6] 27 / 40

  28. Figure: 引用[6] 28 / 40

  29. (Relational-) GCN Figure: 引用[7] 29 / 40

  30. l + 1層のノードiの状態をh(l+1) i ,活性化関数をσ,関係の集合をR,関係r下 におけるノードiの隣接ノードのインデックス集合をNr i ,正規化定数ci,r ,基 底関数の数をB,基底変換をV

    (l) b ∈ Rd(l+1)×d(l),スカラー係数a(l) rb とする. h(l+1) i = σ   r∈R j∈Nr i 1 ci,r W(l) r h(l) j + W(l) 0 h(l) i   (2.3.1) W(l) r = B b=1 a(l) rb V (l) b (2.3.2) 正規化定数はci,r = |Nr i |, r∈R |Nr i |などとすることで,隣接ノード数に依存 しないように設定することができる. W(l) r はノードiに依らずグラフ全体に適用されるフィルター(カーネル)で ある. 30 / 40
  31. 1 畳み込み層の正体 畳み込み?なにそれ?おいしいの? 畳み込みとは 相互相関関数 2 Graph Convolutional Networks (GCN)

    GCNの目的 Graph Convolutionalの基本 Graph Convolutionalの中身 3 論文紹介: Modeling Relational Data with Graph Convolutional Networks Entity classification Link prediction 実験結果 31 / 40
  32. Entity classification ラベルがついたノード集合をY,エントリー(クラス)数をK,ノードiが エントリーkであるラベルをtik ∈ {0, 1},最終層Lをsoftmax層として,その出 力をh(L) ik とすると,損失関数Lを以下のような交差エントロピーと設定する.

    L = − i∈Y K k=1 tik ln h(L) ik (3.1.1) すべてのノードにラベルがなくてもよく,半教師あり学習が可能である. 32 / 40
  33. Link prediction subjectノードsとobjectノードoとの関係rを表すエッジ(s, r, o)のスコア関 数f(s, r, o)を求める必要がある. DistMultモデルをデコーダーとして用いることでf(s, r,

    o)を求める. 33 / 40
  34. Figure: 引用[8] 34 / 40

  35. Figure: 引用[8] 35 / 40

  36. Figure: 引用[8] 36 / 40

  37. DistMultでは各関係rに対して行列Rr ∈ Rd×dを割り当て,ei = h(L) i として f(s, r, o)

    = eT s Rr eo (3.2.2) エッジ(s, r, o)のラベルをy ∈ {0, 1},ポジティブサンプリング,ネガティブ サンプリングを含めたエッジ(s, r, o)の集合をT ,ネガティブサンプル数をω, 入力されたグラフのエッジ数を ˆ E,ロジスティックシグモイド関数をσとする と,損失関数Lを以下のような交差エントロピーと設定する. L = − 1 (1 + ω) ˆ E (s,r,o,y)∈T y log σ (f(s, r, o)) + (1 − y) log (1 − σ(f(s, r, o))) (3.2.3) 37 / 40
  38. 実験結果 直接的なエッジを多く含むデータセットでは有効な一方で,大局的なハブ ノードを持つデータセットでは劣っている(Entity classification). Figure: 引用[7] 38 / 40

  39. DistMultへの依存が大きいため,DistMultが従来手法より劣っている場合は 提案手法も劣っている(Link prediction). Figure: 引用[7] 39 / 40

  40. References I [1] AIcia Solid Project. 【深層学習】畳み込み層の本当の意味、あなたは説明できますか? 【ディープラーニングの 世界 vol.

    5 】 #057. Deep Learning の世界.2020.05.20 https://www.youtube.com/watch?v=vU-JfZNBdYU&list=PLhDAH9aTfnxKXf__soUoAEOrbLAOnVHCP&index=5 [2] 田本芳文. 深層学習の畳み込み層の処理は「畳み込み」じゃなかった件.tdualのブログ.2018.05.02 http://tdual.hatenablog.com/entry/2018/05/02/113110 [3] 畳み込み演算. https://axa.biopapyrus.jp/deep-learning/cnn/convolution.html [4] 小島諒介.グラフニューラルネットワーク入門.2019.10.6 . https://www.slideshare.net/ryosuke-kojima/ss-179423718 [5] piqcy.Graph Convolutionを自然言語処理に応用する Part1.2018.8.31 . https://medium.com/programming-soda/graph-convolution%E3%82%92%E8%87%AA%E7%84%B6%E8%A8%80%E8% AA%9E%E5%87%A6%E7%90%86%E3%81%AB%E5%BF%9C%E7%94%A8%E3%81%99%E3%82%8B-part1-b792d53c4c18 [6] @tktktks10.グラフ構造を畳み込む -Graph Convolutional Networks- https://qiita.com/tktktks10/items/98d21133cf3e121676c3 [7] Michael Schlichtkrull, Thomas N. Kipf, Peter Bloem, Rianne van den Berg, IvanTitov, and Max Welling. Modeling Relational Data with Graph ConvolutionalNetworks.arXiv:1703.06103 [cs, stat], October 2017. [8] 知識グラフの埋め込みとその応用.NTTコミュニケーション科学基礎研究所 http://www.kecl.ntt.co.jp/icl/lirg/members/hayashi/files/stairs-hayashi17.pdf 40 / 40