Table of Contents
Fetching ...

Fast Polypharmacy Side Effect Prediction Using Tensor Factorisation

Oliver Lloyd, Yi Liu, Tom R. Gaunt

TL;DR

The paper tackles predicting polypharmacy adverse drug reactions using tensor factorisation on a knowledge-graph representation. It performs exhaustive hyperparameter optimisation and compares two monopharmacy data encodings within LibKGE. The strongest result comes from SimplE with Selfloops, achieving median AUROC 0.978, AUPRC 0.971, and AP@50 1.000 across 963 side effects, and reaching 98.3% of its maximum performance after only two training epochs (~4 minutes). The work demonstrates that tensor-factorisation methods, when carefully tuned, can rival state-of-the-art graph neural networks with far faster training and better reproducibility. Public code and a detailed analysis promote practical adoption and set directions toward hypergraph approaches for multi-drug interactions.

Abstract

Motivation: Adverse reactions from drug combinations are increasingly common, making their accurate prediction a crucial challenge in modern medicine. Laboratory-based identification of these reactions is insufficient due to the combinatorial nature of the problem. While many computational approaches have been proposed, tensor factorisation models have shown mixed results, necessitating a thorough investigation of their capabilities when properly optimized. Results: We demonstrate that tensor factorisation models can achieve state-of-the-art performance on polypharmacy side effect prediction, with our best model (SimplE) achieving median scores of 0.978 AUROC, 0.971 AUPRC, and 1.000 AP@50 across 963 side effects. Notably, this model reaches 98.3\% of its maximum performance after just two epochs of training (approximately 4 minutes), making it substantially faster than existing approaches while maintaining comparable accuracy. We also find that incorporating monopharmacy data as self-looping edges in the graph performs marginally better than using it to initialize embeddings. Availability and Implementation: All code used in the experiments is available in our GitHub repository (https://doi.org/10.5281/zenodo.10684402). The implementation was carried out using Python 3.8.12 with PyTorch 1.7.1, accelerated with CUDA 11.4 on NVIDIA GeForce RTX 2080 Ti GPUs. Contact: oliver.lloyd@bristol.ac.uk Supplementary information: Supplementary data, including precision-recall curves and F1 curves for the best performing model, are available at Bioinformatics online.

Fast Polypharmacy Side Effect Prediction Using Tensor Factorisation

TL;DR

The paper tackles predicting polypharmacy adverse drug reactions using tensor factorisation on a knowledge-graph representation. It performs exhaustive hyperparameter optimisation and compares two monopharmacy data encodings within LibKGE. The strongest result comes from SimplE with Selfloops, achieving median AUROC 0.978, AUPRC 0.971, and AP@50 1.000 across 963 side effects, and reaching 98.3% of its maximum performance after only two training epochs (~4 minutes). The work demonstrates that tensor-factorisation methods, when carefully tuned, can rival state-of-the-art graph neural networks with far faster training and better reproducibility. Public code and a detailed analysis promote practical adoption and set directions toward hypergraph approaches for multi-drug interactions.

Abstract

Motivation: Adverse reactions from drug combinations are increasingly common, making their accurate prediction a crucial challenge in modern medicine. Laboratory-based identification of these reactions is insufficient due to the combinatorial nature of the problem. While many computational approaches have been proposed, tensor factorisation models have shown mixed results, necessitating a thorough investigation of their capabilities when properly optimized. Results: We demonstrate that tensor factorisation models can achieve state-of-the-art performance on polypharmacy side effect prediction, with our best model (SimplE) achieving median scores of 0.978 AUROC, 0.971 AUPRC, and 1.000 AP@50 across 963 side effects. Notably, this model reaches 98.3\% of its maximum performance after just two epochs of training (approximately 4 minutes), making it substantially faster than existing approaches while maintaining comparable accuracy. We also find that incorporating monopharmacy data as self-looping edges in the graph performs marginally better than using it to initialize embeddings. Availability and Implementation: All code used in the experiments is available in our GitHub repository (https://doi.org/10.5281/zenodo.10684402). The implementation was carried out using Python 3.8.12 with PyTorch 1.7.1, accelerated with CUDA 11.4 on NVIDIA GeForce RTX 2080 Ti GPUs. Contact: oliver.lloyd@bristol.ac.uk Supplementary information: Supplementary data, including precision-recall curves and F1 curves for the best performing model, are available at Bioinformatics online.
Paper Structure (9 sections, 5 figures, 4 tables)

This paper contains 9 sections, 5 figures, 4 tables.

Figures (5)

  • Figure 1: Schemata for the two graph variants. The only difference between the two graphs relates to the handling of monopharmacy side effect data. The Selfloops approach (subfigure A) includes monopharmacy data as self-looping edges from a given drug back to itself, whereas the Non-naive graph (subfigure B) doesn't contain these edges. Instead, monopharmacy associations are modelled as n-hot vectors of length 10,184. At the start of an embedding trial, these vectors are reduced to the selected embedding sized using singular value decomposition and then used as the initialisation points for the drug embeddings. When training on the Selfloops graph, embeddings are initialised by drawing from a random distribution, as is standard in LibKGE.
  • Figure 2: Workflow for the reported experiment. The datasets that are created from the raw data differ only in their handling of monopharmacy data. The holdout split is the same for both because they contain the same polypharmacy data. Both are then put through the workflow on the right hand side of the ‘holdout split’ node, and results compared. The lower diagram offers a ‘zoomed in’ look at the learning process in LibKGE that is not displayed in the upper diagram. This learning process happens once for each of the 6 dataset-model combinations. Key: blue = raw data; yellow = software/code; green = processed data; grey = trained model.
  • Figure 3: Out-of-sample prediction performance over 963 side effects as measured by three metrics. Top: Area Under Receiver Operating Characteristic; Middle: Area Under Precision Recall Curve; Bottom: Average Precision at 50. Results are presented for each of 6 experiments, comprising 3 models (ComplEx, DistMult, SimplE) run on two datasets (Non-naive, Selfloops). Decagon's performance on the same data is indicated by the horizontal line.
  • Figure 4: Running time information for the six experiments. Subfigure A is a violin plot showing the distribution of compute time per-epoch. Subfigure B shows a bar plot of the mean number of epochs per-trial, with a black bar representing the standard error. An early stopping procedure was used to determine the maximum number of epochs in a trial, with a minimum of 55 and a maximum of 500.
  • Figure 5: Side effect prediction performance after every epoch of training, for our best performing model. Subfigure A shows the median performance (across the 963 side effects) for all training epochs. Subfigure B offers a closer look at the first ten epochs, for each of them showing the distribution of the models performance over all side effects as a box plot.