qbiocode.apps.quvine.baselines.configs module#

Configuration dataclasses for all baseline methods.

This module provides type-safe configuration classes for each baseline method, eliminating the need for getattr calls and providing clear defaults.

Summary#

Classes:

APPNPConfig

Configuration for APPNP baseline.

BaselineFilterConfig

Configuration for baseline filter methods (heat/poly without quantum calibration).

GATMethodConfig

Complete configuration for GAT-based methods.

GATModelConfig

Model architecture configuration for GAT.

GATTrainConfig

Training configuration for GAT models.

GCNMFConfig

Configuration for GCN-MF baseline.

GraphGPSMethodConfig

Complete configuration for GraphGPS-based methods.

GraphGPSModelConfig

Model architecture configuration for GraphGPS.

GraphGPSTrainConfig

Training configuration for GraphGPS models.

GraphSAGEConfig

Configuration for GraphSAGE baseline.

NetMFConfig

Configuration for NetMF baseline.

Node2VecConfig

Configuration for Node2Vec baseline.

QuvineFilterConfig

Configuration for quantum-calibrated filter methods.

QuvineGCNMFConfig

Configuration for quantum-calibrated GCN-MF methods.

QuvineSGNSConfig

Configuration for the QuVINE SGNS walk embeddings (quvine_rwr/ctqw/dtqw).

Functions:

build_appnp_config

Build APPNP config from OmegaConf.

build_baseline_filter_config

Build baseline filter config from OmegaConf.

build_gat_config

Build GAT method config from OmegaConf.

build_gcnmf_config

Build GCN-MF config from OmegaConf.

build_graphgps_config

Build GraphGPS method config from OmegaConf.

build_graphsage_config

Build GraphSAGE config from OmegaConf.

build_netmf_config

Build NetMF config from OmegaConf.

build_node2vec_config

Build Node2Vec config from OmegaConf.

build_quvine_filter_config

Build quantum-calibrated filter config from OmegaConf.

build_quvine_gcnmf_config

Build quantum-calibrated GCN-MF config from OmegaConf.

build_quvine_sgns_config

Build config for a QuVINE SGNS walk embedding (quvine_rwr/ctqw/dtqw).

get_embedding_dim

Get embedding dimension with fallback logic.

Reference#

class Node2VecConfig(enabled=False, dimensions=128, walk_length=80, num_walks=10, p=1.0, q=1.0, window=10, min_count=1, workers=4, seed=None)[source]#

Bases: object

Configuration for Node2Vec baseline.

enabled: bool = False#
dimensions: int = 128#
walk_length: int = 80#
num_walks: int = 10#
p: float = 1.0#
q: float = 1.0#
window: int = 10#
min_count: int = 1#
workers: int = 4#
seed: Optional[int] = None#
class APPNPConfig(enabled=False, dimensions=128, hidden_dim=64, n_layers=2, alpha=0.1, K=10, dropout=0.5, lr=0.01, weight_decay=0.0005, epochs=200, seed=None)[source]#

Bases: object

Configuration for APPNP baseline.

enabled: bool = False#
dimensions: int = 128#
hidden_dim: int = 64#
n_layers: int = 2#
alpha: float = 0.1#
K: int = 10#
dropout: float = 0.5#
lr: float = 0.01#
weight_decay: float = 0.0005#
epochs: int = 200#
seed: Optional[int] = None#
class BaselineFilterConfig(enabled=False, filter_type='heat', embedding_dim=128, t=1.0, K=4, normalize=True, use_features=False, features=None, random_state=None)[source]#

Bases: object

Configuration for baseline filter methods (heat/poly without quantum calibration).

enabled: bool = False#
filter_type: str = 'heat'#
embedding_dim: int = 128#
t: float = 1.0#
K: int = 4#
normalize: bool = True#
use_features: bool = False#
features: Optional[Any] = None#
random_state: Optional[int] = None#
class GCNMFConfig(enabled=False, embedding_dim=128, hidden_dim=64, mf_dim=64, n_layers=2, epochs=200, lr=0.01, weight_decay=0.0005, random_state=None)[source]#

Bases: object

Configuration for GCN-MF baseline.

enabled: bool = False#
embedding_dim: int = 128#
hidden_dim: int = 64#
mf_dim: int = 64#
n_layers: int = 2#
epochs: int = 200#
lr: float = 0.01#
weight_decay: float = 0.0005#
random_state: Optional[int] = None#
class GATTrainConfig(epochs=200, lr=0.005, weight_decay=0.0005, patience=25, edge_batch_size=4096, val_edge_fraction=0.1, device='cpu', random_state=None, verbose=False)[source]#

