본문 바로가기
논문/review

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

by ornni 2024. 7. 17.
728x90
반응형


목차

0. Abstract

1. Introduction

2. Related Work

2.1 Unsupervised Feature-based Approaches 

2.2 Unsupervised Fine-tuning Approaches

2.3  Transfer Learning from Supervised Data

3. BERT

3.1 Pre-training BERT

3.2 Fine-tuning BERT

4 Experiments 

4.1 GLUE

4.2 SQuAD v1.1

4.3 SQuAD v2.0

4.4 SWAG

5. Ablation Studies

5.1 Effect of Pre-training Tasks

5.2 Effect of Model Size

5.3 Feature-based Approaches with BERT

6. Conclusion


0. Abstract

 

BERT: “Bidirectional Encoder Representations from Transformer”
이전과 다르게 모든 layer의 오른쪽, 왼쪽 텍스트를 고려

레이블링되지 않은 언어에 pre-train deep bidirectional representations

pre-trained BERT model은 하나의 추가 output layer로 fine-tuned됨 -> 상당한 구조의 수정 없이 다양한 작업

(QA, 언어추론)의 SOTA가 되기 위해 경험적으로 강하고 개념적으로 간단한 방법으로 SOTA 달성


1. Introduction

 

언어 모델 pre-training은 자연어 처리 발전에 효과적으로 보여짐
ex1) 자연어추론(문장 수준), 문단 > 문장 사이 관계 예측에 도움이 됨
ex2) token level의 결과 > 전체적으로 분석하고 token 단위로도 분석

 

 

최신 기술이 pre-train representation 중 특히 fine-tuning의 힘을 제한하는데,
주요 제한: standard language models가 unbidirectional함 > pre-training 중에 사용되는 아키텍쳐 선택이 제한됨

OpenAI GPT에서 left-to-right architecture 이용
모든 token이 이전 token의 transformer의 self-attention layers에 포함

> sentence level에 선택적, token level의 fine-tuning approach에 위험
ex) QA > 양방향에 포함된 문자가 중요함

논문: fine-tuning approach의 발전: BERT
pre-train의 목표로, 이전처럼 양방향이 아닌 제한을 완화 by.masked language model (MLM)

MLM: input의 몇몇 토큰을 random하게 mask하여 문맥을 이용해서 가려진 기존의 글자를 예측
left-to-right language model pre-training과 다르게, MLM은 next sentence prediction에 사용

(text-pair representation을 pre-train)

 

기여

- language representationbidirectional pre-training의 중요성

- pre-trained representations가 많은 무겁게 엔지니어링된 필요를 줄임

- SOTA


2. Related Work


2.1 Unsupervised Feature-based Approaches


2.2 Unsupervised Fine-tuning Approaches


2.3  Transfer Learning from Supervised Data


3. BERT

 

 


Model Architecture

 

“BERT” : multi-layer bidirectional transformer encoder (“Annoted Transformer”)

- L: number of layers (Transformer block)
- H: hidden size
- A: self-attention head 개수

 

 

- Open AI GPT: 왼쪽 token만 사용 가능, 제한된 self-attention 사용

- BERT: bidirectional

 

 


Input/Output Representations

 

BERT의 차후를 다양하게 다루기 위해
input representation single sentence, sentence pair 을 하나의 token sequence로 대표

sentence가 실제 언어 문장보다 임의적인 인접한 text가 됨
sentence는 single sentence이든 sentence pair이든 BERT의 input sequence가 됨

word piece embedding을 이용 (30,000 token 단어)
모든 sequence의 첫 token은 special classification token ([CLS])임
마지막 hidden state는 분류의 총합인 [CLS]에 대응

> token sequence의 결합된 의미를 가지게 됨 (분류가 아닌 경우 토큰 무시)


- E: embedding
- [CLS] token의 마지막 hidden vector은 𝐶∈𝑅^𝐻
- 𝑖^𝑡ℎ input token의 마지막 hidden vector을 𝑇_𝑖∈𝑅^𝐻

