Skip to content

Add MDP (Matrix Decomposition + Differential Privacy) defense#35

Open
Jeneidi wants to merge 1 commit intoLabRAI:mainfrom
Jeneidi:feature/mdp-defense
Open

Add MDP (Matrix Decomposition + Differential Privacy) defense#35
Jeneidi wants to merge 1 commit intoLabRAI:mainfrom
Jeneidi:feature/mdp-defense

Conversation

@Jeneidi
Copy link

@Jeneidi Jeneidi commented Feb 3, 2026

Summary

Adds a new privacy-preserving defense mechanism for GNNs:

  • Matrix Decomposition: Splits adjacency matrix into shares via eigendecomposition
  • Differential Privacy: Applies Laplace noise to node features
  • Federated Training: Multiple calculators train on different shares with parameter averaging

Files Added

  • pygip/utils/mdp/ - Core MDP utilities
  • pygip/models/nn/mdp_gcn.py - ManualGCN model
  • pygip/models/defense/MDP.py - Main defense class
  • examples/defense/MDP.py - Usage example

Usage

from pygip.datasets import Cora
from pygip.models.defense import MDP

dataset = Cora(api_type='pyg')
defense = MDP(dataset, nc=4, es=2, epsilon=30.0)
res, res_comp = defense.defend()

This adds a new privacy-preserving defense mechanism for GNNs that:
- Splits adjacency matrix into shares via eigendecomposition
- Applies Laplace noise to features for differential privacy
- Uses federated training with parameter averaging across calculators

New files:
- pygip/utils/mdp/ - Core MDP utilities (abar, eigenvalue_split, dp_features, splits)
- pygip/models/nn/mdp_gcn.py - ManualGCN model for dense adjacency matrices
- pygip/models/defense/MDP.py - Main defense class extending BaseDefense
- examples/defense/MDP.py - Usage example
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant