본문 바로가기
Paper Review

[paper review] BioBERT: a pre-trained biomedical language representation model for biomedical text mining

by 배써니 2025. 5. 14.

Abstract

본 연구에서는 일반 도메인 언어 모델인 BERT를 생물의학 분야에 효과적으로 적용하기 위해 BioBERT를 제안한다. BioBERT는 대규모 생물의학 코퍼스에 대해 사전 학습된 BERT 기반 언어 모델로, 별도의 아키텍처 변경 없이 기존 BERT보다 생물의학(biomedical) 텍스트 마이닝 작업(명명 엔터티 인식named entity recognition, 관계 추출relation extraction, 질문 응답question answering)에서 더 뛰어난 성능을 보였다. 특히 F1 점수 및 MRR에서 유의미한 향상을 보이며, 이는 생물의학 코퍼스 기반의 사전 학습이 모델의 이해도를 높이는 데 기여함을 시사한다.
BioBERT의 사전 학습 가중치와 파인튜닝 코드는 https://github.com/naver/biobert-pretrained 다음 링크에 공개되어 있다.


01. Introduction

생물의학 문헌은 매일 3,000편 이상의 논문이 추가될 정도로 급격히 증가하고 있으며, 이로 인해 새로운 지식과 정보를 효과적으로 추출하기 위한 생물의학 텍스트 마이닝 기술의 필요성이 커지고 있다. 최근 LSTM, CRF(Conditional Rnadom Field)와 같은 딥러닝 기반 모델들이 생물의학 명명 엔터티 인식(NER), 관계 추출(RE), 질문 응답(QA) 등에서 성능을 개선해왔으나, 여전히 기존 자연어처리(NLP) 기술을 생물의학 텍스트에 그대로 적용하는 데는 한계가 존재한다.

이는 Word2Vec, ELMo, BERT 같은 최신 언어 모델들이 일반 도메인(예: 위키피디아)에서 학습되어, 생물의학 도메인 특유의 단어와 표현을 충분히 반영하지 못하기 때문이다. 특히 일반 언어와 생물의학 언어 간에는 단어 분포 차이가 크기 때문에, 이러한 모델들은 생물의학 분야에서 기대만큼 성능을 내지 못한다. 따라서 본 연구에서는 BERT 모델을 생물의학 말뭉치들로 사전 학습시켜 생물의학 분야에 최적화된 언어 모델을 개발하고자 하며, 이를 통해 기존의 한계를 극복하고 다양한 생물의학 텍스트 마이닝 작업의 성능 향상을 목표로 한다.


02. Approach

본 연구에서는 기존 BERT 모델을 일반 도메인에서 사전 학습된 상태에서 출발하여, 생물의학 코퍼스(PubMed, PMC)로 추가 사전 학습한 BioBERT를 제안한다. 이를 통해 BioBERT는 생물의학 분야의 세 가지 주요 작업(명명 엔터티 인식, 관계 추출, 질문 응답)에 대해 파인튜닝 및 평가되었으며, 다양한 사전 학습 조합과 코퍼스 크기를 실험하여 각 요소의 효과를 분석하였다.

아래는 이 논문에서 제시하고 있는 contribution 네 가지이다.

 

  • 최초의 생물의학 특화 BERT 모델 개발 (새로운 모델 제안)
    : 생물의학 특화 BERT 모델로, 대규모 생물의학 데이터(PubMed, PMC)를 활용해 장시간 GPU 클러스터에서 사전 학습을 수행하였다.
  • 기존 모델들보다 성능 향상 (성능 개선)
    : BioBERT는 기존 모델보다 명명 엔터티 인식, 관계 추출, 질문 응답 작업 모두에서 크게 향상된 성능을 보이며, 특히 QA에서는 12.24% MRR 향상이라는 큰 성과를 기록했다.
  • 다양한 작업에서 범용 적용 가능 (적용성 개선)
    : BioBERT는 별도의 아키텍처 변경 없이 다양한 생물의학 텍스트 마이닝 작업에 바로 적용 가능하며, 이전처럼 특정 작업만을 위한 모델이 아닌 범용성을 확보하였다.
  • 모델과 데이터, 코드 공개 (리소스 제공)
    : 연구 재현성과 활용성을 높이기 위해 BioBERT의 1) 사전 처리 데이터,  2) 모델 가중치,  3) 파인튜닝 코드를 공개하였다.

