JMIR Medical Informatics Volume 13 · 2025 DOI: 10.2196/67513 Published 2025-07-10
Biomedical NLP JMIR MI · 2025
ADR Prediction BERT Models Vector Similarity Dual-Similarity
JMIR MI · 2025

BioBERT 파라미터에서 약물–부작용 관계를 끌어내다

158,096개의 SIDER 약물–부작용 쌍으로 BioBERT 임베딩 공간을 정렬하고, 이중 유사도(simx × simy)로 8,235,435개의 미지 후보를 점수화했습니다. AUC 0.915로 Word2Vec 베이스라인을 압도했고, FDA FAERS 901,361건과의 외부 검증에서 오즈비 4.822 (P<.001)를 확인했습니다.

Biomedical NLP ADR Prediction AUC 0.915 IF 3.8 Citations 3 Co-first Author
Stats & Metrics & Links

한눈에 보는 연구 지표

Best AUC 0.915 clagator/biobert_v1.1
Impact Factor 3.8 JMIR MI · SCI Q2
Citations 3 as of 2026-05
FAERS Odds Ratio 4.82× P<.001 · Fisher exact
SIDER Pairs (Training) 158,096 1,345 drugs × 6,123 SE terms
Pairs Evaluated 8.24M All drug × side-effect combinations
FAERS Records (External) 901,361 FDA reports · 2012–2023

약물 이상 반응(ADR)은 적절한 처방 하에서도 발생하는 유해 반응으로, 환자 입원 기간을 늘리고 의료비를 가파르게 끌어올리는 공중 보건 과제입니다. 신약 개발의 1·2상 단계에서 잠재적 부작용을 사전에 걸러낼 수 있다면 막대한 임상 비용과 실패 확률을 줄일 수 있습니다.

기존 자연어 처리 기반 ADR 예측은 대부분 Word2Vec처럼 문맥을 고려하지 않는 임베딩에 의존했습니다. 그러나 의학 텍스트는 같은 단어라도 문맥에 따라 의미가 크게 달라집니다 — "depression" 하나만 봐도 정신질환·중추신경계 부작용·기계적 함몰을 모두 가리킵니다. 단방향·문맥 독립 임베딩으로는 이 도메인 특수성을 포착하기 어려웠습니다.

Figure 1. The Knowledge Gap — 알려진 관계로부터 미지의 관계를 어떻게 추론할 것인가
Drug Embeddings 1,345 terms · BioBERT Side Effect Embeddings 6,123 terms · BioBERT ? simx simy

기존 BERT 기반 ADR 연구가 있긴 했지만, 대부분 이미 알려진 관계의 분류에 초점을 맞췄습니다. 아직 보고되지 않은 관계를 찾는 생성적·예측적 활용은 거의 없었습니다. 본 연구는 BioBERT가 사전 학습 동안 흡수한 의학적 지식이, 명시적으로 보지 못한 약물-부작용 쌍에 대해서도 의미 있는 관계 점수를 만들어낼 수 있는지를 정면으로 묻습니다.

제안한 파이프라인은 네 단계로 구성됩니다. 각 단계의 출력은 다음 단계의 입력으로 들어가며, 마지막 단계에서 만들어지는 스칼라 점수가 약물 A와 부작용 B가 연관될 가능성을 표현합니다.

Figure 2. End-to-end pipeline · SIDER 4.1 → BioBERT v1.1 → Cosine Similarity → Dual-Similarity Relation Score
DATABASE SIDER 4.1 158,096 known drug↔SE pairs EMBEDDING BioBERT v1.1 768-dim vectors per term SIMILARITY Cosine Sim. sim_x · sim_y drug & SE groups OUTPUT Relation Score 8.24M scored

핵심 수식: 양방향 유사도의 곱

단순한 약물–부작용 쌍 비교가 아니라, 두 방향의 군집 유사도를 곱합니다.

Score(x, y) = simx × simy
simx: 약물 x가 "y를 유발하는 알려진 약물군"과 얼마나 유사한가 simy: 부작용 y가 "x가 유발하는 알려진 부작용군"과 얼마나 유사한가

