BERT: 언어 이해를 위한 Deep Bidirectional Transformers의 Pre-training
BERT는 Bidirectional Encoder Representations from Transformers의 약자로, 기존 모델들과 달리 문장의 왼쪽과 오른쪽 문맥을 동시에 고려하여 언어를 이해하는 Deep Bidirectional 모델입니다. "Masked Language Model" (MLM)과 "Next Sentence Prediction" (NSP)이라는 두 가지 비지도 학습 과제를 통해 사전 학습되며, 이로 인해 별도의 큰 구조 변경 없이 fine-tuning만으로 다양한 NLP 태스크에서 최고의 성능을 달성합니다. BERT는 특히 문장 레벨 및 토큰 레벨의 과제 모두에서 기존의 단방향 모델들의 한계를 극복하고 새로운 state-of-the-art를 기록했습니다. 논문 제목: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
논문 요약: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- 논문 링크: https://arxiv.org/abs/1810.04805
- 저자: Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova (Google AI Language)
- 발표 시기: 2019년, NAACL (North American Chapter of the Association for Computational Linguistics)
- 주요 키워드: LLM, NLP, Transformer, Pre-training, Bidirectional, Language Understanding
1. 연구 배경 및 문제 정의
- 문제 정의:
기존 언어 모델 사전학습 방식(특히 fine-tuning 기반)은 단방향(unidirectional) 언어 모델을 사용하여 문맥 이해에 한계가 있었고, 이는 특히 질의응답(QA)이나 개체명 인식(NER)과 같은 토큰 수준(token-level) NLP 태스크에서 성능 저하를 야기했습니다. 단방향 모델은 각 토큰이 이전 토큰에만 의존하여 문맥을 학습하므로, 문장의 전체적인 양방향 문맥을 파악하는 데 어려움이 있었습니다. - 기존 접근 방식:
- Feature-based 접근 (예: ELMo): 사전학습된 표현을 추가적인 특징(feature)으로 사용하여 태스크별 아키텍처에 통합했습니다. ELMo는 좌-우 및 우-좌 언어 모델을 독립적으로 학습시킨 후 그 표현을 연결하는 얕은(shallow) 양방향성을 가졌습니다.
- Fine-tuning 접근 (예: OpenAI GPT): 최소한의 태스크별 파라미터만 추가하고, 사전학습된 모든 파라미터를 다운스트림 태스크에 맞춰 미세 조정(fine-tuning)했습니다. OpenAI GPT는 Transformer의 self-attention 레이어에서 각 토큰이 이전 토큰에만 어텐션하는 좌-우(left-to-right) 구조를 사용했습니다.
- 두 접근 방식 모두 단방향 언어 모델을 사용하거나 얕은 양방향성을 가짐으로써 깊은 양방향 문맥 이해에 한계가 있었습니다.
2. 주요 기여 및 제안 방법
- 논문의 주요 기여:
- 깊은 양방향 사전학습의 중요성 입증: 모든 레이어에서 왼쪽 및 오른쪽 문맥을 모두 조건으로 사용하는 깊은 양방향 표현의 효과를 입증했습니다. 이는 기존의 단방향 모델(GPT)이나 얕은 연결 모델(ELMo)과 차별화됩니다.
- 범용적인 Fine-tuning 기반 모델 제시: 복잡한 태스크별 아키텍처의 필요성을 줄이고, 단 하나의 추가 출력 레이어만으로 다양한 문장 수준 및 토큰 수준 NLP 태스크에서 최고 성능(state-of-the-art)을 달성했습니다.
- 11개 NLP 태스크에서 SOTA 달성: GLUE 벤치마크, SQuAD 1.1/2.0, SWAG 등 11개 자연어 처리 태스크에서 새로운 최고 성능을 기록했습니다.
- 코드 및 사전학습 모델 공개: 연구의 재현성과 활용성을 높였습니다.
- 제안 방법:
BERT는 Bidirectional Encoder Representations from Transformers의 약자로, Transformer 인코더 기반의 다층 양방향 모델입니다. 사전학습(Pre-training)과 미세 조정(Fine-tuning)의 두 단계로 구성됩니다.- 모델 아키텍처: Vaswani et al. (2017)의 오리지널 Transformer 인코더를 기반으로 한 다층 양방향 Transformer 인코더입니다. BERT_BASE (12 레이어, 768 히든 사이즈, 12 어텐션 헤드, 1.1억 파라미터)와 BERT_LARGE (24 레이어, 1024 히든 사이즈, 16 어텐션 헤드, 3.4억 파라미터) 두 가지 모델 크기를 사용합니다.
- 입력/출력 표현:
- WordPiece 임베딩(3만 토큰 어휘)을 사용합니다.
- 모든 시퀀스의 시작에는 특별한 분류 토큰
[CLS]
가 추가되며, 이 토큰의 최종 히든 스테이트는 분류 태스크를 위한 시퀀스 전체의 표현으로 사용됩니다. - 문장 쌍은
[SEP]
토큰으로 구분되며, 각 토큰이 문장 A 또는 문장 B에 속하는지를 나타내는 학습된 세그먼트 임베딩(segment embedding)이 추가됩니다. - 주어진 토큰의 입력 표현은 토큰 임베딩, 세그먼트 임베딩, 위치 임베딩(position embedding)을 합산하여 구성됩니다.
- 사전학습 태스크:
- Masked Language Model (MLM): 입력 토큰 중 일부(15%)를 무작위로 마스킹하고, 마스킹된 토큰의 문맥만을 사용하여 원래 단어를 예측합니다. 마스킹된 토큰은 80% 확률로
[MASK]
토큰으로, 10% 확률로 무작위 토큰으로, 10% 확률로 원래 토큰으로 대체됩니다. 이를 통해 깊은 양방향 문맥 학습이 가능해집니다. - Next Sentence Prediction (NSP): 두 문장(A, B)이 주어졌을 때, B가 A 다음에 실제로 이어지는 문장인지(IsNext) 또는 무작위로 선택된 문장인지(NotNext)를 예측합니다. 이를 통해 문장 간의 관계 이해 능력을 학습합니다.
- Masked Language Model (MLM): 입력 토큰 중 일부(15%)를 무작위로 마스킹하고, 마스킹된 토큰의 문맥만을 사용하여 원래 단어를 예측합니다. 마스킹된 토큰은 80% 확률로
- 사전학습 데이터: BooksCorpus (8억 단어)와 영어 Wikipedia (25억 단어)를 사용합니다.
- 미세 조정(Fine-tuning): 사전학습된 BERT 모델을 초기화한 후, 다운스트림 태스크의 레이블이 지정된 데이터를 사용하여 모든 파라미터를 엔드-투-엔드(end-to-end)로 미세 조정합니다. 각 태스크는 동일한 사전학습 모델로 초기화되지만, 별도의 미세 조정된 모델을 가집니다.
3. 실험 결과
- 데이터셋:
- GLUE 벤치마크: MNLI, QQP, QNLI, SST-2, CoLA, STS-B, MRPC, RTE (총 8개)
- SQuAD v1.1: 질의응답 (정답 스팬 예측)
- SQuAD v2.0: 질의응답 (정답 스팬 예측 및 답변 없음 판단)
- SWAG: 상식 추론 (문장-쌍 완성)
- CoNLL-2003 Named Entity Recognition (NER): 개체명 인식
- 실험 환경: 사전학습은 Cloud TPU (BERT_BASE는 4개, BERT_LARGE는 16개)에서 수행되었으며, 각 사전학습은 4일이 소요되었습니다. 미세 조정은 단일 Cloud TPU에서 최대 1시간 이내, 또는 GPU에서 몇 시간 이내에 재현 가능합니다.
- 주요 결과:
- GLUE 벤치마크: BERT_BASE와 BERT_LARGE 모두 모든 태스크에서 기존 시스템을 크게 능가했으며, 이전 SOTA 대비 각각 4.5% 및 7.0%의 평균 정확도 향상을 달성했습니다. BERT_LARGE는 80.5점의 GLUE 점수를 기록했습니다.
- SQuAD v1.1: 단일 BERT 모델이 기존 최고 앙상블 시스템보다 우수한 F1 점수(91.1)를 달성했으며, 앙상블 모델은 93.2 F1로 리더보드 최고 시스템을 능가했습니다.
- SQuAD v2.0: 이전 최고 시스템 대비 5.1 F1 포인트 개선된 83.1 F1 점수를 기록했습니다.
- SWAG: BERT_LARGE는 기존 ESIM+ELMo 시스템보다 27.1%, OpenAI GPT보다 8.3% 더 우수한 성능을 보였습니다.
- 사전학습 태스크의 영향 (Ablation Study):
- NSP 태스크 제거 시 QNLI, MNLI, SQuAD 1.1에서 성능이 크게 저하되었습니다.
- MLM 대신 LTR(Left-to-Right) LM을 사용한 모델은 모든 태스크에서 MLM 모델보다 성능이 나빴으며, 특히 MRPC와 SQuAD에서 큰 폭의 하락을 보였습니다. 이는 깊은 양방향 사전학습의 중요성을 입증합니다.
- 모델 크기의 영향 (Ablation Study): 모델 크기가 커질수록 모든 데이터셋에서 정확도가 꾸준히 향상됨을 확인했습니다. 이는 매우 작은 데이터셋에서도 큰 모델의 이점을 얻을 수 있음을 보여주었습니다.
- Feature-based 접근 방식과의 비교: CoNLL-2003 NER 태스크에서 BERT를 feature-based 방식으로 사용했을 때도 fine-tuning 방식과 경쟁력 있는 성능을 보였습니다. 이는 BERT가 두 가지 접근 방식 모두에 효과적임을 시사합니다.
4. 개인적인 생각 및 응용 가능성
- 장점:
- 혁신적인 양방향성: 기존 모델의 단방향성 한계를 극복하고 모든 레이어에서 양방향 문맥을 학습하여 언어 이해 능력을 획기적으로 향상시켰습니다.
- 범용성과 효율성: 최소한의 태스크별 수정만으로 다양한 NLP 태스크에서 최고 성능을 달성하여, 새로운 태스크에 대한 모델 개발 시간과 비용을 크게 절감할 수 있습니다.
- 확장성: 모델 크기를 키울수록 성능이 꾸준히 향상됨을 입증하여, 더 큰 모델을 통해 더 높은 성능을 기대할 수 있는 가능성을 제시했습니다.
- 유연성: Fine-tuning 방식뿐만 아니라 Feature-based 방식으로도 효과적으로 활용될 수 있음을 보여주었습니다.
- 단점/한계:
- 사전학습/미세 조정 불일치: MLM의
[MASK]
토큰이 미세 조정 단계에서는 나타나지 않아 발생하는 불일치 문제가 존재하며, 논문에서는 이를 완화하기 위한 전략을 제시했지만 완전히 해결되지는 않습니다. - 높은 사전학습 비용: BERT_LARGE 모델의 사전학습에는 대규모 컴퓨팅 자원(Cloud TPU 16개, 4일)이 필요하여, 일반 연구자나 개발자가 직접 사전학습하기는 어렵습니다.
- MLM의 수렴 속도: 모든 토큰을 예측하는 LTR 모델보다 MLM 모델이 수렴하는 데 약간 더 많은 사전학습 단계가 필요할 수 있습니다.
- 사전학습/미세 조정 불일치: MLM의
- 응용 가능성:
- 다양한 NLP 태스크: 질의응답, 자연어 추론, 개체명 인식, 감성 분석, 텍스트 분류, 문장 유사도 등 광범위한 언어 이해 태스크에 즉시 적용하여 높은 성능을 달성할 수 있습니다.
- 저자원 언어/태스크: 대규모 사전학습 모델의 전이 학습(transfer learning) 능력을 활용하여 데이터가 부족한 언어나 특정 도메인의 태스크에서도 효과적인 성능을 기대할 수 있습니다.
- 새로운 NLP 애플리케이션 개발: 강력한 언어 이해 기반을 제공함으로써 챗봇, 검색 엔진, 자동 요약 등 다양한 인공지능 기반 서비스 및 애플리케이션 개발에 활용될 수 있습니다.
5. 추가 참고 자료
- BERT GitHub 저장소: https://github.com/google-research/bert
Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." Proceedings of the 2019 conference of the North American chapter of the association for computational linguistics: human language technologies, volume 1 (long and short papers). 2019.
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Jacob Devlin Ming-Wei Chang Kenton Lee Kristina Toutanova<br>Google AI Language<br>{jacobdevlin,mingweichang,kentonl,kristout}@google.com
Abstract
우리는 Bidirectional Encoder Representations from Transformers의 약자인 BERT라는 새로운 언어 표현 모델을 소개한다. 최근의 언어 표현 모델들(Peters et al., 2018a; Radford et al., 2018)과는 달리, BERT는 모든 layer에서 왼쪽 및 오른쪽 문맥을 모두 조건으로 사용하여 레이블이 없는 텍스트로부터 깊은 양방향 표현을 사전학습하도록 설계되었다. 결과적으로, 사전학습된 BERT 모델은 단 하나의 추가 출력 layer만으로 fine-tuning하여 **질의응답(question answering) 및 언어 추론(language inference)**과 같은 광범위한 task에서 상당한 task-specific 아키텍처 수정 없이도 state-of-the-art 모델을 생성할 수 있다. BERT는 개념적으로 간단하며 경험적으로 강력하다. 이 모델은 11개의 자연어 처리 task에서 새로운 state-of-the-art 결과를 달성했으며, 여기에는 GLUE 점수를 80.5%로 향상(절대 개선 7.7% 포인트), MultiNLI 정확도를 86.7%로 향상(절대 개선 4.6%), SQuAD v1.1 질의응답 Test F1을 93.2로 향상(절대 개선 1.5 포인트), 그리고 **SQuAD v2.0 Test F1을 83.1로 향상(절대 개선 5.1 포인트)**시키는 것이 포함된다.
1 Introduction
언어 모델 사전학습(language model pre-training)은 많은 자연어 처리(NLP) task의 성능 향상에 효과적이라는 것이 입증되었다(Dai and Le, 2015; Peters et al., 2018a; Radford et al., 2018; Howard and Ruder, 2018). 이러한 task에는 문장 수준(sentence-level) task과 토큰 수준(token-level) task가 포함된다. 문장 수준 task의 예로는 자연어 추론(natural language inference) (Bowman et al., 2015; Williams et al., 2018)과 paraphrasing (Dolan and Brockett, 2005)이 있다. 이들은 문장을 전체적으로 분석하여 문장 간 관계를 예측하는 것을 목표로 한다. 토큰 수준 task의 예로는 **개체명 인식(named entity recognition)**과 **질의응답(question answering)**이 있으며, 여기서는 모델이 토큰 단위의 세밀한 출력을 생성해야 한다(Tjong Kim Sang and De Meulder, 2003; Rajpurkar et al., 2016).
사전학습된 언어 표현(pre-trained language representations)을 downstream task에 적용하는 기존 전략은 feature-based 접근과 fine-tuning 접근 두 가지가 있다.
- feature-based 접근(E.g., ELMo (Peters et al., 2018a))은 사전학습된 표현을 추가 feature로 포함하는 task-specific 아키텍처를 사용한다.
- fine-tuning 접근(E.g., Generative Pre-trained Transformer (OpenAI GPT) (Radford et al., 2018))은 최소한의 task-specific 파라미터만 도입하고, 모든 사전학습된 파라미터를 downstream task에 맞춰 단순히 fine-tuning한다.
두 접근 방식 모두 사전학습 동안 동일한 objective function을 공유하는데, 이는 unidirectional language model을 사용하여 일반적인 언어 표현을 학습한다는 점이다.
우리는 현재의 기술이, 특히 fine-tuning 접근에서, 사전학습된 표현의 잠재력을 제한한다고 주장한다. 주요 제약은 표준 언어 모델이 **단방향(unidirectional)**이라는 점이며, 이는 사전학습에서 사용할 수 있는 아키텍처의 선택지를 제한한다. 예를 들어, OpenAI GPT에서는 Transformer (Vaswani et al., 2017)의 self-attention layer에서 각 토큰이 이전 토큰에만 attention할 수 있는 left-to-right 구조를 사용한다. 이러한 제약은 문장 수준 task에서는 최적이 아니며, 특히 질의응답과 같은 토큰 수준 task에서는 양방향 문맥이 필수적이므로 성능에 심각한 악영향을 줄 수 있다.
이 논문에서 우리는 fine-tuning 기반 접근을 개선하기 위해 **BERT (Bidirectional Encoder Representations from Transformers)**를 제안한다. BERT는 Cloze task(Taylor, 1953)에서 영감을 받은 masked language model (MLM) 사전학습 objective를 사용하여 위에서 언급한 단방향성 제약을 완화한다. MLM은 입력 토큰 중 일부를 무작위로 마스킹하고, 해당 단어의 문맥만을 사용하여 원래 vocabulary id를 예측하는 것이 목표이다. left-to-right 언어 모델 사전학습과 달리, MLM objective는 왼쪽과 오른쪽 문맥을 모두 결합할 수 있게 하여, 깊은 양방향 Transformer를 사전학습할 수 있도록 한다.
또한, 우리는 다음 문장 예측(next sentence prediction, NSP) task를 사용하여 텍스트 쌍 표현(text-pair representation)을 함께 사전학습한다.
우리 논문의 주요 기여는 다음과 같다:
- 언어 표현에서 양방향 사전학습의 중요성을 입증했다. Radford et al. (2018)의 경우 사전학습에 단방향 언어 모델을 사용하지만, BERT는 masked language model을 사용하여 깊은 양방향 표현을 가능하게 한다. 이는 서로 독립적으로 학습된 left-to-right와 right-to-left LM의 얕은 연결(shallow concatenation)을 사용하는 Peters et al. (2018a)과도 대조적이다.
- 사전학습된 표현이 많은 복잡한 task-specific 아키텍처의 필요성을 줄임을 보였다. BERT는 fine-tuning 기반의 표현 모델로서, 다양한 문장 수준 및 토큰 수준 task에서 state-of-the-art 성능을 달성하며, 다수의 task-specific 아키텍처를 능가했다.
- BERT는 11개의 NLP task에서 state of the art를 달성했다. 코드와 사전학습 모델은 https://github.com/google-research/bert에서 공개되어 있다.
2 Related Work
일반적인 언어 표현(general language representations)을 사전학습하는 연구는 오랜 역사를 가지고 있으며, 본 섹션에서는 가장 널리 사용되는 접근 방식들을 간략하게 살펴본다.
2.1 Unsupervised Feature-based Approaches
널리 적용 가능한 단어 표현을 학습하는 것은 수십 년간 활발한 연구 분야였으며, 여기에는 비신경망(Brown et al., 1992; Ando and Zhang, 2005; Blitzer et al., 2006) 및 신경망(Mikolov et al., 2013; Pennington et al., 2014) 방법론이 포함된다. **사전학습된 단어 임베딩(pre-trained word embeddings)**은 현대 NLP 시스템의 필수적인 부분으로, scratch부터 학습된 임베딩보다 상당한 성능 향상을 제공한다 (Turian et al., 2010). 단어 임베딩 벡터를 사전학습하기 위해 left-to-right language modeling objective (Mnih and Hinton, 2009)뿐만 아니라, left 및 right context에서 올바른 단어와 올바르지 않은 단어를 구별하는 objective (Mikolov et al., 2013)도 사용되었다.
이러한 접근 방식은 문장 임베딩(sentence embeddings) (Kiros et al., 2015; Logeswaran and Lee, 2018) 또는 단락 임베딩(paragraph embeddings) (Le and Mikolov, 2014)과 같이 더 거친 granularity로 일반화되었다. 문장 표현을 학습하기 위해, 이전 연구에서는 다음 문장 후보의 순위를 매기는 objective (Jernite et al., 2017; Logeswaran and Lee, 2018), 이전 문장의 표현이 주어졌을 때 다음 문장 단어를 left-to-right로 생성하는 방식 (Kiros et al., 2015), 또는 denoising autoencoder에서 파생된 objective (Hill et al., 2016)를 사용하였다.
ELMo와 그 전신 (Peters et al., 2017, 2018a)은 전통적인 단어 임베딩 연구를 다른 차원으로 일반화한다. 이들은 left-to-right 및 right-to-left language model에서 context-sensitive feature를 추출한다. 각 token의 contextual representation은 **left-to-right 및 right-to-left representation의 연결(concatenation)**이다. 기존의 task-specific 아키텍처에 contextual word embedding을 통합함으로써, ELMo는 질의응답(question answering) (Rajpurkar et al., 2016), 감성 분석(sentiment analysis) (Socher et al., 2013), 개체명 인식(named entity recognition) (Tjong Kim Sang and De Meulder, 2003)을 포함한 여러 주요 NLP 벤치마크에서 state of the art를 발전시켰다 (Peters et al., 2018a). Melamud et al. (2016)은 LSTM을 사용하여 left 및 right context 모두에서 단일 단어를 예측하는 task를 통해 contextual representation을 학습하는 방법을 제안했다. ELMo와 유사하게, 그들의 모델은 feature-based이며 깊이 있는 bidirectional 특성을 가지지 않는다. Fedus et al. (2018)은 cloze task가 텍스트 생성 모델의 견고성을 향상시키는 데 사용될 수 있음을 보여준다.
2.2 Unsupervised Fine-tuning Approaches
feature-based 접근 방식과 마찬가지로, 이 방향의 초기 연구들은 레이블이 없는 텍스트로부터 word embedding 파라미터만을 사전학습했다 (Collobert and Weston, 2008).
최근에는 문맥화된(contextual) token representation을 생성하는 sentence 또는 document encoder가 레이블이 없는 텍스트로부터 사전학습되고, supervised downstream task를 위해 fine-tuning되었다 (Dai and Le, 2015; Howard and Ruder, 2018; Radford et al., 2018). 이러한 접근 방식의 장점은 처음부터 학습해야 할 파라미터가 적다는 것이다. 적어도 부분적으로 이러한 장점 덕분에, OpenAI GPT (Radford et al., 2018)는 GLUE 벤치마크 (Wang et al., 2018a)의 많은 문장 수준 task에서 이전의 state-of-the-art 결과를 달성했다. Left-to-right language modeling 및 auto-encoder objective가 이러한 모델들을 사전학습하는 데 사용되었다 (Howard and Ruder, 2018; Radford et al., 2018; Dai and Le, 2015).
Figure 1: BERT의 전체 사전학습 및 fine-tuning 절차. 출력 layer를 제외하고, 사전학습과 fine-tuning 모두에서 동일한 아키텍처가 사용된다. 동일한 사전학습된 모델 파라미터가 다양한 downstream task를 위한 모델을 초기화하는 데 사용된다. fine-tuning 동안 모든 파라미터가 fine-tuning된다. **[CLS]**는 모든 입력 예시 앞에 추가되는 특수 심볼이며, **[SEP]**는 특수 구분자 토큰이다 (예: 질문/답변 구분).
2.3 Transfer Learning from Supervised Data
또한, 자연어 추론(natural language inference) (Conneau et al., 2017) 및 기계 번역(machine translation) (McCann et al., 2017)과 같은 대규모 데이터셋을 활용한 supervised task로부터의 효과적인 transfer를 보여주는 연구들도 있었다. 컴퓨터 비전 연구 역시 대규모 사전학습 모델로부터의 transfer learning의 중요성을 입증했으며, 이 분야에서는 ImageNet (Deng et al., 2009; Yosinski et al., 2014)으로 사전학습된 모델을 fine-tuning하는 것이 효과적인 방법으로 알려져 있다.
3 BERT
이번 섹션에서는 BERT와 그 세부 구현을 소개한다. 우리의 framework는 두 단계로 구성된다: pre-training과 fine-tuning. Pre-training 동안, 모델은 서로 다른 pre-training task에 대해 unlabeled data를 사용하여 학습된다. Fine-tuning에서는, BERT 모델을 먼저 pre-trained parameter로 초기화한 후, downstream task의 labeled data를 사용해 모든 parameter를 fine-tune한다. 각 downstream task는 동일한 pre-trained parameter로 초기화되더라도, 별도의 fine-tuned model을 가진다. Figure 1의 question-answering 예시는 이번 섹션의 진행 예시(running example)로 사용된다.
BERT의 뚜렷한 특징 중 하나는 서로 다른 task에서의 unified architecture이다. Pre-trained architecture와 최종 downstream architecture 사이에는 차이가 거의 없다.
Model Architecture
BERT의 model architecture는 Vaswani et al. (2017)에서 설명되고 tensor2tensor library로 공개된 원본 구현을 기반으로 한 multi-layer bidirectional Transformer encoder이다. Transformer의 사용이 일반화되었고 우리의 구현이 원본과 거의 동일하기 때문에, 본 논문에서는 model architecture에 대한 자세한 배경 설명은 생략하고 Vaswani et al. (2017)과 “The Annotated Transformer”와 같은 훌륭한 가이드에 독자를 참조시킨다.
본 연구에서는 layer의 개수(즉, Transformer block)를 , hidden size를 , self-attention head의 수를 로 표기한다. 우리는 주로 두 가지 model size에 대한 결과를 보고한다: BERT (, , , Total Parameters = 110M)와 BERT (, , , Total Parameters = 340M)이다.
BERT는 비교 목적을 위해 OpenAI GPT와 동일한 model size로 설정되었다. 그러나 중요한 차이점은, BERT Transformer는 bidirectional self-attention을 사용하는 반면, GPT Transformer는 각 token이 왼쪽 context에만 attend할 수 있는 constrained self-attention을 사용한다.
Input/Output Representations
BERT가 다양한 down-stream task를 처리할 수 있도록, 우리의 input representation은 하나의 token sequence 안에서 single sentence와 sentence pair(예: 〈 Question, Answer 〉)를 모호함 없이 표현할 수 있다. 본 연구 전반에서 “sentence”는 실제 언어학적 문장이 아니라, 연속된 텍스트의 임의의 구간을 의미한다. “sequence”는 BERT에 입력되는 token sequence를 의미하며, 이는 single sentence일 수도 있고 두 개의 sentence가 함께 포함된 것일 수도 있다.
우리는 30,000 token vocabulary를 가진 WordPiece embedding(Wu et al., 2016)을 사용한다. 모든 sequence의 첫 번째 token은 항상 special classification token([CLS])이며, 이 token에 해당하는 최종 hidden state는 classification task를 위한 sequence 전체의 표현으로 사용된다. Sentence pair는 하나의 sequence로 함께 구성된다. 우리는 이 두 sentence를 두 가지 방식으로 구분한다. 첫째, special token([SEP])으로 구분한다. 둘째, 각 token에 대해 해당 token이 sentence A 또는 sentence B에 속하는지를 나타내는 learned embedding을 더한다. Figure 1에서 보듯이, input embedding을 , special [CLS] token의 최종 hidden vector를 , 그리고 입력 token의 최종 hidden vector를 로 표기한다.
주어진 token의 input representation은 해당 token embedding, segment embedding, position embedding을 합산하여 구성된다. 이러한 구조의 시각화는 Figure 2에서 확인할 수 있다.
3.1 Pre-training BERT
Peters et al. (2018a) 및 Radford et al. (2018)과는 달리, 우리는 BERT를 사전학습하기 위해 전통적인 left-to-right 또는 right-to-left language model을 사용하지 않는다. 대신, 이 섹션에서 설명하는 두 가지 비지도 학습(unsupervised) task를 사용하여 BERT를 사전학습한다. 이 단계는 Figure 1의 왼쪽에 제시되어 있다.
Task #1: Masked LM
직관적으로, 깊은 양방향(bidirectional) 모델이 left-to-right 모델이나 left-to-right 및 right-to-left 모델의 얕은 연결(shallow concatenation)보다 엄격하게 더 강력하다고 믿는 것이 합리적이다. 불행히도, 표준 조건부 language model은 left-to-right 또는 right-to-left 방식으로만 학습될 수 있다. 이는 양방향 조건화(bidirectional conditioning)가 각 단어가 간접적으로 "자신을 보게" 허용하여, 모델이 다층적(multi-layered) 맥락에서 목표 단어를 사소하게(trivially) 예측할 수 있기 때문이다.
깊은 양방향 표현을 학습하기 위해, 우리는 입력 토큰의 일부를 무작위로 마스킹(masking)한 다음, 이 마스킹된 토큰들을 예측한다. 우리는 이 절차를 "masked LM" (MLM)이라고 부르지만, 문헌에서는 종종 Cloze task (Taylor, 1953)라고도 불린다. 이 경우, 마스크 토큰에 해당하는 최종 hidden vector는 표준 LM에서와 같이 어휘(vocabulary)에 대한 출력 softmax에 입력된다. 모든 실험에서 우리는 각 시퀀스의 모든 WordPiece 토큰 중 15%를 무작위로 마스킹한다. denoising auto-encoder (Vincent et al., 2008)와 달리, 우리는 전체 입력을 재구성하는 대신 마스킹된 단어만 예측한다.
이러한 방식은 양방향 사전학습 모델을 얻을 수 있게 하지만, 한 가지 단점은 사전학습과 fine-tuning 사이에 불일치(mismatch)를 생성한다는 것이다. 이는 [MASK] 토큰이 fine-tuning 중에는 나타나지 않기 때문이다. 이를 완화하기 위해, 우리는 "마스킹된" 단어를 항상 실제 [MASK] 토큰으로 대체하지는 않는다. 학습 데이터 생성기는 예측을 위해 무작위로 15%의 토큰 위치를 선택한다. 만약 -번째 토큰이 선택되면, 우리는 -번째 토큰을 다음 중 하나로 대체한다: (1) [MASK] 토큰으로 80% 대체 (2) 무작위 토큰으로 10% 대체 (3) 변경되지 않은 -번째 토큰으로 10% 유지 그 후, 는 cross entropy loss를 사용하여 원래 토큰을 예측하는 데 사용된다. 이 절차의 변형들은 Appendix C.2에서 비교한다.
Task #2: Next Sentence Prediction (NSP)
Question Answering (QA) 및 Natural Language Inference (NLI)와 같은 많은 중요한 다운스트림 task는 두 문장 간의 관계 이해에 기반하며, 이는 language modeling으로는 직접적으로 포착되지 않는다. 문장 관계를 이해하는 모델을 학습하기 위해, 우리는 어떤 단일 언어 코퍼스(monolingual corpus)에서도 쉽게 생성될 수 있는 이진화된 다음 문장 예측(binarized next sentence prediction) task를 위해 사전학습한다. 구체적으로, 각 사전학습 예시에 대해 문장 A와 B를 선택할 때, 50%의 경우 B는 A 다음에 오는 실제 다음 문장이다 (IsNext로 레이블링). 그리고 50%의 경우 B는 코퍼스에서 무작위로 선택된 문장이다 (NotNext로 레이블링). Figure 1에서 보여주듯이, 는 다음 문장 예측(NSP)에 사용된다. 이러한 단순성에도 불구하고, 우리는 Section 5.1에서 이 task를 향한 사전학습이 QA와 NLI 모두에 매우 유익함을 입증한다.
Figure 2: BERT 입력 표현. 입력 임베딩은 토큰 임베딩, 세그멘테이션 임베딩, 그리고 위치 임베딩의 합이다.
NSP task는 Jernite et al. (2017) 및 Logeswaran and Lee (2018)에서 사용된 표현 학습(representation learning) 목표와 밀접하게 관련되어 있다. 그러나 이전 연구에서는 문장 임베딩만 다운스트림 task로 전이되었지만, BERT는 모든 파라미터를 전이하여 최종 task 모델 파라미터를 초기화한다.
사전학습 데이터
사전학습 절차는 language model 사전학습에 대한 기존 문헌을 대체로 따른다. 사전학습 코퍼스로는 BooksCorpus (8억 단어) (Zhu et al., 2015)와 **영어 Wikipedia (25억 단어)**를 사용한다. Wikipedia의 경우 텍스트 구절만 추출하고 목록, 표, 헤더는 무시한다. 긴 연속 시퀀스를 추출하기 위해서는 Billion Word Benchmark (Chelba et al., 2013)와 같이 문장 단위로 섞인 코퍼스 대신 문서 수준 코퍼스를 사용하는 것이 중요하다.
3.2 Fine-tuning BERT
fine-tuning은 Transformer의 self-attention 메커니즘 덕분에 간단하다. BERT는 단일 텍스트 또는 텍스트 쌍을 포함하는 다양한 다운스트림 task를 적절한 입력과 출력을 교체하는 방식으로 모델링할 수 있다. 텍스트 쌍을 다루는 애플리케이션의 경우, Parikh et al. (2016); Seo et al. (2017)처럼 양방향 cross attention을 적용하기 전에 텍스트 쌍을 독립적으로 인코딩하는 것이 일반적인 패턴이다. 그러나 BERT는 self-attention 메커니즘을 사용하여 이 두 단계를 통합한다. self-attention으로 연결된 텍스트 쌍을 인코딩하는 것은 두 문장 간의 양방향 cross attention을 효과적으로 포함하기 때문이다.
각 task에 대해 우리는 단순히 task-specific 입력과 출력을 BERT에 연결하고 모든 파라미터를 end-to-end로 fine-tuning한다. 입력 측면에서, 사전학습 시의 문장 A와 문장 B는 다음과 유사하다: (1) paraphrasing에서의 문장 쌍, (2) entailment에서의 가설-전제 쌍, (3) question answering에서의 질문-지문 쌍, (4) 텍스트 분류 또는 sequence tagging에서의 퇴화된 텍스트- 쌍.
출력 측면에서, token representation은 sequence tagging 또는 question answering과 같은 token-level task를 위해 출력 layer로 전달되며, [CLS] representation은 entailment 또는 sentiment analysis와 같은 분류 task를 위해 출력 layer로 전달된다.
사전학습에 비해 fine-tuning은 상대적으로 비용이 저렴하다. 본 논문의 모든 결과는 동일한 사전학습 모델을 사용하여 단일 Cloud TPU에서 최대 1시간 이내, 또는 GPU에서 몇 시간 이내에 재현할 수 있다. 각 task별 세부 사항은 Section 4의 해당 하위 섹션에서 설명한다. 더 자세한 내용은 Appendix A.5에서 확인할 수 있다.
4 Experiments
이 섹션에서는 11개 NLP task에 대한 BERT fine-tuning 결과를 제시한다.
4.1 GLUE
General Language Understanding Evaluation (GLUE) 벤치마크 (Wang et al., 2018a)는 다양한 자연어 이해 task들을 모아놓은 것이다. GLUE 데이터셋에 대한 자세한 설명은 Appendix B.1에 포함되어 있다.
GLUE에 대해 fine-tuning을 수행하기 위해, 우리는 Section 3에서 설명된 대로 입력 시퀀스(단일 문장 또는 문장 쌍)를 표현하고, 첫 번째 입력 토큰([CLS])에 해당하는 최종 hidden vector 를 통합 표현(aggregate representation)으로 사용한다. fine-tuning 과정에서 새로 도입되는 파라미터는 분류 레이어 가중치 뿐이며, 여기서 는 레이블의 개수이다. 우리는 와 를 사용하여 표준 분류 손실, 즉 를 계산한다.
System | MNLI-(m/mm) | QQP | QNLI | SST-2 | CoLA | STS-B | MRPC | RTE | Average |
---|---|---|---|---|---|---|---|---|---|
392 k | 363k | 108k | 67k | 8.5 k | 5.7 k | 3.5 k | 2.5 k | - | |
Pre-OpenAI SOTA | 80.6/80.1 | 66.1 | 82.3 | 93.2 | 35.0 | 81.0 | 86.0 | 61.7 | 74.0 |
BiLSTM+ELMo+Attn | 76.4/76.1 | 64.8 | 79.8 | 90.4 | 36.0 | 73.3 | 84.9 | 56.8 | 71.0 |
OpenAI GPT | 82.1/81.4 | 70.3 | 87.4 | 91.3 | 45.4 | 80.0 | 82.3 | 56.0 | 75.1 |
BERT | 84.6/83.4 | 71.2 | 90.5 | 93.5 | 52.1 | 85.8 | 88.9 | 66.4 | 79.6 |
BERT | 86.7/85.9 | 72.1 | 92.7 | 94.9 | 60.5 | 86.5 | 89.3 | 70.1 | 82.1 |
Table 1: GLUE Test 결과 (평가 서버 https://gluebenchmark.com/leaderboard에서 채점). 각 task 아래 숫자는 학습 예시의 수를 나타낸다. "Average" 열은 문제가 있는 WNLI 세트를 제외했기 때문에 공식 GLUE 점수와 약간 다르다. BERT와 OpenAI GPT는 단일 모델, 단일 task이다. QQP와 MRPC는 F1 점수, STS-B는 Spearman 상관계수, 나머지 task는 정확도(accuracy) 점수를 보고한다. BERT를 구성 요소 중 하나로 사용하는 항목은 제외한다.
우리는 모든 GLUE task에 대해 batch size 32를 사용하고 3 epoch 동안 fine-tuning을 수행한다. 각 task에 대해 Dev 세트에서 최적의 fine-tuning learning rate (5e-5, 4e-5, 3e-5, 2e-5 중)를 선택했다. 또한, **BERT **의 경우 작은 데이터셋에서는 fine-tuning이 불안정한 경우가 있어, 여러 번의 random restart를 수행하고 Dev 세트에서 가장 좋은 모델을 선택했다. random restart 시에는 동일한 사전학습된 checkpoint를 사용하지만, fine-tuning 데이터 셔플링과 분류기 레이어 초기화를 다르게 수행한다.
결과는 Table 1에 제시되어 있다. **BERT **와 BERT 모두 모든 task에서 상당한 차이로 모든 시스템을 능가하며, 이전 state of the art 대비 각각 4.5% 및 7.0%의 평균 정확도 향상을 달성했다. **BERT **와 OpenAI GPT는 attention masking을 제외하면 모델 아키텍처 측면에서 거의 동일하다는 점에 주목하라. 가장 크고 널리 보고되는 GLUE task인 MNLI에서 BERT는 4.6%의 절대 정확도 향상을 얻었다. 공식 GLUE 리더보드에서 **BERT **는 80.5점을 얻었으며, 이는 작성일 기준 OpenAI GPT의 72.8점과 비교된다.
우리는 **BERT **가 모든 task, 특히 학습 데이터가 매우 적은 task에서 **BERT **를 크게 능가한다는 것을 발견했다. 모델 크기의 영향은 Section 5.2에서 더 자세히 탐구된다.
4.2 SQuAD v1.1
Stanford Question Answering Dataset (SQuAD v1.1)는 10만 개의 크라우드소싱된 질문/답변 쌍으로 구성된 데이터셋이다 (Rajpurkar et al., 2016). 이 task는 질문과 답변을 포함하는 Wikipedia의 passage가 주어졌을 때, passage 내에서 답변 텍스트의 span을 예측하는 것이다.
Figure 1에서 보여지듯이, 질문 응답 task에서 우리는 입력 질문과 passage를 단일 packed sequence로 표현한다. 이때 질문은 A embedding을 사용하고 passage는 B embedding을 사용한다. 우리는 fine-tuning 과정에서만 start vector 와 end vector 를 도입한다. 단어 가 답변 span의 시작일 확률은 와 의 dot product를 계산한 후, passage 내 모든 단어에 대해 softmax를 적용하여 다음과 같이 계산된다: . 답변 span의 끝에 대해서도 유사한 공식이 사용된다. 위치 부터 위치 까지의 후보 span 점수는 로 정의되며, 인 span 중 가장 높은 점수를 가진 span이 예측으로 사용된다. 학습 목표는 정답 시작 및 끝 위치의 log-likelihood 합계이다. 우리는 5e-5의 learning rate와 32의 batch size로 3 epoch 동안 fine-tuning을 수행한다.
Table 2는 최고 리더보드 기록과 최고 수준의 공개된 시스템 결과를 보여준다 (Seo et al., 2017; Clark and Gardner, 2018; Peters et al., 2018a; Hu et al., 2018). SQuAD 리더보드의 최고 결과들은 최신 공개 시스템 설명이 제공되지 않으며, 시스템 학습 시 어떠한 공개 데이터도 사용할 수 있다. 따라서 우리는 TriviaQA (Joshi et al., 2017)로 먼저 fine-tuning한 후 SQuAD로 fine-tuning하여 시스템에 적당한 데이터 증강을 적용하였다.
우리의 최고 성능 시스템은 앙상블에서 +1.5 F1, 단일 시스템에서 +1.3 F1로 리더보드 최고 시스템을 능가한다. 실제로 우리의 단일 BERT 모델은 F1 점수 면에서 최고 앙상블 시스템보다 우수하다. TriviaQA fine-tuning 데이터 없이도 우리는 단 0.1-0.4 F1만 손실하며, 여전히 기존의 모든 시스템을 큰 차이로 능가한다.
System | Dev | Test | ||
---|---|---|---|---|
EM | F1 | EM | F1 | |
Top Leaderboard Systems (Dec 10th, 2018) | ||||
Human | - | - | 82.3 | 91.2 |
#1 Ensemble - nlnet | - | - | 86.0 | 91.7 |
#2 Ensemble - QANet | - | - | 84.5 | 90.5 |
Published | ||||
BiDAF+ELMo (Single) | - | 85.6 | - | 85.8 |
R.M. Reader (Ensemble) | 81.2 | 87.9 | 82.3 | 88.5 |
Ours | ||||
BERT (Single) | 80.8 | 88.5 | - | - |
(Single) | 84.1 | 90.9 | - | - |
BERT (Ensemble) | 85.8 | 91.8 | - | - |
BERT (Sgl.+TriviaQA) | 84.2 | 91.1 | 85.1 | 91.8 |
BERT (Ens.+TriviaQA) | 86.2 | 92.2 | 87.4 | 93.2 |
Table 2: SQuAD 1.1 결과. BERT 앙상블은 서로 다른 사전학습 체크포인트와 fine-tuning seed를 사용한 7개의 시스템으로 구성된다.
System | Dev | Test | ||
---|---|---|---|---|
EM | F1 | EM | F1 | |
Top Leaderboard Systems (Dec 10th, 2018) | ||||
Human | 86.3 | 89.0 | 86.9 | 89.5 |
#1 Single - MIR-MRC (F-Net) | - | - | 74.8 | 78.0 |
#2 Single - nlnet | - | - | 74.2 | 77.1 |
Published | ||||
unet (Ensemble) | - | - | 71.4 | 74.9 |
SLQA+ (Single) | - | 71.4 | 74.4 | |
Ours | ||||
BERT (Single) | 78.7 | 81.9 | 80.0 | 83.1 |
Table 3: SQuAD 2.0 결과. BERT를 구성 요소 중 하나로 사용하는 항목은 제외하였다.
4.3 SQuAD v2.0
SQuAD 2.0 task는 SQuAD 1.1 문제 정의를 확장하여, 제공된 단락에 짧은 답변이 존재하지 않을 가능성을 허용함으로써 문제를 더 현실적으로 만들었다.
우리는 이 task를 위해 SQuAD v1.1 BERT 모델을 확장하는 간단한 접근 방식을 사용한다. 답변이 없는 질문은 [CLS] 토큰에서 시작하고 끝나는 답변 span을 가진 것으로 처리한다. 시작 및 끝 답변 span 위치에 대한 확률 공간은 [CLS] 토큰의 위치를 포함하도록 확장된다. 예측을 위해, 우리는 no-answer span의 점수 를 최상의 non-null span의 점수 와 비교한다. 우리는 일 때 non-null 답변을 예측하며, 여기서 임계값 는 F1 점수를 최대화하기 위해 dev set에서 선택된다. 이 모델에는 TriviaQA 데이터를 사용하지 않았다. 우리는 5e-5의 학습률과 48의 배치 크기로 2 epoch 동안 fine-tuning을 수행했다.
[^6]| System | Dev | Test | | :--- | :---: | :---: | | ESIM+GloVe | 51.9 | 52.7 | | ESIM+ELMo | 59.1 | 59.2 | | OpenAI GPT | - | 78.0 | | BERT | 81.6 | - | | BERT | | | | Human (expert) | - | 85.0 | | Human (5 annotations) | - | 88.0 |
Table 4: SWAG Dev 및 Test 정확도. Human 성능은 SWAG 논문에서 보고된 바와 같이 100개 샘플로 측정되었다.
이전 리더보드 항목 및 최고 수준의 공개된 연구(Sun et al., 2018; Wang et al., 2018b)와 비교한 결과는 Table 3에 나와 있으며, BERT를 구성 요소 중 하나로 사용하는 시스템은 제외되었다. 우리는 이전 최고 시스템 대비 +5.1 F1 개선을 확인했다.
4.4 SWAG
SWAG (Situations With Adversarial Generations) 데이터셋은 상식 추론(commonsense inference) 능력을 평가하는 113k개의 문장-쌍 완성(sentence-pair completion) 예시를 포함한다 [Zellers et al., 2018]. 주어진 문장에 대해 네 가지 선택지 중 가장 그럴듯한 이어지는 문장을 고르는 것이 task이다.
SWAG 데이터셋으로 fine-tuning할 때, 우리는 주어진 문장(문장 A)과 가능한 이어지는 문장(문장 B)을 연결한 네 가지 입력 시퀀스를 구성한다. 이때 도입되는 유일한 task-specific 파라미터는 [CLS] token representation 와의 내적(dot product)이 각 선택지에 대한 점수를 나타내는 벡터이며, 이 점수는 softmax layer를 통해 정규화된다.
우리는 3 epoch 동안 학습률 , 배치 크기 16으로 모델을 fine-tuning한다. 결과는 Table 4에 제시되어 있다. BERT는 저자들이 제시한 baseline인 ESIM+ELMo 시스템보다 +27.1%, OpenAI GPT보다 8.3% 더 우수한 성능을 보인다.
5 Ablation Studies
이 섹션에서는 BERT의 여러 측면에 대한 ablation 실험을 수행하여, 각 요소의 상대적인 중요성을 더 잘 이해하고자 한다. 추가적인 ablation 연구는 Appendix C에서 확인할 수 있다.
Tasks | Dev Set | ||||
---|---|---|---|---|---|
MNLI-m <br> (Acc) | QNLI <br> (Acc) | MRPC <br> (Acc) | SST-2 <br> (Acc) | SQuAD <br> (F1) | |
BERT | 84.4 | 88.4 | 86.7 | 92.7 | 88.5 |
No NSP | 83.9 | 84.9 | 86.5 | 92.6 | 87.9 |
LTR & No NSP | 82.1 | 84.3 | 77.5 | 92.1 | 77.8 |
+ BiLSTM | 82.1 | 84.1 | 75.7 | 91.6 | 84.9 |
Table 5: BERT 아키텍처를 사용한 사전학습 task에 대한 ablation 결과. "No NSP"는 next sentence prediction task 없이 학습되었다. "LTR & No NSP"는 OpenAI GPT처럼 next sentence prediction 없이 left-to-right LM으로 학습되었다. "+ BiLSTM"은 fine-tuning 시 "LTR + No NSP" 모델 위에 무작위로 초기화된 BiLSTM을 추가한 것이다.
5.1 Effect of Pre-training Tasks
우리는 BERT의 깊은 양방향성(deep bidirectionality)의 중요성을 입증하기 위해, BERTBASE와 정확히 동일한 사전학습 데이터, fine-tuning 방식, 하이퍼파라미터를 사용하여 두 가지 사전학습 objective를 평가하였다:
- No NSP: "masked LM" (MLM)을 사용하지만 "next sentence prediction" (NSP) task 없이 학습된 양방향 모델.
- LTR & No NSP: MLM 대신 표준 Left-to-Right (LTR) LM을 사용하여 학습된 왼쪽 문맥 전용(left-context-only) 모델. 왼쪽 문맥 전용 제약은 fine-tuning 시에도 적용되었는데, 이를 제거하면 사전학습/fine-tuning 불일치(mismatch)가 발생하여 다운스트림 성능이 저하되었기 때문이다. 또한, 이 모델은 NSP task 없이 사전학습되었다. 이 모델은 OpenAI GPT와 직접적으로 비교 가능하지만, 우리의 더 큰 학습 데이터셋, 입력 표현, fine-tuning 방식을 사용한다.
우리는 먼저 NSP task가 미치는 영향을 살펴보았다. Table 5에서 NSP를 제거하면 QNLI, MNLI, SQuAD 1.1에서 성능이 크게 저하됨을 보여준다. 다음으로, "No NSP"와 "LTR & No NSP"를 비교하여 양방향 표현 학습의 영향을 평가하였다. LTR 모델은 모든 task에서 MLM 모델보다 성능이 나빴으며, MRPC와 SQuAD에서는 큰 폭의 하락을 보였다.
SQuAD의 경우, 토큰 수준의 hidden state가 오른쪽 문맥을 가지지 않으므로 LTR 모델이 토큰 예측에서 성능이 좋지 않을 것이라는 점은 직관적으로 명확하다. LTR 시스템을 강화하기 위한 성실한 시도로, 우리는 상단에 무작위로 초기화된 BiLSTM을 추가하였다. 이는 SQuAD에서 결과를 크게 향상시키지만, 그 결과는 사전학습된 양방향 모델보다 여전히 훨씬 나빴다. BiLSTM은 GLUE task에서는 성능을 저하시켰다.
우리는 ELMo처럼 별도의 LTR 및 RTL 모델을 학습시키고 각 토큰을 두 모델의 연결(concatenation)로 표현하는 것도 가능함을 인지한다. 그러나: (a) 이는 단일 양방향 모델보다 두 배의 비용이 들고; (b) RTL 모델이 질문에 답변을 조건화할 수 없으므로 QA와 같은 task에는 직관적이지 않으며; (c) 모든 layer에서 왼쪽 및 오른쪽 문맥을 모두 사용할 수 있는 깊은 양방향 모델보다 엄격하게 덜 강력하다.
5.2 Effect of Model Size
이 절에서는 model size가 fine-tuning task accuracy에 미치는 영향을 살펴본다. 우리는 layer 수, hidden unit 수, attention head 수가 서로 다른 여러 BERT 모델을 학습했으며, 그 외 hyperparameter와 training procedure는 앞서 설명한 것과 동일하게 사용했다.
선택된 GLUE task에 대한 결과는 Table 6에 나와 있다. 이 표에서는 fine-tuning을 5번 random restart한 Dev Set accuracy의 평균을 보고한다. 모든 네 가지 데이터셋에서 model size가 커질수록 정확도가 꾸준히 향상되는 것을 확인할 수 있다. 이는 MRPC처럼 label이 붙은 training example이 3,600개뿐이고 pre-training task와 상당히 다른 경우에도 해당된다. 또한, 이미 기존 문헌에서 다루어진 모델에 비해 꽤 큰 모델임에도 불구하고 이렇게 유의미한 성능 향상을 달성했다는 점이 흥미롭다. 예를 들어, Vaswani et al. (2017)에서 탐구한 가장 큰 Transformer는 encoder에 1억 개의 parameter를 가진 ( ) 구조였고, 우리가 문헌에서 찾은 가장 큰 Transformer는 Al-Rfou et al. (2018)의 ( ) 구조로, 2억 3,500만 개의 parameter를 가진다. 반면, BERT\text{BASE}는 1억 1천만 개의 parameter를, BERT\text{LARGE}는 3억 4천만 개의 parameter를 가진다.
대규모 task(예: machine translation, language modeling)에서 model size를 키우면 성능이 지속적으로 향상된다는 것은 오래전부터 알려져 있었으며, 이는 Table 6에서 제시된 held-out training data의 LM perplexity로도 입증된다. 그러나 우리는 본 연구가 극단적으로 큰 model size로 scaling 했을 때, 충분한 pre-training이 이뤄진 경우 매우 소규모 task에서도 큰 성능 향상을 달성할 수 있음을 설득력 있게 보여준 첫 번째 사례라고 믿는다. Peters et al. (2018b)는 pre-trained bi-LM의 layer 수를 2개에서 4개로 늘렸을 때 downstream task 성능 향상이 일관적이지 않았음을 보고했으며, Melamud et al. (2016)은 hidden dimension size를 200에서 600으로 늘리면 향상되지만, 1,000으로 더 늘려도 추가적인 성능 향상은 없었다고 언급했다. 두 연구 모두 feature-based approach를 사용했는데, 우리는 모델이 downstream task에서 직접 fine-tuning되고, 소수의 randomly initialized 추가 parameter만 사용할 경우, downstream task data가 매우 적더라도 더 크고 표현력이 높은 pre-trained representation의 이점을 얻을 수 있다고 가설을 세운다.
5.3 Feature-based Approach with BERT
지금까지 제시된 모든 BERT 결과는 사전학습된 모델에 간단한 classification layer를 추가하고, 모든 파라미터를 다운스트림 task에 대해 함께 fine-tuning하는 방식을 사용했다. 그러나 사전학습된 모델에서 고정된 feature를 추출하는 feature-based 접근 방식은 몇 가지 장점을 가진다.
첫째, 모든 task가 Transformer encoder 아키텍처로 쉽게 표현될 수 있는 것은 아니므로, task-specific 모델 아키텍처를 추가해야 할 필요가 있다.
둘째, 학습 데이터의 복잡한 표현을 한 번 계산해두고, 이 표현 위에 더 저렴한 모델로 많은 실험을 수행할 수 있다는 주요한 계산상의 이점이 있다.
이 섹션에서는 BERT를 CoNLL-2003 Named Entity Recognition (NER) task (Tjong Kim Sang and De Meulder, 2003)에 적용하여 두 가지 접근 방식을 비교한다. BERT의 입력으로는 대소문자를 보존하는 WordPiece 모델을 사용하며, 데이터가 제공하는 최대 문서 context를 포함한다. 표준 관행에 따라 이를 tagging task로 정식화하지만, 출력에 CRF layer는 사용하지 않는다. 우리는 첫 번째 sub-token의 표현을 NER label set에 대한 token-level classifier의 입력으로 사용한다.
Hyperparams | Dev Set Accuracy | |||||
---|---|---|---|---|---|---|
#L | #H | #A | LM (ppl) | MNLI-m | MRPC | SST-2 |
3 | 768 | 12 | 5.84 | 77.9 | 79.8 | 88.4 |
6 | 768 | 3 | 5.24 | 80.6 | 82.2 | 90.7 |
6 | 768 | 12 | 4.68 | 81.9 | 84.8 | 91.3 |
12 | 768 | 12 | 3.99 | 84.4 | 86.7 | 92.9 |
12 | 1024 | 16 | 3.54 | 85.7 | 86.9 | 93.3 |
24 | 1024 | 16 | 3.23 | 86.6 | 87.8 | 93.7 |
Table 6: BERT 모델 크기에 대한 Ablation. #L = layer 수; #H = hidden size; #A = attention head 수. "LM (ppl)"은 held-out 학습 데이터의 masked LM perplexity이다.
System | Dev F1 | Test F1 |
---|---|---|
ELMo (Peters et al., 2018a) | 95.7 | 92.2 |
CVT (Clark et al., 2018) | - | 92.6 |
CSE (Akbik et al., 2018) | - | 93.1 |
Fine-tuning approach | ||
BERT | 96.6 | 92.8 |
BERT | 96.4 | 92.4 |
Feature-based approach (BERT ) | ||
Embeddings | 91.0 | - |
Second-to-Last Hidden | 95.6 | - |
Last Hidden | 94.9 | - |
Weighted Sum Last Four Hidden | 95.9 | - |
Concat Last Four Hidden | 96.1 | - |
Weighted Sum All 12 Layers | 95.5 | - |
Table 7: CoNLL-2003 Named Entity Recognition 결과. 하이퍼파라미터는 Dev set을 사용하여 선택되었다. 보고된 Dev 및 Test 점수는 해당 하이퍼파라미터를 사용하여 5번의 무작위 재시작(random restarts)에 걸쳐 평균화된 값이다.
fine-tuning 접근 방식을 ablation하기 위해, 우리는 BERT의 어떤 파라미터도 fine-tuning하지 않고 하나 이상의 layer에서 activation을 추출하여 feature-based 접근 방식을 적용한다. 이 contextual embedding들은 classification layer 이전에 무작위로 초기화된 2-layer 768-dimensional BiLSTM의 입력으로 사용된다.
결과는 Table 7에 제시되어 있다. BERT 는 state-of-the-art 방법들과 경쟁력 있는 성능을 보인다. 가장 좋은 성능을 보인 방법은 사전학습된 Transformer의 상위 4개 hidden layer에서 토큰 표현을 concatenate하는 방식으로, 이는 전체 모델을 fine-tuning하는 방식보다 F1 점수가 단 0.3 낮을 뿐이다. 이는 BERT가 fine-tuning 및 feature-based 접근 방식 모두에 효과적임을 보여준다.
6 Conclusion
최근 language model을 이용한 transfer learning으로 인한 경험적 개선은 **풍부하고 비지도적인 사전학습(unsupervised pre-training)**이 많은 언어 이해 시스템의 필수적인 부분임을 입증했다. 특히, 이러한 결과는 저자원(low-resource) task조차도 깊은 단방향(unidirectional) 아키텍처의 이점을 누릴 수 있게 한다. 우리의 주요 기여는 이러한 발견을 깊은 양방향(bidirectional) 아키텍처로 더욱 일반화하여, 동일한 사전학습 모델이 광범위한 NLP task를 성공적으로 해결할 수 있도록 한 것이다.
Appendix for "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"
우리는 부록을 세 가지 섹션으로 구성한다:
- Appendix A: BERT에 대한 추가 구현 세부 사항이 제시되어 있다.
- Appendix B: 실험에 대한 추가 세부 사항이 제시되어 있다.
- Appendix C: 추가 ablation study가 제시되어 있다.
BERT에 대한 추가 ablation study는 다음을 포함한다:
- 학습 단계 수의 영향 (Effect of Number of Training Steps)
- 다양한 마스킹 절차에 대한 Ablation (Ablation for Different Masking Procedures)
A Additional Details for BERT
A. 1 Illustration of the Pre-training Tasks
다음은 사전학습 task의 예시이다.
Masked LM 및 마스킹 절차 (Masked LM and the Masking Procedure)
레이블이 없는 문장이 "my dog is hairy"이고, 무작위 마스킹 절차 중에 4번째 토큰(hairy에 해당)을 선택했다고 가정할 때, 우리의 마스킹 절차는 다음과 같이 설명될 수 있다:
- 80%의 경우: 단어를 [MASK] 토큰으로 대체한다. 예: my dog is hairy → my dog is [MASK]
- 10%의 경우: 단어를 무작위 단어로 대체한다. 예: my dog is hairy → my dog is apple
- 10%의 경우: 단어를 변경하지 않고 그대로 둔다. 예: my dog is hairy → my dog is hairy. 이 절차의 목적은 표현(representation)이 실제로 관찰된 단어 쪽으로 편향되도록 유도하는 것이다.
이 절차의 장점은 Transformer encoder가 어떤 단어를 예측하도록 요청받을지 또는 어떤 단어가 무작위 단어로 대체되었는지 알지 못한다는 것이다. 따라서 모든 입력 토큰에 대한 분포적 문맥 표현(distributional contextual representation)을 유지하도록 강제된다. 또한, 무작위 대체는 전체 토큰의 1.5% (즉, 15%의 10%)에서만 발생하므로, 모델의 언어 이해 능력에 해를 끼치지 않는 것으로 보인다. Section C.2에서 이 절차의 영향을 평가한다.
Figure 3: 사전학습 모델 아키텍처의 차이점. BERT는 양방향 Transformer를 사용한다. OpenAI GPT는 좌에서 우로(left-to-right) 진행하는 Transformer를 사용한다. ELMo는 **독립적으로 학습된 좌에서 우로 및 우에서 좌로 진행하는 LSTM의 연결(concatenation)**을 사용하여 다운스트림 task를 위한 feature를 생성한다. 이 세 가지 중, BERT의 표현(representation)만이 모든 layer에서 좌측 및 우측 문맥 모두에 공동으로 조건화된다. 아키텍처 차이 외에도, BERT와 OpenAI GPT는 fine-tuning 접근 방식인 반면, ELMo는 feature 기반 접근 방식이다.
표준 언어 모델 학습과 비교할 때, Masked LM은 각 배치에서 15%의 토큰에 대해서만 예측을 수행하므로, 모델이 수렴하기 위해 더 많은 사전학습 단계가 필요할 수 있음을 시사한다. Section C.1에서 우리는 MLM이 좌에서 우로 진행하는 모델(모든 토큰을 예측하는 모델)보다 약간 더 느리게 수렴하지만, MLM 모델의 경험적 개선이 증가된 학습 비용을 훨씬 능가한다는 것을 보여준다.
다음 문장 예측 (Next Sentence Prediction)
다음 문장 예측 task는 다음 예시들로 설명될 수 있다.
A. 2 Pre-training Procedure
각 학습 입력 시퀀스를 생성하기 위해, 우리는 코퍼스에서 두 개의 텍스트 스팬(span)을 샘플링한다. 이 스팬들은 일반적으로 단일 문장보다 훨씬 길지만(더 짧을 수도 있음), 우리는 이를 "문장"이라고 부른다. 첫 번째 문장에는 A 임베딩이, 두 번째 문장에는 B 임베딩이 부여된다. "다음 문장 예측(next sentence prediction)" task를 위해, 50%의 경우 B는 A 다음에 실제로 이어지는 문장이고, 50%의 경우 무작위 문장이다. 이들은 결합된 길이가 512 토큰 이하가 되도록 샘플링된다. LM 마스킹은 WordPiece 토큰화 이후 15%의 균일한 마스킹 비율로 적용되며, 부분 단어 조각(partial word pieces)에 대한 특별한 고려는 없다.
우리는 256 시퀀스(256 시퀀스 * 512 토큰 = 128,000 토큰/배치)의 배치 크기로 1,000,000 스텝 동안 학습을 진행했으며, 이는 33억 단어 코퍼스에 대해 약 40 에포크에 해당한다. 우리는 Adam optimizer를 사용했으며, 학습률은 1e-4, , , L2 가중치 감쇠(weight decay)는 0.01로 설정했다. 학습률은 처음 10,000 스텝 동안 웜업(warmup)한 후 선형적으로 감소시킨다. 모든 레이어에 0.1의 드롭아웃 확률을 적용했다. OpenAI GPT를 따라 표준 relu 대신 gelu 활성화 함수(Hendrycks and Gimpel, 2016)를 사용했다. 학습 손실은 마스킹된 LM likelihood의 평균과 다음 문장 예측 likelihood의 평균의 합이다.
BERT의 학습은 Pod 구성의 Cloud TPU 4개(총 16개 TPU 칩)에서 수행되었다. BERT의 학습은 Cloud TPU 16개(총 64개 TPU 칩)에서 수행되었다. 각 사전학습은 완료하는 데 4일이 소요되었다.
어텐션(attention)은 시퀀스 길이에 대해 이차적(quadratic)이기 때문에, 긴 시퀀스는 불균형적으로 많은 비용이 든다. 실험에서 사전학습 속도를 높이기 위해, 우리는 전체 스텝의 90% 동안 시퀀스 길이 128로 모델을 사전학습했다. 그런 다음, 나머지 10%의 스텝 동안 시퀀스 길이 512로 학습하여 positional embedding을 학습했다.
A. 3 Fine-tuning Procedure
Fine-tuning 시에는 batch size, learning rate, 학습 epoch 수를 제외한 대부분의 모델 하이퍼파라미터는 사전학습(pre-training)과 동일하게 유지된다. Dropout 확률은 항상 0.1로 고정되었다. 최적의 하이퍼파라미터 값은 task마다 다르지만, 우리는 다음 범위의 값들이 모든 task에서 잘 작동함을 발견했다:
- Batch size: 16, 32
- Learning rate (Adam): 5e-5, 3e-5, 2e-5
- Number of epochs: 2, 3, 4
또한, 우리는 대규모 데이터셋(예: 10만 개 이상의 labeled training example)이 소규모 데이터셋보다 하이퍼파라미터 선택에 훨씬 덜 민감하다는 것을 관찰했다. Fine-tuning은 일반적으로 매우 빠르므로, 위 파라미터들에 대해 단순히 exhaustive search를 수행하고 개발 세트에서 가장 좋은 성능을 보이는 모델을 선택하는 것이 합리적이다.
A. 4 Comparison of BERT, ELMo ,and OpenAI GPT
여기서는 ELMo, OpenAI GPT, BERT를 포함한 최근 인기 있는 표현 학습(representation learning) 모델들의 차이점을 연구한다. 모델 아키텍처 간의 비교는 Figure 3에 시각적으로 나타나 있다. 아키텍처 차이 외에도, BERT와 OpenAI GPT는 fine-tuning 접근 방식인 반면, ELMo는 feature-based 접근 방식이라는 점에 주목해야 한다.
BERT와 가장 비교할 만한 기존 사전학습(pre-training) 방법은 OpenAI GPT이다. 이 모델은 대규모 텍스트 코퍼스에서 left-to-right Transformer LM을 학습시킨다. 사실, BERT의 많은 설계 결정은 두 방법의 비교를 최소화할 수 있도록 GPT와 최대한 유사하게 만들려는 의도에서 이루어졌다. 본 연구의 핵심 주장은 양방향성(bi-directionality)과 Section 3.1에서 제시된 두 가지 사전학습 task가 경험적 개선의 대부분을 설명한다는 것이다. 하지만 BERT와 GPT가 학습된 방식에는 몇 가지 다른 점이 있음을 언급한다:
- GPT는 BooksCorpus (800M 단어)로 학습되었다; BERT는 BooksCorpus (800M 단어)와 Wikipedia (2,500M 단어)로 학습되었다.
- GPT는 fine-tuning 시에만 도입되는 문장 구분자([SEP])와 분류자 토큰([CLS])을 사용한다; BERT는 사전학습 중에 [SEP], [CLS] 및 문장 A/B 임베딩을 학습한다.
- GPT는 32,000 단어의 배치 크기로 1M 스텝 동안 학습되었다; BERT는 128,000 단어의 배치 크기로 1M 스텝 동안 학습되었다.
- GPT는 모든 fine-tuning 실험에 대해 5e-5의 동일한 learning rate를 사용했다; BERT는 개발 세트에서 가장 좋은 성능을 보이는 task-specific fine-tuning learning rate를 선택한다.
이러한 차이점들의 영향을 분리하기 위해, 우리는 Section 5.1에서 ablation 실험을 수행했으며, 이는 개선의 대부분이 실제로 두 가지 사전학습 task와 그들이 가능하게 하는 양방향성에서 비롯됨을 보여준다.
A. 5 Illustrations of Fine-tuning on Different Tasks
다양한 task에 대한 BERT fine-tuning의 예시는 Figure 4에서 확인할 수 있다. 우리의 task-specific 모델은 BERT에 하나의 추가적인 출력 layer를 통합하여 구성되므로, 최소한의 파라미터만 새로 학습하면 된다. 이 task들 중에서 (a)와 (b)는 시퀀스 레벨(sequence-level) task이고, (c)와 (d)는 토큰 레벨(token-level) task이다. 그림에서 는 입력 embedding을 나타내고, 는 토큰 의 contextual representation을 나타낸다. **[CLS]**는 분류 출력(classification output)을 위한 특별한 심볼이며, **[SEP]**는 연속적이지 않은 토큰 시퀀스를 분리하기 위한 특별한 심볼이다.
B Detailed Experimental Setup
B. 1 Detailed Descriptions for the GLUE Benchmark Experiments.
Table 1의 GLUE 결과는 https://gluebenchmark.com/leaderboard 및 https://blog.openai.com/language-unsupervised에서 가져왔다. GLUE 벤치마크는 다음 데이터셋들을 포함하며, 각 데이터셋에 대한 설명은 Wang et al. (2018a)에서 요약된 내용을 기반으로 한다:
**MNLI (Multi-Genre Natural Language Inference)**는 대규모의 크라우드소싱 기반 entailment 분류 task이다 (Williams et al., 2018). 두 문장 쌍이 주어졌을 때, 두 번째 문장이 첫 번째 문장에 대해 entailment, contradiction, 또는 neutral 중 어떤 관계인지를 예측하는 것이 목표이다.
**QQP (Quora Question Pairs)**는 이진 분류 task로, Quora에 질문된 두 질문이 의미적으로 동일한지 여부를 판단하는 것이 목표이다 (Chen et al., 2018).
**QNLI (Question Natural Language Inference)**는 Stanford Question Answering Dataset (Rajpurkar et al., 2016)의 한 버전으로, 이진 분류 task로 변환되었다 (Wang et al., 2018a). 긍정 예시는 정답을 포함하는 (질문, 문장) 쌍이며, 부정 예시는 동일한 문단에서 정답을 포함하지 않는 (질문, 문장) 쌍이다.
Figure 4: 다양한 Task에 대한 BERT Fine-tuning 예시.
**SST-2 (The Stanford Sentiment Treebank)**는 이진 단일 문장 분류 task로, 영화 리뷰에서 추출된 문장들과 그 감성에 대한 사람의 주석으로 구성된다 (Socher et al., 2013).
**CoLA (The Corpus of Linguistic Acceptability)**는 이진 단일 문장 분류 task로, 영어 문장이 문법적으로 "수용 가능한지" 여부를 예측하는 것이 목표이다 (Warstadt et al., 2018).
**STS-B (The Semantic Textual Similarity Benchmark)**는 뉴스 헤드라인 및 기타 출처에서 가져온 문장 쌍들의 모음이다 (Cer et al., 2017). 이들은 두 문장이 의미적으로 얼마나 유사한지를 1부터 5까지의 점수로 주석 처리되었다.
**MRPC (Microsoft Research Paraphrase Corpus)**는 온라인 뉴스 출처에서 자동으로 추출된 문장 쌍들로 구성되며, 해당 문장 쌍의 문장들이 의미적으로 동일한지 여부에 대한 사람의 주석이 포함되어 있다 (Dolan and Brockett, 2005).
**RTE (Recognizing Textual Entailment)**는 MNLI와 유사한 이진 entailment task이지만, 학습 데이터가 훨씬 적다 (Bentivogli et al., 2009).
**WNLI (Winograd NLI)**는 작은 자연어 추론 데이터셋이다 (Levesque et al., 2011). GLUE 웹페이지는 이 데이터셋의 구성에 문제가 있다고 언급하며, GLUE에 제출된 모든 학습 시스템이 다수 클래스를 예측하는 65.1의 baseline 정확도보다 낮은 성능을 보였다. 따라서 OpenAI GPT에 공정하게 평가하기 위해 이 데이터셋은 제외한다. 우리의 GLUE 제출에서는 항상 다수 클래스를 예측했다.
C Additional Ablation Studies
C. 1 Effect of Number of Training Steps
Figure 5는 스텝 동안 사전학습된 체크포인트로부터 fine-tuning한 후의 MNLI Dev 정확도를 보여준다. 이를 통해 다음 질문에 답할 수 있다:
- 질문: BERT가 높은 fine-tuning 정확도를 달성하기 위해 정말로 그렇게 많은 양의 사전학습(128,000 words/batch * 1,000,000 steps)이 필요한가? 답변: 그렇다. BERT는 500k 스텝으로 학습했을 때보다 1M 스텝으로 학습했을 때 MNLI에서 거의 1.0%의 추가 정확도를 달성한다.
- 질문: MLM 사전학습은 각 배치에서 모든 단어가 아닌 15%의 단어만 예측하기 때문에 LTR 사전학습보다 수렴 속도가 느린가? 답변: MLM 모델은 LTR 모델보다 약간 느리게 수렴한다. 그러나 절대 정확도 측면에서는 MLM 모델이 거의 즉시 LTR 모델을 능가하기 시작한다.
C. 2 Ablation for Different Masking Procedures
Section 3.1에서는 BERT가 masked language model (MLM) objective로 사전학습할 때, target token을 마스킹하는 데 혼합 전략을 사용한다고 언급한다. 다음은 다양한 마스킹 전략의 효과를 평가하기 위한 ablation study이다.
Figure 5: 학습 단계 수에 대한 Ablation. 이는 단계 동안 사전학습된 모델 파라미터로부터 시작하여 fine-tuning 후의 MNLI 정확도를 보여준다. x축은 값이다.
마스킹 전략의 목적은 사전학습과 fine-tuning 간의 불일치(mismatch)를 줄이는 것이다. 왜냐하면 [MASK]
심볼은 fine-tuning 단계에서는 나타나지 않기 때문이다. 우리는 MNLI와 NER 모두에 대한 Dev 결과를 보고한다. NER의 경우, fine-tuning 방식과 feature-based 방식 모두를 보고하는데, 이는 모델이 표현을 조정할 기회가 없으므로 feature-based 방식에서 불일치가 증폭될 것으로 예상하기 때문이다.
Masking Rates | Dev Set Results | ||||
---|---|---|---|---|---|
Mask | Same | Rnd | MNLI Fine-tune | NER Feature-based | |
80% | 10% | 10% | 84.2 | 95.4 | 94.9 |
100% | 0% | 0% | 84.3 | 94.9 | 94.0 |
80% | 0% | 20% | 84.1 | 95.2 | 94.6 |
80% | 20% | 0% | 84.4 | 95.2 | 94.7 |
0% | 20% | 80% | 83.7 | 94.8 | 94.6 |
0% | 0% | 100% | 83.6 | 94.9 | 94.6 |
Table 8: 다양한 마스킹 전략에 대한 Ablation.
결과는 Table 8에 제시되어 있다. 표에서 MASK는 MLM을 위해 target token을 [MASK]
심볼로 대체하는 것을 의미한다. SAME은 target token을 그대로 유지하는 것을 의미하며, RND는 target token을 다른 임의의 token으로 대체하는 것을 의미한다.
표의 왼쪽 부분에 있는 숫자는 MLM 사전학습 동안 사용된 특정 전략의 확률을 나타낸다 (BERT는 80%, 10%, 10%를 사용). 표의 오른쪽 부분은 Dev set 결과를 나타낸다. feature-based 방식의 경우, 우리는 BERT의 마지막 4개 layer를 feature로 연결했는데, 이는 Section 5.3에서 가장 좋은 접근 방식으로 나타났다.
표에서 볼 수 있듯이, fine-tuning은 다양한 마스킹 전략에 놀랍도록 강건(robust)하다. 그러나 예상대로, NER에 feature-based 방식을 적용할 때 MASK 전략만 사용하는 것은 문제가 있었다. 흥미롭게도, RND 전략만 사용하는 것은 우리의 전략보다 훨씬 더 나쁜 성능을 보인다.