BERT (원문 번역)
2018년 구글에서 공개한 자연어 사전학습모델 BERT
Abstract
- BERT는 라벨링되지 않는 텍스트 문서의 context를 파악하기 위해 bidirectional 한 모델이다.
- pre-trained BERT 모델은 output layer를 추가해 fine-tune하는 것만으로 광범위한 task에서 SOTA를 달성했다.
1. Introduction
- pre-training 언어모델은 많은 자연어 처리 task의 향상에 효과적이었다.
- down-stream task를 위해 pre-trained 언어 표현을 사용하는 방식은 두가지 전략이 있다: feature-based, fine-tuning
- 접근 방식
- feature-based 접근 방식: ELMo
- fine-tuning 접근 방식: GPT
- pre-train 시 같은 목적 함수를 공유함, 여기서 일반적으로 언어표현을 학습하기 위해서 단방향의 언어 학습 모델을 사용
- 한계
- 표준 언어 모델이 단방향인 것이 가장 주요한 한계이며, pre-training동안 사용될 수 있는 구조의 선택에 제약이 있음
- OpenAI의 GPT 모델은 오직 LTR(Left to Right)구조를 사용하므로, self-attention layer에서 모든 토큰들은 오직 이전의 토큰들만 attend할 수 있다.
- 이는 문장 레벨의 task에서 좋지 않고 토큰 수준의 task에서 fine-tuning 적용이 굉장히 불리할 수 있으며, 양쪽으로부터 context를 포함하는게 중요하다.
- BERT
- 본 논문에서는 BERT를 통해 fine-tuning 기반의 접근 방식을 향상시킨다.
- BERT는 Cloze task에 영감을 받은 pre-training을 목적으로 하는 masked 언어 모델(MLM)을 사용함으로 단방향성 제약을 완화시킨다.
- masked 언어 모델에서는 랜덤으로 input 토큰의 일부를 mask하고, 오직 context를 기반으로 mask된 단어를 예측하는 것이 목적임.
- MLM 목적은 왼쪽과 오른쪽의 context를 융합한 표현을 가능하게 하는 것이고, 이를 통해 deep 양방향 Transformer를 pretrain 할 수 있게 함.
- 더불어 pre-train 텍스트 쌍 표현을 공동으로 하는 'next sentence prediction' task도 사용함.
- Contribution
- 언어 표현을 위한 양방향 pre-training의 중요성을 증명했다.
- BERT는 pre-trained deep bidirectional representations를 가능하게 하기 위해 MLM을 사용함.
- pre-trained 표현은 많은 heavily-engineered task-specific 구조의 필요성을 줄여준다는 것을 보여준다,
- BERT는 큰 문장 수준, 토큰 수준 task에서 SOTA를 달성해, 많은 task-specific 구조를 능가하는 최초의 모델임.
- long history of pre-training general language representations
2.1 Unsupervised Feature-based Approaches
- pre-trained 워드 임베딩은 현대의 NLP 시스템에서 필수적인 부분임.
- 워드임베딩 벡터를 사용하기 위해, LTR 언어 objective와 좌우 context에서 잘못된 단어를 구별하는 objective를 사용함.
- 문장 표현을 train하기 위해 여러 objectives 사용해왔다.
- 이전의 작업들은 다음 문장의 후보를 rank
- 이전 문장의 주어진 표현으로 다음 문장 단어를 LTR로 생성
- objectves에서 파생된 오토인코더 노이즈 제거
- ELMo는 LTR, RTL 언어 모델로부터 context-sensitive 특징을 추출함
- 상황별 워드 임베딩들을 기존의 task-specific 구조와 통합할 때, ELMo는 여러 NLP 벤치마크에서 SOTA를 달성할 수 있었음(QA, SA, NER)
- LSTM을 사용해 좌우 모두로부터 단어를 예측하기 위한 작업으로 문맥학습을 제안
- ELMo와 같은 모델들은 특징기반이고 깊은 양방향이 아님
- Fedus et al.은 cloze task가 텍스트 생성 모델의 견고성을 향상시키는데 사용될 수 있다고 보여줌
2.2 Unsupervised Fine-tuning Approaches
- 특징기반 접근과 마찬가지로, 처음 작업으로 레이블되지 않은 사전훈련된 워드 임베딩 파라미터만 사용한다.
- 더 최근엔, 문맥적 토큰 표현을 생성하는 문장 혹은 문서 인코더가, 레이블되지 않은 텍스트로부터 사전훈련하고 지도된 downstream task에 맞게 fine-tuning된다.
- 이런 접근의 가장 큰 장점은 밑바닥부터 학습할 파라미터의 수가 거의 없다는 것임(밑바닥부터 학습을 진행하지 않아도 됨)
- 이러한 장점 덕분에, GPT는 이전에 GLUE 벤치마크로부터 많은 문장 단위 task에 SOTA를 달성함
- LTR 언어 모델링과 오토 인코더 objectives는 아래와 같은 모델에서 사전 훈련하기 위해 사용되어져 왔다.
- Universal language model fine-tuning for text classification, Improving language understanding with unsupervised learning, Semi-supervised sequence learning
2.3 Transfer Learning from Supervised Data
- 대규모 데이터셋과 함께 지도 task로부터 효과적인 전이를 보여준 작업들도 있다.
- such as natural language inference and machine translation
- 컴퓨터 비전 연구는 대규모 사전학습된 모델로부터 전이 학습의 중요성을 입증함
- 대규모 사전 학습된 모델은 ImageNet으로 사전훈련된 모델을 fine-tune하기 위한 효과적인 레시피임
3. BERT
- BERT의 프레임워크는 두개의 단계가 있다: pre-training, fine-tuning
- pre-training: 모델은 다른 사전훈련하는 task들을 걸쳐 라벨링되지 않은 데이터를 학습함.
- fine-tuning: 먼저 사전훈련된 파라마터로 초기화되고, 모든 파라미터들은 downstream task로부터 라벨된 데이터를 사용해 fine-tune한다.
- 각 downstream task들은 결국 별도로 fine-tune 됨.
- 다만, 다양한 task에 걸쳐 통일된 구조를 가진 것이 특징임.
Model Architecture
- BERT의 모델 구조는 다중 레이어 bidirectional Transformer encoder이다.
- Transformer는 (Attention is all you need.)에 기술된 원래 구현에 기초함.
- annotation & two models
- L = the number of layers(Transformer blocks), H = the hidden size, A = the number of self-attention heads
- BERT_BASE: L=12, H=768, A=12, Total Parameters=110M
- GPT와의 비교를 위해 같은 모델 사이즈
- BERT는 양방향 self-attention을 사용하고, GPT Transformer는 모든 토큰이 왼쪽의 문맥만 attend하도록 강요된 self-attention 사용
- BERT_LARGE: L=24, H=1024, A=16, Total Parameters=340M
- Input
- 다양한 downstream task를 다룰 수 있는 BERT를 만들기 위해, 우리의 input 표현은 단일 문장과 문장의 쌍을 하나의 토큰 sequence로 명확하게 나타낼 수 있음.
- 'sequence'는 BERT에 대한 입력 토큰을 칭함.(하나의 문장 또는 두개의 문장을 묶은 것일 수도 있음)
- 30,000개의 토큰 단어를 사용하는 WordPiece 임베딩을 사용함.
- 모든 sequence의 첫번째 토큰은 항상 특별한 분류 토큰 CLS를 사용함.
- 이 토큰에 해당하는 마지막 은닉 상태는 분류 작업을 위해 합계 sequence 표현으로 사용됨.
- 하나의 문장쌍은 하나의 sequence로 함께 묶임
- 문장의 구분
- 첫 번째로, 특별한 토큰 SEP로 문장을 구별함.
- 두 번째로, 모든 토큰에 이것이 문장A or 문장B인지 표시하는 학습된 임베딩을 추가함.
- E = input embedding, C∈RH = the final hidden vector of the special CLS token, Ti∈RH = the final hidden vector for the i_th input token
- 주어진 토큰의 입력 표현은 해당 토큰, 세그먼트, position 임베딩을 합쳐서 구성된다.
3.1 Pre-training BERT
- LTR, RTL 언어 모델을 사용한 사전훈련 대신에, 앞으로 언급할 두개의 비지도 task를 사용해 BERT를 사전훈련함.
Task #1: Masked LM
- 직관적으로, 깊은 bidirectional 모델이 LTR, LTR + RTL의 얕은 결합보다 절대적으로 더 강력할 것이라는 믿음은 합리적임.
- 일반적인 조건부 언어 모델들은
- 양방향 조건에서는 간접적으로 단어의 'see itself'를 허용하고, 다중 레이어 문맥에서 대상 단어를 좋지 않게 예측할 수 있음.
- 이러한 이유로, 오직 LTR or RTL로만 훈련될 수 있음.
- Masking, MLM
- 깊은 bidirectional 표현 학습을 위해, input 토큰의 일정 비율을 랜덤으로 mask하고 masked된 토큰을 예측하도록 한다.
- 이 경우에, mask 토큰에 해당하는 마지막 은닉 벡터는 어휘를 통해 output softmax로 공급됨.(표준 LM과 같이)
- 각 sequence에서 모든 WordPiece 토큰의 15%를 mask한다.
- 오토인코더가 전체 input을 재구성하는 것과는 대조적으로, BERT에서는 오직 masked된 단어만 예측한다.
- MASK token
- fine-tuninng에는 MASK 토큰이 나타나지 않으므로, pre-training과 fine-tuning 사이에 불일치를 만들어내는 단점이 존재함
- 이를 완화하기 위해, masked 단어를 실제 MASK 토큰으로 대체하지 않는다.
- training data generator는 예측을 위해 무작위로 token position의 15%를 선택.
- 선택된 i번째 토큰을 아래와 같은 토큰 비율로 변경함.
- 80%는 MASK 토큰
- 10%는 임의의 토큰
- 10%는 변경되지 않는 i번째 토큰
- Ti는 cross entropy 손실과 함께 원래의 토큰을 예측하기 위해 사용됨.
Task #2: Next Sentence Prediction(NSP)
- 많은 중요한 downstream task(QA, NLI)는 두 문장 사이의 관계를 이해하는 것을 기반으로 함.
- 언어 모델에 의해서는 직접적으로 포착되지 않음
- 문장 관계를 이해하도록 모델을 훈련하기 위해, 어떤 하나의 말뭉치로부터 생성될 수 있는 Next Sentence Prediction task를 2진화하기 위해 사전훈련한다.
- 각 사전 훈련 예제에 대해 문장A, B를 선택할 때(훈련 데이터를 배치할 때)
- B의 50%는 A 다음에 실제로 오는 다음 문장
- 나머지 50%는 말뭉치로부터 랜덤 문장임.
- C는 다음 문장 예측에 사용됨.
- 이런 단순함에도 QA와 NLI 모두에 매우 유익했음을 증명(5.1섹션에서)
- NSP는 아래 논문에서 사용된 표현 학습 목표와 밀접히 연관됨
- Jernite et al.(Discourse-based objectives for fast unsupervised sentence representation learning) 및 Logeswaran and Lee(An efficient framework for learning sentence representations.)
- 하지만 문장 임베딩만이 downstream task로 전이됨.
- BERT는 end-task 모델 파라미터를 초기화하기 위해 모든 파라미터를 전이함.
Pre-training data
- 사전 훈련 절차는 LM의 사전 훈련의 기존 문헌을 대체로 따름.
- 긴 연속적인 sequence를 추출하기 위해, Billion Word Benchmark와 같이 이것저것 섞인 문장 레벨 말뭉치가 아닌, 문서 레벨 말뭉치를 사용하는게 중요함.
3.2 Fine-tuning BERT
- Transformer의 self-attention 메커니즘으로 fine-tuning은 간단함.
- BERT가 적절한 입력과 출력을 교환함으로써 많은 downstream task를 모델링할 수 있도록 해주기 때문에(단일 혹은 텍스트 쌍을 포함하든지 간에)
- 텍스트 쌍을 포함하는 application의 경우, bidirectional cross attention을 적용하기 전에 텍스트 쌍을 독립적으로 인코딩 하는 것이 일반적임
- Parikh et al.(A decomposable attention model for natural language inference.)등 과 같이
- BERT는 위의 두 단계를 통합하기 위해 self-attention 메커니즘을 사용한다.
- self-attention을 통해 연결된 텍스트 쌍을 인코딩하는 것은 두 문장 사이의 bidirectional cross attention을 효과적으로 포함하므로.
- 각 task마다의 input과 output을 BERT에 연결하고 모든 파라미터를 end-to-end로 fine-tuning한다.(입력, 출력 단에 W layer 추가해서 미세조정)
- 입력에서, 사전훈련으로부터 나온 문장 A, B는 paraphrasing, hypothesis-premise, question-passage, degenerate text-ϕ 의 쌍들과 유사
- 출력에서, 토큰 표현은 토큰 단위 task를 위한 output layer로 공급됨.
- CLS 표현은 분류를 위해 output layer로 공급됨.
- pre-training에 비해, fine-tuning은 상대적으로 비싸지 않음.
4. Experiments
4.1 GLUE
4.2 SQuAD v1.1
4.3 SQuAD v2.0
4.4 SWAG
5. Ablation Studies
- (모델이나 알고리즘의 기능들을 하나씩 제거해보면서 이 기능이 전체 성능에 얼마나 영향을 미치는지 확인해 보는 작업)
- 상대적인 중요성을 더 이해하기 위해, BERT의 여러 면에 걸쳐 ablation 실험을 수행함
5.1 Effect of Pre-training Tasks
- 같은 사전 훈련의 데이터, fine-tuning scheme, 하이퍼파라미터를 사용해 BERT_BASE의 깊은 bidirectionality의 중요성을 입증함.
No NSP
- 다음 문장 예측(NSP) 없이, masked LM(MLM)을 사용한 bidirectional 모델
LTR & No NSP
- MLM 대신 일반적인 LTR LM을 사용해 훈련된, 오직 좌에서 우로 이어지는 문맥을 가진 모델.
- left-only는 fine-tuning에서도 적용되어야 함.
- pre-training과 fine-tuning에서의 불일치는 downstream task에서 좋지 못한 성능을 보임
- NSP 없이 사전 훈련됨.
- NSP 영향력 검토
- NSP를 제거하는 것이 QNLI, MNLI와 SQuAD 1.1에서 퍼포먼스를 상당히 하락시킨다는 것을 보여줌.
- No NSP와 LTR & No NSP를 비교하면서 bidrectional 표현을 훈련하는 것의 영향력을 평가
- LTR 모델의 퍼포먼스는 MLM 모델보다 MRPC와 SQuAD에 큰 영향을 미치는(large drops) 모든 과제에 대해서 좋지 않음
- SQuAD에 대해 LTR모델은 토큰 레벨 은닉 상태가 우측 문맥이 없기 때문에 토큰 예측을 잘 못할 것이다는 것은 직관적으로 명확하였음.
- LTR 시스템을 강화하는 시도에 좋은 믿음(faith)을 만들기 위해서 우리는 무작위로 초기화된 BiLSTM을 맨 위에 추가
- SQuAD에서 효과적으로 결과를 향상시켰지만, 결과는 사전 훈련된 bidrectional 모델에 비해 여전히 꽤 나쁨(GLUE작업 성능 해침)
- ELMo가 하는 것처럼 별도의 LTR 및 RTL 모델을 훈련하고 각 토큰을 두 모델의 연결로 나타내어 평가
- 두 번 계산하기 때문에 단일 양방향 모델에 비해 두 배로 계산비용이 비쌈
- RTL 모델은 질문에 대한 답변을 조절할 수 없음
- QA(Question and Answer)와 같은 작업에 대해서 직관적이지가 않음
- 모든 layer에서 양쪽의 문맥을 사용하므로, 깊은 bidrectional 모델보다 성능이 낮을 수밖에 없음.
5.2 Effect of Model Size
- 모델 크기가 fine-tuning task 정확도에 미치는 영향 탐구.
- number of layers, hidden units, attention heads 를 다르게 하면서 훈련함.
- 더 큰 모델이 3,600개의 라벨이 붙은 훈련 샘플만을 사용 + 사전 훈련 작업과 실질적으로 다른 MRPC에서 4개의 데이터셋 모두에서 정확도를 strict 향상됨.
- 이미 상당히 큰 모델들 위에, 유의미한 개선을 달성한 것
- 탐구된 가장 큰 Transformer는 100M 개의 파라미터(L=6, H=1024, A=16), 문헌에서 찾은 가장 큰 Transformer는 235M개의 파라미터(L=64, H=512, A=2)
- BERT_BASE는 110M개의 파라미터를 포함, BERT_LARGE는 340M개의 파라미터를 포함
- 모델 사이즈와 성능 향상과의 관계
- 기계번역, LM과 같은 큰 task에서 모델 사이즈를 키우는 것은 계속된 향상을 이끈다고 알려짐
- 충분한 사전 훈련 + 극단적인 모델 크기의 확장이 매우 작은 규모의 task에서도 큰 개선으로 이어짐.(설득의 첫 단계정도)
- downstream task 데이터가 매우 작은 경우에도 사전훈련된 표현으로부터 이익을 얻을 수 있음.
- downstream task에 맞게 fine-tuning되고, 적은 수의 랜덤되어 초기화된 추가적인 파라미터를 사용함.
5.3 Feature-based Approach with BERT
- 지금까지 살펴본 결과는, fine-tuning 접근법
- 사전 훈련된 모델에 간단한 분류 layer를 추가해, 모든 매개변수가 downstream task에서 공동으로 fine-tuning되는 방식
- 반대로, 사전 훈련된 모델에서 고정된 특징을 추출하는 feature-based 접근 방식의 장점도 있음
- 모든 task가 Transformer 인코더 구조에 의해 쉽게 표현되어지지 않는다는 점
- 계산상의 큰 이익
- 계산이 비싼 훈련 데이터의 표현을 한 번 사전 계산하는 것
- 이런 표현들 위에 값싼 모델과 함께 많은 실험을 수행할 수 있다는 점
- BERT에 두 가지 접근법을 도입해, CoNLL-2003 NER(Named Entity Recognition, 이름 명명 인식) 작업을 비교
- ready
- BERT의 input으로 대소문자를 구별하는 WordPiece 모델을 사용, 데이터에 의해 제공되는 최대 문서 문맥을 포함
- 이것을 태킹 task로 공식화 하지만, output에 CRF 레이어를 사용하지 않음(표준 관행에 따라)
- BERT의 파라미터를 fine-tuning하지 않고, 하나 또는 그 이상의 layer에서 활성화 함수를 추출하는 것으로 feature-based 접근법을 적용
- 문맥적 임베딩은 분류 layer 이전에 랜덤으로 초기화된 768차원의 BiLSTM 2개를 쌓은 layer에 대한 input으로 사용
- results
- BERT_LARGE는 SOTA를 경쟁력있게 달성
- 가장 좋은 수행 방법은 사전 훈련된 Transformer 4개의 은닉 layer로부터 토큰 표현을 결합하는 것이었음.
- 전체 모델을 fine-tuning하는 것에 비해 0.3 F1밖에 뒤처짐.
- 결과적으로, BERT는 fine-tuning과 feature-based 접근법 모두 효과적임을 입증함.
6. Conclusion
- LM과의 transfer learning 덕분에 최근의 경험적 개선은 다음을 증명했다.
- rich, 비지도 사전훈련은 많은 언어 이해 시스템에 필수적인 부분이라는 것.
- 낮은 리소스의 task에서도 깊은 unidirectional 구조로부터 이익을 얻는 것을 가능하게 함.
- 이 연구의 가장 큰 기여점은 다음과 같다.
- 깊은 bidirectual 구조를 일반화 한 것.
- 동일한 사전훈련 모델이 광범위한 NLP task를 성공적으로 처리함.