Aligning Multimodal Patient Evidence with Biomedical Knowledge Graphs for Clinical LLMs
Organizations: University of North Carolina at Chapel Hill · Siddaganga Institute of Technology · Foci Labs · University of Pennsylvania
Abstract
Clinical questions often depend on linking a patient's multimodal evidence to external biomedical knowledge, yet existing predictive systems rarely represent such links explicitly, so they can neither be traced to their evidence sources nor removed to measure their contributions. We present MM-KG (Multimodal Knowledge Graph), which represents heterogeneous, multimodal patient observations and biomedical concepts as separate layers in one typed graph, joined by explicit alignment edges. First, modality-specific harmonizers convert EHR text, imaging, genomic, and biospecimen data into typed observations mapped to UMLS concepts, which a route-prioritized aligner links to a biomedical knowledge graph. Query-conditioned retrieval then selects a compact subgraph for downstream use by a large language model or a graph neural network. We build MM-KGs for MIMIC-IV and ADNI, and evaluate them with a 2x2 design that separates patient evidence, biomedical knowledge, and their interaction. On questions that require both sources, neither source alone performs far above chance, whereas their combination yields a drug-controlled AUROC interaction of +0.194 on MIMIC and +0.299 on ADNI. On held-out five-candidate ranking, MM-KG outperforms MindMap by +0.131 Hits@1 and leads an adapted GraphCare on the items that require consulting the patient, and deleting the single answer-bearing relation from the retrieved packet returns Hits@1 to the no-knowledge baseline. Finally, query-conditioned retrieval reaches 0.731 AUROC with 6.8x less context than the strongest generic policy, whereas static knowledge graph context gives no consistent gain on ordinary outcome prediction. Knowledge graphs thus benefit clinical LLMs not as background context but as explicit links between multimodal patient evidence and the relation a question requires, and MM-KG makes these links retrievable, traceable, and testable.
Figures & tables
| Patient evidence in the graph | Representation | Consumer | ||||||||
| Method | Codes | Labs | Imaging | Text | Genetic | Link | Prov | Q-Ret | LLM | GNN |
| Multimodal clinical representation | ||||||||||
| MedFuse ( Hayat et al., 2022 ) | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| MUSE ( Wu et al., 2024 ) | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
| MedGTX ( Park et al., 2022 ) | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ | |
| Knowledge-enhanced patient representation | ||||||||||
| Family | A | B | C | D | Interaction |
| contra-report | 0.496 (.59) | 0.519 (.61) | 0.546 (.57) | 0.751 (.82) | +0.182 ( +0.228) |
| contra-labs | 0.507 (.61) | 0.516 (.65) | 0.560 (.52) | 0.636 (.68) | +0.068 ( +0.121) |
| mechanism | 0.524 (.52) | 0.510 (.55) | 0.526 (.53) | 0.616 (.67) | +0.103 ( +0.118) |
| drug-effect | 0.475 (.37) | 0.449 (.31) | 0.494 (.49) | 0.600 (.88) | +0.132 ( +0.463) |
| All ( ) | 0.501 (.52) | 0.498 (.51) | 0.532 (.53) | 0.651 (.72) | +0.122 ( +0.209) |
| ADNI paired contraindication, test set ( ) | |||||
| Full ( ) | Id.-hard ( ) | ||
| Method | Hits@1 | MRR | Hits@1 |
| MM-KG (condition D) | 0.575 | 0.738 | 0.582 |
| GraphCare-BAT adapted | 0.609 | 0.764 | 0.375 |
| (patient side removed) | 0.645 | 0.787 | 0.381 |
| MindMap-PrimeKG | 0.444 | 0.646 | 0.448 |
| MIMIC (Hits@1) | ADNI (AUROC) | |
| Correct alignment (D) | 0.575 | 0.860 |
| Answer-bearing edge removed | 0.299 | 0.714 |
| Matched control packet a | 0.237 | 0.548 |
| Shuffled packets | 0.185 | 0.531 |
| Node names without relations | — | 0.558 |
| No knowledge (A) | 0.293 | 0.558 |
| Channel | LLM (zero-shot) | GNN (trained) |
| ( )AUROC | ( )AUROC | |
| Full model | ||
| Laboratory | ||
| Prior-visit history | ||
| Medications | n.s. | |
| Radiology report | n.s. |
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Patient-side type | Nodes | PrimeKG type | Nodes |
| Patient | 51,844 | Disease | 17,080 |
| Admission | 219,720 | Effect/phenotype | 15,311 |
| CXR study | 204,016 | Drug | 7,957 |
| Finding | 28,714 | Exposure | 818 |
| Procedure | 9,348 | ||
| Drug / diagnosis | 5,908 / 84 |
| Family (hops) | A | B | C | C shuf | C corr | |
| Contraindication (1) | 0.537 | 0.608 | 0.958 | 0.525 | 0.500 | |
| Shared drug target (2) | 0.575 | 0.571 | 0.975 | 0.504 | 0.500 | |
| Mechanistic overlap (2) | 0.592 | 0.617 | 0.946 | 0.533 | 0.500 | |
| Drug side effect (1) | 0.721 | 0.742 | 0.983 | 0.533 | 0.529 | |
| Drug class / ATC (1) | 0.667 | 0.658 | 0.871 | 0.604 | 0.508 | |
| Three-hop chain (3) | 0.604 | 0.592 | 0.787 | 0.525 | 0.500 |
| Qwen3.5-35B | Qwen3.5-9B | Llama-3.1-8B | |||
| Family | prose | triples | prose | triples | prose |
| contra-report | |||||
| contra-labs | |||||
| drug-effect | |||||
| mechanism | |||||
| All | |||||
| Leave-one-out (KG on) | Occultness split | |||||
| Family | labs | report | image | Subset ( ) | C | Interaction |
| contra-labs | Strictly occult (654) | 0.483 | ||||
| contra-report | Readable in codes (146) | 0.783 | n.s. | |||
| mechanism | ||||||
| drug-effect | ||||||
| Model | A | B | C | D | Interaction [95% CI] |
| Qwen2.5-7B-Instruct | 0.491 | 0.563 | 0.479 | 0.679 | |
| Qwen3.5-9B | 0.5636 | 0.5534 | 0.5506 | 0.8590 |
| Condition | AUROC | Participant-clustered 95% CI |
| A: base | 0.5584 | |
| B: patient only | 0.5706 | |
| C: knowledge only | 0.5494 | |
| D: patient + dynamic KG | 0.8604 | |
| Shuffled KG | 0.5314 | |
| Degree/relation null | 0.5478 |
| Contrast | AUROC | 95% CI | Holm |
| D shuffled KG | 0.0339 | ||
| D degree/relation null | 0.0290 | ||
| D decisive support removed | |||
| D node names only | 0.0200 |
| Method | AUROC |
| MM-KG (condition D) a | 0.8590 |
| MindMap v2 | 0.9674 |
| Direct PrimeKG lookup | 0.9561 |
| GraphCare GIN adapted | 0.9437 |
| GraphCare BAT adapted | 0.8122 |
| Candidate-only prior | 0.5000 |
| Relation family | Hops | Closed book | Static context | Query loop | Gold path |
| Drug–protein | 1 | 0.760 | 0.370 | 0.920 | 100% |
| Protein–disease | 1 | 0.570 | 0.400 | 0.970 | 100% |
| Disease–disease | 1 | 0.820 | 0.290 | 0.980 | 100% |
| Drug–protein–disease | 2 | 0.450 | 0.430 | 0.670 | 100% |
| Drug–protein–disease–disease | 3 | 0.470 | 0.450 | 0.590 | 90% |
| Policy | Configuration | Input | Path recall | AUROC [95% CI] | Holm | Failures (retrieval / use) | |
| R5 | Gold-path oracle | 660 | 0.997 | 0.917 | 4 / 251 | ||
| R4 | MM-KG | 1,206 | 0.997 | 0.731 | ref. | — | 4 / 442 |
| R2 | SapBERT, KG-only, 8K | 8,157 | 0.746 | 0.712 | 0.010 | 305 / 263 | |
| MindMap | evidence + yes-token | 4,448 | 0.726 | 0.686 | 329 / 401 | ||
| R2 | SapBERT, multi-query, 8K | 8,157 | 0.649 | 0.669 | 421 / 216 | ||
| R3 | Typed one-hop, 32K | 32,353 | 0.747 | 0.655 | 304 / 373 |
| Group | Condition / policy | Hits@1 [95% CI] | vs. D [95% CI] | Holm | MRR | Identity-hard |
| Factorial | A: neither channel | 0.293 | 0.539 | 0.268 | ||
| Factorial | B: patient only | 0.304 | 0.555 | 0.276 | ||
| Factorial | C: PrimeKG only | 0.278 | 0.523 | 0.296 | ||
| Factorial | D: patient + PrimeKG (R4q) | 0.575 | ref. | — | 0.738 | 0.582 |
| Disruption | Gold edge removed | 0.299 | 0.540 | 0.279 | ||
| Disruption | Matched wrong packet | 0.237 | 0.484 | 0.253 |
| Condition | Hits@1 [95% CI] | Hits@3 | MRR | Candidate AUROC |
| A: neither channel | 0.342 | 0.726 | 0.567 | 0.581 |
| B: patient only | 0.250 | 0.766 | 0.520 | 0.606 |
| C: PrimeKG only | 0.274 | 0.747 | 0.532 | 0.564 |
| D: patient + PrimeKG | 0.408 | 0.818 | 0.626 | 0.672 |
| Analysis | Interaction | 95% CI | Source | |
| Primary | ||||
| Pooled, all items | 3,200 | § 5.1 | ||
| Drug-controlled | 1,895 | § 5.1 | ||
| Leave-one-family-out c | 2,400 | § 5.1 | ||
| Behaviorally corroborated contraindications d | 152 | App. G | ||
| Behaviorally contradicted contraindications d | 580 | App. G | ||
| Condition | AUROC | Evidence available or disrupted |
| A: base | 0.5636 | Neither patient nor KG |
| B: patient only | 0.5534 | Patient record, no KG relation |
| C: PrimeKG only | 0.5506 | KG relation, no patient condition |
| D: patient + PrimeKG | 0.8590 | Both aligned channels |
| Shuffled PrimeKG | 0.5131 | Wrong candidate packet |
| Degree/relation-matched null | 0.5260 | Nuisance structure without true content |
| Endpoint | Patient representation | targeted KG | AUROC [95% CI] |
| Amyloid status | 0.777 | 0.773 | |
| Tau status | 0.708 | 0.687 |
| Block | Content (exact header) | A | B | C | D |
| demo | “A {age}-year-old {sex} patient in intensive care.” | ✓ | ✓ | ✓ | ✓ |
| codes | “Coded diagnoses on record: …” (prior admissions; names), or “No coded diagnoses on record.” | ✓ | ✓ | ✓ | ✓ |
| meds | “Current medications ({n}): …” (first 48 h; names) | ✓ | ✓ | ✓ | ✓ |
| labs | “Laboratory values, first 24 hours: creatinine {min–max}, BUN …” (up to 17 analytes; legacy header, see below) | ✓ | ✓ | ||
| report | “Radiology report for the chest film describes: …” ( UMLS finding names) | ✓ | ✓ | ||
| imaging | “Chest radiograph, automated image analysis reports: …” (BiomedCLIP findings) | ✓ | ✓ |