orthoMTL-package: orthoMTL: Multi-Task Learning with Orthogonal Constraints

orthoMTL-packageR Documentation

orthoMTL: Multi-Task Learning with Orthogonal Constraints

Description

Fits regularised multi-task learning models where relationships between tasks are controlled via orthogonality or disjoint-support constraints. Supports regression, classification, and censored survival data.

Overview

orthoMTL implements a penalised multi-task learning framework where the columns of the coefficient matrix are encouraged to be orthogonal (or have disjoint supports). In survival mode, time-to-event data is converted into binary classification tasks at user-defined thresholds, with censored observations masked in the loss computation.

The package is the successor to the orthopen package and extends it with survival analysis, elastic-net sparsity, cross-validation, bootstrap inference, and a visualisation suite.

Key Functions

Modelling:

  • orthoMTL — Core solver (regression, classification, survival)

  • predict.orthoMTL — Predictions with column alignment and monotonicity projection

  • coef.orthoMTL — Extract coefficient matrix

Survival Utilities:

  • create_longitudinal_labels — Survival to binary label conversion

  • create_indicator_matrix — Censoring indicator matrix

  • create_constraint_matrix — Diffusion constraint matrix for temporal tasks

Cross-Validation and Inference:

  • cv_orthoMTL — Parallel hyperparameter grid search

  • bootstrap_orthoMTL — Bootstrap coefficient variability and null comparison

  • cindex_mtl — Concordance index for multi-task predictions

Visualisation:

  • plot_heatmap — Coefficient heatmap

  • plot_correlation — Task distance map

  • plot_prediction — Prediction swimmer plot

  • plot_bootstrap — Bootstrap real vs null comparison

Simulation:

  • simulate_mtl — Simulated survival data with time-varying effects

Algorithm

The core optimisation problem is:

\min_W \frac{1}{2n}\|XW - Y\|^2_{obs} + \lambda\left[\frac{1-\alpha}{2}\sum_{s,t} K_{st}|W_s^\top W_t| + \alpha\|W\|_1\right]

where the loss is computed only on non-censored entries, K encodes task relationships, \lambda controls the penalty strength, and \alpha \in [0,1] mixes the orthogonality penalty (\alpha=0) with Lasso sparsity (\alpha=1).

Getting Started

See vignette("introduction", package = "orthoMTL") for a complete worked example using simulated data.

Author(s)

Maintainer: Kevin Vervier kevin.vervier@novartis.com

Other contributors:

  • Novartis Pharma AG [copyright holder, funder]

References

Vervier, K., Mahe, P., d'Aspremont, A., Veyrieras, J.-B., and Vert, J.-P. (2014). On Learning Matrices with Orthogonal Columns or Disjoint Supports. ECML-PKDD 2014. https://hal.science/hal-00985654


orthoMTL documentation built on Aug. 23, 2026, 5:10 p.m.