[논문 요약] BERT: Pre-training of Deep Bidirectional Transformer for Language Understanding

Lia·2022년 11월 1일
0

papers

목록 보기
4/7

2019년 발표된 'BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding'을 읽고 정리한 글입니다. 원문 보러가기

1. Introduction

언어 모델의 사전 학습은 많은 자연어 처리 영역에서 효과적임을 입증했습니다.

사전 학습된 언어 표현(representations)을 downstream tasks에 적용하는 방법으로
feature-based 방식과 fine-tuning 방식이 있습니다.

ELMo와 같은feature-based 방식은 문자 그대로 사전 학습된 언어 표현을
추가적인 feature로 간주하여 특정 도메인에 적합한 모델 구조를 사용합니다.
(uses task-specific architectures)

OpenAI의 GPT와 같은 fine-tuning 방식은 적은 파라미터를 사용하여
좋은 성능을 보여줄 수 있습니다.

논문의 저자들은 특히나 fine-tuning 방식에서 현재의 기법들이
사전 학습된 표현(representations)의 힘을 제한 한다고 주장합니다.

주된 한계점으로 표준 언어 모델들이 단방향 구조로 이루어져 있고
이러한 한계점이 사전 학습중에 사용될 수 있는 모델 구조의 선택을
제한 한다고 설명하고 있습니다.

논문의 저자들은 OpenAI의 GPT를 그 예시로 언급하고 있습니다.
GPT는 left-to-right 구조를 사용하여 트랜스포머의 셀프 어텐션 레이어에서
각각의 토큰들이 이전 토큰들에만 집중하도록 하고있습니다.

이는 인공지능 모델이 문답과 같이 양방향의 문맥에 대한 이해가 중요한 영역에서
치명적인 특징입니다.

따라서 본 논문에서는 트랜스포머의 인코더 레이어를 사용하여
양방향 모델을 제안합니다.

저자들이 말하는 본 논문의 contributions는 다음과 같습니다.

  1. 언어 표현을 위해 양방향 사전학습의 중요성을 입증 하였다.
  2. 사전학습된 표현들이 특정 도메인에 특화된 모델구조의 필요를 줄였음을 보였다.
  3. BERT 모델은 11개의 도메인에서 SOTA를 달성하였다.

2. BERT

BERT 프레임워크에서는 pre-training / fine-tuning 이 두 단계가 있습니다.

pre-training 단계에서는 모델이 서로 다른 사전학습 처리 영역(different pre-training tasks)에서
라벨링되지 않은 데이터를 학습합니다.

fine-tuning 단계에서 BERT 모델은 사전학습된 파라미터로 초기화가 이루어 지고
모든 파라미터들은 라벨링된 데이터를 사용하여 파인튜닝이 이루어 집니다.
(all of the parameters are fine-tuned using labeled data)

[BERT 모델의 사전학습과 파인튜닝 과정] - Figure 1.

Model Architecture

BERT 모델은 다층 레이어 양방향 트랜스포머 인코더를 사용하였고, 사용한 인코더 레이어는
2017년 발표된 'Attention Is All You Need' 논문에 소개된 트랜스포머 모델 구조와
거의 동일하기 때문에 본 논문에서는 따로 모델 구조를 설명하고 있지 않습니다.

number of layers L
hidden size H
number of self-attention heads A

BERTBASE\mathbf{BERT_{BASE}} (L=12, H=768, A=12, Total Parameters=110M)
BERTLARGE\mathbf{BERT_{LARGE}} (L=24, H=1024, A=16, Total Parameters=340M)

Input/Output Representations

BERT 모델이 다양한 영역에 적용될 수 있도록 input representation은
단일 문장과 문장 쌍 모두 하나의 토큰 sequence에서 명확하게 표현이 가능합니다.

'sequence'는 BERT 모델에 대한 입력 토큰 시퀀스를 나타냅니다.

BERT 모델은 30,000개의 토큰(token vocabulary)으로 이루어진
WordPiece 임베딩을 사용하였습니다.

