AdversarialLearner(data_src, data_tar, dim_hidden=64, num_layer=2, source_clf=True, norm_mode='PN', norm_scale=1.0)
Bases: Module
Adversarial learning framework combining source, target, and discriminator networks.
| Parameters: |
|
|---|
Notes
Architecture components:
- SourceLearner for source domain processing
- TargetLearnerAE for target domain processing with reconstruction
- Discriminator for adversarial training
get_probs_cross_domain(data_src, data_tar, idx1, idx2, return_representation=False)
Compute similarity probabilities between source and target domains.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
- Encodes both domains separately
- Computes cross-domain similarities
- Returns detached representations if requested
- Returns zero probabilities if source_clf is False
get_probs_within_domain(data, idx1, idx2, domain='target')
Compute similarity probabilities within a single domain.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
- For source domain: Uses source learner directly
- For target domain: Encodes first, then uses source similarity network
- Returns zero probabilities if source_clf is False
BridgedGraph(data_src, data_tar, k_cross=20, k_within=6, epsilon=0.5, dim_hidden=64, batch_size=1000, num_layer=2, num_epoch=200, lr=0.001, weight_decay=0.005, source_clf=True, norm_mode='PN', norm_scale=1.0, device=None)
Bases: Module
pair_enumeration(x1, x2)
input: [B,D] return: [B*B,D] input [[a], [b]] return [[a,a], [b,a], [a,b], [b,b]]
Decoder(dim_in, dim_hidden, dim_out, num_layer=2, use_norm=False, dropout=0.5, act_fn='relu', norm_mode='PN', norm_scale=1.0)
Bases: Module
Multi-layer MLP decoder with optional normalization and various activation functions.
| Parameters: |
|
|---|
Notes
Architecture:
- Multiple linear layers with configurable width
- Optional PairNorm after each intermediate layer
- Configurable activation functions
- Bias terms included in linear layers
forward(z)
Forward pass of the decoder.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
Process for each intermediate layer:
- Linear transformation
- Optional PairNorm (if use_norm=True)
- Activation function
Final layer:
- Only linear transformation
Discriminator(dim_in, dim_hidden, num_layer=2, use_bn=False, use_pair_norm=False, dropout=0.5, act_fn='leakyrelu', sigmoid_output=True, norm_mode='PN', norm_scale=1.0)
Bases: Module
Multi-layer discriminator network with configurable normalization and activation.
| Parameters: |
|
|---|
Notes
Architecture:
- Multiple linear layers with configurable width
- Optional BatchNorm or PairNorm after each intermediate layer
- Configurable activation functions
- Optional sigmoid output for binary classification
forward(z)
Forward pass of the discriminator.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
Process for each intermediate layer:
- Linear transformation
-
Normalization (if enabled):
- BatchNorm (if use_bn=True)
- PairNorm (if use_pair_norm=True)
-
Activation function
Final layer:
- Linear transformation
- Optional sigmoid activation
GraphEncoder(dim_in, dim_out, dim_hidden=64, layer_num=2, root_weight=True, norm_mode='PN-SCS', norm_scale=1, log_softmax=False)
Bases: Module
Multi-layer GraphSAGE encoder with normalization and regularization.
| Parameters: |
|
|---|
Notes
Architecture:
- Multiple GraphSAGE convolution layers
- PairNorm after each intermediate layer
- ReLU activation and dropout
- Optional log_softmax output
forward(x, edge_index)
Forward pass of the GraphEncoder.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
For intermediate layers:
- GraphSAGE convolution
- PairNorm
- ReLU activation
- Dropout (p=0.5)
Final layer:
- GraphSAGE convolution only
Optional log_softmax
KBLBase(data_src, data_tar, device, k_cross=20, k_within=6, epsilon=0.5, bridge_batch_size=1000, dim_hidden=64, num_layer=2, num_epoch=200, lr=0.001, weight_decay=0.005, source_clf=True, norm_mode='PN', norm_scale=1.0)
Bases: Module
Base class for KBL.
| Parameters: |
|
|---|
Notes
Architecture components:
- BridgedGraph for domain connection
- GNNBase for node classification
- Memory-efficient batch processing
forward(data)
Forward pass through the KBL model.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
Processes input through GNN layers for node classification using the enhanced graph structure
get_bridged_graph()
Generate and return a bridged graph connecting source and target domains.
| Returns: |
|
|---|
Notes
- Trains the bridge model using adversarial learning
- Generates bridged graph with specified batch size
PairEnumerator(data, mode='train')
Node pair sampling and enumeration utility for graph data.
| Parameters: |
|
|---|
Notes
- Organizes nodes by class for stratified sampling
- Supports different data splits (train/val/test)
- Handles missing labels (-1)
- Creates class-wise node buckets for efficient sampling
balanced_sampling(max_class_num=2, sample_size=40000, shuffle=True)
Generate balanced node pairs across classes.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
- Generates both same-class and cross-class pairs
- Same-class pairs: 50% of sample_size
- Cross-class pairs: 50% distributed across class combinations
- Sampling with replacement within classes
pair_enumeration(x1, x2)
Generate all possible pairs between two sets of nodes.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Examples:
Input: x1 = [[a], [b]] Output: [[a,a], [b,a], [a,b], [b,b]]
Notes
- Ensures inputs are 2-dimensional tensors
- Creates cartesian product of input sets
- Memory-efficient implementation using repeat operations
sampling(max_class_num=2, sample_size=40000, shuffle=True)
Sample node pairs using square root sampling strategy.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
- Uses sqrt(sample_size) nodes per class
- Generates pairs through enumeration
- Sampling with replacement within classes
- Optional shuffling of final pairs
PairNorm(mode='PN', scale=10)
Bases: Module
Implementation of PairNorm for graph neural networks.
PairNorm is a normalization layer that helps prevent over-smoothing in deep GNNs by normalizing node features both individually and across the graph.
| Parameters: |
|
|---|
Notes
The 'PN-SCS' mode is an extension of the original paper that works well in practice, especially for GCN and GAT architectures.
mode:
- 'None' : No normalization
- 'PN' : Original version
- 'PN-SI' : Scale-Individually version
- 'PN-SCS' : Scale-and-Center-Simultaneously version ('SCS'-mode is not in the paper but we found it works well in practice, especially for GCN and GAT.)
PairNorm is typically used after each graph convolution operation.
forward(x)
Apply PairNorm to input features.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
Implements four normalization strategies:
- 'None': Returns input unchanged
- 'PN': Centers and scales features using mean row norm
- 'PN-SI': Centers and scales features individually
- 'PN-SCS': Scales individually then centers features
A small epsilon (1e-6) is added for numerical stability during normalization.
Similar(in_channels, num_clf_classes, dropout=0.6, use_clf=True)
Bases: Module
Similarity computation module with optional classification capability.
| Parameters: |
|
|---|
Notes
Architecture components:
- Bias attention network (128->64->128)
- Feature transformation network with BatchNorm
- Optional classification layer
- Cosine similarity computation
forward(x, idx1, idx2)
Forward pass for within-domain similarity computation.
| Parameters: |
|
|---|
| Returns: |
|
|---|
forward_cross_domain(x_src, x_tar, idx1, idx2)
Forward pass for cross-domain similarity computation.
| Parameters: |
|
|---|
| Returns: |
|
|---|
similarity(x, idx1, idx2)
Compute similarity between nodes within same domain.
| Parameters: |
|
|---|
| Returns: |
|
|---|
similarity_cross_domain(x_src, x_tar, idx1, idx2)
Compute similarity between source and target domain nodes.
| Parameters: |
|
|---|
| Returns: |
|
|---|
similarity_cross_domain_batch(x_src, x_tar, idx1, idx2)
Compute cross-domain similarity scores in batches.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
- Processes in batches of 100 for memory efficiency
- Uses attention-enhanced cosine similarity
SourceLearner(data, dim_hidden=64, norm_mode='None', norm_scale=1, use_clf=True)
Bases: Module
Source domain learning module combining graph encoding and similarity matching.
| Parameters: |
|
|---|
Notes
Architecture components:
- GraphEncoder backbone for feature extraction
- Similar module for similarity computation
- Optional classification capability
forward(data, idx1, idx2, return_representation=False)
Forward pass of the source learner.
| Parameters: |
|
|---|
| Returns: |
|
|---|
TargetLearnerAE(data, dim_eq_trans=128, dim_hidden=64, norm_mode='None', norm_scale=1)
Bases: Module
Target domain learner with autoencoder architecture.
| Parameters: |
|
|---|
Notes
Architecture components:
- Equivalent transformation layer
- GraphEncoder for feature encoding
- Decoder for feature reconstruction
decode(z)
Decode latent features.
| Parameters: |
|
|---|
| Returns: |
|
|---|
encode(data)
Encode input graph data.
| Parameters: |
|
|---|
| Returns: |
|
|---|
forward(data)
Forward pass through the autoencoder.
| Parameters: |
|
|---|
| Returns: |
|
|---|