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
関連記事
- 2026-04-30実装OpenAI API 実装入門 ─ Chat / Embeddings / Function CallingOpenAI API を使ったプロダクション開発の基礎。Chat Completion・Embedding・Function Calling・ストリーミング・コスト管理まで実装パターンを網羅。
- 2026-04-30実装Vercel で AI アプリをデプロイする ─ Next.js + AI SDK 入門Vercel にデプロイする最短ルート。Next.js の AI SDK + AI Gateway で OpenAI/Claude を統合し、ストリーミングチャット UI を 1 時間で公開する手順。
- 2026-04-30実装Streamlit で 1 時間で ML デモアプリ ─ 転職に効くポートフォリオPython だけで動くインタラクティブな ML デモを Streamlit で作る方法。データ可視化・ファイルアップロード・モデル予測 UI までの最小実装。