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

xeoyeon·2024년 11월 11일

Research paper review

목록 보기
5/8

Abstract

BERT(Bidirectional Encoder Representations from Transformers)

unlabeled data로 모든 layer에서 양방향 학습을 진행
-> 모델이 각 토큰에 대해 전후 맥락을 동시에 고려하도록 함



Introduction

  • pre-training with unsupervised learning이 많은 task의 성능 향상을 가져옴
    ex) Sentence-level tasks : NLI(자연어 추론), paraphrasing
    ex) Token-level tasks : Entity recognition, QA(question answering)

  • pre-trained language representation을 downstream task에 적용하는 방법
    1.feature-based
    2.fine-tuning

1. feature-based : ELMo, GPT

  • ELMo : task specific arch + pretrained representation.
    ELMo는 양방향 LSTM을 사용하여 각 문장을 왼쪽에서 오른쪽, 오른쪽에서 왼쪽의 두 가지 방향으로 처리. 하지만 ELMo는 BERT처럼 모든 레이어에서 양방향을 동시에 조건화하는 것이 아니라, 각각의 단방향 모델의 출력을 결합하는 방식으로 양방향성을 구현. BERT와 비교하면, 문장의 모든 레이어에서 양방향 맥락을 동시에 참조하지는 못함.

  • GPT : undirectional language model.
    self-attention 레이어가 이전 토큰들만을 바라보며 학습. 이로 인해 문장 생성에는 뛰어나지만, 모든 문맥을 동시에 이해하기에는 제한적.
    => 단방향성이 앞에서 언급한 두 문장의 관계성을 파악하는 작업(NLI, Paraphrasing)이나, QA와 같은 토큰 수준의 작업에서 성능이 제한적이게 됨.

2. fine-tuning : BERT

pre-training deep bidirectional Transformer
input: [CLS] + 문장1 + [SEP] + 문장2 + [SEP]

Masked Language Model (MLM) + Next Sentence Prediction(NSP)

  • MLM : 입력 문장에서 일부 단어(토큰)를 무작위로 [Mask] 토큰으로 마스킹하고, 마스킹된 단어를 문맥을 기반으로 예측하는 것이 목적

  • NSP : 두 개의 문장이 주어졌을 때, 두 번째 문장이 첫 번째 문장의 다음에 이어지는 문장인지 아닌지를 예측하도록 학습. [CLS] 토큰에 해당하는 출력을 기반으로 NSP 여부를 판단하는데, [CLS] 토큰의 표현이 두 문장의 전체적인 관계를 나타내도록 학습

first fine-tuning 기반의 representation model로, 여러 task에서 SOTA를 뛰어넘으며, 기존의 task-specific 아키텍처보다 더 뛰어난 성능을 보임

link for code and pre-trained models




2. Related Work

history of pre-training general language representations

2.1 Unsupervised Feature-based Approaches

Pre-trained word embeddings가 중요해지면서, sentence embedding 과paragraph embedding으로 이어졌다. 그리고 traditional word embedding에 새로운 접근방식을 제공한 것이 ELMo.

  • ELMo : left-to-right + right-to-left (단순히 concat)
    그러나 not deeply bidirectional

2.2 Unsupervised Fine-tuning Approaches

초기 feature-based approaches에 대한 연구
: unlabeled text로 부터 word embedding parameter를 pre-training 하였음
: feature-based 접근법은 정적인 벡터 표현을 사용하여, 항상 하나의 단어가 고정된 벡터를 가지기 때문에 단어 수준에서만 의미를 반영하며, 문장이나 문서 수준의 문맥적 정보(contextual information)를 효과적으로 반영하는 데 한계가 있었다

최근
: pre-trained from unlabeled text + fine-tuned for a supervised downstream task (GPT또한)

2.3 Transfer Learning from Supervised Data

transfer-learning의 중요성
NLI, machine translation 뿐만아니라 CV에서도 transfre-learning의 중요성이 강조됨





3. BERT

BERT를 두가지 과정으로 나누어 설명하자면(pre-training/fine-tuning),

  • pre-training : unsupervised learning
    : 여러 pre-trained task에 대해 unlabeled data로 학습
  • fine-tuning : supervised learning
    : pre-trained 된 파라미터로 초기화 된 후 labeled data로 학습하면서 각 task에 알맞게 가중치가 업데이트 됨.

