Paper
Applying BioBERT to Extract Germline Gene-Disease Associations for Building a Knowledge Graph from the Biomedical Literature
한거루
2025. 6. 4. 20:05
https://arxiv.org/html/2309.13061v3
Applying BioBERT to Extract Germline Gene-Disease Associations for Building a Knowledge Graph from the Biomedical Literature
Certain genes that a person is born with protect us from developing cancer. Cancer susceptibility have mutations (i.e., have a DNA change that prevents their normal function), creating a higher risk of developing cancer. Looking for which mutated genes inc
arxiv.org
논문을 번역 및 요약합니다.
LLM으로 얻은 임베딩 값이 생물학적 의미가 있는지 어떻게 확인하고 검증했는지 확인하기 위해 살펴본 논문입니다.
본 게시물은 논문 본문 외에도 개인적으로 공부한 내용 + 🔹 gpt로 요약한 내용이 있으므로 주의가 필요합니다.
🔹 요약:
- BioBERT를 이용해 자동으로 지식 그래프(Knowledge Graph, KG) 를 구축을 목표
- BioBERT 모델을 사용해 PubMed 초록에서 유전자와 질병 명칭을 추출하고, 이를 표준화한 다음
해당 논문 ID(PubMed ID)와 연결하여 지식 그래프(SimpleGermKG)를 구축 - 46,747개의 triple로 구성되어 있으며, 297개의 유전자, 130개의 질병, 8,987개의 PubMed ID가 포함
🔹 방법론(SimpleGermKG 시스템 구성)
총 4단계 파이프라인:
1️⃣ NER (Entity Recognition) | BioBERT 모델 사용. 유전자: BC2GM corpus / 질병: NCBI disease corpus |
2️⃣ NEN (Entity Normalization) | 수작업으로 만든 gene/disease 사전과 string-matching으로 정규화 |
3️⃣ Semantic Relation | PubMed ID 기준으로 gene-disease 쌍 연결 (GENES_IN, DISEASES_IN) |
4️⃣ Knowledge Graph 구축 | Neo4j를 이용해 저장 및 시각화 |
3. 주요 기술 요소
- BioBERT: PubMed 기반 사전학습된 언어모델
- PunktSentenceTokenizer: 문장 단위 토큰화를 위한 도구
- 초록 전체 텍스트 900자가 있다고 하자, BERT모델은 최대 입력 길이가 512자이기 때문에, 쪼개는 것이 필요.
- PunktSentenceTokenizer 을 이용해 문장 단위로 쪼갬
- 문장을 bioBERT NER모델에 입력 -> 엔티티 추출
- 문장마다 나온 유전자, 질병 등의 엔티티를 수집하여 이후 단계(NEN, relation linking 등)로 넘김
- Neo4j: 그래프 DB 플랫폼
- PART-WHOLE Relation: gene, disease와 PubMed ID 간의 관계를 시각적으로 명확히 표현하기 위한 방식
🔹 결과 요약
- 데이터: 11,261개의 germline 관련 PubMed 초록, 114,311 문장
- NER 결과: 약 2만 건 이상의 gene/disease 엔티티 추출
- 최종 KG: 46,747 triples, PubMed ID 중심의 entity 연결
관계 추출 전략 (Semantic Relation 방식)
논문에서는 3가지 수준의 관계 추정 방식을 제안합니다:
1. 문서 수준 (Article-level co-occurrence)
- 유전자와 질병이 **같은 문서(PubMed abstract)**에 등장하면 관계가 있다고 간주.
- 이 경우, GENES_IN, DISEASES_IN이라는 관계로 PubMed ID와 연결함.
- 예:
-
PUBMED_12345 --GENES_IN--> BRCA1 PUBMED_12345 --DISEASES_IN--> Breast Cancer
2. 문장 수준 (Sentence-level co-occurrence)
- 더 정밀한 기준. 동일한 문장 안에 등장할 경우 관계 가능성이 높다고 판단.
- 이 방식은 나중에 직접적인 관계 추정(예: "BRCA1 mutations increase the risk of breast cancer")로 이어질 수 있음.
🔹 의의 및 향후 연구 방향
- germline mutation 관련 문헌 기반 지식그래프 구축 사례가 드물다는 점에서 새로운 시도
- 전자의무기록(EHR) 및 유전체 데이터와의 통합 가능성
- NER/NEN 성능 향상을 위한 추가 pretraining 시도 예정
- 향후 gene-disease 관계를 더 정교하게 분류하기 위한 BERT-based 관계 추론(Relation Classification) 접근도 고려 중
🔗 코드
- GitHub에서 전체 파이프라인 오픈소스 제공: https://github.com/arm-diaz/Bio-Germline-Diseases-BERT-NER