CustomizedCrossEntropy(num_classes, device, epsilon=0.1, reduction=True)

Bases: Module

Label-smoothed cross entropy loss with optional reduction.

Parameters:
  • num_classes (int) –

    Number of target classes

  • device (str) –

    Computing device for tensors

  • epsilon (float, default: 0.1 ) –

    Label smoothing factor. Default: 0.1

  • reduction (bool, default: True ) –

    Whether to return mean loss. Default: True

forward(outputs, targets)

Compute label-smoothed cross entropy loss.

Parameters:
  • outputs (Tensor) –

    Model predictions [batch_size, num_classes]

  • targets (Tensor) –

    Target class indices [batch_size]

Returns:
  • Tensor

    Loss value (scalar if reduction=True, else [batch_size])

Notes
  • Compute log probabilities
  • Create one-hot targets
  • Apply label smoothing
  • Compute loss
  • Optional reduction
SOGABase(in_dim, hid_dim, num_classes, num_layers=1, dropout=0.1, act=F.relu, gnn='gcn', num_negative_samples=5, num_positive_samples=2, device='cuda:0', **kwargs)

Bases: Module

Base class for SOGA.

Parameters:
  • in_dim (int) –

    Input feature dimensionality

  • hid_dim (int) –

    Hidden feature dimensionality

  • num_classes (int) –

    Number of target classes

  • num_layers (int, default: 1 ) –

    Number of GNN layers. Default: 1

  • dropout (float, default: 0.1 ) –

    Dropout rate. Default: 0.1

  • act (callable, default: relu ) –

    Activation function. Default: F.relu

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

    GNN backbone type ('gcn', 'sage', 'gat', 'gin'). Default: 'gcn'

  • num_negative_samples (int, default: 5 ) –

    Number of negative samples for NCE loss. Default: 5

  • num_positive_samples (int, default: 2 ) –

    Number of positive samples for NCE loss. Default: 2

  • device (str, default: 'cuda:0' ) –

    Computing device. Default: 'cuda:0'

Notes
  • Flexible GNN backbone selection
  • Multi-layer design
  • NCE-based learning
  • Customized cross-entropy
feat_bottleneck(x, edge_index, edge_weight=None)

Feature transformation through GNN layers.

Parameters:
  • x (Tensor) –

    Node feature matrix [num_nodes, in_dim]

  • edge_index (Tensor) –

    Graph connectivity [2, num_edges]

  • edge_weight (Tensor, default: None ) –

    Edge weights [num_edges]. Default: None

Returns:
  • Tensor

    Transformed node features [num_nodes, hid_dim]

Notes
  • Sequential GNN layers
  • Intermediate activation
  • Dropout regularization
feat_classifier(x)

Classification layer for node features.

Parameters:
  • x (Tensor) –

    Node feature matrix [num_nodes, hid_dim]

Returns:
  • Tensor

    Classification logits [num_nodes, num_classes]

Notes

Simple linear transformation from hidden to output dimension

forward(x, edge_index, edge_weight=None)

Forward pass through the SOGA model.

Parameters:
  • x (Tensor) –

    Node feature matrix [num_nodes, in_dim]

  • edge_index (Tensor) –

    Graph connectivity [2, num_edges]

  • edge_weight (Tensor, default: None ) –

    Edge weights [num_edges]. Default: None

Returns:
  • Tensor

    Node classification logits [num_nodes, num_classes]

Notes

Two-stage process:

  • Feature transformation (bottleneck)
  • Classification
generate_negative_samples(num_target_nodes)

Generate negative samples for contrastive learning.

Parameters:
  • num_target_nodes (int) –

    Number of nodes in target graph

Returns:
  • Tensor

    Negative samples [num_nodes, num_negative_samples]

Notes

Generates fixed number of negative samples per node

generate_positive_samples()

Generate positive samples using random walks.

Returns:
  • tuple[Tensor, Tensor]

    Contains:

    • Center nodes [num_samples, 1]
    • Positive samples [num_samples, 1]
Notes
  • Biased random walks (p=0.25, q=2)
  • Walk length based on num_positive_samples
  • Single walk per node
init_target(graph_struct, graph_neigh)

Initialize target domain samplers and structures.

Parameters:
  • graph_struct (Data) –

    Structural graph data

  • graph_neigh (Data) –

    Neighborhood graph data

Notes
  • NetworkX graph conversions
  • Random walk samplers
  • Positive/negative samples
  • Both structural and neighborhood views