가장 큰 특징은 BERT는 서로 다른 task에 대하여 통일된 모델 구조를 사용한다는 점이다. pre-trained 된 모델과 Downstream된 모델의 architecture의 차이가 적다는 것이다. 아래의 그림을 참고하자.


Model Architecture

  • multi-layer 양방향 transformer encoder
  • transformer 모델의 인코더만을 사용
    => why only encoder? 양방향 맥락을 동시에 보는 모델에서는 디코더가 필요하지 않음. BERT는 텍스트 생성을 목적으로 하는 모델이 아니라 디코더가 필요 없다. 디코더는 순차적으로 단어 생성을 위해 사용하는 구조이기 때문.(참고로 GPT는 transformer 모델의 decoder만을 사용함)

    - layer 수 : L
    - hidden size : H
    - self-attention head 수 : A
    라고 할 때, 두개의 모델 크기를 다음과 같이 정리하였다 :

    BERT_BASE (L=12, H=768, A=12, Total Parameters=110M)
    BERT_LARGE (L=24, H=1024,A=16, Total Parameters=340M)
    *이때 BERT_BASE는 비교를 위해 GPT와 모델 크기가 동일하게 설정하였다.


Input/Output Representations

다양한 downstream task를 수행하기 위해서는 모델의 input이 애매한 표현을 가지면 안된다. 참고로 이 논문에서 말하는 'sentence'는 문장이라는 의미보다도 연속적인 text를 의미하며 'sequence'는 input token의 집합으로 한문장 혹은 두문장이 합쳐진 것들 의미한다.

  • WordPiece embedding을 사용 (30000 token vocabulary)
  • sentence pair는 하나의 sequence로 묶임
  • [CLS] : classification token으로, 매 sequence 앞에 등장. final hidden state에서 분류 문제를 위해 sequence representation을 종합한다.
    MLM에서는 [CLS] 토큰이 문장의 시작을 표시하지만, 마스킹된 단어를 예측하는 데는 직접적으로 사용되지 않음. NSP에서는 [CLS] 토큰이 두 문장의 관계를 판단하는 데 중요한 역할을 함.

  • [SEP] : sequence 내 두 sentence를 구분하는 구분자 역할
    pretrain 과정에서 SEP토큰은 MLM이아닌 NSP에서만 사용.MLM은 한 문장 내에서 마스킹된 단어를 예측하는 작업이고, NSP는 두 문장이 연관된 문장인지를 판별하는 작업이기 때문

아래는 BERT의 input representation을 나타낸 그림이다. 이 정보를 기반으로 모델이 입력을 처리하게 된다.

input representation : token embedding + segment embedding + position embedding

  • token embedding : 각 토큰에 대한 단어 벡터
  • segment embedding : 해당 토큰이 속한 문장(A 또는 B)을 나타내는 임베딩
  • position embedding : 입력 시퀀스 내에서 각 토큰의 위치를 나타내는 임베딩


3.1 Pre-training BERT

두 가지 task로 pre-train 을 진행

Task#1 : Masked LM

  • 기존 standard conditional language model의 제약
    한방향으로만 학습 가능하다. 양방향으로 학습을 하려고 할 경우, 자기자신을 간접적으로 볼 수 있는 문제가 발생
    => 예를 들어, 문장 내에서 특정 단어를 예측하는데, 양방향 모델은 이미 그 단어를 포함한 앞뒤 문맥을 모두 고려할 수 있게 되어 그 단어를 매우 쉽게 예측
    그러나 BERT는 해당 문제를 해결. 왜냐하면, 모델이 예측하는 것은 마스킹된 단어이고, 그 단어는 이미 [MASK]로 대체되었기 때문에 그 단어를 간접적으로 참조할 수 없기 때문.

