본문 바로가기

논문 리뷰

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

" BERT : Pre-training of Deep Bidirectional Transformers for Language Understanding " - Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova (2018)

 

본 논문에서는 …

    MLM(Masked language model)을 사용함으로써 단방향 제약을 완화시킨 BERT 모델을 제안함.

 

연구 배경

down-stram task를 위한 두 가지 전략

  1. feature-based : ELMo, 사전 훈련된 표현들을 추가적 feature로 포함하는 task-specific 구조를 사용함.
  2. fine-tuning : OpenAI GPT, 최소한의 task-specific 파라미터를 넣고, 모든 사전 훈련된 파라미터를 down-stram task에 넣어 훈련함.

두 가지 접근법은 같은 pre-training 과정에서 목적함수를 공유하고 일반적인 언어 표현을 학습하기 위해 단방향을 사용함.

→ 이 기술은 fine-tuning 방식에 대해 pre-training의 힘을 제한함. 가장 큰 한계가 모델이 단방향이어서 pre-training 할 때 구조의 선택에 제약이 있음.

문장 수준의 업무에서 최적이 아니고, 토큰 수준의 작업에도 fine-tuning 기반의 접근 방법을 적용할 때 매우 좋지 않을 수 있어 양방향에서 문맥을 통합하는 것이 중요함.

 

관련 연구

  • Unsupervised Feature-based Approaches

pre-trained word embedding은 NLP 시스템의 필수적인 부분임.

사전 훈련하기 위해 왼쪽에서 오른쪽 언어 모델링 objective, 좌우 맥락에서 잘못된 단어로부터 올바른 것을 구별하는 objective도 사용됨.

다음 문장의 후보들의 순서를 매기거나, 이전 문장의 주어진 표현으로 왼쪽에서 오른쪽 방향으로 다음 문장 단어 생성, 오토인코더로부터 파생된 objective 노이즈 삭제 등 사용함.

  • Unsupervised Fine-tunning Approaches

상황별 토큰 표현을 생산하는 문장 또는 문서 인코더가 unlabeled text로부터 pre-training되고, supervised downstream task로부터 fine-tuning함.

이 방식의 장점은 학습할 파라미터가 거의 없다는 것임.

  • Transfer Learning from Supervised Data

자연어 추론, 기계 번역과 같은 큰 데이터셋을 통한 지도 학습은 효과적인 transfer를 보여줌.

 

모델 (BERT)

두 단계로 프레임워크가 이루어짐 : pre-training, fine-tuning

각 downstream task는 같은 pre-trained parameter를 가져도 독립적인 fine-tuned model을 가짐.

BERT의 차별적인 특징은 다른 task에 걸쳐 같은 구조를 가지는데, pre-trained 구조와 최종 downstream 구조 사이의 최소한의 차이만 존재함.

BERT의 구조는 multi-layer bidirectional Transformer encoder임.

E : 임베딩, C : [CLS] 토큰의 마지막 은닉 벡터, T_i : i번째 입력 토큰의 마지막 은닉 벡터

BERT_BASE : L = 12, H = 768, A = 12, Total Parameters = 110M BERT_LARGE : L = 24, H = 1024, A = 16, Total Parameters = 340M L : 레이어의 개수, H : hidden size, A : self-attention head의 수

Input / Output Representations - WordPiece embedding을 사용함.

문장 : 실제 문장 대신 인접한 텍스트의 범위 시퀀스 : BERT에 대한 입력 토큰 시퀀스, 한 개 또는 두 개의 문장 모든 시퀀스의 첫 번째 토큰 : [CLS] 마지막 hidden state는 분류 작업을 위해 통합된 시퀀스 표현으로 사용됨.

문장을 구분하는 방법 : [SEP]로 문장을 분리, 모든 토큰에 문장 A인지 B인지 표시하는 학습된 embedding을 추가함.

주어진 토큰의 경우, 해당 토큰, segment, position embedding을 합해 구성됨.

 

  • pre-training BERT

