Facebook
https://www.youtube.com
/channel/UCo33DtDOIttjiK
Kqn-YOHSw
Back-end:
Graph Convolution
Visualization
CUDA GPU
acceleration
Multi-task/multi-modal
model support
Utility (CV, Feature extraction)
Hyper parameter
optimization
Algorithms
Command-line
tools
User interface:
グラフニューラルネットワーク用ライブラリ
様々なレベルの人がグラフニューラルネットワークを含む深層学習を利用可能
になることを目指したツール群
kGCN: Graph Convolutional Network tools for life science
Github: https://github.com/clinfo/kGCN
•
•
•
•
•
ダートマス会議
第5世代プロジェクト
チェスプログラムDeepBlue
エキスパートシステム
𝑥1, 𝑥2, … , 𝑥 𝑛
𝑤1, 𝑤2, … , 𝑤 𝑛, 𝑏
𝑦
𝜎 𝑥
𝑥1
𝑥2
𝑥 𝑁
𝑦
…
𝑤1
𝑤2
𝑤 𝑁
𝑦 = 𝜎 ෍
𝑛
𝑁
𝑤 𝑛 𝑥 𝑛 + 𝑏
1
1 + 𝑒−𝑥
シグモイド関数 ステップ関数
一定以上の刺激
発火
𝑥1
𝑥2
𝑦
𝑤1
𝑤2
𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏
𝑥1, 𝑥2
𝑤1, 𝑤2, 𝑏
𝑦
𝜎 𝑥
𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏
色
大きさ
境界は直線になる
𝑥1
𝑥2
𝑦
𝑤1
𝑤2
𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏
𝑥1, 𝑥2
𝑤1, 𝑤2, 𝑏
𝑦
𝜎 𝑥
𝒙 𝟏 𝒙 𝟐 𝒚
0 0 0
0 1 0
1 0 0
1 1 1
𝑤1 = 1
𝑤2 = 1
𝑏 = −1.5
0 1
𝑤1 𝑤2, 𝑏
𝑥1
𝑥2
𝑥1
𝑥2
𝑦
𝑤1
𝑤2
𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏
𝑥1, 𝑥2
𝑤1, 𝑤2, 𝑏
𝑦
𝜎 𝑥
𝒙 𝟏 𝒙 𝟐 ෝ𝒚
0 0 0
0 1 0
1 0 0
1 1 1
1
1 + 𝑒−𝑥
𝜎′ 𝑥 = 𝜎 𝑥 1 − 𝜎 𝑥
𝑤1, 𝑤2, 𝑏
min
𝑤1,𝑤2,𝑏
1
2
෍
𝑖
𝑒𝑖
2
𝑒𝑖 = 𝑦 𝑥1
(𝑖)
, 𝑥2
(𝑖)
− ො𝑦(𝑖)
𝑖
𝑤1← 𝑤1 − 𝛼
𝜕𝑒2
𝜕 𝑤1
𝑤2← 𝑤2 − 𝛼
𝜕𝑒2
𝜕 𝑤2
𝛼
0
1
𝑤1
𝑤2
𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏
𝑥1
𝑥2
𝑥1
𝑥2
min
𝑤1,𝑤2,𝑏
1
2
෍
𝑖
𝑒𝑖
2 𝑒 = 𝑦 − ො𝑦
𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏
𝒙(1)
𝐖(1)
, 𝒃(1)
, 𝐖(2)
, 𝒃(2)
𝒚
𝜎 𝑥
𝒙(2) = 𝜎 𝐖(1) 𝒙(1) + 𝒃(1)
𝒚 = 𝜎 𝐖(2)
𝒙(2)
+ 𝒃(2)
𝒙(1) 𝒙(2) 𝒚
https://playground.tensorflow.org/
𝒙(1)
𝐖(1)
, 𝒃(1)
, 𝐖(2)
, 𝒃(2)
𝒚
𝜎 𝑥
𝒙(2) = 𝜎 𝐖(1) 𝒙(1) + 𝒃(1)
𝒚 = 𝜎 𝐖(2) 𝒙(2) + 𝒃(2)
𝒚
min
𝐖(1),𝒃(1),𝐖(2),𝒃(2)
1
2
𝒆2
𝜕 𝒆2
𝜕𝑤11
(1)
= 𝒆 𝑇
⋅
𝜕 𝒚
𝜕𝑥1
2
⋅
𝜕 𝑥1
(2)
𝜕𝑤11
(1)
:𝑤11
1
← 𝑤11
1
+ 𝛼
1
2
𝜕𝒆2
𝜕𝑤11
1
・𝒆 = ෝ𝒚 − 𝒚
・ෝ𝒚 𝑤11
(1) 𝑥1
(2)
𝑤11
(2)
𝜕 𝒆2
𝜕𝑤11
(2)
= 𝒆 𝑇
⋅
𝜕 𝒚
𝑤11
(2)
𝐷
𝒘 ← 𝒘 + 𝛼 𝛻𝐽
𝐽 𝑑 = 𝑒2𝐽 = ෍
𝑑=1
𝐷
𝐽 𝑑
𝒘 ← 𝒘 + 𝛼 𝛻𝐽 𝑑
データ データ
𝛼
𝑤1
𝑤2
𝑤1
𝑤2
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
学習データの読み込み
ネットワーク構築
順伝搬 逆誤差伝搬 重み更新
停止判定
テストデータ読み込み 順伝搬 誤差の評価
学習
評価
バリデーション
データ読み込み
順伝搬 誤差の評価
バリデーション
•
•
•
•
•
•
•
•
• MLP
0.5 1.0 0.7 ……
0.8 0.3 0.2 ……
0.5 0.2 0.8 ……
:
:
:
:
:
:
……
0.8 0.7
0.5 0.8
Kernel
(filter)
Feature map
(image)
1.74 1.6 ……
1.6 1.12 ……
:
:
:
:
……
0.5 × 0.8 + 1.0 × 0.7
+ 0.8 × 0.5 + 0.3 × 0.8
Feature map
𝑔(𝑡) ∗ 𝑓(𝑡) = ෍
𝜏
𝑔 𝜏 𝑓(𝑡 − 𝜏)
𝑔(𝑡)
𝑓(𝑡)
𝑔(𝑡) ∗ 𝑓(𝑡)
𝑾
𝑾
𝑔(𝑡) ∗ 𝑓(𝑡) = ෍
𝜏=0
𝑁
𝑔 𝜏 𝑓(𝑡 − 𝜏)
= 𝑔 0 , 𝑔 1 , … , 𝑔 𝑁 𝑓 𝑡 − 0 , 𝑓 𝑡 − 1 , … , 𝑓 𝑡 − 𝜏
𝑇
= 𝒘 𝑇
𝒙 𝑡
𝑾𝒙 𝑡
𝑾𝑿 𝑡
𝑔(𝑡) ∗ 𝑓(𝑡) = ෍
𝜏=0
𝑁
𝑔 𝜏 𝑓(𝑡 − 𝜏)
= 𝑔 0 , 𝑔 1 , … , 𝑔 𝑁 𝑓 𝑡 − 0 , 𝑓 𝑡 − 1 , … , 𝑓 𝑡 − 𝜏
𝑇
= 𝒘 𝑇
𝒙 𝑡
𝑾𝒙 𝑡
𝑾𝑿 𝑡 𝑾
𝑾
0.5 1.0 0.7 0.6
0.8 0.3 0.2 0.4
0.5 0.2 0.8 0.1
0.3 0.1 0.5 0.2
0.8 0.7
0.5 0.8
max
Max pooling
•
MLP
Convolutions Pooling
MLP
文字「A」
授業資料等:http://small-island.work/trial/
https://www.youtube.com/channel/UCo33DtDOIttjiKKqn-YOHSw
1
2
3 4
5
•
•
•
•
•
•
https://ja.wikipedia.org/wiki/%E4%B8%80%E7
%AD%86%E6%9B%B8%E3%81%8D
https://www.amazon.co.jp/FAZHEN-
%E3%83%9A%E3%83%B3%E3%82%AE%E3%83%B3%E3%82%AF%E3%83%A9%E3%83%83
%E3%82%B7%E3%83%A5%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%B2%E3%83%BC
%E3%83%A0-
https://ja.wikipedia.org/wiki/%E8%A4%87%E9%9B%91%E3%83%8D%E3%83
%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF
1
2
3 4
5
ノード𝑖とノード𝑗に
エッジがあれば1なければ0
𝟎 𝟎 𝟏 𝟎 𝟎
𝟎 𝟎 𝟏 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟏
𝟎
𝟎
𝟏
𝟎
𝟏
𝟎
𝟏
𝟎
𝟏
𝟎
1
2
3 4
5
𝟎 𝟎 𝟎 𝟎 𝟎
𝟎 𝟎 𝟎 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟎
𝟏
𝟎
𝟏
𝟎
𝟎
𝟎
𝟏
𝟎
(無効グラフでは隣接行列は対称になる)
𝑨 =
𝟎 𝟎 𝟎 𝟎 𝟎
𝟎 𝟎 𝟎 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟎
𝟏
𝟎
𝟏
𝟎
𝟎
𝟎
𝟏
𝟎
1 3 4
5
𝑏𝑖,𝑗
𝑏𝑖,𝑗 = ෍
𝑘
𝑎𝑖,𝑘 𝑎 𝑘,𝑗
𝑏𝑖,𝑗 𝑩
𝑩 = 𝑨 𝟐
2
𝑳 = 𝑫 − 𝑨
𝑨 =
𝟎 𝟎 𝟏 𝟎 𝟎
𝟎 𝟎 𝟏 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟎
𝟏
𝟎
𝟏
𝟎
𝟏
𝟎
𝟏
𝟎
1 3 4
52
𝑫 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟎
𝟎
𝟎
𝟎
𝟎
𝟎
𝟑
𝟎
𝟎
𝟎
𝟐
𝟎
𝟎
𝟎
𝟏
𝑳 =
𝟏 𝟎 − 𝟏 𝟎 𝟎
𝟎 𝟏 −𝟏 𝟎 𝟎
−𝟏
𝟎
𝟎
−𝟏
𝟎
𝟎
𝟑
−𝟏
𝟎
−𝟏
𝟐
−𝟏
−
𝟎
𝟏
𝟏
Δ𝑢 =
𝜕2 𝑢
𝜕𝑥2 +
𝜕2 𝑢
𝜕𝑦2 +
𝜕2 𝑢
𝜕𝑧2
𝑥 𝑛+1 = 𝑥 𝑛 + ℎ𝑥 𝑛
′
+
1
2
ℎ2
𝑥 𝑛
′′
+ O ℎ3
𝑥 𝑛+1 + 𝑥 𝑛−1 = 2𝑥 𝑛 + ℎ2
𝑥 𝑛
′′
+ O ℎ3
𝑥 𝑛𝑥 𝑛−1 𝑥 𝑛+1
𝑥 𝑛−1 = 𝑥 𝑛 − ℎ𝑥 𝑛
′
+
1
2
ℎ2
𝑥 𝑛
′′
+ O ℎ3
𝑥 𝑛
′′
=
𝑥 𝑛+1 − 2𝑥 𝑛 + 𝑥 𝑛−1
ℎ2 + O ℎ
ℎℎ
𝑳 = 𝑫 − 𝑨
1 32
𝑳 =
𝟏
−𝟏
𝟎
−𝟏
𝟐
−𝟏
−
𝟎
𝟏
𝟏
𝑦1
𝑦2
𝑦3
= 𝑳
𝑥1
𝑥2
𝑥3
𝑦2 = −𝑥1 + 2𝑥2 − 𝑥3
https://www.amazon.co.jp/FAZHEN-
%E3%83%9A%E3%83%B3%E3%82%AE%E3%83%B3%E3%82%AF%E3%83%A9%E3%83%83
%E3%82%B7%E3%83%A5%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%B2%E3%83%BC
%E3%83%A0-
Zhang, Ziwei, Peng Cui, and Wenwu Zhu. "Deep learning on graphs: A survey." arXiv preprint arXiv:1812.04202 (2018).
グラフニューラルネットワークで考える設定
(1/2)
名前:
年齢:
エッジは向きが
あってもなくてもよい
ノードは情報を持っていてよい
エッジは数種類あってもよい
グラフニューラルネットワークで考える設定
(2/2)
化合物をグラフで表現する
エッジは向きがない
ノード(原子)は情報を持っている
エッジ(結合)は数種類ある
ノード情報:
原子名
混成軌道
…
Wikipedia:nanoputian
グラフにベクトルとして
ノード情報(特徴量)がついてい
る状況を考える
エッジは有効・無効・複数種類
あってもよい
特徴量がない場合は「埋め込み」という方法を使う
・最初にランダムに特徴を与えて、特徴もデータから学習する
・各種グラフ埋め込み手法を利用する(node2vecなど)
𝑾
Graph Convolution は隣接したノード
のベクトルに対してフィルタを掛
けて、足し合わせるという処理を
行う。
Convolution と同様に𝑊をフィルタ
とみなすと、グラフ上のベクトル
の特定のパターンにのみ値が大き
くなるような関数を構成すること
ができる。
同様の処理をすべてのノードに行う
𝑾
𝒚𝑖 = ෍
𝑗
𝑎𝑖,𝑗 𝒙𝑗
𝑻
𝑾
1
2
3 4
5
ノード𝑖とノード𝑗に
エッジがあれば1なければ0
𝑎𝑖,𝑗を要素とする行列𝑨を隣接行列と呼ぶ
𝒀 = 𝑨𝑿 𝑾
𝑨 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟏
𝟏
𝟎
𝟏
𝟏
𝟎
𝟎
𝟏
𝟏
𝑾
1
2
3 4
5
二つ隣かどうかの0/1変数𝑏𝑖,𝑗
𝑏𝑖,𝑗 = ෍
𝑘
𝑎𝑖,𝑘 𝑎 𝑘,𝑗
𝑏𝑖,𝑗を要素に持つ行列𝑩
𝑩 = 𝑨 𝟐
𝒀 = 𝑨𝑿𝑾 𝟏 + 𝑨 𝟐 𝑿𝑾 𝟐
実際には𝑨 𝟐が0でない部分を1に
する処理が必要
𝑾
1
2
3 4
5
𝒀 = 𝑨 𝟏 𝑿𝑾 𝟏 + 𝑨 𝟐 𝑿𝑾 𝟐
𝑨 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟏
𝟏
𝟎
𝟏
𝟏
𝟎
𝟎
𝟏
𝟏
𝑨 𝟏 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟏
𝟎
𝟎
𝟎
𝟎
𝟎
𝟏
𝟏
𝟎
𝟏
𝟏
𝟎
𝟎
𝟏
𝟏
𝑨 𝟐 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟎
𝟎
𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟎
𝟏
𝟎
𝟎
𝟎
𝟏
エッジの種類は複数のグラフの重
ね合わせとして表現
同様に、複数グラフの入力も可能
エッジの種類で隣接行列を分解
1 3 4
5
𝑨 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟏
𝟏
𝟎
𝟏
𝟏
𝟎
𝟎
𝟏
𝟏
2
𝑨 𝟐 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟎
𝟎
𝟎
𝟎
𝟎
𝟎
𝟏
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟏
𝟏
𝑨 𝟑 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟏
𝟏
𝟎
𝟎
𝟎
𝟏
𝒀 = 𝑨 𝟐 𝑿𝑾 𝟏 + 𝑨 𝟑 𝑿𝑾 𝟐
次数ごとに隣接行列を分解する。
1 3 4
5
𝑨 =
𝟏 𝟎 𝟎 𝟎 𝟎
𝟎 𝟏 𝟎 𝟎 𝟎
𝟏
𝟎
𝟎
𝟏
𝟎
𝟎
𝟏
𝟏
𝟎
𝟏
𝟏
𝟎
𝟎
𝟏
𝟏
2
𝑨
𝟏
𝟏
𝟏
𝟏
𝟏
=
𝟏
𝟏
𝟒
𝟑
𝟏
𝑾
1 3 4
5
𝒀 = 𝜎 𝑿𝑾 + 𝒃
ノード間の相互作用はなしで、
各特徴量を変換する
𝜎: 活性化関数
2
1 3 4
5
全ノードのベクトルを
足し合わせる
2
グラフ表現からベクトルに変換するため
に利用
この層より後段は通常のNNが利用可能
BNGCN
Activation
BNGCN Activation Graph fully-connected graph gathering MLP
1. GCN+Activation+Batch Normalization の組み合わせを
セットにして、何層か詰む
2. Graph fully-connected 層を必要に応じて挟む
3. Graph gathering 層を挟んでグラフからベクトルに変換
4. MLPで予測対象のラベルを出力
• Graph-centric
• Node-centric
• Link prediction
Graph-centric vs Node-centric
Class 2
Class 1
Class 1
Class 1
Class 2
Class 1
Node-centric: ノードにラベルがついているGraph-centric: グラフにラベルがついている
GCN はGraph-centric と Node-centricの両方に対応できる。
SNSのデータなどはNode-centricな方が自然な場合がある
Graph-centric vs Node-centric
Graph-centric の例
BNGCN
Activation
BNGCN Activation Graph fully-connected graph gathering MLP
O
OH
NH2OO NH
・水溶性予測
・毒性予測Node-centric の例
BNGCN
Activation
BNGCN Activation Graph fully-connected
Class 2
Class 1
SNSネットワーク
・ボット検出
・潜在顧客検出
𝑓( , )
Link prediction
A
C D
EB
GCNにより
得られるベクトル
入力グラフ
疑似負例 正例
𝑓( , )A CA B
<
スコア関数 成り立つようにスコア関数&GCNを学習
スコア関数の値が高いほどエッジのある可能性が高い
(エッジがない&スコアが高い→未知のエッジの可能性が高い)
Link prediction
Link prediction の例:商品の推薦システム
BNGCN
Activation
BNGCN Activation Graph fully-connected
ユーザ
商品
𝑔(𝑡) ∗ 𝑓(𝑡) = ෍
𝜏
𝑔 𝜏 𝑓(𝑡 − 𝜏)
𝑔(𝑡)
𝑓(𝑡)
𝑔(𝑡) ∗ 𝑓(𝑡)
𝐹 𝑔(𝑡) ∗ 𝑓(𝑡) = 𝐹 𝑔(𝑡)] 𝐹[𝑓(𝑡)
𝐹
𝐹 𝑓 𝑥 = න
−∞
∞
𝑓 𝑥 𝑒 𝑖𝜔𝑥 𝑑𝑥 = 〈𝑓 𝑥 , 𝑒 𝑖𝜔𝑥〉
Δℎ 𝜔(𝑥) = 𝜆 𝜔ℎ 𝜔(𝑥) ℎ 𝜔 𝑥 = 𝑒 𝑖𝜔𝑥
𝜆 𝜔 = −𝜔2
ℎ 𝑥
𝑳 = 𝑫 − 𝑨
𝑨
𝑫
𝑳 = 𝑼𝚲𝐔 𝐓
ෝ𝒙 = 𝑼 𝑇 𝒙
𝒙 = 𝑼ෝ𝒙
𝑼 𝑑𝑖𝑎𝑔 𝒘 ෝ𝒙
= 𝑼𝑑𝑖𝑎𝑔 𝒘 𝑼 𝑇
𝒙
Δℎ 𝜔(𝑥) = 𝜆 𝜔ℎ 𝜔(𝑥)
𝐹 𝑓 𝑥 = 〈𝑓 𝑥 , ℎ 𝜔(𝑥)〉
𝐹 𝑔(𝑡) ∗ 𝑓(𝑡) = 𝐹 𝑔(𝑡)] 𝐹[𝑓(𝑡)𝑑𝑖𝑎𝑔 𝒘 : 𝒘を対角
要素に持つ行列
→ 𝑼𝑔 𝒘 𝚲 𝑼 𝑇 𝒙
𝑳 = 𝑫−1/2
𝑫 − 𝐀 𝑫−1/2
𝑼𝑔 𝒘 𝚲 𝑼 𝑇
𝒙
𝑔 𝒘 𝚲 ≅ ෍
𝑘=0
𝐾
𝑤′
𝑘 𝑇k(෩𝚲)
𝑼𝑇k
෩𝚲 𝑼 𝑇
= 𝑇k
෨𝑳
෍
𝑘=0
𝐾
𝑤′ 𝑘 𝑇k(𝑳)𝒙
𝑇k: k 多項式(チェビシェフ多項式による近似)
𝑇0 𝑥 = 1
𝑇1 𝑥 = 𝑥
𝑇k 𝑥 = 2𝑥𝑇k−1 𝑥 − 𝑇k−2 𝑥
𝑤′0 𝒙 + 𝑤′
1 𝑳 − 𝑰 𝑥 = 𝑤′0 𝒙 − 𝑤′
1 𝑫−1/2
𝑨𝑫−1/2
𝒙
𝐾 = 1とすると
෩𝚲:固有値を−1~1にノーマライズしたもの
𝑳 = 𝑫−1/2 𝑫 − 𝐀 𝑫−1/2
= 𝐼 − 𝑫−1/2 𝑨𝑫−1/2
𝑾 𝑰 + 𝑫−1/2 𝑨𝑫−1/2 𝒙
= 𝑾෩𝑨 𝒙 ෩𝑨 = 𝑰 + 𝑫−1/2
𝑨𝑫−1/2
Re-normalization:
1次近似
2次近似
元の変換(ランダムに生成したグラフ・特徴量でプロット)
3次近似 10次近似
https://colab.research.google.com/drive/1PwDQTy9trj2O4Dn-byrj9qF2jcA8Ul74コード
Back-end:
Graph Convolution
Visualization
CUDA GPU
acceleration
Multi-task/multi-modal
model support
Utility (CV, Feature extraction)
Hyper parameter
optimization
Algorithms
Command-line
tools
User interface:
グラフニューラルネットワーク用ライブラリ
様々なレベルの人がグラフニューラルネットワークを含む深層学習を利用可能
になることを目指したツール群
kGCN: Graph Convolutional Network tools for life science
Github: https://github.com/clinfo/kGCN
ブロックを線でつなげることで、グラフィカルに処理を記述可能
前処理部分 学習・可視化部分
GCNモジュール
https://colab.research.google.com/drive/1E9sCWQKWs2BO_i_zAudne-8nJQigYYLl
Integrate gradients (IG) による可視化を実装済み
Sundararajan, Mukund, Ankur Taly, and Qiqi Yan. "Gradients of
counterfactuals." arXiv preprint arXiv:1611.02639 (2016).
• ニューラルネットワークの
アーキテクチャに依存しない
Numberofatoms
features
特徴量レベル貢献度
• グラフのノードの貢献度
• ノードの特徴量レベルの貢
献度
GCNを含むマルチモーダ
ル・タスクマルチモーダル
を可視化可能
• データサンプル・特徴量レベル
での予測の貢献度を算出可能
赤い部分が予測により効いている
原子レベル貢献度
予測貢献度の可視化
グラフ・系列・ベクトルに対する可視化に統一的な仕組みで可視化が可能
The performance of this method was examined using a
simple dataset (water solubility) with binary labels of
solubility(High/Low)
Water solubility prediction model
0037-2-pentanol
0038-2,2-dimethyl
-1-propanol 0043-1,2-benzenediol
0048-cyclohexanone
0051-succinic_acid
0067-2,5-dimethylpyridine
0068-nicotinic_acid
0073-arecoline 0078-caffeine
0079-piperazine
IG-based visualization consistent with chemical intuition like hydrophilic groups
Number of training compounds: 623
Number of predicting compounds: 142
Number of features: 75
Training using a GCN (single-modal)
Solubility=High
特に化合物等を用いたグラフコンボリューションネットワークでは多くの疎行列に対する積計算が重要に
なってくる
(汎用的なGPUの高速計算ライブラリの多くはこれに対応していない)
 人工的なベンチマークを用いて評価
 7~8倍の計算の高速化
(特徴量が極端に多くない場合)
Batched sparse matrix multiplication(BatchedSpMM)を用いた
グラフコンボリューションネットワークの高速計算
複数の行列に対する(Batched)疎行列積計算ライブラリ(sparse matrix
multiplication)を開発
TensorFlow経由で容易に呼び出し可能 Nagasaka, et al.
"Batched sparse matrix multiplication for accelerating graph
convolutional networks." CCGRID. 2019
kGCNプラットフォームの開発
https://github.com/clinfo/kGCN
オープンソースプロジェクトとして公開
ロードマップ
今年度
・ベイズ最適化
・能動学習
・オンライン学習
・GCN以外の手法追加
来年度
・生成モデル
・転移学習
・メタラーニング
Back-end:
Graph Convolution
Visualization
CUDA GPU
acceleration
Multi-task/multi-modal model
support
Utility (CV, Feature extraction)
Hyper parameter optimization
Algorithms
Command-line toolsUser interface:

グラフニューラルネットワーク入門