아래는 BioBERT의 pre-training과 fine-tuning 과정 개요(Figure 1)이다.

  • BioBERT는 일반 BERT를 생물의학 코퍼스로 추가 사전 학습 후, 다양한 생물의학 작업에 파인튜닝하여 높은 성능을 달성하는 구조임.
  • 기존 BERT 구조는 그대로 사용하며, 파인튜닝을 통해 NER, RE, QA 작업에 적용 가능.

03. Materials and methods

BioBERT는 기본적으로 BERT와 동일한 아키텍처를 사용한다. BioBERT의 pre-training 과정과 fine-tuning 과정을 구체적으로 알아보자. 

3.1. BERT : bidirectional encoder representations from transformers

BERT는 양방향 트랜스포머를 기반으로 한 마스크 언어 모델을 사용하여 문맥에 의존하는 단어 표현을 학습하는 모델이다. 기존의 언어 모델들(예 : Word2Vec, GloVe 등)은 단방향으로 학습되었으나, BERT는 양방향으로 문맥을 고려하여 단어를 예측한다. 이 모델은 최소한의 작업별 수정으로 뛰어난 성능을 보이며, 생물의학 텍스트 마이닝에서 중요한 역할을 할 수 있는 복잡한 용어 간 관계를 잘 처리할 수 있다.

3.2. Pre-training BioBERT

BERT는 위키피디아와 BooksCorpus 같은 일반적인 도메인 말뭉치로 사전 학습되었으나, 생물의학 분야 특유의 전문 용어와 고유 명사 때문에 일반 BERT는 생물의학 텍스트 마이닝 작업에서 성능이 떨어진다. 이를 보완하기 위해 BioBERT는 PubMed와 PMC 같은 생물의학 말뭉치로 추가 사전 학습되었다.

그리고 BioBERT는 기존 BERT에서 사용한 WordPiece 토크나이저를 그대로 사용한다. WordPiece란 단어를 잘게 쪼개서 자주 등장하는 하위 단위(subword)로 처리하는 토크나이저 방법이다. 원래 신조어나 희귀 단어가 모델 어휘(vocabulary)에 없으면 모델이 그 단어를 제대로 처리하지 못했는데, WordPiece는 이런 문제를 줄이기 위해 나왔다. 만약 새로운 생물의학 용어가 나오더라도 WordPiece 방식으로 쪼개서 처리할 수 있는 것이다.

또한, BioBERT는 BERT와 서로 호환되게 만들기 위하여 단어 목록 (vocabulary)을 새로 생성하지 않고 BERT가 원래 쓰던 단어 목록을 그대로 사용한다. 이는 BERT를 사용하던 시스템이나 모델에 바로 BioBERT를 연결해도 문제가 없도록 하기 위함이다.

마지막으로 대소문자 구분하는(cased) 어휘를 사용함으로써 성능을 향상시켰다. 생물의학 분야에서는 대소문자 구분이 의미가 있을 수 있기 때문에, "cased"(대소문자 구분) 어휘를 사용했더니, "uncased"(모두 소문자로 바꿈)보다 성능이 조금 더 좋았다. 필자가 조사해본 결과, 실제로 생물의학 텍스트에서는 약어, 유전자명, 단백질명 등이 대소문자에 따라 의미가 달라질 수 있다. 예를들어 BRCA1라는 유전자명을 brca1이라고 적으면 의미가 불명확해지기 때문에 대소문자를 구분하도록 하는 어휘를 사용하여 학습시킨 경우가 성능이 더 좋게 나오는 것이다.


3.3. Fine-tuning BioBERT

BioBERT는 기존 BERT의 구조를 거의 변경하지 않고도 다양한 생물의학 텍스트 마이닝 작업에 적용할 수 있으며, 본 연구에서는 명명 엔터티 인식(NER), 관계 추출(RE), 질문 응답(QA)이라는 세 가지 대표적인 작업에 대해 fine-tuning을 수행하였다.

