본문 바로가기
Reading papers/NLP 논문

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

by 채채씨 2021. 9. 26.
728x90
반응형

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


BERT논문

Abstract

  • BERT는 모든 layer에서 unlabeled data로부터 왼쪽과 오른쪽의 문맥을 모두 반영하는 bidirectional representation을 pre-training한다.
  • 그 결과 Substantial task-specific architecture없이 pre-trained BERT모델에 하나의 output layer만 추가하여 질의응답, 언어유추 등 11개의 NLP Task에서 state-of-the-art를 달성하였다.

1. Introduction

  • Language model pre-training은 sentence-level tasks와 token-level tasks를 포함한 다양한 NLP task를 향상하는데 효과적이었다.
  • pre-trained language representation을 down-stream tasks에 적용하기 위한 두 가지 approach가 있다. feature-based approach와 fine-tuning approach이다.
  • feature-based approach는 pre-trained representation을 추가적인 features로 task-specific architectures에 포함한다. (ex. ELMo)
  • fine-tuning approach는 모든 Pre-trained parameters를 down-stream tasks에 학습시키고, 최소한의 task-specific parameters를 도입한다. (ex. OpenAI GPT)
  • 위의 두 접근법은 unideirectional language models로 pre-training하며, 같은 목적 함수를 사용한다.

  • BERT는 기존 방법들이 unidirectional한 한계점으로 인해 pre-trained representation을 잘 나타내지 못한다고 지적한다.
  • left-to-right architecture를 사용하는 OpenAI GPT의 경우, 모든 token은 self-attention layers에서 이전의 tokens만 참조할 수 있다.
  • 이는 sentence-level task 또는 양방향의 context를 통합하는 것이 중요한 question-answering task에서 sub-optimal하거나 harmful할 수 있다.
  • BERT는 masked language model(MLM)을 사용하여 unidirectionality를 완화하며, fine-tuning based접근법을 향상한다.
  • MLM은 representation이 양방향의 context를 융합하므로 bidirectional Transformer를 pre-training할 수 있다.
  • BERT의 두 가지 task는 token-level task인 masked language model(MLM)과 sentence-level task인 next sentece prediction(MSP)이다.

2. Related Work

Unsupervised Feature-based Approaches: ELMo
Unsupervised Fine-tuning Approaches: OpenAI GPT

3. BERT

  • BERT의 framework에는 두 가지 절차 pre-training과 fine-tuning이 있다.

1. pre-training
unlabeled data로 사전 학습
2. fine-tuning
사전 학습된 모델의 parameter로 초기화한 후 down-stream task의 labeled data로 parameter를 fine-tuning

  • 각각의 down-stream task는 동일한 pre-trained parameters로 초기화하며 개별적인 fine-tuned model을 가진다.

Model Architecture

  • BERT의 구조는 multi-layer bidirectional Transformer encoder이다.
  • BERT base와 BERT large 모델의 사이즈 (L=layer 개수, H=hidden 사이즈, A=self-attention heads 개수)

1. BERT base
L=12, H=786, A=12, Total Parameters=110M
2. BERT large
L=24, H=1024, A=16, Total Parameters=340M

  • BERT base의 크기는 OpenAI GPT와 동일하게 하였다. BERT의 Transformer는 bidirectional self-attention을 사용하였고, GPT의 Transformer는 left context만 참조 가능한 constrained self-attention을 사용하였다.

Input/Output Representation

  • BERT모델의 입력 단위인 sentence는 single sentence 또는 two sentences packed together이다.
  • 모든 sequence의 첫번째 token은 classification token인 [CLS]이다. [CLS]에 해당하는 마지막 hidden state는 classification을 위한 sequence representation이다.
  • two sentenes packed together를 구분하기 위해, [SEP] token과 두 sentence 중 어디에 속한 token인지를 나타내는 segment embedding을 사용한다.
  • input representation은 token embedding, segment embedding, positional embedding의 합으로 나타낸다.

BERT input representation

