グラフニューラルネットワーク(GNN)は、入力がグラフであるタスク向けに設計された人工ニューラルネットワークの一種である。グラフは、ノード(頂点)とエッジ(接続)から構成され、分子内の原子やソーシャルネットワーク内のユーザーなど、エンティティとその関係を表現できる。画像やテキストとは異なり、グラフにはノードの正準的な順序が存在しないため、GNNアーキテクチャは通常、置換同変(permutation equivariant)になるように設計される。すなわち、入力のノードを並べ替えると、対応するノード表現も同じように並べ替えられる。グラフレベルの予測タスクでは、GNNは置換不変の読み出し関数を使用し、その出力はノードの順序によって変化しない。
GNNの主要な設計要素はペアワイズメッセージパッシングであり、グラフのノードが隣接ノードと情報を交換しながら反復的に表現を更新する。これにより、ネットワークは局所的な構造パターンや依存関係を捕捉できる。GNNはリレーショナルデータにおける機械学習の基盤となり、分子生物学、化学、物理学、ソーシャルネットワーク、自然言語処理などの深層学習領域にわたる応用がある。
歴史的発展
グラフにニューラルネットワークを適用する概念は、1990年代後半から2000年代初頭に登場した。初期の再帰的および畳み込み的アプローチが基礎を築いたが、この分野は2010年代に、より強力な計算リソースの登場と他の領域での深層学習の成功により、大きな勢いを得た。2022年のポジションペーパーでは、「メッセージパッシングを超える」とされる多くのアーキテクチャが、適切に修正されたグラフ上のメッセージパッシングとして解釈できると主張し、そのようなアプローチに「拡張メッセージパッシング」という用語を提案した。これは、GNN設計におけるメッセージパッシングの中心的な役割を強調している。
アーキテクチャ
一般的なGNNのアーキテクチャは、いくつかの基本層を実装する。置換同変層は、グラフの表現を同じグラフの更新された表現に写像し、通常はメッセージパッシングを介して行われる。局所プーリング層は、ダウンサンプリングを通じてグラフを粗くし、畳み込みニューラルネットワークのプーリングと同様に受容野を拡大する。大域プーリング層(読み出し層とも呼ばれる)は、グラフ全体の固定サイズ表現を提供し、置換不変でなければならない。大域プーリングの例には、要素ごとの和、平均、最大値がある。
標準的なメッセージパッシングGNNは、少なくともWeisfeiler-Lemanグラフ同型テストと同じ表現力を持ち、つまり、そのようなネットワークでは区別できない異なるグラフ構造が存在することを意味する。単体複体などの高次元幾何学で動作する、より強力なGNNを設計できる。2022年時点で、将来のアーキテクチャがメッセージパッシングの基本を克服できるかどうかは、未解決の研究課題である。
メッセージパッシング層
メッセージパッシング層は、グラフを同じグラフの更新された表現に写像する置換同変層である。形式的には、メッセージパッシングニューラルネットワーク(MPNN)として表現できる。G = (V, E)をグラフとし、Vはノード集合、Eはエッジ集合とする。ノードu∈Vについて、N_uをその近傍、x_uをその特徴、e_uvをエッジ(u, v)の特徴とする。MPNN層は、更新されたノード表現h_uを次のように計算する:
h_u = φ(x_u, ⊕_{v∈N_u} ψ(x_u, x_v, e_uv))
ここで、φとψは微分可能な関数(例:人工ニューラルネットワーク)であり、⊕は和、平均、最大値などの微分可能で置換不変な集約関数である。集約関数は近傍からのメッセージを組み合わせ、φはノードの表現を更新する。各メッセージパッシング層は受容野を1ホップ拡大し、情報がグラフ全体に伝播できるようにする。
いくつかのGNNアーキテクチャは、異なるメッセージパッシングのバリエーションを実装している。例えば、グラフ畳み込みネットワーク(GCN)は近傍特徴の単純な平均化を使用し、グラフ注意ネットワーク(GAT)は注意メカニズムを使用して近傍の寄与に重みを付ける。これらのバリエーションは、モデルの容量と帰納的バイアスに影響を与える。
幾何学的深層学習
GNNは、ニューラルネットワークアーキテクチャを非ユークリッド領域に一般化しようとする幾何学的深層学習という広範な分野の一部である。この枠組みでは、特定の既存アーキテクチャは、適切に定義されたグラフ上で動作するGNNとして解釈できる。例えば、コンピュータビジョンにおける畳み込みニューラルネットワーク層は、ノードがピクセルでエッジが隣接ピクセルを接続するグラフに適用されたGNNと見なせる。同様に、自然言語処理におけるトランスフォーマー層は、ノードがテキスト内の単語やトークンである完全グラフに適用されたGNNと見なせる。この視点は、一見異なるアーキテクチャを共通の数学的枠組みの下で統一する。
応用
GNNは多様な領域に応用されている。分子薬物設計では、分子はノードが原子、エッジが原子結合を表すグラフとして表現され、既知の化学的特性が特徴として含まれることが多い。入力は原子数や結合数の違いによりサイズが異なる場合がある。グラフレベルのタスクとしては、特定の医療用途(例:大腸菌の除去)に対する分子の有効性を予測することが挙げられる。GNNはソーシャルネットワーク分析、引用ネットワーク、レコメンデーションシステムでも使用されている。物理学では粒子相互作用をモデル化でき、組合せ最適化では巡回セールスマン問題などのNP困難問題に適用されている。
実装とライブラリ
いくつかのオープンソースライブラリがGNNを実装しており、研究者や実務者が利用しやすくなっている。PyTorch GeometricはPyTorch上に構築された人気のライブラリであり、TensorFlow GNNはTensorFlow向けに同様の機能を提供する。Deep Graph Library(DGL)はフレームワーク非依存で、複数のバックエンドをサポートする。jraphはJAX向けに設計され、GraphNeuralNetworks.jlとGeometricFlux.jlはJuliaエコシステムを対象としている。これらのライブラリは、事前構築された層、プーリング操作、グラフデータを扱うユーティリティを提供し、開発と実験を加速する。
課題と今後の方向性
その成功にもかかわらず、GNNはいくつかの課題に直面している。Weisfeiler-Lemanテストに対する表現力の限界は、特定のグラフ構造を区別する能力を制限する。大規模グラフへのスケーラビリティも問題であり、メッセージパッシングは計算集約的になり得る。高次特徴や拡張メッセージパッシングを使用するものなど、より表現力の高いアーキテクチャに関する研究が続いている。さらに、GNNの一般化とロバスト性に関する理論的理解は活発な研究分野である。2022年時点で、この分野は急速に進化しており、新しいアーキテクチャと応用が定期的に登場している。