① 명명 엔터티 인식 (Named Entity Recognition)
NER(Named Entity Recognition)은 생물학 문서에서 유전자명, 질병명, 약물명 등과 같은 전문 고유 명사를 인식하는 작업이다. 기존에는 주로 LSTM과 CRF를 조합한 복잡한 모델들이 사용되었으나, BioBERT는 마지막 레이어에서 나온 표현을 기반으로 단순히 BIO2 태그의 확률을 계산하는 방식으로 처리한다. BIO2 방식은 각 단어가 무엇을 의미하는지 B(entity의 시작), I(entity의 내부), O(entity가 아님) 태그를 통해 분류하는 방법이다. 예를 들어, 문장 "Aspirin and Ibuprofen are used to treat headaches."에서 "Aspirin"과 "Ibuprofen"은 약물이므로 B-DRUG 태그가 붙고, "headaches"는 질병명으로 B-DISEASE 태그가 붙는다. 여기서 중요한 점은 새로운 엔터티가 나오면 항상 B로 시작해야 한다는 것이다. BioBERT는 기존에 사용된 PubMed나 PMC에서 학습된 워드 임베딩을 사용하는 대신, WordPiece 임베딩을 사전 학습과 fine-tuning 과정에서 직접 학습하여 차별성을 보였다. 이를 통해 BioBERT는 기존 NER 작업에서 사용된 복잡한 모델들과 달리 간단한 구조로도 높은 성능을 보여주며, 성능 평가는 엔터티 단위의 precision, recall, F1 score로 이루어진다.

단어 태그 설명
Aspirin B-DRUG 약물이름의 시작이므로 B
and O entity  아님
Ibuprofen B-DRUG 새로운 약물이름의 시작이므로 B (BIO2에서는 항상 새로운 entity  시작시 B)
are O entity 아님
used O entity  아님
to O entity  아님
treat O entity  아님
headaches B-DISEASE 질병명 시작이므로 B
. O entity  아님

 

② 관계 추출(Relation Extraction)
관계 추출(RE)은 문장에서 인식된 엔터티들 간의 관계를 분류하는 작업이다. 예를 들어, "Aspirin treats headaches"라는 문장에서 "Aspirin"과 "headaches"가 서로 어떤 관계(치료 관계)를 맺고 있는지 분류하는 것이다. BioBERT는 기존 BERT의 문장 분류기 방식을 그대로 사용하여, 문장 내에서 중요한 정보를 나타내는 [CLS] 토큰을 활용해 엔터티들 간의 관계를 예측한다. [CLS] 토큰은 문장의 전체 의미를 요약하는 역할을 하며, 이를 통해 문장에서 두 엔터티가 어떤 관계를 맺고 있는지를 예측하는 방식이다. 예를 들어, "Aspirin treats headaches"라는 문장에서 [CLS] 토큰의 값을 기반으로 "Aspirin"과 "headaches" 간의 관계(예: 치료 관계)를 예측하는 것이다.

또한, BioBERT는 문장 안의 엔터티들이 불필요한 정보에 치우치지 않도록 하기 위해 **@GENE$, @DISEASE$**와 같은 태그로 엔터티들을 익명화하여 학습에 사용한다. 이 방식은 모델이 특정 고유명사에 집중하지 않고, 엔터티들 간의 관계에만 집중할 수 있도록 돕는다. 예를 들어, "Aspirin is associated with BRCA1 gene in breast cancer"라는 문장에서 BRCA1breast cancer가 중요한 엔터티라면, 이를 **@GENE$, @DISEASE$**로 변환하여 관계 추출에만 집중하도록 한다. 

예시는 아래와 같다.
"Serine at position 986 of BRCA1 may be an independent genetic predictor of angiographic breast cancer."
→ "Serine at position 986 of @GENE$ may be an independent genetic predictor of angiographic @DISEASE$."
이렇게 변환된 문장에서 BioBERT는 @GENE$와 @DISEASE$ 간의 관계성에 중점을 두어 분류하게 되는 것이다. 

 

③ 질문 응답(Question Answering)
QA(질문 응답) 작업은 자연어로 주어진 질문에 대해 관련 문서에서 정확한 답을 찾아내는 과제이다. 예를 들어, 사용자가 "브레스트 암에 대한 연구 결과는 무엇인가?"라는 질문을 할 때, 모델은 주어진 문서나 데이터베이스에서 관련된 부분을 찾아 정확한 답을 제공해야 한다.

