AI/Paper Review

[논문 리뷰] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

벵자민 2024. 2. 13. 10:04
728x90
반응형

2019년 구글이 발표한 BERT 논문 리뷰입니다.

 

출처 : https://arxiv.org/abs/1810.04805

 

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unla

arxiv.org

 

1 Introduction

사전 훈련된 언어 모델(Pre-trained Language Model, PLM)은 자연어 처리(NLP) 작업의 성능을 개선하는 데 기여할 수 있습니다. 현재 PLM 적용 방법은 크게 두 가지로 나뉩니다: 특성 기반(feature-based)과 미세 조정(fine-tuning)입니다. 특성 기반 접근 방식의 경우(ELMo와 같이), 특정 작업에 적합한 구조를 가지고 있으며, 사전 훈련된 표현을 특성으로 추가하여 사용합니다. 반면, 미세 조정 방식(GPT와 같이)은 특정 작업에 맞춤화된 파라미터를 최소화하고, 사전 훈련된 파라미터를 미세 조정합니다. 두 방법 모두 사전 훈련 과정에서는 동일한 목표를 사용하고, 일방향 언어 모델을 사용합니다.

 

하지만, 이러한 일방향 구조는 성능에 제한을 둘 수 있습니다. OpenAI GPT는 왼쪽에서 오른쪽으로의 구성을 사용하는데, 이는 현재 토큰이 이전에 등장한 토큰들에만 주의를 기울일 수 있다는 한계가 있습니다. 이는 질문-응답 작업과 같이 문맥을 양방향으로 이해해야 하는 경우에 큰 단점이 될 수 있습니다.

 

이 논문에서는 미세 조정 방식을 개선한 BERT(Bidirectional Encoder Representations from Transformers)를 소개합니다. BERT는 마스크된 언어 모델(MLM)을 사용하여 성능을 향상시킵니다. MLM은 임의의 토큰을 마스킹하고, 마스킹된 토큰을 예측하는 것을 목표로 합니다. 이 방법은 기존의 왼쪽에서 오른쪽으로의 구조와 달리, 왼쪽과 오른쪽 문맥을 모두 학습할 수 있게 합니다. 추가로, 다음 문장 예측 작업도 수행됩니다.

 

2 Related Work

비지도 학습 기반 특성 접근 방식

단어 표현 학습은 크게 비신경망 방식과 신경망 방식(word2vec, GloVe 등)으로 나뉩니다. 사전 훈련된 단어 임베딩은 NLP 시스템의 성능을 개선하는 데 기여했습니다. 단어 임베딩을 학습하기 위해, 왼쪽에서 오른쪽으로의 언어 모델링이나 기타 목표를 사용하여 학습이 진행되었습니다.

BERT에 대한 전반적인 사전 학습 및 미세 조정 절차

ELMo는 양방향 LM(왼쪽에서 오른쪽, 오른쪽에서 왼쪽 LM)을 사용하여 문맥을 고려한 단어 임베딩을 제공합니다. 한 단어의 표현은 양방향 표현을 결합하여 제공됩니다. ELMo의 사용은 여러 NLP 벤치마크에서 최고의 성능을 달성할 수 있었습니다(질문-응답, 감성 분석, 개체명 인식 등).

비지도 학습 기반 미세 조정 접근 방식

최근에는 레이블이 지정되지 않은 텍스트를 사용하여 사전 훈련된 컨텍스트 토큰 표현을 생성하고, 지도 학습 작업에서 미세 조정하는 방식이 제안되었습니다. 이 방식의 장점은 학습 초기부터 완료까지 파라미터의 수가 적다는 것입니다. 이 기반으로, OpenAI의 GPT는 GLUE 벤치마크의 다양한 작업에서 최고의 성능을 달성할 수 있었습니다.

Supervised 데이터에서의 전이 학습

큰 데이터셋을 가진 작업(NLI, MT 등)을 사용하여 전이 학습을 수행하는 방법도 있습니다. 컴퓨터 비전 분야에서도 전이 학습이 중요하게 사용됩니다.

 

3 BERT

BERT는 크게 사전 훈련 단계와 미세 조정 단계, 두 단계로 나뉩니다.

사전 훈련 단계에서는 레이블이 지정되지 않은 데이터를 기반으로 학습이 진행됩니다. 미세 조정 과정에서는 모델이 사전 훈련된 파라미터로 초기화된 후, 레이블이 지정된 데이터로 미세 조정됩니다. 실제 작업에서 사용되는 모델은 처음에 동일한 파라미터로 시작하지만, 최종적으로는 서로 다른 미세 조정된 모델을 가지게 됩니다. BERT는 사전 훈련된 모델과 미세 조정된 모델 사이의 구조적 차이가 거의 없습니다.

