# Polypharmacy Side Effects Eval

> Evaluates a model's ability to predict polypharmacy side effects (drug-drug interactions) in a multimodal biomedical graph. It probes the model's capacity to learn continuous latent representations for drugs and proteins and generalize to unseen drug pairs across 964 specific side effect types. Use when the user wants to benchmark on Polypharmacy Side Effects Dataset, or asks about evaluating this task. Reports cross-entropy loss.

- Skill: `qhjqhj00/polypharmacy-side-effects-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/polypharmacy-side-effects-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/polypharmacy-side-effects-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/polypharmacy-side-effects-eval

---


# polypharmacy-side-effects-eval

> Predicting Drug-Drug Interactions using Deep Generative Models on Graphs — Ngo et al. (2022) (arXiv:2209.09941, 2022)

## What this evaluates

Evaluates a model's ability to predict polypharmacy side effects (drug-drug interactions) in a multimodal biomedical graph. It probes the model's capacity to learn continuous latent representations for drugs and proteins and generalize to unseen drug pairs across 964 specific side effect types.

## Datasets

- **Polypharmacy Side Effects Dataset** — total ?; splits: train (-1), val (-1), test (-1); repo https://github.com/HySonLab/drug-interactions

## Metrics

- `cross-entropy loss` **(primary)** — range: [0, inf)
  - Cross-entropy loss over positive and negative sampled edges: -log p_e(v_i, v_j) for positive edges and -log p_e(v_i, v_n) for negative edges.

## Input / output format

**Input**: Multimodal graph with drug and protein nodes. Node features are one-hot representations of node indices. Edges represent drug-drug, drug-protein, and protein-protein interactions.

**Output**: Probability distribution over edge types (or binary existence probability) for a given drug-drug pair.

## Scoring recipe

```python
for edge in test_edges:
    pred_prob = model.predict(edge.u, edge.v)
    true_label = 1 if edge exists else 0
    loss = -log(pred_prob) if true_label else -log(1 - pred_prob)
return mean(loss)
```

## Common pitfalls

- Training edges are split 80/20 for message passing vs supervision, deviating from standard transductive link prediction.
- Negative sampling is type-specific (random node under specific edge type), not uniform across the graph.

## Evidence (verbatim from paper)

> The first term of L denotes the cross-entropy loss of the probabilities of positive and negative edges which is sampled by choosing a random node vn for each node vi under a specific edge type e

## Citation

```bibtex
@misc{ngo2022predicting,
  title={Predicting Drug-Drug Interactions using Deep Generative Models on Graphs},
  author={Ngo et al. (2022)},
  year={2022},
  note={arXiv:2209.09941}
}
```

- arXiv: 2209.09941