매 시퀀스의 첫번째 토큰은 항상 [CLS] 토큰 입니다.
이 토큰([CLS])과 상응하는 마지막 은닉 상태(hidden state)는 분류 task를 위한
sequence representations 를 모두 합치기 위해 사용됩니다.

문장 쌍은 하나의 단일 시퀀스에 동시에 입력됩니다.
(Sentence pairs are packed together into a single sequence)

논문의 저자들은 동시에 입력되는 문장 쌍을 두가지 방법으로 구분합니다.
먼저 문장 쌍을 [SEP] 토큰을 사용하여 분리시킵니다.
그런 다음 매 token indicating에 학습된 임베딩을 더합니다.

Figure 1에서 보여지는 바와 같이 입력 임베딩은 E,
[CLS] 토큰의 마지막 hidden vector는 C,
ithi^{th}번째 입력 토큰에 대한 마지막 hidden vector는 TiT_i로 표현됩니다.

아래 그림은 BERT 모델의 input representation 입니다.

2.1 Pre-training BERT

BERT 모델의 사전학습을 위해 두개의 비지도 태스크(unsupervised tasks)를 사용하였습니다.

Task #1: Masked LM

풍부한(deep) 양방향 표현(representation)을 학습시키기 위해서
몇몇의 일부 입력 토큰에 대해 마스킹을 적용했습니다. 이를 Masked LM이라고 합니다.

논문에서는 매 시퀀스 마다 모든 WordPiece 토큰들의 15%에 대해
마스킹을 적용했습니다. ([MASK] 토큰을 사용해 마스킹을 적용함)

그러나 [MASK] 토큰은 파인튜닝 과정에서는 나타나지 않기 때문에
사전학습과 파인튜닝 사이에 불일치(mismatch)가 생기게 됩니다.
이를 방지하기 위해 선택된 모든 토큰들을 [MASK] 토큰으로 바꾸지 않습니다.

랜덤으로 선택된 15% 토큰들에 대해서 80%의 토큰들은 [MASK] 토큰으로 바뀌고
10%의 토큰들은 랜덤한 토큰으로 바뀝니다. 나머지 10% 토큰들은 바뀌지 않습니다.

그런 다음 TiT_i는 cross entropy 손실과 함께 원래의 토큰을 예측하는데 사용됩니다.

이러한 마스킹 비율에 따른 모델의 성능 차이는 아래 표와 같습니다.

[Table 8: Ablation over different masking strategies]

Task #2: Next Sentence Prediction (NSP)

문답(Question Answering) 혹은 자연어 추론(Natural Language Inference)과 같은
영역에서는 두 문장 사이의 관계를 이해하는것이 매우 중요합니다.

이를 위하여 BERT 모델은 Next Sentence Prediction을 수행합니다.

A와 B 두 문장이 있을때 50%는 B가 A에 대해 이어지는 문장으로 구성하고
IsNext로 라벨링 되어집니다.

나머지 50%는 B가 A에 대해 이어지지 않는 문장으로 구성하고
NotNext로 라벨링 됩니다.

이를 위해 Figure 1에서 C가 사용됩니다.

아래는 NSP에 대한 예시 입니다.

Pre-training data

BERT 모델의 사전학습을 위해 방대한 양의 데이터가 사용되었습니다.

BooksCorpus를 사용해 8억개의 단어를 학습하였고
English Wikipedia를 사용해 25억개의 단어를 학습하였습니다.

3. Conclusion

최근 언어 모델을 이용한 전이 학습(transfer learning)으로 인한 개선점들이
입증되었고, 사전학습이 많은 언어 이해 체계의 필수적인 부분이 되었습니다.

특히나 이러한 결과들은 단방향 아키텍쳐들에게 혜택을 주었습니다.

본 논문의 주요 기여는 이러한 연구들을 양방향 아키텍쳐로 일반화 시켰다는 점입니다.

Appendix: 다양한 도메인 적용

profile
하고싶은게 많아요

0개의 댓글