Skip to Content

Fusion strategies

A FusionConfig pairs a FusionStrategy with a concrete fusion type. The strategy determines when modalities are merged relative to model training.

from mllabiome.ai_space.multimodal import ( FusionConfig, FusionStrategy, EarlyFusionType, LateFusionType, IntermediateFusionType, HybridFusionType, )

Early fusion

Early fusion merges the feature matrices of all modalities before a single model is trained on the combined representation.

EarlyFusionTypeBehaviour
CONCATHorizontally concatenates the feature columns from every modality.
KRONECKERComputes the Kronecker product between modality feature vectors. Applies PCA by default to reduce the expanded dimensionality.
SUMElement-wise sum of feature vectors (requires aligned dimensionality).
CCACanonical Correlation Analysis projection before combining.
WEIGHTED_CONCATConcatenation with per-modality feature weighting.

Example:

FusionConfig( strategy=FusionStrategy.EARLY, fusion_type=EarlyFusionType.CONCAT, )

Late fusion

Late fusion trains separate models on each modality, then combines their predictions into a single output.

LateFusionTypeBehaviour
MEANAverages predicted probabilities across modalities.
MAJORITYMajority vote over class predictions.
MAXTakes the maximum prediction across modalities.
MINTakes the minimum prediction across modalities.
WEIGHTED_MEANWeights each modality’s predictions by its training-set accuracy.
STACKINGTrains a logistic-regression meta-learner on the per-modality prediction stack.
SOFT_VOTINGAverages predicted class probabilities, then takes the argmax.
PRODUCT_OF_EXPERTSMultiplies per-modality probabilities (clipped to avoid zeros).
CONFIDENCE_WEIGHTEDWeights predictions by per-modality prediction confidence.

Example:

FusionConfig( strategy=FusionStrategy.LATE, fusion_type=LateFusionType.MEAN, )

Intermediate fusion

Intermediate fusion extracts learned representations from each modality’s base model and feeds them into a meta-learner.

IntermediateFusionTypeBehaviour
FEATURE_EXTRACTIONUses leaf indices or predicted probabilities from base models as features for a meta-learner.
RESIDUALEach successive modality is trained on the residual of the previous one.
PROGRESSIVEModalities are processed sequentially and their representations are concatenated progressively.

Hybrid fusion

Hybrid fusion combines early and late strategies in a single configuration.

HybridFusionTypeBehaviour
EARLY_LATESome modalities are concatenated (early), others are trained separately (late). A meta-learner stacks all predictions.
HIERARCHICALModality groups are fused in a tree structure before a top-level combiner.
PARALLELAll modalities are processed in parallel with independent models. A meta-learner combines the outputs.

FusionConfig parameters

@dataclass class FusionConfig: strategy: FusionStrategy fusion_type: Union[EarlyFusionType, LateFusionType, IntermediateFusionType, HybridFusionType] model_configs: Optional[dict[str, list[str]]] # per-modality model overrides fusion_params: Optional[dict[str, Any]] # strategy-specific parameters

The strategy and fusion_type must be compatible (e.g. FusionStrategy.LATE requires a LateFusionType value). A validation error is raised at construction time if they do not match.

Specifying multiple strategies

Pass a list of FusionConfig objects to MultimodalConfig.fusion_configs. The evaluator runs each strategy independently, so results can be compared side by side:

mll.MultimodalConfig( modality_configs={...}, fusion_configs=[ FusionConfig(strategy=FusionStrategy.EARLY, fusion_type=EarlyFusionType.CONCAT), FusionConfig(strategy=FusionStrategy.LATE, fusion_type=LateFusionType.MEAN), FusionConfig(strategy=FusionStrategy.LATE, fusion_type=LateFusionType.STACKING), ], )
Last updated on