주어진 token에서 input은 대응되는 token, segment, position embedding의 합으로 구성

 

 

self-attention을 사용하는 Transformer에서 encoder부분을 사용하는데,
self-attention은 입력의 위치에 대해 고려하지 않음


 

Transformer의 encoder 이용



3.1 Pre-training BERT

 

기존 left-to-right, right-to-left model 사용 X

 

 


Task#1: Masked LM

 

 

기존 조건: language model: left-to-right, right-to-left

이유:  bidirectional 조건화는 각 단어가 간접적으로 자기자신을 볼 수 있도록하는 모델이 되어

  > 모델이 multi-layer 맥락에서 대상 단어를 간단히 예측 가능하기 때문에

 

 

> deep bidirectional representation 학습하기 위해,
input token을 랜덤하게 몇 %를 단순히 마스킹함 > 그리고 그 마스킹 된 토큰을 예측함 > “masked LM (MLM)”
(=문학에서는 cloze task라고 함)

이 경우 mask token에 대응하는 최종 hidden vector는 단어의 출력 softmax에 공급 (= standard LM)

논문: each sequence에 random하게 wordpiece token의 15% mask
전체 input을 구성하기보다는 masked 단어를 예측

 

이런 방법으로 bidirectional pre-trained model을 가질 수 있지만, > pre-training과 fine-tuning 사이 mismatch 발생 가능
이유: [MASK] token이 fine-tuning에서 나타나지 않으므로

해결방법: masked word를 늘 실제 [MASK] token으로 대체하지 않음
training data generator는 random하게 15%의 token 위치를 예측하기 위해 선택

if) i번쨰 token 선택, i번째 token을 

(1) 80%) [MASK] token으로 대체
(2) 10%) random token으로 대체
(3) 10%) 바꾸지 않음
그리고 T_i가 cross entropy loss를 사용해 기존 token 예측



Task#2: Next Sentence Prediction (NSP)

추후 작업 중 중요한 question & answering 이나 natural language inference (NLI)은 두 문장 관계에 대한 이해의 기반

 

 

 


pre-trained된 transfer learning 하여 실제 NLP task 과정

 

 

일반 모델: 데이터 > ML > 분류
BERT: 대량 corpus > BERT > data > ML > 분류

대량의 코퍼스를 Encoder가 임베딩하고 (언어 모델링), 이를 전이하여 파인튜닝하고 Task를 수행 (NLP Task)


Pre-training data

 

pre-train 절차는 주로 언어 모델 사전 훈련에 고나한 기존 문헌을 따름
BookCorpus (800M 단어)
English Wikipedia (2500M 단어) > text passage (list, table, header 무시)

긴 연속 sequence 추출을 위해 document-level corpus가 shuffled sentence-level corpus (Billion Word Benchmaek)보다 중요


3.2 Fine-tuning BERT

Transformer의 self-attention mechanism이 정확한 input과 output을 교환하면서 BERT의 많은 후속 작업을 모델링하도록 허용하면서 fine-tuning이 단순화됨

 


각각의 작업을 위해 일어나는 input과 output을 BERT에 연결하고 end-to-end로 모든 parameter를 fine-tuning 함

input에 pre-training의 sentence A, B은 아래와 유사하다.
(1) paragraphing sentence pairs
(2) hypothesis-premise pair in entailment
(3) question-passage pairs in QA
(4) 퇴보한 text-pair in text 분류 or sequence tagging

 

output에 token representation은 token-level 작업의 output layer에 반영됨
ex) sequence tagging, QA

[CLS] representation은 분류의 output layer에 반영됨
ex) entailment, sentiment analysis

pre-training에 비해 fine-tuning은 가벼움


4 Experiments 

 

BERTfine-tuning 결과 (11 NLP task)


4.1 GLUE

 

General Language Understanding Evaluation
다양한 자연어 이해 작업

fine-tuning을 하기 위해,
input sequence의 final hidden vector(𝐶∈𝑅^𝐻)가 총합으로 첫 input token ([CLS])에 대응