Bases: object

Training configuration for GAT models.

epochs: int = 200#
lr: float = 0.005#
weight_decay: float = 0.0005#
patience: int = 25#
edge_batch_size: int = 4096#
val_edge_fraction: float = 0.1#
device: str = 'cpu'#
random_state: Optional[int] = None#
verbose: bool = False#
class GATModelConfig(hidden_dim=64, output_dim=128, num_layers=2, heads=4, dropout=0.2, attention_dropout=0.2, negative_slope=0.2, residual=True)[source]#

Bases: object

Model architecture configuration for GAT.

hidden_dim: int = 64#
output_dim: int = 128#
num_layers: int = 2#
heads: int = 4#
dropout: float = 0.2#
attention_dropout: float = 0.2#
negative_slope: float = 0.2#
residual: bool = True#
class GATMethodConfig(enabled=False, variant='raw', embedding_dim=128, heat_t=1.0, poly_K=4, poly_ridge=1e-05, rwr_alpha=0.15, rwr_steps=50, model=<factory>, train=<factory>)[source]#

Bases: object

Complete configuration for GAT-based methods.

enabled: bool = False#
variant: str = 'raw'#
embedding_dim: int = 128#
heat_t: float = 1.0#
poly_K: int = 4#
poly_ridge: float = 1e-05#
rwr_alpha: float = 0.15#
rwr_steps: int = 50#
model: GATModelConfig#
train: GATTrainConfig#
class GraphGPSTrainConfig(task='link_reconstruction', epochs=200, lr=0.005, weight_decay=0.0005, patience=30, edge_batch_size=8192, val_edge_fraction=0.1, device='cpu', random_state=None, verbose=False)[source]#

Bases: object

Training configuration for GraphGPS models.

task: str = 'link_reconstruction'#
epochs: int = 200#
lr: float = 0.005#
weight_decay: float = 0.0005#
patience: int = 30#
edge_batch_size: int = 8192#
val_edge_fraction: float = 0.1#
device: str = 'cpu'#
random_state: Optional[int] = None#
verbose: bool = False#
class GraphGPSModelConfig(hidden_dim=64, output_dim=128, num_layers=2, heads=4, dropout=0.2, attn_dropout=0.2, local_gnn='gcn', attn_type='multihead', use_layer_norm=True, activation='relu', lap_pe_dim=0, standardize_features=True)[source]#

Bases: object

Model architecture configuration for GraphGPS.

hidden_dim: int = 64#
output_dim: int = 128#
num_layers: int = 2#
heads: int = 4#
dropout: float = 0.2#
attn_dropout: float = 0.2#
local_gnn: str = 'gcn'#
attn_type: str = 'multihead'#
use_layer_norm: bool = True#
activation: str = 'relu'#
lap_pe_dim: int = 0#
standardize_features: bool = True#
class GraphGPSMethodConfig(enabled=False, variant='raw', embedding_dim=128, heat_t=1.0, poly_K=4, poly_ridge=1e-05, rwr_alpha=0.15, rwr_steps=50, model=<factory>, train=<factory>)[source]#

Bases: object

Complete configuration for GraphGPS-based methods.

enabled: bool = False#
variant: str = 'raw'#
embedding_dim: int = 128#
heat_t: float = 1.0#
poly_K: int = 4#
poly_ridge: float = 1e-05#
rwr_alpha: float = 0.15#
rwr_steps: int = 50#
model: GraphGPSModelConfig#
train: GraphGPSTrainConfig#
class GraphSAGEConfig(enabled=False, dimensions=128, hidden_dim=256, n_layers=2, epochs=50, lr=0.01, neg_samples=5, seed=None)[source]#

Bases: object

Configuration for GraphSAGE baseline.

enabled: bool = False#
dimensions: int = 128#
hidden_dim: int = 256#
n_layers: int = 2#
epochs: int = 50#
lr: float = 0.01#
neg_samples: int = 5#
seed: Optional[int] = None#
class QuvineFilterConfig(enabled=False, filter_type='heat', embedding_dim=128, t=None, K=4, ridge=1e-06, normalize=True, use_features=False, features=None, random_state=None)[source]#

Bases: object

Configuration for quantum-calibrated filter methods.

