← All projects

Project

Drug–Drug Interaction Extraction with Knowledge Graph Embeddings

A reproducibility study of a CIKM 2022 model that fuses PubMedBERT text features with RotatE knowledge-graph embeddings for 5-class drug–drug interaction classification.

Spring 2026 · Big Data for Healthcare (CSE 6250), Georgia Tech — reproducibility study, team of 2

Problem

The DDIExtraction-2013 benchmark asks a model to classify drug–drug interactions described in biomedical text into 5 classes. A CIKM 2022 model combines a language model (PubMedBERT) with knowledge-graph embeddings of the drugs. As a two-person reproducibility study for Big Data for Healthcare (CSE 6250) at Georgia Tech, we set out to rebuild it and check whether its gains hold up.

Approach

Each sentence is encoded with PubMedBERT. In parallel, a drug knowledge graph built from the DrugBank XML database and the DDI corpus is embedded with RotatE. The text features and the knowledge-graph embeddings are fused and passed to a classifier trained with a custom KGE–multi-focal loss, and a loss-function ablation measures what the knowledge-graph embeddings add.

DDI extraction model architecture A sentence is encoded by PubMedBERT into text features. DrugBank and the DDI corpus form a knowledge graph of 5,719 entities, 264 relation types and 479K triplets, embedded with RotatE. Text features and graph embeddings are fused and a classifier predicts one of 5 DDI classes; my KGE–multi-focal loss is used to train it. Solid outlines mark my parts; dashed outlines mark my teammate's; the classifier itself is unmarked. TEXT KNOWLEDGE GRAPH Sentence with a drug pair PubMedBERT Text features DrugBank XML + DDI corpus Knowledge graph 5,719 entities 264 relation types 479K triplets RotatE embeddings Fuse text + graph Classifier KGE–multi-focal loss 5 DDI classes my part teammate's part
Architecture of the reproduced model. Diagram drawn by me; code is not public.

Key results

My role

  • Built the drug knowledge graph from the DrugBank XML database and the DDI corpus (5,719 entities, 264 relation types, 479K triplets).
  • Trained the RotatE embeddings and integrated them into the classifier.
  • Implemented the custom KGE–multi-focal loss and ran the loss-function ablation.
  • Diagnosed DrugBank version drift as the main source of the reproducibility gap, and documented it.

Two-person team. My teammate handled data preprocessing, the text features and data augmentation.

Tools

PyTorch, PubMedBERT