pre-training data로 BooksCorpus, English Wikipedia를 사용함.

  1. Masked LM
    무작위로 입력 토큰의 몇 퍼센트를 간단히 마스킹하고, 그 마스킹된 토큰을 옟측함. 마스킹된 토큰에 해당하는 최종 hidden vector는 표준 LM에서와 같이 softmax로 공급됨.하지만, fine-tuning을 할 때 mask가 나타나지 않아 pre-training과 fine-tuning 간의 mismatch가 만들어짐.
    → 예측을 위해 토큰 position의 15%를 선택함. i번째 토큰이 MASK 되었다면 이를 무조건 교체하지 않고, 80%는 [MASK]로 교체하고, 10%는 임의의 토큰으로 교체하며, 10%는 i번째 토큰을 그대로 사용함.
    denoising auto-encoder와는 대조적으로 전체 input을 재구성하지 않고, 마스킹된 토큰만 예측함.
    표준적인 conditional language model은 양방향 조절이 각 단어가 간접적으로 see itself를 하도록 허용하며, 다중 층 문맥에서 target word를 좋지 않게 예측할 수 있기에 left-to-right or right-to-left로 학습함.
  2. Next Sentence Prediction
    문장 A, B가 있을 때 B의 50%는 A 다음에 오는 실제 문장(IsNext), 50%는 임시 문장(NotNext)임.
    문장 간의 관계를 이해하는 것을 훈련하기 위해, 다음 문장 예측 task를 이진화하기 위해 pre-training 함.
  • Fine-tuning BERT
    self-attention으로 연결된 텍스트 쌍을 인코딩하는 것은 bidirectional cross attention을 효과적으로 포함하여 self-attention 메커니즘을 사용함.
    bidirectional cross attention을 적용하기 전에 텍스트 쌍을 독립적으로 인코딩함.

각 작업마다 작업 별 입력과 출력을 BERT에 연결하고 모든 파라미터를 end-to-end로 fine-tuning 함.

 

결론

  • GLUE

fine-tuning 시 새로 도입된 parameter는 W : classification layer weight, K : label의 수 a standard classification loss with C and W : log(softmax(CW^T))

BERT가 좋은 성능을 냄.

  • SQuAD v1.1

SQuAD : Wikipedia의 context 지문을 통해 QA 작업을 학습하는 데이터셋

BERT 모델이 우수한 성능을 보임.

  • SQuAD v2.0

SQuAD 2.0 : 답이 지문에 없는 경우를 포함함.

인간의 능력에는 미치지 못하였지만, 기존의 baseline에 비해서 우수한 성능을 못함.

  • SWAG

SWAG(Situations With Adversarial Generation) : 이어지는 문장을 고르는 sentence pair inference task

BERT 모델이 기존의 모델이 우수한 성능을 보임.

 

Ablation Studies

  • Effect of pre-training tasks

No NSP : NSP task를 하지 않고 MLM만 사용해 훈련된 양방향 모델

LTR & No NSP : left-to-right LM을 사용해 훈련됨. 왼쪽에서만 이어지는 제약은 fine-tuning에서도 적용되는데, 이를 제거하면 pre-training과 fine-tuning 간의 불일치가 발생하여 성능에 악영향을 미침.

LTR & No NSP + BiLSTM : LTR 모델이 hidden state에서 우측 문맥이 없기 때문에 토큰 예측을 잘 못하여 무작위로 초기화된 BiLSTM을 맨 위에 추가해봄.

NSP를 제거하는 것이 성능을 떨어뜨림.

NTR 모델은 MLM 모델보다 성능이 좋지 않음.

ELMo처럼 LTR 및 RTL 모델을 훈련시키고 각 토큰을 두 모델의 연결로 나타낼 수도 있지만, 두 번 계산해서 계산 비용이 비싸고 TRL 모델의 경우 질문에 대한 답을 조절할 수 없어 직관적이지 않고, deep bidirectional model에 비해 성능이 낮음.

  • Effect of model size

레이어의 수, 은닉 상태 개수, 어텐션 헤드 개수를 다르게 훈련함.

큰 모델이 좋은 성능을 가짐.

기계 번역, 언어 모델링과 같은 큰 스케일의 작업에서 모델 사이즈를 키우는 것은 성능 향상을 이끄는 것은 입증 되었지만, 모델이 충분히 사전 훈련 시킨 경우 모델 크기를 늘리는 것이 작은 규모의 작업에서도 큰 성능 향상을 이끄는 것을 발견함.

  • feature -based approach with BERT

pre-training된 모델에 간단한 분류 계층이 추가되고 모든 parameter가 downstream task에서 공동으로 fine-tuning 되는 fine-tuning 방식을 사용함.

그러나, feature-based approach가 장점을 가짐.

       1. 모든 작업이 트랜스포머 인코더 구조로 표현되지 않아 task-specific 모델 구조가 추가되어야 함.

       2. 계산이 비싼 훈련 데이터를 한 번 계산하는 것과 이런 표현들 위에 값싼 모델과 많은 실험을 돌릴 수 있는 큰 이익이             있음.

 

BERT의 파라미터를 fine-tuning 하지 않고 하나 또는 그 이상의 층에서 활성화 함수를 추출하는 것으로 특징 기반 접근법을 적용함.

BERT는 fine-tuning, feature-based approach 모두 효과적임.