BioBERT는 BERT 모델을 기반으로 한 자연어 처리 모델로, QA 작업을 해결하기 위해 BERT가 SQuAD 데이터셋에서 사용한 아키텍처를 그대로 사용하였다. SQuAD(Squad Question Answering Dataset)는 질문과 그에 대한 문서 내 답을 찾는 데이터셋으로, BERT가 QA 문제를 잘 해결하는 데 중요한 역할을 했던 데이터셋이다. BioBERT는 QA 작업을 위해 BioASQ라는 데이터셋을 사용했다. BioASQ는 SQuAD와 포맷이 유사한 생물의학 분야의 질문 응답 데이터셋이다.

BioBERT는 답을 예측할 때, 답의 시작과 끝 위치를 토큰 단위로 예측하는 방식이다. 즉, BioBERT는 문서 내에서 정확히 답이 시작하는 위치와 끝나는 위치를 추정하고, 그 사이의 내용을 답으로 제시하는 방식이다. 이 과정에서 문서에 답이 없는 질문이 있을 수 있기 때문에, BioASQ 데이터셋의 30%는 답이 없는 질문이었다. 그런 질문들은 학습에서 제외되었다.

또한, BioBERT는 **Wiese et al. (2017)**의 연구에서 제안한 SQuAD 기반의 사전 학습 절차를 따랐다. 이 절차는 BioBERT의 성능 향상에 기여했으며, BERT와 BioBERT가 QA 작업에서 더 나은 결과를 낼 수 있도록 도왔다.

QA 작업의 성능 평가는 strict accuracy, lenient accuracy, **mean reciprocal rank (MRR)**와 같은 지표를 사용하여 측정되었다. 이 지표들은 모델이 정확하게 답을 찾았는지와 그 답의 순위를 평가하는 데 사용된다.

 

 


04. Results

4.1. Datasets

본 연구에서는 BioBERT의 성능을 평가하기 위해 여러 생물의학 데이터셋을 사용하였다. NER(명명된 엔터티 인식) 작업에서는 2010 i2b2/VA, JNLPBA, Species-800 등의 데이터셋을 활용하였고, 일부는 사전 처리된 버전이 사용되었다. 예를 들어, NCBI Disease 데이터셋은 중복된 기사를 제거하여 주석이 적게 포함된 버전이 사용되었으며, i2b2/VA와 JNLPBA는 CoNLL 포맷으로 처리되었다. Species-800은 Pyysalo(2018)의 데이터를 기준으로 전처리되었고, BC2GM 데이터셋의 대체 주석은 사용되지 않았다. NER의 성능 평가는 엔터티 단위 정확한 매칭을 기준으로 진행되었다. 관계 추출(RE) 작업에서는 GAD(유전자-질병 관계)와 EU-ADR(약물-질병 관계) 데이터셋을 사용했으며, CHEMPROT 데이터셋은 Lim과 Kang(2018)의 방법으로 전처리되었다. 질문 응답(QA) 작업에서는 BioASQ 데이터셋을 사용하였으며, 이는 SQuAD 데이터셋과 유사한 포맷을 가지고 있다. PMID 초록과 관련 질문 및 답변을 포함한 BioASQ 데이터셋에서 정확한 답이 존재하지 않는 질문들은 제외되었고, SQuAD 기반 사전 학습 절차를 적용하여 BioBERT의 성능을 향상시켰다. 모든 데이터셋은 이전 연구들과 동일한 데이터 분할 방식을 사용하여 공정한 평가를 진행했다. GAD와 EU-ADR 데이터셋은 10-fold 교차 검증을 통해 평가되었고, BERT와 BioBERT는 최신 모델들과 비교하여 성능을 측정했다. 기존의 최첨단 모델들은 복잡한 구조를 사용한 반면, BERT와 BioBERT는 동일한 모델 구조를 유지하며 금 표준 데이터셋만을 사용해 비교되었다. 이 연구를 통해 BioBERT가 생물의학 텍스트 마이닝 작업에서 뛰어난 성능을 발휘함을 확인했으며, 기존 모델들과의 비교를 통해 BioBERT의 효과를 입증하였다.

4.2. Experimental setups

