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 との比較
Sponsored / Recommended
本気で AI エンジニアを目指すなら ─ 関連スクール
以下は当サイトと提携しているスクールの紹介です。リンク経由でのお申込で運営費を支援できます(読者の皆様の追加負担はありません)。
Related Articles
関連記事
- 2026-04-30実装Slack Bot を LLM で作る ─ FastAPI + OpenAI で社内ツール化Slack の Slash Command と Events API を使い、社内チャンネル内で動く LLM Bot を構築。FastAPI バックエンド + OpenAI で 1 日で完成。
- 2026-04-30実装FastAPI 入門 ─ ML モデルを 5 分で API にするPython の高速 Web フレームワーク FastAPI を使って、ML モデルを REST API として公開する最短ルート。型ヒント・自動ドキュメント・非同期対応の 3 拍子。
- 2026-04-30実装Docker 入門 ─ ML 環境の再現性を担保する「自分の PC では動く問題」を解決する Docker。ML プロジェクトの Dockerfile・GPU 対応・docker-compose・Multi-Stage Build までを実用視点で。