SAGDABase(in_dim, hid_dim, num_classes, num_layers=3, dropout=0.1, act=F.relu, beta=0.5, alpha=0.5, ppmi=True, adv_dim=40, **kwargs)

Bases: Module

Base class for SAGDA.

Parameters:
  • in_dim (int) –

    Input dimension of model.

  • hid_dim (int) –

    Hidden dimension of model.

  • num_classes (int) –

    Number of classes.

  • num_layers (int, default: 3 ) –

    Total number of layers in model. Default: 4.

  • dropout (float, default: 0.1 ) –

    Dropout rate. Default: 0..

  • act (callable activation function or None, default: relu ) –

    Activation function if not None. Default: torch.nn.functional.relu.

  • alpha

    Trade-off parameter for high pass filter. Default: 0.5.

  • beta

    Trade-off parameter for low pass filter. Default: 0.5.

  • ppmi

    Use PPMI matrix or not. Default: True.

  • adv_dim (int, default: 40 ) –

    Hidden dimension of adversarial module. Default: 40.

  • **kwargs (optional, default: {} ) –

    Other parameters for the backbone.

encode(data, cache_name, mask=None)

Multi-view encoding combining GCN and optional PPMI features.

Parameters:
  • data (Data) –

    Graph data object containing node features and edge indices

  • cache_name (str) –

    Identifier for caching computations

  • mask (Tensor, default: None ) –

    Boolean mask for node selection. Default: None

Returns:
  • Tensor

    Final encoded features [num_selected_nodes, hid_dim]

Notes
  • GCN encoding
  • Optional PPMI encoding
  • Attention-based feature fusion if PPMI enabled
gcn_encode(data, cache_name, mask=None)

Encode data using standard GCN encoder.

Parameters:
  • data (Data) –

    Graph data object containing node features and edge indices

  • cache_name (str) –

    Identifier for caching computations

  • mask (Tensor, default: None ) –

    Boolean mask for node selection. Default: None

Returns:
  • Tensor

    GCN-encoded node features [num_selected_nodes, hid_dim]

Notes

Standard GCN encoding with caching support

ppmi_encode(data, cache_name, mask=None)

Encode data using PPMI-based GNN encoder.

Parameters:
  • data (Data) –

    Graph data object containing node features and edge indices

  • cache_name (str) –

    Identifier for caching computations

  • mask (Tensor, default: None ) –

    Boolean mask for node selection. Default: None

Returns:
  • Tensor

    PPMI-encoded node features [num_selected_nodes, hid_dim]

Notes

PPMI-based encoding capturing higher-order structure

src_encode(x, edge_index, mask=None)

Encode source domain data using structure-aware GNN.

Parameters:
  • x (Tensor) –

    Node feature matrix [num_nodes, in_dim]

  • edge_index (Tensor) –

    Graph connectivity in COO format [2, num_edges]

  • mask (Tensor, default: None ) –

    Boolean mask for node selection. Default: None

Returns:
  • Tensor

    Encoded node features [num_selected_nodes, hid_dim]

Notes

Uses SrcGNN with structure awareness and feature attention

SAGNN(in_features, out_features, alpha, beta, weight=None, bias=None)

Bases: Module

Structure Aware Graph Neural Network layer.

Parameters:
  • in_features (int) –

    Input feature dimensionality

  • out_features (int) –

    Output feature dimensionality

  • alpha (float) –

    Attention coefficient for feature aggregation

  • beta (float) –

    Balance coefficient for structure learning

  • weight (Tensor, default: None ) –

    Pre-defined weight matrix. Default: None

  • bias (Tensor, default: None ) –

    Pre-defined bias vector. Default: None

Notes

Combines feature attention and structure learning:

  • Uses FAConv for feature-attention convolution
  • Learnable transformation matrix
  • Optional bias term
forward(x, edge_index)

Forward pass of SAGNN layer.

Parameters:
  • x (Tensor) –

    Node feature matrix [num_nodes, in_features]

  • edge_index (Tensor) –

    Graph connectivity in COO format [2, num_edges]

Returns:
  • Tensor

    Updated node features [num_nodes, out_features]

Notes
  • Feature-attention convolution
  • Linear transformation
  • Optional bias addition
SrcGNN(in_dim, hid_dim, alpha=0.5, beta=0.5, num_layers=3, act=F.relu, base_model=None)

Bases: Module

Source domain GNN with structure awareness.

Parameters:
  • in_dim (int) –

    Input feature dimensionality

  • hid_dim (int) –

    Hidden feature dimensionality

  • alpha (float, default: 0.5 ) –

    Attention coefficient. Default: 0.5

  • beta (float, default: 0.5 ) –

    Structure learning coefficient. Default: 0.5

  • num_layers (int, default: 3 ) –

    Number of SAGNN layers. Default: 3

  • act (callable, default: relu ) –

    Activation function. Default: F.relu

  • base_model (Module, default: None ) –

    Base model for weight initialization. Default: None

Notes
  • Multiple SAGNN layers
  • Dropout regularization
  • Weight sharing option with base model
  • Configurable depth and activation
forward(x, edge_index)

Forward pass through source GNN.

Parameters:
  • x (Tensor) –

    Node feature matrix [num_nodes, in_dim]

  • edge_index (Tensor) –

    Graph connectivity [2, num_edges]

Returns:
  • Tensor

    Final node representations [num_nodes, hid_dim]

Notes

Sequential processing through SAGNN layers

TgtGNN(in_dim, hid_dim, gnn_type='gcn', num_layers=3, base_model=None, act=F.relu, **kwargs)

Bases: Module

Target domain GNN with flexible architecture.

Parameters:
  • in_dim (int) –

    Input feature dimensionality

  • hid_dim (int) –

    Hidden feature dimensionality

  • gnn_type (str, default: 'gcn' ) –

    Type of GNN layer ('gcn' or 'ppmi'). Default: 'gcn'

  • num_layers (int, default: 3 ) –

    Number of GNN layers. Default: 3

  • base_model (Module, default: None ) –

    Base model for weight initialization. Default: None

  • act (callable, default: relu ) –

    Activation function. Default: F.relu

  • **kwargs (optional, default: {} ) –

    Additional arguments for GNN layers

Notes
  • Choice of GNN type (GCN or PPMI)
  • Multiple layers with dropout
  • Weight sharing capability
  • Cached computation support
forward(x, edge_index, cache_name)

Forward pass through target GNN.

Parameters:
  • x (Tensor) –

    Node feature matrix [num_nodes, in_dim]

  • edge_index (Tensor) –

    Graph connectivity [2, num_edges]

  • cache_name (str) –

    Identifier for caching computations

Returns:
  • Tensor

    Final node representations [num_nodes, hid_dim]

Notes
  • Layer-wise propagation
  • Intermediate activation
  • Dropout regularization
  • Cache-aware computation