GNN(Graph Neural Network)について解説します。
といっても、GNN自体がものすごく難しく、そのGNNやその派生系のアーキテクチャに関する研究が現在でも盛んに行われているほどなので、わかりやすく説明ができるかについては保証はしませんが、できるだけわかりやすく解説していきたいと思います。
この記事は、2018年に発表されたサーベイ論文 Graph neural networks: A review of methods and applications を大いに参考にしていますので、気になる方はリンクからぜひ読んでみてください。
GNNで解けるタスク
まず最初に、GNNがどのようなものなのかを説明する前に、GNNを用いて解くことができるタスクとして次のようなタスクがあります。
- グラフ分類
- ノード分類
- リンク予測
グラフ分類
グラフ分類は、グラフが与えられた時にそのグラフがどのクラスに所属するかを推論する分類問題です。ある化合物やタンパク質がどのような機能を有しているか、などのタスクや、多変量をセンサーデータをグラフ構造に変換した上で、現在のセンサー間の依存関係が正常なのか異常なのか、の異常検知などに利用されます。
ノード分類
あるグラフが与えられた時、そのグラフ状のノードがどのクラスに所属するかの分類問題です。グラフ分類も同じ分類問題ですが、グラフ全体を分類するのか、それともノード単位で分類するかでタスクは変わってきます。
リンク予測
あるグラフ上の2つのノードに、リンク(エッジ)があるかを推論する問題です。
GNNの種類
GNNと聞くと、一番有名なのはGCN(Graph Convolutional Network)がありますが、他にもGATやGraphSAGEなどの有名なアルゴリズムがあります。
以下は2020年のものにありますが、GNNでもこれだけの種類のアーキテクチャやネットワークの種類があります。