(input sequence: single sentence & sentence pair)


fine-tuning 중,
새로운 parameter는 분류 layer 가중치 (W∈𝑅^(K∗𝐻))
- K: label 개수
- C, W로 기존 분류 loss 계산 log(softmax(CW^T))
- batch size = 32
- fine-tune 3 epoch (ALL GLUE task data) > 이때 Dev set에 최고의 fine-tuning learning rate 선정

BERT_LARGE가 작은 데이터셋에 fine-tuning이 안정적이지 않음
그래서 몇몇 랜덤 재시작 실행, Dev set에 최적의 모델 선정

 

랜덤 재시작

- 같은 pre-trained checkpoint 이용

- 하지만 다른 fine-tuning data shufflingclassifier layer 초기화

 

 

BERT의 결과가 좋음

적은 데이터에서도 BERT_LARGEBERT_BASE보다 좋음


4.2 SQuAD v1.1

 

Stanford Question Answering Dataset (100K crowd sourced QA pairs)
> passage 안의 answer text span 예측

QA 작업에서,
input question (A embedding 이용)과 passage (B embedding 이용)를 single packed sequence로 나타냄

 

 

i단어가 answer span의 시작이 되는지 가능성 계산은 T_i와 S의 dot
비슷한 공식이 answer span의 끝에도 사용

 


- 위치 i에서 j까지 후보 span의 값 S ∗ T_i  + E ∗ T_j

- j scoring span의 최대값은 (j >= i)는 예측에 사용

training 목표: 올바른 시작과 끝 위치의 log-likelihood의 합
- 3 epoch로 fine-tuning (learning rate = 5e-5)
- batch size = 32

training에 public data 아무거나 사용 가능
- fine-tuning 첫번째 TriviaQA
- fine-tuning 다음 SQuAD

 


BERT의 결과가 가장 좋음


4.3 SQuAD v2.0

 

SQuAD v1.1 확장
짧은 답변이 아닌 더 현실적인 답변

- no-answer span: 𝑆_𝑛𝑢𝑙𝑙=𝑆𝐶+𝐸𝐶
- 𝑆_(𝑖 ̂, 𝑗)=〖𝑚𝑎𝑥〗_(𝑗≥𝑖)  𝑆𝑇_𝑖+𝑆𝑇_𝑗
- 𝑆_(𝑖 ̂, 𝑗)>𝑆_𝑛𝑢𝑙𝑙+ 𝜏 일때 예측
- threshold (𝜏) : Dev set에서 F1을 최대로 하는 선택
- TriviaQA data 사용 X
- fine-tuning 2 epoch (learning rate = 5e – 5)
- batch size = 48

 


4.4 SWAG

 

Situation with Adversarial Generation dataset (113K)
sentence pair completion examples
grounded 상식 추론 평가
문장이 주어지면 다음에 타당한 문장 4개중 선택

- fine-tuning시, 4개의 input sequence로 구성 (주어진 문장과 합쳐서: A + B)
- [CLS] token dot > C: softmax layer의 정규화된 선택값
- fine-tuning 3 epoch (learning rate = 2e – 5)
- batch size = 16

 


5. Ablation Studies

 


5.1 Effect of Pre-training Tasks


5.2 Effect of Model Size


5.3 Feature-based Approaches with BERT


6. Conclusion


BERT, GPT ELMo차이

 

 

ELMo: left-to-right, right-to-left 문맥을 각각 독립적으로 계산하여 접합한 형태
OpenAI GPT: left-to-right로만 계산
> 두 방법 모두 공통적으로 양방향 문맥 등을 보지 못하여 충분히 언어 표현을 하지 못함

BERT: 사전 학습을 위해 두 가지 방법 (Masked Language Model(MLM)과 Next Sentence Prediction(NSP))를 사용
이 방법들은 BERT가 양방향으로 학습되어 문맥을 더 잘 파악함


 

 

반응형