모델 구조

BERT는 다층 양방향 트랜스포머 인코더를 사용합니다. 기존의 트랜스포머와 거의 유사한 구조를 사용하기 때문에, 해당 구조에 대한 설명은 이 논문에서 생략합니다.

 

트랜스포머 블록 층수 = L 은닉 크기 = H 자기 주의 헤드 수 = A

 

이 논문에서는 두 가지 크기의 모델을 제안합니다.

BERT_BASE: L=12, H=768, A=12, 총 파라미터=110M BERT_LARGE: L=24, H=1024, A=16, 총 파라미터=340M BERT_BASE는 OpenAI의 GPT와 비교할 목적으로 동일한 크기로 설계되었습니다.

BERT는 현재 토큰의 좌우를 모두 참조할 수 있는 양방향 자기 주의를 수행하는 반면, GPT는 현재 토큰의 왼쪽에 있는 문맥만 참조할 수 있다는 차이가 있습니다.

입력/출력 표현

BERT 입력 표현

BERT의 입력 표현은 세 가지 임베딩 값의 합으로 구성되며, 이는 다음과 같습니다:

  1. 토큰 임베딩(Token Embeddings): 토큰 임베딩은 WordPiece 임베딩 방식을 사용하여, 자주 등장하는 동시에 가장 긴 길이의 서브워드(sub-word)를 하나의 단위로 만듭니다. 이 방식은 자주 등장하는 단어(서브워드)는 그 자체로 단위가 되고, 자주 등장하지 않는 단어(rare word)는 더 작은 서브워드로 분해됩니다. 이는 이전에 자주 등장하지 않은 단어들을 모두 Out-of-vocabulary(OOV)로 처리하여 모델링 성능을 저하시켰던 문제를 해결합니다. 모든 입력 문장의 시작에는 [CLS] 토큰(special classification token)이 주어지며, 이 [CLS] 토큰은 모델의 모든 계층을 거친 후 토큰 시퀀스의 결합된 의미를 나타냅니다. 간단한 분류기를 이 [CLS] 토큰에 붙여 단일 문장이나 연속된 문장을 분류할 수 있으며, 분류 작업이 아닌 경우에는 이 토큰을 무시합니다. 문장의 구분을 위해 [SEP] 토큰을 사용합니다.
  2. 세그먼트 임베딩(Segment Embeddings): 세그먼트 임베딩은 토큰으로 나누어진 단어들을 다시 하나의 문장으로 구분합니다. 첫 번째 [SEP] 토큰까지는 0으로, 그 이후 [SEP] 토큰까지는 1의 값을 가지는 마스크를 만들어 각 문장을 구분합니다.
  3. 위치 임베딩(Position Embeddings): 위치 임베딩은 토큰의 순서를 인코딩합니다. BERT는 트랜스포머의 인코더를 사용하며, 트랜스포머는 자기 주목(Self-Attention) 모델을 사용합니다. 자기 주목은 입력의 위치에 대해 고려하지 못하므로, 입력 토큰의 위치 정보를 제공해야 합니다. 트랜스포머에서는 Sigmoid 함수를 이용한 위치 인코딩을 사용했으며, BERT에서는 이를 변형하여 위치 인코딩을 사용합니다.

이렇게 언급된 각 임베딩들을 토큰별로 모두 더하여 BERT의 입력 벡터로 사용합니다.

 

3.1 Pre-Training BERT

전통적인 left-to-right/right-to-left LM을 사용해 사전 훈련하는 ELMo, GPT와는 달리, BERT는 2개의 비지도 학습 작업을 사용해 학습됩니다.

Task #1: Masked LM

상식적으로 양방향 모델이 left-to-right LM이나 right-to-left LM, 또는 두 결과를 결합한 것보다 성능이 더 좋다고 이해할 수 있습니다. 하지만, 전통적인 조건부 LM의 경우 left-to-right/right-to-left 방식으로만 수행할 수 있습니다. 양방향으로 처리하면 간접적으로 예측하려는 단어를 참조하게 되고, 다층 구조에서 해당 단어를 예측할 수 있기 때문입니다. 이 문제를 해결하기 위해 BERT는 일정 비율의 토큰을 마스킹합니다. (이러한 이유로 마스크된 LM이라고 합니다.) 이 논문에서는 전체 토큰의 15%를 마스킹합니다.

 

