単一の再現可能なブラックボックスプロトコルの下で、グラフニューラルネットワークに対するモデル抽出攻撃と所有権防御を評価するための統合ベンチマークおよびライブラリ。
GraphIP-Benchを選ぶ理由 · ハイライト · クイックスタート · 研究課題 · レイアウト · 引用
クラウドサービスとしてデプロイされたグラフニューラルネットワークは、モデル抽出攻撃によって盗まれる可能性があります。攻撃者は慎重に選んだクエリを送信し、エンドポイントが返すラベルや信頼度スコアを記録し、ターゲットの振る舞いを再現するローカルなサロゲートモデルを訓練します。盗難が成功すれば、所有者の知的財産が漏洩し、クエリ課金による収益が損なわれ、競合他社が低コストで独自機能を再現できるようになります。
ウォーターマーキング、フィンガープリンティング、出力摂動、クエリパターン検出といった所有権防御の研究が増えつつあり、こうした盗難の防止や追跡を試みています。しかし、この分野の実験手法は断片化しています。 研究ごとに非公開のデータ分割、互換性のない予算、一貫性のない指標が用いられており、既存の数少ないテストベッドはロバストネスやプライバシーに焦点を当てており、モデル抽出と所有権検証を除外しています。
GraphIP-Benchはこのギャップに対処します。共有のデータ分割、クエリ、予算を備えた単一のブラックボックスプロトコルの下で、2つの相補的なトラックの評価を標準化します。すなわち、抽出トラック(攻撃者がデプロイ済みのGNNを模倣するサロゲートを訓練する)と、所有権トラック(モデル所有者が抽出後にウォーターマークやフィンガープリントを検証する)です。さらに、すべての抽出攻撃をすべての防御済みターゲットに対して実行し、抽出されたサロゲート上でのウォーターマーク生存率を測定する攻撃・防御統合トラックを追加します。これは、防御が実際に有用かどうかを決定する設定です。
| コンポーネント | 得られるもの |
|---|---|
| 12種類の攻撃 | 6つのMEAスタイルベースライン(MEA0~MEA5)、敵対的(AdvMEA)、中心性駆動(CEGA)、構造認識(Realistic)、および3つのデータフリーバリアント(DFEA_I/II/III) |
| 12種類の防御 | 5つの所有権追跡(BackdoorWM、RandomWM、SurviveWM、ImperceptibleWM、Integrity)+ 7つの情報制限(OP_low、OP_high、PR_2bit、PR_top1、PRADA、AdaptMisinfo、GradRedir) |
| 10個のデータセット | ホモフィリック引用(Cora、CiteSeer、PubMed)、共著者/製品(CoauthorCS、CoauthorPhysics、Computers、Photo)、大規模(OGBN-Arxiv)、ヘテロフィリック(RomanEmpire、AmazonRatings) |
| 3つのバックボーン × 3つのタスク | GCN、GAT、GraphSAGEによるノード分類、リンク予測、グラフ分類 |
| ジョイントトラック | 抽出されたサロゲート上でのサロゲート忠実度およびウォーターマーク生存性を、単一のプロトコルの下で評価 |
| 再現性 | 公開スプリット、共有クエリセット、固定シード、JSON-Lines出力、すぐに使える集計スクリプト |
1つのプロトコル、2つの側面すべての攻撃は、同じスプリット、バジェット、エンドポイントの前提の下で、すべての防御に対して評価されます。忠実度、所有権検証、ユーティリティ、計算コストは共有のメトリクススイートで報告されます。 |
埋め込みだけでなく、ウォーターマークの生存性ジョイントトラックは、モデルが実際に抽出された後でもウォーターマークが検証可能かどうかを測定し、単一モデル評価では見逃されるギャップを明らかにします。 |
ヘテロフィリックおよび大規模グラフコアプロトコルの7つのホモフィリックグラフに加えて、OGBN-Arxiv(169Kノード、40クラス)とヘテロフィリックなRomanEmpire / AmazonRatingsを追加し、攻撃と防御の挙動をストレステストします。 |
構造的に再現可能固定シード、共有クエリセット、および(データセット、攻撃、防御、レジーム、バジェット、シード)の各セルごとのJSON-Lines出力レコード。単一シードの実行は、論文の対応するセルと直接比較可能です。 |
| シグナル | ベンチマークにおける規模 |
|---|---|
| 抽出攻撃 | 12 |
| 所有権 / 情報制限防御 | 12 |
| グラフデータセット | 10 |
| GNNバックボーン | 3(GCN、GAT、GraphSAGE) |
| グラフ学習タスク | 3(ノード / リンク / グラフ) |
| データ可用性レジーム | 4(両方、特徴量のみ、構造のみ、データフリー) |
| 標準化されたクエリバジェット | 5(0.05× — 1.00× テストサイズ) |
| セルあたりのシード数 | 3 |
| 評価トラック | 3(抽出、所有権、ジョイント) |
git clone https://github.com/LabRAI/GraphIP-Bench.git
cd GraphIP-Bench
conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt
抽出トラックのセルを1つ実行します:
python scripts/run_rq1_single.py \
--dataset Cora \
--attack MEA0 \
--regime both \
--budget 0.25 \
--seed 0 \
--gpu \
--output-dir outputs/RQ1
単一のデータセットで攻撃と防御の合同トラックを実行します:
python examples/run_joint_evaluation.py \
--dataset Cora \
--seed 0 \
--gpu
各実行は (attack, defense, regime, budget, seed) のタプルごとに 1 件の JSON-Lines レコードを outputs/ に書き込みます。レコードは scripts/ 内のヘルパー(例: merge_rq1_rq5_faithful_results.py)でマージおよび分析できます。
GraphIP-Bench は Linux(推奨)および Python 3.10+ をサポートしています。DGL 2.1.0 の graphbolt カーネルは CUDA 12.1 上の PyTorch 2.0–2.2 向けにのみビルド済み共有ライブラリが提供されているため、PyTorch / DGL / PyG のバージョンを固定しています。
conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt
python -m venv .venv && source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
| ライブラリ | バージョン | 固定理由 |
|---|---|---|
| PyTorch | 2.2.1 + cu121 | DGL 2.1.0 の graphbolt wheel は PT 2.0–2.2 / CUDA 12.1 のみをサポート |
| DGL | 2.1.0 + cu121 | ローダーが使用する graphbolt カーネル |
| PyTorch Geometric | 2.7.0 | リンク予測およびグラフ分類のアダプター |
| OGB | 1.3.6 | OGBN-Arxiv ローダー |
| NumPy | < 2.0 | DGL カーネル ABI |
GraphIP-Bench は 5 つの研究課題を中心に構成されており、それぞれがトップレベルの再現スクリプトに対応しています。
| RQ | 課題 | エントリーポイント |
|---|---|---|
| RQ1 | 抽出の有効性はクエリ予算に応じてどのように変化するか、またその傾向は異親和性グラフや大規模グラフでも成り立つか? | scripts/run_rq1_single.py |
| RQ2 | 既存の防御は保護対象モデルに対してどの程度有効か? | scripts/run_defense_single.py |
| RQ3 | 防御は保護と有用性のバランスをどの程度うまく取れているか? | scripts/run_defense_single.py + scripts/run_defense_hp_ablation.py |
| RQ4 | 攻撃と防御の計算複雑性および実用的な効率はどうか? | すべての JSONL レコードに記録される実時間およびピークメモリのフィールド |
| RQ5 | 共同敵対設定において防御はどの程度有効か、また透かし信号は抽出されたサロゲート上で生き残るか? | examples/run_joint_evaluation.py |
補足トラック: