ASN(in_dim, hid_dim, hid_dim_vae, num_classes, num_layers=3, step=3, dropout=0.0, act=F.relu, lambda_r=1.0, lambda_d=0.1, lambda_f=0.001, adv_dim=10, weight_decay=0.0005, lr=0.03, epoch=200, device='cuda:0', batch_size=0, num_neigh=-1, verbose=2, **kwargs)

Bases: BaseGDA

Adversarial Separation Network for Cross-Network Node Classification (CIKM-21).

Parameters:
  • in_dim (int) –

    Input feature dimension.

  • hid_dim (int) –

    Hidden dimension of model.

  • hid_dim_vae (int) –

    Hidden dimension of vae model.

  • num_classes (int) –

    Total number of classes.

  • num_layers (int, default: 3 ) –

    Total number of layers in model. Default: 3.

  • step (int, default: 3 ) –

    Propagation steps in PPMI matrix. Default: 3.

  • dropout (float, default: 0.0 ) –

    Dropout rate. Default: 0..

  • weight_decay (float, default: 0.0005 ) –

    Weight decay (L2 penalty). Default: 5e-4.

  • lambda_r (float, default: 1.0 ) –

    Hyperparameter for reconstruction loss. Default: 1..

  • lambda_d (float, default: 0.1 ) –

    Hyperparameter for domain loss. Default: 0.1..

  • lambda_f (float, default: 0.001 ) –

    Hyperparameter for different loss. Default: 0.001.

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

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

  • adv_dim (int, default: 10 ) –

    Hidden dimension of adversarial module. Default: 10.

  • lr (float, default: 0.03 ) –

    Learning rate. Default: 0.03.

  • epoch (int, default: 200 ) –

    Maximum number of training epoch. Default: 200.

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

    GPU or CPU. Default: cuda:0.

  • batch_size (int, default: 0 ) –

    Minibatch size, 0 for full batch training. Default: 0.

  • num_neigh (int, default: -1 ) –

    Number of neighbors in sampling, -1 for all neighbors. Default: -1.

  • verbose (int, default: 2 ) –

    Verbosity mode. Range in [0, 3]. Larger value for printing out more log information. Default: 2.

  • **kwargs

    Other parameters for the model.

agg_tran_prob_mat(g, step)

Compute aggregated K-step transition probability matrix.

Parameters:
  • g (csc_matrix) –

    Graph adjacency matrix.

  • step (int) –

    Number of transition steps.

Returns:
  • ndarray

    Aggregated transition probability matrix.

Notes

Aggregates transition probabilities up to K steps to capture higher-order proximity information.

compute_ppmi(a)

Compute Positive Pointwise Mutual Information (PPMI) matrix.

Parameters:
  • a (ndarray) –

    Aggregated transition probability matrix.

Returns:
  • ndarray

    PPMI matrix.

Notes

PPMI captures the statistical significance of node co-occurrences in random walks, useful for preserving high-order proximity.

fit(source_data, target_data)

Train the ASN model.

Parameters:
  • source_data (Data) –

    Source domain graph data.

  • target_data (Data) –

    Target domain graph data.

Notes

Training process includes:

  • Computing PPMI matrices for both domains
  • Training private and shared encoders
  • Optimizing multiple objectives:
    • Reconstruction loss
    • Classification loss
    • Domain adversarial loss
    • Feature separation loss
    • Entropy minimization
forward_model(source_data, target_data)

Forward pass of the model.

Parameters:
  • source_data (Data) –

    Source domain graph data.

  • target_data (Data) –

    Target domain graph data.

init_model(**kwargs)

Initialize the ASN model.

Parameters:
  • **kwargs

    Other parameters for the ASNBase model.

Returns:
  • ASNBase

    Initialized ASN model on the specified device.

my_scale_sim_mat(w)

Compute L1 row normalization of a matrix.

Parameters:
  • w (ndarray or spmatrix) –

    Input matrix to be normalized.

Returns:
  • ndarray or spmatrix

    Row-normalized matrix.

predict(data)

Make predictions on given data.

Parameters:
  • data (Data) –

    Input graph data.

Returns:
  • tuple

    Contains: - logits : torch.Tensor Model predictions. - labels : torch.Tensor True labels.

Notes

Uses both local and global graph structure through shared encoders and attention mechanism for final prediction.

process_graph(data)

Process the input graph data to compute PPMI matrix.

Parameters:
  • data (Data) –

    Input graph data.

Returns:
  • Tensor

    Normalized PPMI matrix in sparse tensor format.

sparse_mx_to_torch_sparse_tensor(sparse_mx)

Convert a scipy sparse matrix to a torch sparse tensor.

Parameters:
  • sparse_mx (spmatrix) –

    Input sparse matrix.

Returns:
  • Tensor

    Converted sparse tensor in CSR format.