이 방식은 사전 훈련 과정에서는 매우 효과적일 수 있지만, 실제 다른 작업을 수행할 때 문제가 발생할 수 있습니다. 미세 조정 과정에서는 [MASK] 토큰을 사용하지 않기 때문입니다. 이 문제를 완화하기 위해, 전체 15% 중 80%는 [MASK]로 치환하고, 10%는 랜덤한 토큰으로 치환하며, 나머지 10%는 기존의 토큰을 그대로 사용합니다. 최종적으로 크로스 엔트로피 손실을 사용해 기존의 토큰을 예측하도록 학습됩니다.

Task #2: Next Sentence Prediction (NSP)

질문-응답(QA), 자연어 추론(NLI) 등의 작업은 두 문장 사이의 관계를 이해해야 합니다. 이러한 특성은 LM을 통해 학습하기 어렵기 때문에, NSP라는 작업에 대해서도 함께 학습합니다. 학습 과정에서 모델은 두 문장 A, B를 입력으로 받습니다. 50%의 경우 두 번째 문장 B는 실제로 A의 다음 문장이고, 나머지 50%의 경우 B는 관련 없는 임의의 문장입니다. B가 다음 문장인 경우 IsNext, 임의의 문장인 경우 NotNext로 레이블링됩니다. 간단해 보일 수 있지만, QA와 NLI 작업의 성능 향상에 큰 도움이 됩니다.

Pre-training data

사전 훈련 corpus로는 BooksCorpus(800M 단어), English Wikipedia(2,500M 단어) 데이터를 사용했습니다.

위키피디아의 경우 텍스트 패시지만 사용했으며, 목록이나 표 등은 모두 제외했습니다. 긴 문맥을 학습하기 위해, Billion Word Benchmark와 같은 섞인 문장으로 구성된 데이터는 사용하지 않았습니다.

 

3.2 Fine-tuning BERT

하류 작업에 BERT를 적용하는 것은 상대적으로 단순합니다. 입력(한 문장 또는 두 문장)의 수에 따라 앞서 설명한 대로 적절하게 하나의 시퀀스로 생성하여 모델의 입력으로 제공합니다. 두 문장이 입력으로 제공된 경우, 하나의 시퀀스로 생성하고, 두 문장 사이의 자기 주의도 수행됩니다.

미세 조정 방법은 작업에 맞는 입력과 출력을 모델에 제공하여 파라미터를 해당 작업에 맞게 엔드 투 엔드로 업데이트하는 것입니다. 토큰 표현은 토큰 수준 작업(시퀀스 태깅, 질문-응답 등)의 입력으로 사용됩니다. [CLS] 토큰은 분류 작업을 수행하기 위해 사용됩니다.

 

사전 훈련과 비교했을 때, 미세 조정은 상대적으로 적은 비용으로 수행할 수 있습니다. 해당 논문에서 제공하는 결과는 대부분 Google Cloud TPU에서 1시간 또는 GPU에서 몇 시간 내에 처리할 수 있습니다(동일한 사전 훈련 모델에서 미세 조정하는 시간만 고려했을 때).

 

4 Experiments

BERT fine-tuning의 11개 NLP작업 결과를 소개하고있습니다.

다양한 작업에서 BERT를 Fine-tuning

 

4.1 GLUE

GLUE Test  결과

4.2 SQuAD v1.1

GLUE 데이터셋을 BERT에 미세 조정할 때와는 다른 방식으로, SQuAD는 질문과 지문이 주어지고, 그 중 부분 문자열인 정답을 맞추는 태스크입니다. BERT는 이러한 차이를 매우 간단한 방법론으로 극복합니다. 질문을 A 임베딩, 지문을 B 임베딩으로 처리하고, 지문에서 정답이 되는 부분 문자열의 시작과 끝을 찾는 태스크로 문제를 변환합니다. 이 접근 방식으로 BERT_large는 기존의 모든 시스템을 큰 차이로 능가하며 최고 성능을 달성했습니다.

SQuAD 1.1 results

 

4.3 SQuAD v2.0

SQuAD v1.1 대비 v2.0에서 주요 차이점은 v2.0이 답변이 존재하지 않을 수 있는 질문을 포함한다는 점입니다. BERT는 단순한 미세 조정 접근 방식을 통해 이러한 복잡한 질문 답변 태스크에서의 깊은 양방향 이해를 가능하게 합니다.

