1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【勉強会資料】データのつながりを活かす技術「6章 グラフニューラルネットワーク」

1
Last updated at Posted at 2026-01-24

@maekesoさんと輪読会を開催したので、資料の内容をまとめました。

個人の興味関心の備忘録として記録したものであり、情報の正確性や完全性を保証するものではありません。

目次

グラフニューラルネットワークとは

ネットワーク構造を持つデータに対して深層学習を適用し、ノードやエッジが持つ情報、そしてそれらの関係性を活用して、グラフ全体を表現学習しようとする手法。

画像や文章の場合、ピクセルの配置や単語の並びといった構造があらかじめ明確に定義されており、CNN や RNN、Transformer などの既存の深層学習モデルをそのまま適用しやすいという特徴がある。
一方で、グラフデータはノード数や接続関係が不規則であり、明確な順序や固定された構造を持たないので、従来のニューラルネットワークアーキテクチャをそのまま適用することが難しい。
ネットワーク構造を直接捉え、関係性そのものを学習するために考えられた手法が、グラフニューラルネットワーク(GNN)

フレームワーク

各ノード間のつながりやネットワーク全体の構造を同時に学習するために、GNNでは主に次のような仕組みが用いられる

  • グラフフィルタ(Graph Filtering)
    各ノードの特徴量を、隣接ノードの特徴量やグラフ構造を考慮しながら更新。
    ノード単体の情報だけでなく、周囲との関係性を反映した表現を獲得。

  • グラフプーリング(Graph Pooling)
    複数のノードの特徴量を集約し、より抽象度の高い特徴量を生成。
    プーリング後のグラフは情報量が減少する一方で、計算量を抑えられる。
    グラフフィルタと組み合わせることで、ノードの特徴を更新しつつ、グラフ全体の表現を出力することが可能になる。

  • タスクへの適用例
    ノードレベルのタスク:グラフフィルタを用いて各ノードの表現を学習
    エッジレベルのタスク:グラフフィルタで得たノード表現を用い、ノード同士のペアからエッジの特徴を構成
    グラフレベルのタスク:グラフプーリングによってネットワーク全体の表現を生成

ネットワーク構造を変化させるかどうかも含めて、目的とするタスクに応じてグラフフィルタやグラフプーリングを使い分けることが重要。

グラフフィルタリング概要

空間ベース(Spatial-based) と スペクトルベース(Spectral-based) の2つに分類される。

  • 空間ベース(Spatial-based)
    グラフ上のノードのつながり(隣接関係)を直接考慮し、周囲のノードから情報を集約することでノードの特徴量を更新。

  • スペクトルベース(Spectral-based)
    グラフラプラシアンに基づく「グラフフーリエ変換」を用いて、ノードの特徴量を周波数領域に変換し、フィルタリングを行う。
    例えば、隣接ノード同士で似た特徴を持つ「低周波成分」を強調することで、グラフ構造に沿った滑らかな表現を学習する。

グラフプーリング概要

複数のノードをまとめて代表的な特徴量を作成し、グラフを縮約する手法。
ノード数を減らすことで計算量を抑えつつ、より抽象度の高いグラフ表現を得ることが目的。

  • 最大値プーリング(Max Pooling)
    各特徴次元ごとに、値が最大となるノードの値を採用。
    重要な特徴が一部のノードに強く現れる場合に有効。

  • 平均値プーリング(Mean Pooling)
    複数ノードの特徴量を平均する手法。
    グラフ全体の傾向を安定して表現できる一方、局所的な強い特徴は薄まる。

  • Top-k プーリング
    各ノードに対してスコアを計算し、スコアが高い上位 k 個のノードのみを残す。
    重要なノードを明示的に選択でき、構造を部分的に保持したままグラフを縮約可能。

  • SAGPool(Self-Attention Graph Pooling)
    自己注意機構(Self-Attention)を用いてノードの重要度を算出し、重要度の高いノードを選択する手法。
    グラフ構造を考慮した柔軟なノード選択が可能。

グラフ畳み込みネットワーク

グラフ上で「畳み込み」に相当する操作を定義し、隣接ノードの情報を集約することでノード表現を更新するGNNモデル。
基本的には「隣接ノードの特徴量の平均(正規化付き)」を用いてノードを更新。

  • GraphSAGE
    GraphSAGE(Graph Sample and Aggregate) は、大規模グラフを想定して設計されている。
    すべての隣接ノードを使わず、近傍ノードをサンプリングして集約。
    平均、最大値、LSTM など、複数の集約関数を選択可能。
    学習済みモデルを、未知のノードにも適用可能
    GraphSAGE は「全ノードを前提としない」ため、SNSや推薦システムのような動的にノードが増えるグラフに向いている。
     

  • GAT(Graph Attention Network)フィルタ
    GAT は、隣接ノードをすべて同じ重みで扱うのではなく、
    Attentionを用いて「どの隣接ノードが重要か」を学習するモデル。
    ノード間ごとに注意係数を計算し、重要なノードほど大きな重みで集約
    構造が不均一なグラフでも柔軟に対応可能
    特定の関係が強く影響する場合(例:金融取引、不正検知)に有効。
     

  • Relational GCN(R-GCN)
    Relational GCN は、エッジに複数の関係タイプ(relation)が存在するグラフ向けのモデル。
    エッジの種類ごとに異なる変換行列を持つ
    関係性の違いを明示的にモデル化できる
    知識グラフや異種グラフ(heterogeneous graph)でよく用いられる
    「ユーザー → 購入 → 商品」「ユーザー → 閲覧 → 商品」のように、エッジの意味が異なる場合に強力

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?