BioBERT는 BERTBASE 모델을 사용하여 영어 Wikipedia와 BooksCorpus에서 1백만 스텝 동안 사전 학습되었으며, BioBERT v1.0은 PubMed와 PMC 데이터셋을 각각 200K와 270K 스텝으로 학습했다. PubMed 데이터셋에서 1백만 스텝 동안 학습한 버전은 BioBERT v1.1로 명명되었다. 학습은 Naver Smart Machine Learning (NSML)을 사용해 8개의 NVIDIA V100 GPU로 진행되었으며, 전체 학습 시간은 BioBERT v1.0은 약 10일, BioBERT v1.1은 약 23일이 걸렸다. 모델의 파인튜닝은 각각의 태스크에 대해 NVIDIA Titan Xp GPU에서 진행되었으며, 학습 데이터의 크기가 작아 QA와 RE 태스크는 1시간 이내에 완료되었고, NER 태스크는 20회 이상의 에포크를 필요로 했다.

4.3. Experimental results

NER 결과에서는 BERT가 일반 도메인 데이터셋에서 사전 학습되었음에도 효과적이지만, 기존 최첨단 모델들보다 2.01 낮은 micro 평균 F1 점수를 기록했다. 반면, BioBERT는 모든 데이터셋에서 BERT보다 높은 점수를 기록했으며, 9개 데이터셋 중 6개에서 최첨단 모델을 능가했다. 특히, BioBERT v1.1 (þ PubMed)은 micro 평균 F1 점수에서 최첨단 모델보다 0.62 높은 성과를 보였다. RE 결과에서는 BERT가 CHEMPROT 데이터셋에서 최첨단 모델을 능가했으며, BioBERT v1.0 (þ PubMed)은 평균적으로 (micro) 2.80 높은 F1 점수를 기록했다. 또한, BioBERT는 3개 생물의학 데이터셋 중 2개에서 가장 높은 F1 점수를 얻었다. QA 결과에서는 모든 BioBERT 버전이 BERT와 최첨단 모델을 크게 능가했으며, BioBERT v1.1 (þ PubMed)은 엄격 정확도 38.77, 유연 정확도 53.81, 평균 역순위(MRR) 44.77을 기록하여 모든 생물의학 QA 데이터셋에서 새로운 최첨단 성능을 달성했다.


05. Discussion

논문에서는 BioBERT v1.0 (þ PubMed) 모델의 성능에 미치는 추가적인 데이터셋 크기의 영향을 조사했다. PubMed 코퍼스의 크기를 변화시키면서 사전 학습을 진행했으며, NCBI Disease, BC2GM, BC4CHEMD와 같은 세 개의 NER 데이터셋에서 성능이 어떻게 달라지는지 확인했다. 1억 단어로 사전 학습을 시작하여, 45억 단어까지 성능이 개선되는 것을 확인했다. 또한, 사전 학습 단계 수를 달리하면서 성능을 측정한 결과, 단계 수가 증가할수록 성능이 향상됨을 확인했다. BioBERT v1.0 (þ PubMed þ PMC) 모델은 BERT와 비교하여 모든 15개의 데이터셋에서 성능이 크게 향상되었음을 보여주었다. 구체적으로, BioBERT는 BERT가 인식하지 못하는 생물의학 엔터티를 인식하고, 엔터티의 정확한 경계를 찾아내는 능력이 있다. 또한, BioBERT는 단순한 생물의학 질문에 대해 BERT보다 정확한 답변을 제공하며, 더 긴 엔터티도 정확히 답변으로 제공할 수 있다.


06. Conclusion

이 논문에서는 생물의학 텍스트 마이닝을 위한 사전 학습된 언어 모델인 BioBERT를 소개하였다. BioBERT는 생물의학 코퍼스를 기반으로 BERT를 사전 학습시키는 것이 생물의학 분야에서 매우 중요하다는 것을 보여주었으며, 최소한의 태스크별 아키텍처 수정만으로 NER, RE, QA와 같은 생물의학 텍스트 마이닝 작업에서 기존 모델들을 능가하는 성능을 발휘했다. BioBERT의 초기 버전(2019년 1월)은 이미 임상 기록에 대한 NER, 인간 표현형-유전자 관계 추출, 임상 시간 관계 추출 등 다양한 생물의학 텍스트 마이닝 작업에서 효과적인 성과를 보였다. 향후 업데이트된 BioBERT 버전은 bioNLP 커뮤니티에 제공될 예정이며, (i) 기존 BERT 모델 초기화 없이 PubMed 초록만을 사용하여 학습된 BioBERTBASE와 BioBERTLARGE, (ii) WordPiece 기반의 도메인 특화 어휘로 학습된 BioBERTBASE와 BioBERTLARGE가 포함된다.