グラフニューラルネットワーク(GNN)は、分子構造、ソーシャルネットワーク、引用ネットワークなど、入力がグラフであるタスク向けに設計された人工ニューラルネットワークの一種である。固定サイズで順序付けられた入力を想定する標準的なニューラルネットワークとは異なり、GNNは任意のサイズとトポロジーのグラフを扱う。グラフには一般的に正準的なノード順序がないため、GNNアーキテクチャは通常、置換同変となるように設計される。つまり、入力ノードを並べ替えると、対応するノード表現も同じように並べ替えられる。グラフレベルの予測タスクでは、GNNは置換不変の読み出し関数を使用し、出力がノード順序によって変わらないことを保証する。
GNNの主要な設計要素はペアワイズメッセージパッシングであり、ノードが隣接ノードと情報を交換しながら反復的に表現を更新する。これにより、ネットワークは局所的および大域的な構造情報の両方を捕捉できる。顕著な応用は分子薬物設計であり、分子は原子をノード、結合をエッジとするグラフとして表現され、化学的特性を特徴として含むことが多い。グラフレベルのタスクには、大腸菌を除去するなど特定の医療用途に対する分子の有効性の予測が含まれる。GNNはまた、自然言語処理、ソーシャルネットワーク分析、物理学、NP困難な組合せ最適化にも応用されている。
歴史的発展
グラフ構造データにニューラルネットワークを適用する概念は、1990年代後半から2000年代初頭に登場した。Franco Scarselliら研究者による初期の研究では、グラフ構造を再帰的に処理するグラフ用再帰ニューラルネットワークが導入された。ほぼ同時期に、畳み込みアプローチが開発され、最初のグラフ畳み込みネットワークが生まれた。これらの初期アーキテクチャは現代のGNNの基盤を築き、多くの学術および産業研究グループからの貢献を通じて進化してきた。
重要な節目は、2017年のメッセージパッシングニューラルネットワーク(MPNN)の導入であり、多くの既存のGNN変種を共通の枠組みの下で統合した。それ以来、多数のアーキテクチャが提案され、それぞれが異なるメッセージパッシングのバリエーションを実装している。2022年のポジションペーパーでは、メッセージパッシングを「超えた」とされる多くのアーキテクチャが、適切に修正されたグラフ上のメッセージパッシングとして解釈できると主張し、そのようなアプローチに「拡張メッセージパッシング」という用語を造語した。
アーキテクチャ
一般的なGNNのアーキテクチャは、通常、置換同変層、局所プーリング層、大域プーリング層の3つの基本的なタイプの層を含む。置換同変層は、多くの場合メッセージパッシングを介して実装され、隣接ノードからのメッセージを集約してノード表現を更新する。各層は受容野を1ホップずつ拡大し、ノードがグラフのより遠い部分からの情報を取り込むことを可能にする。
局所プーリング層は、画像用の畳み込みニューラルネットワークのプーリングと同様に、ダウンサンプリングを介してグラフを粗くする。例としては、k近傍プーリング、トップkプーリング、自己注意プーリングがある。大域プーリング層は読み出し層とも呼ばれ、グラフ全体の固定サイズ表現を生成し、置換不変でなければならない。一般的な読み出し関数には、要素ごとの和、平均、最大値がある。
標準的なメッセージパッシングGNNは、最大でもWeisfeiler-Lehmanグラフ同型テストと同じ表現力を持ち、つまり、そのようなネットワークでは区別できない異なるグラフ構造が存在する。単体複体などの高次元幾何学で動作するより強力なGNNが提案されている。2022年時点で、将来のアーキテクチャがメッセージパッシングのプリミティブを克服するかどうかは、未解決の研究課題である。
メッセージパッシング層
メッセージパッシング層は、ほとんどのGNNの核である。形式的には、メッセージパッシングニューラルネットワーク(MPNN)として表現できる。ノード特徴x_uとエッジ特徴e_uvを持つグラフG = (V, E)が与えられたとき、MPNN層は微分可能な関数φとメッセージ関数ψを使用して各ノードの表現h_uを更新する:
h_u = φ(x_u, ⊕_{v∈N_u} ψ(x_u, x_v, e_uv))
ここで、N_uはノードuの近傍を示し、⊕は和、平均、最大などの置換不変な集約関数である。メッセージ関数ψは各隣接ノードからメッセージを計算し、集約がこれらのメッセージを組み合わせる。更新関数φは、ノード自身の特徴と集約されたメッセージを組み合わせて新しい表現を生成する。
異なるGNNアーキテクチャは、ψとφの定義方法が異なる。例えば、グラフ畳み込みネットワーク(GCN)は隣接ノード特徴の単純な正規化された和を使用する一方、グラフ注意ネットワーク(GAT)は注意メカニズムを使用して隣接ノードの寄与に重みを付ける。これらのバリエーションにより、GNNはグラフ構造の異なる側面を捕捉できる。
幾何学的深層学習
GNNは、非ユークリッド領域にニューラルネットワークを一般化することを目的とした幾何学的深層学習のより広い分野の一部である。この文脈では、多くの既存アーキテクチャが、適切に定義されたグラフ上で動作するGNNとして解釈できる。例えば、コンピュータビジョンにおける畳み込みニューラルネットワーク層は、ノードがピクセルでエッジが隣接ピクセルを結ぶグラフに適用されるGNNと見なせる。同様に、自然言語処理におけるTransformer (architecture)層は、テキストの一節の単語またはトークンをノードとする完全グラフに適用されるGNNと見なせる。
この視点は、分野間の相互交流につながった。注意メカニズムなどGNNのために開発された技術はtransformerアーキテクチャに影響を与え、transformerからの洞察はGNN設計に情報を提供している。幾何学的深層学習の統一的な視点は、Michael BronsteinやJoan Brunaら研究者によって明確にされてきた。
応用
GNNは、幅広い領域で応用が見つかっている。分子生物学と化学では、薬物発見、タンパク質機能予測、材料設計に使用されている。例えば、GNNは分子特性を予測したり、望ましい特性を持つ新規分子を生成したりできる。ソーシャルネットワークでは、GNNはレコメンデーションシステム、コミュニティ検出、リンク予測を強化する。論文をノード、引用をエッジとする引用ネットワークは、トピック分類や影響予測のためにGNNの恩恵を受けている。
物理学では、GNNは粒子相互作用をモデル化し、力学系をシミュレートする。また、巡回セールスマン問題やグラフ彩色などのNP困難な組合せ最適化問題にも適用され、ヒューリスティックを学習できる。自然言語処理では、GNNは意味解析、関係抽出、知識グラフ推論に使用されている。さらに、GNNはコンピュータビジョンでシーングラフ生成や点群処理にも採用されている。
ソフトウェアライブラリ
いくつかのオープンソースライブラリがGNNを実装しており、研究者や実務者が利用しやすくなっている。PyTorch上に構築されたPyTorch Geometricは、最も広く使用されているライブラリの1つであり、豊富なGNN層とデータセットを提供している。TensorFlow GNNはTensorFlowエコシステム向けに同様の機能を提供する。Deep Graph Library(DGL)はフレームワークに依存せず、PyTorchとTensorFlowの両方をサポートする。JAXユーザーには、jraphがGNNプリミティブを提供する。Julia言語では、GraphNeuralNetworks.jlとGeometricFlux.jlがGNN実装を提供している。
これらのライブラリは、メッセージパッシング、プーリング、読み出し操作の効率的な実装を提供することで、GNNの研究と展開を加速させてきた。また、大規模グラフでのトレーニングに不可欠なバッチ処理やデータローディングなど、グラフデータを扱うためのユーティリティも含まれている。
課題と将来の方向性
その成功にもかかわらず、GNNはいくつかの課題に直面している。主要な問題の1つはスケーラビリティであり、大規模グラフ上のメッセージパッシングは計算コストが高くなる可能性がある。グラフサンプリングやミニバッチトレーニングなどの技術がこれに対処するために開発されている。もう1つの課題は過平滑化であり、繰り返しのメッセージパッシングによりノード表現が区別できなくなり、GNNの深さが制限される。
表現力も活発な研究分野である。標準的なGNNはWeisfeiler-Lehmanテストによって制限されるため、研究者は高次GNN、グラフtransformer、単体複体やハイパーグラフで動作するアーキテクチャを探求してきた。これらのアプローチは、より複雑な構造情報を捕捉することを目的としている。2022年時点で、メッセージパッシングが支配的なパラダイムであり続けるかどうかは未解決であり、拡張メッセージパッシングや代替プリミティブに関する継続的な研究が行われている。
解釈可能性と堅牢性も重要である。GNNが何を学習するかを理解し、グラフ上の敵対的攻撃に対して堅牢にすることは、活発な研究トピックである。GNNが医療や自律システムなどの高リスク領域でますます展開されるにつれて、これらの課題に対処することは、そのより広範な採用にとって重要となる。