MedTechToday編集部のいとうたかあきです。
今回の医療AI講座のテーマは、最近話題になっている、グラフ畳み込みニューラルネットワーク(GCN:Graph Convolutional Networks)です。
さらっと読んで、理解したい!AI知識を増やしたい!という方向けに解説します。
1.グラフとは
グラフ畳み込みニューラルネットワークと聞いて、棒グラフや折れ線グラフなどのグラフをイメージする方も多いかもしれません。
しかし、グラフ畳み込みニューラルネットワークで使用するグラフとは、ノードとエッジからなるデータ構造のことを言います。

ノードは何らかの対象を示しており、エッジはその対象間の関係性を示しています。
具体例としては、例えば、化合物があります。
この場合は原子がノード、結合がエッジに当たります。
その他、人をノードにして、人と人との交友関係をエッジにすることで、コミュニティを表す等、対象と対象間の関係性があるさまざまな事象をグラフで表現することが可能です。
2節からグラフ畳み込みニューラルネットワークについて、説明していきますが、DNNやCNNについて理解があると、読み進めやすいと思います。
DNNについては
CNNについては、
上記の記事にて、解説していますので、ディープラーニングについてほとんど知らないなという方は、ぜひお読みください。
2.グラフ畳み込みニューラルネットワーク(GCN)の概要
グラフ畳み込みニューラルネットワーク(GCN)は、グラフを入力とした場合でも扱えるように設計されたディープラーニング手法です。
通常、ニューラルネットワークは1次元データしか扱うことができないので、グラフデータを単純にノードのみの1次元データにしてからニューラルネットワークにかけると、エッジの情報が失われてしまいます。
CNN(畳み込みニューラルネットワーク)と同様の発想で、GCNでは、 “グラフ畳み込み”という処理により、各ノードだけではなく、ノード間の関係を考慮に入れています。
グラフ畳み込みでもCNNと同様に畳み込みを繰り返します。
CNNでは、例えば画像データにおいては、上下左右斜めの8方向からの情報を畳み込みます(左図)が、GCNでは対象ノードの周辺もしくはグラフ全体の情報を畳み込む(右図)ことが相違点です。

畳み込みの手順としては(下図参照)グラフの赤丸を注目ノードとすると、1回目のグラフ畳み込みでは、各ノードに関して、任意の隣接関係にあるノードの情報を畳み込みます。
2回目の畳み込みでは、注目ノードに対する隣接ノード自体も、前の層ではその隣接ノードを畳み込んでいるため(黒矢印)、より広い範囲の情報が畳み込まれます。
グラフ畳み込みの層を増やすことで、最終的にはグラフ全体の情報を考慮したノード特徴量を得ることができるようになります。

分類・回帰タスクを行う場合には、グラフ畳み込み後のグラフを使用して、その後 Readout という方法で、グラフ全体の特徴量を生成(1列データに変換)します。
1列データに変換したのちは、DNNと同様の流れになります。
3. グラフ畳み込みニューラルネットワーク(GCN)の医療への応用例
医療への応用の例として、GCNで、急性中毒の高精度診断が可能になっています。
ここでは、ミュンヘン工科大学のHendrik BurwinkelらのArXiv論文
(https://arxiv.org/abs/2005.00840)の概要を紹介します。
『急性中毒のコンピューター診断支援において、これまでのアプローチでは、正しい診断のための潜在的な価値があるにもかかわらず、報告された症例の年齢や性別などのメタ情報(付加的な情報)は考慮されていませんでした。
Hendrik Burwinkeらは、グラフ畳み込みニューラルネットワークを用い、患者の症状に加えて、年齢層や居住地などのメタ情報をグラフ構造として、効果的に取り込んだネットワーク(ToxNet)を提案しました。
ToxNetを用いたところ、中毒症例の情報から、医師の正解数を上回る精度で、毒素を識別可能となりました。』
詳しくは下記の記事で紹介していますので、興味のある方はご覧頂ければ幸いです。
4.まとめ
グラフ畳み込みニューラルネットワーク(GCN)についてなんとなくイメージがつかめましたでしょうか。
本記事では、さらっと理解できることに重点を置きました。
少しでも本記事で、GCNについて理解が深まったと感じて頂ければ幸いです。