3. GCN(FeaStNet)
a b d
b a c d e
c d e
d a b
e b c
隣接情報
a b c
d e
①注目ノードを一つ選ぶ
• a を選ぶ
②注目ノードに対する隣接ノードに対して
畳み込み計算を行う
• a の隣接ノード: b , d
重み行列
2
5
3
M
https://arxiv.org/abs/1706.05206
4. GCN(FeaStNet)
a b d
b a c d e
c d e
d a b
e b c
隣接情報
a b c
d e
②注目ノードに対する隣接ノードに対して
畳み込み計算を行う
• a の隣接ノード: b , d
• ノードの情報と重みの積をとる
(重みの数はハイパーパラメータ)
重み行列
2
5
3
M
1aM
1bM
1cM
2aM
2bM
2cM
3aM
3bM
3cM
1,1 1,2 1,3 1,4 1,5
1 2
1,6 1,7 1,8 1,9 1,10
[ , ][ ]
M M M M M
a a
M M M M M
畳み込み後のチャネル数
畳み込み前の
チャネル数
ノード情報
5. GCN(FeaStNet)
a b d
b a c d e
c d e
d a b
e b c
隣接情報
a b c
d e
②注目ノードに対する隣接ノードに対して
畳み込み計算を行う
• a の隣接ノード: b , d
• 重み割り当て
重み行列
2
5
3
M
1 1( , )qaM a a
1 1( , )qbM a b
1 1( , )qcM a c
2 2 ( , )qaM a a
2 2 ( , )qbM a b
2 2 ( , )qcM a c
3 3 ( , )qaM a a
3 3 ( , )qbM a b
3 3 ( , )qcM a c
( , )mq 注目ノ ード 隣接ノ ード
1 2 3( , ) ( , ) ( , ) 1q q q a a a a a a
1 2 3( , ) ( , ) ( , ) 1q q q a b a b a b
1 2 3( , ) ( , ) ( , ) 1q q q a c a c a c
6. GCN(FeaStNet)
a b d
b a c d e
c d e
d a b
e b c
隣接情報
a b c
d e
②注目ノードに対する隣接ノードに対して
畳み込み計算を行う
• a の隣接ノード: b , d
• 重み割り当て
• 重み割り当ては隣接ノード別の各重みの重要度を表す
• 重み割り当てによって
学習する特徴に対して柔軟なモデルになる
重み行列
2
5
3
M
1 1( , )qaM a a 2 2 ( , )qaM a a 3 3 ( , )qaM a a
( , )mq 注目ノ ード 隣接ノ ード
1 2 3( , ) ( , ) ( , ) 1q q q a a a a a a
1( , ) 0.2q a a 2 ( , ) 0.5q a a 3 ( , ) 0.3q a a
10.2aM 20.5aM 30.3aM
7. GCN(FeaStNet)
a b d
b a c d e
c d e
d a b
e b c
隣接情報
a b c
d e
②注目ノードに対する隣接ノードに対して
畳み込み計算を行う
• a の隣接ノード: b , d
• 重み割り当て
• 入力が空間座標の場合有効
• 注目ノードaと隣接ノードの距離が近い
➡ expの中の値が小さくなる
➡ 重み割り当てが大きくなる
➡ その特徴が次の層へ伝わりやすい
重み行列
2
5
3
M
( , )mq 注目ノ ード 隣接ノ ード
1 1 1( , ) exp( ( ) )T
q c a b u a b
8. GCN(FeaStNet)
a b d
b a c d e
c d e
d a b
e b c
隣接情報
a b c
d e
②注目ノードに対する隣接ノードに対して
畳み込み計算を行う
• a の隣接ノード: b , d
• 重み割り当て
➡この値が次の注目ノードのノード情報になる
重み行列
2
5
3
M
1 1 2 2 3 3
1 1 2 2 3 3
1 1 2 2 3 3
{ ( , ) ( , ) ( , )
( , ) ( , ) ( , )
1
( , ) ( , ) ( , )}
q q q
q q q
q q q bias
ノ ード 数
aM a a aM a a aM a a
bM a b bM a b bM a b
cM a c cM a c cM a c
( , )mq 注目ノ ード 隣接ノ ード