한쪽 유사도만 사용했을 때보다 양쪽을 모두 곱했을 때 AUC가 더 올라간다는 사실을 실험적으로 확인했습니다 (sim_x 단일 0.799, sim_y 단일 0.881, 곱 0.915). 한 약물이 어떤 부작용 그룹과 임베딩 공간에서 가까이 있고, 그 부작용도 그 약물의 알려진 부작용 그룹과 가까이 있을 때, 두 신호의 곱은 우연한 단일 신호를 효과적으로 약화시킵니다.

데이터 누수 차단 설계

SIDER 4.1에서 158,096쌍을 추출할 때, PubChem CID로 약물 동의어를 통합하고 부작용 이름은 MedDRA로 정규화했습니다. 같은 약물이 다른 표기로 학습/평가에 동시에 들어가는 데이터 누수를 차단하기 위함입니다. AUC 계산은 8,235,435개의 모든 가능한 조합 점수를 SIDER 정답 라벨과 ROC 곡선으로 비교해 산출했습니다.

제안한 BioBERT 파이프라인은 6개 후보 모델 중 가장 우수한 성능을 기록했고, 베이스라인 Word2Vec 대비 +0.067 AUC 향상을 달성했습니다. 일반 도메인 BERT(0.857)와의 차이는 도메인 특화 사전 학습이 ADR 예측에 분명한 우위를 가짐을 보여줍니다.

Figure 3. Model comparison · ROC AUC across 6 models (best: clagator/biobert_v1.1)
clagator/biobert_v1.1
0.915
BiomedBERT
0.907
dmis-lab/biobert_v1.1
0.901
PharmBERT-uncased
0.882
bert-base-uncased (Vanilla)
0.857
Word2Vec (Baseline)
0.848
Figure 4. ROC curve · BioBERT vs. Word2Vec vs. random baseline
0 0.25 0.50 0.75 1.0 0 0.25 0.50 0.75 1.0 False Positive Rate True Positive Rate Random (0.5) BioBERT — AUC 0.915 Word2Vec — AUC 0.848

FAERS 외부 검증

학습에 전혀 사용되지 않은 FDA FAERS 부작용 보고 901,361건을 외부 검증 데이터로 사용했습니다. Fisher exact test 결과 모델이 예측한 상위 후보군의 임상 보고 비율이 무관 후보군 대비 오즈비 4.822 (P<.001)로 나타났고, 사례 분석에서는 SIDER에 없던 후보(예: Lenalidomide–Arthropathy)가 2016년 이후 실제 임상 문헌에서 보고된 사실을 확인했습니다.

Odds Ratio 4.822 predicted vs. random
P-value < .001 Fisher exact test
Records Validated 901,361 FDA FAERS · 2012–2023

LLM 파라미터에 내장된 의학 지식

결과는 단순합니다. 대규모 의학 코퍼스로 사전 학습된 BERT의 파라미터에는 약물–부작용 관계가 측정 가능한 형태로 이미 들어가 있다는 것입니다. 이를 코사인 유사도라는 단순한 수치 연산만으로 꺼내 쓸 수 있다는 점이 가장 의미 있는 발견입니다. 향후 LLM이 임상 의사결정 지원 시스템에 들어갈 때, "모델이 무엇을 알고 있는가"를 추출하는 한 가지 정량적 방법론이 될 수 있습니다.

한계 1 · 데이터 동결

평가 기준 데이터셋 SIDER가 2015년에 마지막으로 업데이트되었기 때문에, 가장 최신 약물 트렌드(예: 2020년대 mRNA 백신, 신규 항암제)에 대한 직접 검증은 어렵습니다. FAERS 데이터로 부분적으로 보완했지만, 본질적으로 평가는 "모델이 SIDER의 분포를 얼마나 잘 모사하는가"의 시험에 가깝습니다.

한계 2 · 환자 특화 예측 불가

현 모델은 인구 집단 수준의 일반화된 연관성만 예측합니다. 특정 환자의 유전적 변이, 동반 질환, 다중 약물(polypharmacy) 상호작용에 따른 부작용은 다루지 못합니다. 임상에 투입되려면 환자 특성을 조건부로 받는 추가 모델링이 필요합니다.

