この記事では
Graph Convolution Network (以下、GCN) について「概要だけ理解したい」「数式なんていらないから直感的に教えて」という方のために
- GCN って何やってんの?
- GCN は何に使われているの?
- 終わりに
についてかなりざっくり書いていきたい思います
論文 https://arxiv.org/pdf/1703.06103.pdf
GCN って何やってんの?
そもそも Convolution ってなんだっけ?
よく画像系のタスクで見かける Convolution の操作、一言で言うと「画像をフィルターにかけて畳み込み、特徴量を出しましょう」というものです(詳しくは自分でググってください)。このとき、画像は以下のような格子型ネットワークとして見ることができます。
GCN はこのような格子型ネットワークだけでなく、様々な形をしたネットワークの近接情報を畳み込むことでノードの特徴量を抽出するものになります。
じゃあ、どうするの?
ざっくり言うと周囲のノードの情報をたたみ込んでノードに情報を付与します。
このようなネットワークがあったとします。
この時、青のノードに注目して周囲の黄色のノードを畳み込みむと緑色の隠れ層ができます。
同様にその他のノードも畳み込んじゃいましょう。
次に青に注目して隣接する緑ノードを畳み込んで行きましょう。
隣接する黄色ノードの隠れ層(緑ノード)を参照してオレンジノードの層ができました。
これが GCN の利点になります。
隣接する緑ノードは青ノードが知り得ない灰色ノードの情報を知っています。つまり、オレンジの層は隣接しない灰色ノードの情報を知っていることになります。このように GCN は層を深くすることで隣接しない、本来なら知り得ないノードの情報を対象のノードに加えることができるのです。
GCN は何に使われているの?
以下で応用されているらしい…
- 化学分野
- 推薦システム
- ノードの分類
ここら辺は自分の理解が追いついていないため、機会があればまとめたいけど今回は勘弁してください。
終わりに
ソーシャルネットワーク解析や人材評価など結構応用範囲が広そうだなぁ〜って思った。今後の動向が気になりますね。