今週は「PyTorchを使ったディープラーニング」セミナーの第6回がありました。
今回のテーマはネットワークノード分類。古典的なノード分類の方法と2017年に論文が発表されたばかりのGraph Convolutional Networks(GCN)について解説がありました。
Weighted-vote relational neighbor(wvRN)
まずは、古典的なノード分類の方法として、Weighted-vote relational neighbor(wvRN)を実装します。wvRNとはその名の通り、自分自身に隣接するノードの投票の重みにより分類する方法です。
上記の形のグラフ(karate_club_graph:34ノード中6ノードが分かっている状態)に対して、wvRNを5回適用します。
この分類方法では以下の欠点があります。
- ノードが持つ属性情報を考慮出来ない(文章、単語など)
- 浅い層のモデルなので、複雑なネットワークに対しての効果はイマイチ
- 線形モデルなので、非線形情報を表すことが出来ない
Graph Convolutional Networks(GCN)
Graph Convolutional Networks(GCN)は、畳み込みニューラルネットワーク(CNN)の思考を元にグラフ上で畳み込みを行うモデルです。
PGの実習では、機械学習に関する論文の分類を行う処理の解説がありました。
使用するデータは下記2つです。
- 論文概要(論文ID 単語属性 カテゴリー)
- 論文の引用関係(引用論文ID 被引用ID)
引用関係からグラフを作成して、それぞれのノードに属性がある状態になります。GCNでカテゴリーの分類を行います。