3.1 Pre-training BERT

  • BERT는 Masked Language Model과 Next Sentence Prediction 이 두 가지 unsupervised tasks를 사용하여 pre-training한다.
  • BooksCorpus와 English Wikipedia data로 학습한다.
  • input embedding = E
  • final hidden vector of the special [CLS] token = $C \in \mathbb{R}^{H}$
  • i번째 input token의 final hidden vector = $T_{i} \in \mathbb{R}^{H}$

Pre-training

Task #1: Masked Language Model(MLM)

  • Bidirectional model은 left-to-right model 또는 left-to-right model과 right-to-left model을 합친 shallow concatenation보다 훨씬 강력하다.
  • Bidirectional representation을 학습하기 위해 아래의 작업을 수행한다.
  • WordPiece token의 15%를 masking한다.
  • masked words만 예측하며, fine-tuning에는 [mask] token이 없으므로 pre-training과 fine-tuning간 mismatch가 발생한다.
  • 이 문제점을 완화하기 위해 masked words를 [mask] token으로만 대체하지 않고 다양한 방식으로 대체한다.
  • 전체 WordPiece token의 15% 중 80%는 [mask] token으로 대체하고, 10%는 random token으로 대체하고, 10%는 바꾸지 않고 원래 token으로 유지한다.

Task #2: Next Sentence prediction(NSP)

  • Question Answering, Natural Language Inference task는 두 sentence간 relationship을 기반으로 한다. 이 relationship을 학습하기 위해 binarized next sentence prediction task를 사전 학습한다.
  • sentence A와 B를 선택할 때, B의 50%는 A 다음 순서에 오는 문장으로 선택하고, 50%는 순서와 상관없이 random으로 선택한다.
  • A 다음에 올 문장이면 IsNext 그렇지 않으면 NotNext로 labeling한다.
  • 마지막 hidden state의 C token은 next sentecne prediction에 사용된다.

3.2 Fine-tuning BERT

  • Fine-tuning은 빠르고 간단하며, 대부분의 hyperparameter는 pre-training의 hyperparameter와 같다.
  • 보통 text pair task를 위해 bidirectional cross attention을 적용하기 전에 sentence 각각을 encoding을 한다.
  • BERT의 경우, self-attention이 두 단계를 통합하므로 concatenated text pair를 self-attention으로 encoding하는 것은 bidirectional cross attention적용을 포함한다.
  • token representations은 sequence tagging, QA같은 token level tasks를 위한 output layer에 들어가고
  • [CLS] representations은 entailment, sentiment analysis같은 classification을 위한 output layer에 들어간다.
  • fine-tuning을 위해 추가되는 parameter는 classification layer weights $W \in$ $\mathbb{R}^{K \times H}$이다. (K = label의 수)
  • 보통 classification loss는 C와 W로 계산된다. i.e., $\log \left(\operatorname{softmax}\left(C W^{T}\right)\right)$

3.3 Pre-training Procedure

  • 첫번째 sampling한 sentence에 A segment embeddidng 더하고, 두번째 sampling한 sentence에 B segment embeddidng을 더한다.
  • B의 50%는 A 다음 순서에 오는 IsNext문장이다. 나머지 50%는 순서와 상관없는 NotNext문장이다.
  • A와 B의 length 합은 512이하가 되어야 한다.
  • LM masking은 WordPiece tokenization 후에 적용한다.
  • batch size = 256
  • epochs = 40
  • learning rate = 1e-4
  • optimizer = Adam ($\beta_{1}$ = 0.9, $\beta_{2}$ = 0.999)
  • L2 weight decay = 0.01
  • dropout = 0.1
  • activation function = gelu
  • loss funtion = the mean LM masked likelihood와 the mean Next Sentence Prediction likelihood의 합
  • BERT base = 4 Cloud TPUs , 4일 동안 학습
  • BERT large = 16 Cloud TPUs , 4일 동안 학습

3.4 Fine-tuning Procedure

  • dropout = 0.1로 유지하고, batch size, learning rate, epochs의 optimal hyperparameter는 task-specific하지만 아래의 값으로 설정하면 대부분 잘 학습한다.
  • batch size = 16, 32
  • optimizer = Adam
  • learning rate = 5e-5, 3e-5, 2e-5
  • epochs = 2, 3, 4



[reference]
https://arxiv.org/pdf/1810.04805.pdf

728x90
반응형

댓글