統計ロードマップ
2026-04-30·実装·⏱ 約 4

グラフニューラルネット 入門 ─ ソーシャル・分子・地図のための AI

ノードとエッジで表現されるグラフデータに対する深層学習。GCN・GAT・Message Passing の仕組みと、ソーシャル分析・創薬・推薦での応用を解説します。

グラフニューラルネット(GNN) はノード(点)とエッジ(辺)からなるグラフデータを扱う深層学習。テーブルデータや画像と違って『関係性そのもの』が情報の核となるドメインで威力を発揮します。

なぜグラフが必要か

  • ソーシャルネットワーク: ユーザー間の友達関係
  • 分子: 原子を頂点、結合を辺として表現
  • 推薦システム: ユーザー-アイテムの 2 部グラフ
  • 地図 ・ 交通網: 道路網の最短経路や流量予測
  • 知識グラフ: 概念間の関係

Message Passing(基本動作)

各ノードが 隣接ノードからメッセージを受け取り → 集約 → 自分の埋め込みを更新 を繰り返す。

💡 1 層 = 1 ホップ

L 層 GNN は L ホップ離れたノードまでの情報を集めます。3 層程度が標準。

代表的なアーキテクチャ

GCN(Graph Convolutional Network)

Kipf & Welling 2017。隣接行列の正規化版で集約。理論的にきれい。

GAT(Graph Attention Network)

隣接ノードの重要度を attention で動的に決定。一様平均ではなく重み付け。

GraphSAGE

近傍をサンプリングして大規模グラフでもスケール可能。Facebook で実用。

PyTorch Geometric で実装

GCN の最小実装
import torch
import torch.nn.functional as F
from torch_geometric.nn import GCNConv
from torch_geometric.datasets import Planetoid

dataset = Planetoid(root='/tmp/Cora', name='Cora')
data = dataset[0]

class GCN(torch.nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = GCNConv(dataset.num_features, 16)
        self.conv2 = GCNConv(16, dataset.num_classes)

    def forward(self, x, edge_index):
        x = F.relu(self.conv1(x, edge_index))
        x = F.dropout(x, training=self.training)
        return self.conv2(x, edge_index)

model = GCN()
opt = torch.optim.Adam(model.parameters(), lr=0.01)
for epoch in range(200):
    model.train()
    opt.zero_grad()
    out = model(data.x, data.edge_index)
    loss = F.cross_entropy(out[data.train_mask], data.y[data.train_mask])
    loss.backward()
    opt.step()

応用領域

  • ノード分類: ユーザーがスパマーか、論文のカテゴリは何か
  • リンク予測: 友達推薦・薬物-標的相互作用予測
  • グラフ分類: 分子の毒性予測・タンパク質機能予測
  • コミュニティ検出: ソーシャルグラフのクラスタ
  • 最短経路 / 流量: 強化学習との組み合わせ

実用例 ─ 創薬・タンパク質

AlphaFold(DeepMind)はタンパク質の立体構造予測で GNN ベースの Transformer を使用。Nobel 賞級のインパクト。

学習リソース

  • [線形代数を AI 視点で](/blog/linear-algebra-for-ai) ─ 隣接行列の理解
  • [Transformer の数学](/blog/transformer-math) ─ Attention の前提
  • [コンピュータビジョン入門](/blog/computer-vision-introduction) ─ CNN との比較
Related Articles

関連記事