SQuAD 2.0 results

4.4 SWAG

SWAG 데이터셋은 113k 문장 쌍으로 구성되어 있으며, 구체적인 상식 추론을 측정하기 위해 사용됩니다. 주어진 문장에 이어 가장 잘 이어지는 문장을 4개의 선택지 중에서 찾는 태스크입니다. BERT를 SWAG 데이터셋에 적용하는 것은 GLUE 데이터셋에 적용하는 방법과 유사합니다. 주어진 문장(sentence A)과 가능한 이어질 문장(sentence B)을 연결한 4개의 입력 시퀀스를 구성합니다. 이 태스크에서도 BERT는 인간을 능가하는 SOTA를 달성했습니다.

SWAG Dev and Test accuracies

 

5 Ablation Studies

이 섹션에서는 BERT 모델의 핵심 요소들이 얼마나 중요한지를 파악하기 위해, 주요 요소를 하나씩 제거하며 그 효과를 분석합니다. 개인적으로 이 논문에서 가장 중요한 섹션이라고 생각됩니다.

5.1 Effect of Pre-training Tasks

No NSP: 마스크된 언어 모델(MLM)은 사용하지만, 다음 문장 예측(NSP)를 제거한 모델

LTR & No NSP: 마스크된 언어 모델(MLM) 대신 왼쪽에서 오른쪽으로(LTR) 언어 모델을 사용하고, NSP도 제거한 모델입니다. 이는 OpenAI GPT 모델과 유사하지만, 더 많은 훈련 데이터를 사용

실험 결과, 사전 훈련 태스크를 하나라도 제거하면 성능이 크게 떨어집니다. 특히 NSP를 제거한 경우, NLI 계열의 태스크에서 성능이 크게 하락하는데, 이는 NSP 태스크가 문장 간의 논리적 구조 파악에 중요한 역할을 하고 있음을 시사합니다. MLM 대신 LTR을 사용하면 성능 하락이 더욱 심각해집니다. BiLSTM을 추가해도 MLM을 사용할 때보다 성능이 떨어짐을 통해, MLM 태스크가 더 깊은 양방향성을 가지고 있음을 알 수 있습니다.

 

5.2 모델 크기에 따 효과

모델 크기가 클수록 정확도가 상승함을 볼 수 있습니다. 번역 태스크나 언어 모델링과 같은 대규모 태스크에서는 모델 크기가 클수록 성능이 계속해서 향상됩니다. 특히 BERT의 경우, 사전 훈련 덕분에 다운스트림 태스크를 수행하는 데이터셋의 크기가 작아도 모델 크기가 클수록 정확도가 상승함을 확인할 수 있습니다.

모델 크기에 따른 효과

5.3 훈련 단계 수의 효과

미세 조정 단계에서 높은 정확도를 얻으려면, 사전 훈련 단계에서 많은 훈련 단계가 필요합니다. 0.5M 단계에 비해 1M 단계에서 정확도가 거의 1.0% 상승함을 볼 수 있습니다. MLM으로 학습하면 15%의 단어만 맞추는 것으로 학습을 진행하기 때문에, LTR보다 수렴 속도가 느리지만, LTR보다 훨씬 먼저 더 나은 성능을 보입니다.

5.4 BERT의 특징 기반 접근 방법

지금까지 BERT는 사전 훈련 후 간단한 분류기를 추가해 모든 계층을 다시 학습시키는 미세 조정 방법만을 설명했습니다. 하지만, BERT를 ELMo와 같이 특징 기반 접근 방법으로도 사용할 수 있습니다. 이 접근법은 몇 가지 이점이 있습니다. Transformer 인코더는 모든 NLP 태스크를 대표하지 못하므로, 특정 NLP 태스크를 수행할 수 있는 네트워크를 추가로 사용할 수 있습니다. 또한, 계산적 이점을 얻을 수 있습니다. 이 섹션에서는 BERT를 ELMo와 같이 마지막 레이어에 Bi-LSTM을 추가하고, 해당 레이어만 학습시키는 방법을 사용했습니다.

 

 

마치며

NLP분야에 큰 영향을 미치며 사전학습된 언어모델의 새로운 시대를 연 BERT 모델에 대해서 공부해보았는데BERT의 구조에 대해 이해하며 MLM, NSP 등의 접근법 등이 인상 깊었던 것 같습니다. 

728x90
반응형