다음 단계 · 멀티모달 결합

텍스트만으로 본 적 없는 완전히 새로운 화합물은 임베딩 자체를 만들 수 없습니다. 이를 풀려면 SMILES(분자 구조)생물학적 패스웨이 네트워크를 같은 공간에 임베딩해 멀티모달 유사도를 사용해야 합니다. 텍스트가 못 본 신약에 대해서도 화학 구조와 패스웨이로 가설을 세울 수 있는 하이브리드 시스템이 자연스러운 후속 과제입니다.

결론

본 연구는 BioBERT 파라미터 안의 의학 지식을 코사인 유사도와 이중 유사도 곱으로 추출해 미지의 약물–부작용 관계를 예측하는 방법을 제안하고, AUC 0.915와 FAERS 오즈비 4.822로 그 유효성을 입증했습니다. "모델 안에 무엇이 있는지를 묻는 방법론"으로서, 비용 효율적인 사전 ADR 스크리닝과 차세대 신약 감시망의 한 축이 될 수 있다고 봅니다.

Challenges

논문 한 편을 쓰며 부딪힌 벽들.

  • 리뷰어 대응의 주장 범위 조절 — 초기 원고에서는 "ADR을 예측한다"고 강하게 표현했지만, 리뷰 과정에서 "잠재적 ADR 후보를 제안한다"로 톤다운하며 over-claim을 줄였습니다.
  • 데이터 누수 차단 — PubChem 동의어 통합과 MedDRA 정규화를 빼먹으면 평가 AUC가 비정상적으로 높게 나오는 함정이 있었습니다.
  • 외부 검증 설계 — FAERS는 보고 편향(reporting bias)이 큰 데이터셋이라, 단순 빈도 비교가 아니라 Fisher exact test와 odds ratio로 통계적 유의성을 명확히 분리해야 했습니다.
  • 모델 6종 동등 비교 — 토크나이저와 vocab 차이로 임베딩 차원과 분포가 다르기 때문에, 모든 모델을 동일한 평가 파이프라인에 태우고 임계값까지 모델별로 최적화하는 데 시간이 들었습니다.

Lessons Learned

다음 연구로 가져갈 인사이트.

  • "모델이 아는 것"의 정량화 — LLM 파라미터를 블랙박스로 두지 않고, 임베딩 거리를 통해 잠재된 도메인 지식을 측정 가능한 양으로 끌어낼 수 있다는 점이 가장 큰 깨달음이었습니다.
  • 이중 유사도의 직관 — 단일 신호는 노이즈에 약하고, 양방향 곱은 일관된 신호를 증폭시킵니다. 이 패턴은 다른 관계 예측 문제에도 그대로 적용 가능해 보입니다.
  • 외부 검증 = 신뢰의 절반 — 내부 AUC가 아무리 높아도, 학습에 안 쓴 데이터로 통계 검정을 통과하지 못하면 실용성을 주장하기 어렵다는 점을 체감했습니다.
  • 한계의 자기인식 — 어디까지가 본 연구의 주장이고 어디부터가 추측인지를 명확히 분리하는 작업이 논문의 가장 어려운 단계였습니다.
Cite this research

이 연구를 인용하기

Park, M., Lee, J., Kim, S., & Han, K. (2025). Predicting drug–side effect relationships from parametric knowledge embedded in biomedical BERT models. JMIR Medical Informatics, 13, e67513. https://doi.org/10.2196/67513
Park, Minjae, et al. "Predicting Drug–Side Effect Relationships From Parametric Knowledge Embedded in Biomedical BERT Models." JMIR Medical Informatics, vol. 13, 2025, e67513, doi:10.2196/67513.
@article{park2025biobert_adr,
  title   = {Predicting Drug--Side Effect Relationships From Parametric Knowledge Embedded in Biomedical {BERT} Models},
  author  = {Park, Minjae and Lee, Jiwon and Kim, Sungho and Han, Kyungbae},
  journal = {JMIR Medical Informatics},
  volume  = {13},
  pages   = {e67513},
  year    = {2025},
  doi     = {10.2196/67513},
  url     = {https://medinform.jmir.org/2025/1/e67513}
}