vs Denoising Auto-Encoder (DAE) : 일부 입력 데이터를 손상시키고, 그 손상된 데이터를 복원하는 방식으로 훈련하는 auto-encoder의 변형. BERT는 DAE처럼 전체 문장을 복원하지 않고, 마스킹된 단어만 예측한다는 점에서 차이가 있음.

  • pre-training 과 fine-tuning 과의 불일치 문제
    BERT는 pre-training 과정에서 [MASK] 토큰을 사용하여 일부 단어를 마스킹하고 예측하는 방식으로 학습합니다. 하지만 fine-tuning에서는 [MASK] 토큰이 사용되지 않음.
    이를 해결하기 위해 BERT는 [MASK] 토큰을 항상 사용하지 않도록 함. 대신, 훈련 데이터에서 마스킹할 토큰을 선택할 때 몇 가지 방법을 섞어서 사용하였다 :

  • 15% 의 WordPiece token을 랜덤으로 마스킹하고 15%의 토큰 위치를 무작위로 선택하여 예측하였다.
    - 만약 i번째 토큰이 선택되면, 이 토큰은 다음과 같은 방식으로 마스킹:
    1. 80%의 확률로 [MASK] 토큰으로 교체
    2. 10%의 확률로 무작위 랜덤 토큰으로 교체
    3. 10%의 확률로 원래 토큰 그대로 둠

이렇게 하면 [MASK] 토큰이 항상 등장하는 훈련 방식을 피하면서, fine-tuning에서는 [MASK] 토큰 없이도 적응할 수 있도록 모델이 학습하였다. 이 퍼센티지는 아래의 실험을 통한 결과이다.


Task#2: Next Sentence Prediction (NSP)

QA나 NLI는 두 문장간의 관계에 대한 이해를 기반으로 하는 task => NSP가 이 task에 효과적임을 밝힘.
NSP의 목표는 두 문장이 연속적인 문장인지 아니면 무작위로 선택된 문장인지를 예측하는 것
훈련 방법: supervised learning (label : IsNext, NotNext)

  • 문장 A와 문장 B를 선택하는데
    - 50%의 확률-> 문장 B는 문장 A 바로 뒤에 올 실제 다음 문장. 이를 IsNext로 라벨링.
    - 다른 50%의 확률-> 문장 B는 문장 A와 관련 없는 무작위 문장. 이를 NotNext로 라벨링.

이전의 연구들은 문장 임베딩만을 전이하는 방식이었으나, BERT는 모든 파라미터를 전이학습(transfer learning) 방식으로 다운스트림 작업에 전달하며, 이는 문장 임베딩뿐만 아니라 모델 전체의 파라미터를 fine-tuning 과정에서 학습하도록 도움.

따라서 BERT는 단순한 문장 표현 학습을 넘어서, 문맥에 따른 단어 및 문장 이해를 고도로 학습하게 된다.


Pre-training data

  • BooksCorpus(책에서 추출된 텍스트 데이터셋)와 English Wikipedia(목록,표,헤더 제외한 텍스트만)를 사용
  • document level corpus 를 사용하는 것의 중요성 강조 (긴 문장들의 학습을 위해)


3.2 Fine-tuning BERT

BERT는 self-attention 메커니즘을 사용하여 두 문장을 하나로 결합한 후 처리( concatenate self-attention)하여 효과적으로 양방향 cross attention을 모델링함. 즉, 기존 방식에서 두 문장을 독립적으로 인코딩한 후, cross attention을 적용하여 관계를 모델링하는 것처럼 cross attention을 따로 구현할 필요 없이 self-attention을 통해 자연스럽게 구현.

input

각 downstream task에 알맞게 문장 A,B가 다음과 같이 변환된다 :

  1. Paraphrasing(의미가 유사한 문장 찾기): 두 문장 쌍
  2. Entailment(자연어 추론): 가설(hypothesis)과 전제(premise) 쌍
  3. Question Answering(질문 답변): 질문(question)과 문서(passage) 쌍
  4. Text Classification(텍스트 분류) 또는 Sequence Tagging(시퀀스 태깅): 단일 텍스트 쌍

output

  1. token-level representation : token representations을 출력 레이어로 전달 (시퀀스 태깅, 질문답변)
  2. sentence-level representation : [CLS] 토큰의 표현을 출력 레이어로 전달 (분류 작업 - 감정분석, 자연어 추론)




4. Experiments

