Graph Neural Network(GNN)(グラフニューラルネットワーク)
グラフ構造データ(ノードとエッジで構成)を直接入力として処理するニューラルネットワークの総称。各ノードが近傍ノードの情報を集約(メッセージパッシング)して自身の表現を更新する仕組みで、ソーシャルネットワーク分析・分子設計・推薦システムなどに応用される。
Graph Neural Network(GNN)とは
Graph Neural Network(GNN、グラフニューラルネットワーク)は、グラフ構造を持つデータを直接処理するために設計されたニューラルネットワークのクラスである。従来のCNN(画像向け)やRNN(系列向け)がグリッドや系列といった規則的なデータ構造を前提とするのに対し、GNNは不規則なグラフ構造(任意のノード数・エッジ接続)を扱える。
メッセージパッシングの仕組み
基本原理
GNNの中核的な計算パラダイムはメッセージパッシング(Message Passing)である。各ノードは以下の3ステップを繰り返す。
- メッセージ生成: 各近傍ノードが自身の特徴量から「メッセージ」を生成
- 集約(Aggregation): 受信した全メッセージを集約関数(平均・合計・最大値等)で統合
- 更新(Update): 集約された情報と自身の特徴量を組み合わせてノード表現を更新
このプロセスをK回繰り返すと、各ノードはK-hop近傍(K段階先の隣接ノード)までの構造情報を取り込んだ表現を獲得する。
主要アーキテクチャ
| 手法 | 年 | 集約方式 | 特徴 | 代表的な応用 |
|---|---|---|---|---|
| GCN | 2017 | 正規化平均 | シンプル・高効率 | ノード分類 |
| GraphSAGE | 2017 | サンプリング+集約 | 帰納的学習・大規模対応 | 推薦システム |
| GAT | 2018 | アテンション重み | 重要な近傍に注目 | 引用ネットワーク |
| GIN | 2019 | 和+MLP | WLテストと同等の識別力 | グラフ分類 |
| MPNN | 2017 | 汎用フレームワーク | 多くのGNNを統一的に記述 | 分子特性予測 |
GCN(Graph Convolutional Network)
KipfとWelling(2017)が提案した最も基本的なGNN。画像のCNNが近傍ピクセルの情報を畳み込むように、グラフ上の近傍ノードの特徴量を正規化平均で集約する。計算が効率的で実装が容易なため、GNNの入門に最適。
GAT(Graph Attention Network)
アテンション機構をグラフに適用した手法。すべての近傍ノードを等しく扱うGCNと異なり、各近傍の重要度を学習可能なアテンション重みで動的に決定する。トランスフォーマーのSelf-Attentionをグラフに適用した形と理解できる。
GraphSAGE
大規模グラフへの対応を目的とした手法。全近傍を使う代わりに固定数の近傍をランダムサンプリングすることで、計算量を制御する。また、訓練時に見なかったノードに対しても帰納的(inductive)に推論できる特徴を持つ。
応用分野
分子設計・創薬
分子は原子(ノード)と結合(エッジ)のグラフとして自然に表現される。GNNで分子の特性(溶解度・毒性・結合親和性)を予測し、新薬候補の探索を加速する。AlphaFold以降、タンパク質の構造予測にもGNNが活用されている。
推薦システム
Pinterest(PinSage)やAlibaba(AliGraph)では、ユーザーとアイテムの相互作用グラフに対してGNNを適用し、数十億ノード規模の推薦を実現している。
不正検知
金融取引のネットワークにGNNを適用し、不正な取引パターン(マネーロンダリング等)を検出する。取引の金額や頻度だけでなく、ネットワーク上の構造的な異常を捉えられる。
実装フレームワーク
PyTorch Geometric(PyG)とDGL(Deep Graph Library)が二大フレームワーク。PyGはPyTorchベースで研究向けに使いやすく、DGLはTensorFlowとPyTorch両対応でスケーラビリティに優れる。
FAQ
Q: GNNとトランスフォーマーの関係は?
A: トランスフォーマーのSelf-Attentionは、全ノード(トークン)が相互に接続された完全グラフ上のGAT(Graph Attention Network)と解釈できます。GNNはグラフの疎な接続構造を活用し、トランスフォーマーは全結合で長距離依存を捉えます。Graph Transformerという両者を統合したアーキテクチャも研究されています。
Q: GNNに入門するにはどこから始めれば良いですか?
A: PyTorch GeometricのチュートリアルでGCNを実装し、Coraデータセット(引用ネットワーク)のノード分類タスクを解くのが定番の入門パスです。数十行のコードでGNNの基本を体験できます。
Q: GNNの限界は何ですか?
A: Over-smoothing(層を深くすると全ノードの表現が似てしまう)とOver-squashing(ボトルネックを通じた情報伝搬の劣化)が主な課題です。深いGNNの設計や、これらを緩和するアーキテクチャの研究が活発に行われています。