enabled: bool = False#
filter_type: str = 'heat'#
embedding_dim: int = 128#
t: Optional[float] = None#
K: int = 4#
ridge: float = 1e-06#
normalize: bool = True#
use_features: bool = False#
features: Optional[Any] = None#
random_state: Optional[int] = None#
class QuvineGCNMFConfig(enabled=False, diffusion_type='heat', embedding_dim=128, hidden_dim=64, mf_dim=64, n_layers=2, epochs=200, lr=0.01, weight_decay=0.0005, K=4, ridge=1e-06, normalize_laplacian=True, random_state=None)[source]#

Bases: object

Configuration for quantum-calibrated GCN-MF methods.

enabled: bool = False#
diffusion_type: str = 'heat'#
embedding_dim: int = 128#
hidden_dim: int = 64#
mf_dim: int = 64#
n_layers: int = 2#
epochs: int = 200#
lr: float = 0.01#
weight_decay: float = 0.0005#
K: int = 4#
ridge: float = 1e-06#
normalize_laplacian: bool = True#
random_state: Optional[int] = None#
class QuvineSGNSConfig(enabled=False, walk_kind='rwr', cfg=None, n_jobs=1, chunk_size=30)[source]#

Bases: object

Configuration for the QuVINE SGNS walk embeddings (quvine_rwr/ctqw/dtqw).

These methods are the core QuVINE embedding: per-root views -> walks (rwr/ctqw/dtqw) -> corpus -> word2vec (SGNS). They do NOT use quantum calibration targets; the walk itself is the quantum component. The full OmegaConf cfg is carried through because the SGNS core reads walks.*, views.*, train.*, min_count and experiment.base_seed from it.

enabled: bool = False#
walk_kind: str = 'rwr'#
cfg: Any = None#
n_jobs: int = 1#
chunk_size: int = 30#
class NetMFConfig(enabled=False, dimensions=128, window_size=10, rank=256, negative=1, seed=None)[source]#

Bases: object

Configuration for NetMF baseline.

enabled: bool = False#
dimensions: int = 128#
window_size: int = 10#
rank: int = 256#
negative: int = 1#
seed: Optional[int] = None#
get_embedding_dim(cfg, method_cfg, default=128)[source]#

Get embedding dimension with fallback logic.

Priority: 1. Method-specific embedding_dim 2. Global train.embedding_dim 3. Default value

Return type:

int

build_node2vec_config(cfg, base_seed)[source]#

Build Node2Vec config from OmegaConf.

Return type:

Node2VecConfig

build_appnp_config(cfg, base_seed)[source]#

Build APPNP config from OmegaConf.

Return type:

APPNPConfig

build_baseline_filter_config(cfg, base_seed, filter_type='heat')[source]#

Build baseline filter config from OmegaConf.

Return type:

BaselineFilterConfig

build_gcnmf_config(cfg, base_seed, config_name='baseline_gcnmf')[source]#

Build GCN-MF config from OmegaConf.

Return type:

GCNMFConfig

build_gat_config(cfg, base_seed, config_name)[source]#

Build GAT method config from OmegaConf.

Return type:

GATMethodConfig

build_graphgps_config(cfg, base_seed, config_name)[source]#

Build GraphGPS method config from OmegaConf.

Return type:

GraphGPSMethodConfig

build_graphsage_config(cfg, base_seed)[source]#

Build GraphSAGE config from OmegaConf.

Return type:

GraphSAGEConfig

build_quvine_filter_config(cfg, base_seed, config_name, filter_type)[source]#

Build quantum-calibrated filter config from OmegaConf.

Return type:

QuvineFilterConfig

build_quvine_gcnmf_config(cfg, base_seed, config_name, diffusion_type)[source]#

Build quantum-calibrated GCN-MF config from OmegaConf.

Return type:

QuvineGCNMFConfig

build_quvine_sgns_config(cfg, base_seed, config_name, walk_kind)[source]#

Build config for a QuVINE SGNS walk embedding (quvine_rwr/ctqw/dtqw).

The executor runs the shared SGNS core (views -> walks -> corpus -> word2vec) for the single walk_kind, so the whole cfg is carried through. Enabled follows the same cfg.baselines.<name>.enabled pattern as the other methods.

Return type:

QuvineSGNSConfig

build_netmf_config(cfg, base_seed)[source]#

Build NetMF config from OmegaConf.

Return type:

NetMFConfig