11개의 NLP task에 대한 실험 결과

4.1 GLUE

  • 언어 모델의 범용적인 능력을 측정하는 benchmark
  • SOTA 기록

4.2 SQuADv1.1

  • SQuAD는 질문-답변을 위한 데이터셋.
  • SQuAD v1.1에서는 주어진 질문에 대해 문서에서 직접 답을 찾는 문제
  • SOTA 달성
    : BERT는 문서와 질문의 관계를 잘 이해하고 정확한 답을 찾아내는 데 매우 효과적임을 알 수 있음

4.3 SQuADv2.0

  • SQuAD v1.1의 확장으로, 답이 없는 질문도 포함되어 있음. 즉, 모델은 질문에 대해 답이 존재하지 않으면 "없다"는 답을 해야 함.
  • BERT는 F1 점수와 EM 점수에서 우수한 성능을 보임.

4.4 SWAG

  • 상황 예측을 위한 데이터셋으로, 주어진 문맥을 기반으로 가장 다음에 올 가능성이 높은 문장을 예측.
  • 높은 정확도 기록.




5. Ablation Studies

Ablation Study는 모델의 일부 요소를 제거하거나 변경하여 그 영향을 측정하는 방법. BERT 논문에서는 모델의 성능을 개선하기 위한 여러 가지 요소들이 어떻게 서로 상호작용하는지 이해하기 위해 여러 실험을 수행하였다.

5.1 Effect of Pre-training Tasks

  • MLM + NO NSP

  • LTR + NO NSP
    (* LTR : standard Left-to-Right model)
    : MLM아 LTR보다 더 나은 성능을 보임

  • NSP가 포함된 모델이 질문-응답 및 문장 관계 추론에서 성능을 높이는 데 중요한 역할을 함. 그러나 NSP를 제거한 모델이 단일 문장 분류나 문장 태깅 작업에서는 큰 성능 차이를 보이지 않음.

5.2 Effect of Model Size

layer, hidden unit, attention head의 수를 다르게 하여 비교

  • 모델의 크기가 커질수록 성능 향상됨
  • MRPC는 3,600개의 레이블이 붙은 훈련 샘플을 포함하는 작은 데이터셋. 여기서도 모델의 크기가 커질수록 성능이 지속적으로 향상됨

: BERT는 기존 Transformer 모델들에 비해 모델 크기가 상당히 크지만, 이러한 큰 모델을 활용하여 여전히 성능 향상을 이끌어낸 것이다. 이는 작은 규모의 데이터에 대해서도 적절히 사전학습된 모델이라면, 모델 크기 증가가 성능에 중요한 영향을 미친다는 중요한 인사이트를 제공한다.

5.3 Feature-based Approach with BERT

Feature-based 방식에도 장점이 있다.모든 작업이 Transformer 인코더 아키텍처로 잘 표현될 수 없기 때문에, 특정 작업에 맞는 별도의 모델 아키텍처를 추가해야 할 수 있으나, 사전에 계산된 표현을 여러 작업에 재사용할 수 있어 계산 비용이 절감된다.

NER 실험에서 두가지 결과를 비교
: 입력된 문장에서 고유 명사(entity)를 인식하는 작업

  • Feature-based 접근: BERT의 사전 학습된 모델에서 추출한 활성화 벡터(activation)를 사용하여, 이를 BiLSTM(양방향 LSTM) 네트워크에 입력으로 넣은 후 분류 작업을 수행. BERT의 파라미터는 fine-tuning하지 않고, 오직 피처만을 추출하여 사용

  • Fine-tuning 방식: BERT 모델을 fine-tuning하여 전체 파라미터를 학습

결과 : BERT는 fine-tuning 방식과 feature-based 방식 모두에서 효과적이다. 두 방법 모두 BERT의 사전 학습된 강력한 표현을 활용할 수 있기 때문에 성능이 매우 우수하다.





6. Conclusion

BERT와 같은 양방향 아키텍처는 모델이 문맥을 양쪽에서 동시에 고려할 수 있게 하여, 다양한 자연어 처리(NLP) 작업을 효과적으로 해결할 수 있게 하였다.

profile
컴공댕이의 기록

0개의 댓글