AI 논문 해설/국가권력급

[국가권력급 논문 - 2] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

torchtorchkimtorch 2024. 6. 18. 18:55

문 원본 주소

https://arxiv.org/pdf/1810.04805

 

 

※ 오탈자, 내용 오류 지적, 질문은 댓글 또는 kimtorchedu@gmail.com로 이메일 남겨주시면 감사하겠습니다.

 

# Transformer를 최초로 고안한 Attention Is All You Need 논문에서는, 미래의 정보를 참조할 수 없도록 Masking을 하였습니다. 즉, 현재 시점에서 과거에 해당하는 정보만(왼쪽) 단방향적으로 참조할 수 있다는 것입니다. 그러나 이제부터 읽어볼 BERT 논문에선, 단어 기준 양 방향의 정보를 반영하여 컴퓨터가 문장을 좀 더 다양한 각도에서 파악할 수 있게끔 하는 기술을 제안합니다. 이 논문에서 제안한 방법으로 수많은 후속 언어 모델들이 창시된 만큼, 꼼꼼히 읽어주시면 감사하겠습니다. 


0. Abstract

BERT는 라벨링이 되지 않은 텍스트로 Deep bidirectional representation을 사전 학습할 수 있도록 설계되었습니다.  이 과정에서 왼쪽(과거)과 오른쪽 문맥(미래)을 동시에 고려합니다. 그 결과, Task-specific 한 아키텍처 수정을 거치지 않고 단순히 하나의 출력 계층만 추가해도 여러 분야의 NLP Task에서 SOTA를 달성할 수 있었습니다.

 


1. Introduction

개체명 인식, QA와 같은 Sentence-level task에서 모델은 정교한 수준의 출력을 생성하도록 요구됩니다. 사전 학습된 모델을 Downstream task에 적용하기 위해 Feature-based, Fine-tuning의 기법이 존재합니다. ELMo는 Feature-based 한 접근으로, Task-specific 한 아키텍처를 사용합니다. GPT의 경우, 최소한의 Task-specific 한 파라미터를 도입하며, 모든 사전학습된 파라미터를 Fine-tuning 한 방식으로 Task에 맞추어 학습을 진행합니다. 두 가지 접근법은 단방향 언어 모델을 사용하며 사전 학습에 동일한 목적 함수를 공유합니다.

 

# Feature-based: Task에 맞춰 아키텍처를 설계, Pre-trained representation을 부가적인 Feature로 이용하는 접근 방법. 기존 Pre-trained representation의 아키텍처를 Task에 맞춰 변경하지 않으며, 사전 학습된 모델의 출력 벡터를 입력값으로 사용하여 Task를 수행하는 모델을 별도로 구축.

 

이러한 방식은 Pre-trained representation의 강력함을 저해한다고 논문에서 주장합니다. 가장 주된 이유는, 표준적인 언어 모델들이 단방향적이기 때문입니다. 이것은 양방향 문맥을 포함해야 하는 토큰 단계에서의 Task들에게 치명적입니다. 

 

BERT는 Masked Language Model(MLM)을 사용하여 단방향 언어  모델이 가지고 있는 한계점을 완화합니다. 입력 데이터에서 무작위의 토큰을 마스킹합니다. 이후 모델은 오로지 문맥에 맞추어 원래의 Vocabulary id를 예측합니다. 이러한 방식의 MLM은 왼쪽, 오른쪽 문맥 모두를 고려하기 때문에 Deep bidirectional Transformer을 학습할 수 있습니다. MLM 이외에도 다음 문장 예측 작업(Next Sentence Prediction - NSP)을 통해 텍스트 쌍의 표현을 공동으로 학습합니다. 

 

# NSP: 두 개의 문장이 주어지고, 두 번째 문장이 첫 번째 문장의 다음 문장인지 여부를 예측하도록 모델을 학습합니다. 


2. Related Work

2.1 Unsupervised Feature-based Approaches

Representation은 Coarser granularity로 일반화되어왔습니다. 문장 단위의 Representation을 학습하기 위해, 사전 작업은 다음과 같이 설정되어 왔습니다.

 

- 다음 문장의 순위를 매기기

- 이전 문장의 Representation이 주어지고 Left-to-right 하게 Representation 생성하기

- Autoencoder Denoising

 

# Coarser granularity는 한글로 직역하면 "더 거친 세분화"입니다. 문장 수준의 임베딩을 말하는데, 반의어인 Finer Granularity의 경우 세밀한 세분화, 즉 단어 수준의 임베딩을 의미합니다. 

 

# Autoencoder Denoising: 잡음이 섞인 입력 문장을 원래 문장으로 복원하는 작업입니다.

 

Th# d#g s#t on t#e sofa. >> The dog sat on the sofa.

 

ELMo 및 선행 연구는 Left-to-right, Right-to-left representation을 concatenate 하여 문맥을 반영하는 feature를 추출합니다. 이들은 Feature-based 하며, 심층으로 bidirectional 하지 않습니다.

 

# 해당 연구에선, 양방향 Representation이 부가적으로 작용하기 때문입니다.

2.2 Unsupervised Fine-tuning Approaches

최근의 연구는 라벨링 되지 않은 텍스트로 사전 학습을 진행하고, 라벨링 된 텍스트로 Fine-tuning을 진행합니다. 처음부터 학습해야 하는 파라미터 수가 적다는 장점이 있습니다. Left-to-right 모델링과 Auto-encoder은 이러한 모델을 사전 학습하는데 사용합니다. 

 

# Auto-encoder는 Encoder와 Decoder로 구성된 Unsupervised 모델로, 데이터를 압축하고 다시 복원하여 중요한 특징을 학습하는 데 사용됩니다. 

 

2.3 Transfer Learning from Supervised Data

라벨링된 대규모 데이터셋에서 모델을 미리 학습시켜 Transfer을 진행하는 것에 대한 연구도 있었습니다.

 

# Transfer의 장점 (전이학습)

 

- 학습 시간을 크게 단축할 수 있습니다. 

- 성능이 향상됩니다. 

- 컴퓨팅 자원을 절약할 수 있습니다. 


3. BERT

<그림 1 - BERT QA 모델 예시>

 

Pre-training 단계에선 모델은 다양한 Pre-training task를 통해 라벨링 되지 않은 데이터로 학습됩니다. Fine-tuning 단계에선 BERT 모델은 Pre-trained 된 파라미터로 시작하여 하위 Task에 맞는 라벨링 데이터로 Fine-tuning 됩니다. 같은 Pre-trained 파라미터에서 시작했더라도, 각각의 하류 Task에서 구분된 Fine-tuned 모델을 가집니다.

Model Architecture

BERT모델의 아키텍처는 Multi-layer bidirectional Transformer encoder입니다. 이 논문에서는 두 가지 버전의 모델을 고안하였는데, 레이어의 개수를 L, 각 레이어의 히든 상태의 차원을 H, 셀프 어텐션 헤드의 수를 A라고 하면 Base 모델은 L=12, H=768, A=12, 전체 파라미터 개수는 110M이며 Large 모델은 L=24, H=1024, A=16, 전체 파라미터 갯수는 340M입니다. Base 모델은 GPT와의 비교를 위해 동일한 사이즈로 제작되었지만, BERT는 GPT와 달리 양방향 Self-attention을 적용합니다.

Input/Output Representations

BERT가 다양한 하류 작업을 수행하게끔 하기 위해, 입력 Representation이 단일 문장과 문장 쌍을 하나의 토큰 시퀀스 안에 명확하게 나타낼 수 있도록 하였습니다. 이러한 작업에서 문장은 언어학적 문장의 개념이 아닌 임의의 연속적인 텍스트 범위를 의미합니다. Sequence는 BERT에서 함께 입력 token으로 입력되는 단일 또는 문장쌍을 의미합니다.

 

# 해당 문단은 후에 나올 BERT에 쓰인 여러 가지 학습 기법을 다루다 보면 자연스레 이해가 가실 겁니다. 우선은 그렇구나, 하고 넘어가셔도 무방합니다.

 

매 시퀀스의 가장 첫 번째 토큰은 Special Classification [CLS] 토큰입니다. CLS 토큰에 해당하는 최종 Hidden state가 분류 작업을 위한 Aggregate sequence representation에 사용됩니다. 

 

# Aggregate sequence representation: 입력 시퀀스 전체를 요약하여 표현하는 방법을 의미합니다. 여러 개의 Transformer Encoder 층을 거쳐 나온 최종적인 Embedding 값이 해당 작업에 사용됩니다. 

 

<그림 2 - BERT Embedding 예시>

 

문장 쌍은 하나의 단일 시퀀스로 묶입니다. 이 논문에서는 하나의 시퀀스로 묶인 서로 다른 문장을 두 가지 방법으로 구별했습니다.

 

1. Special Token [SEP]으로 분리합니다.

2. 매 토큰마다 어떤 문장 (문장 A or 문장 B)에 속하는지 학습된 임베딩을 추가합니다. 

 

각 토큰의 입력 Representation은 토큰 임베딩, 세그먼트 임베딩, 위치 임베딩을 합산하여 생성됩니다.

 

# Segment Embedding: 문장 A에 속할 때, 문장 A에 대한 임베딩

 

# 과정이 다소 어렵게 묘사되었는데, 이 문단의 핵심은 크게 [CLS] 토큰과 [SEP] 토큰입니다.

 

먼저 [CLS] 토큰 같은 경우, 분류와 같은 NLP 작업을 좀 더 간편하게 해주는 장치인데 쉽게 말해서 이 토큰 안에 문장의 요약된 정보가 들어간다고 보면 됩니다.

 

[SEP] 토큰의 경우, BERT가 입력받는 데이터가 문장 쌍의 형식으로 구성되는데, 이때 두 문장을 구분하기 위해 사용되는 토큰입니다.

 

최종적으로 다음과 같은 형태로 입력됩니다.

 

[CLS] ~~~ (문장 1 임베딩) ~~~ [SEP] ~~~ (문장 2 임베딩)

3.1 Pre-training BERT

BERT의 사전학습에는 기존 방식과 같이 Left-to-right이나 Right-to-left 방식의 언어 모델이 사용되지 않았습니다. 대신, BERT는 두 가지 비지도 학습 방식을 사용하였습니다. 상세 방안은 다음과 같습니다. 

Task #1: Masked LM

Bidirectioanal 모델은 각 단어가 간접적으로 자기 자신을 바라볼 수 있게 해 주며, 멀티 레이어 문맥에서 목표 단어를 쉽게 예측할 수 있습니다. 이러한 형태의 Deep bidirectional representation을 학습하기 위해, 랜덤으로 입력 토큰의 일부를 mask 하고, masked token을 예측합니다. 이것을 이 논문에선 Masked LM (MLM)이라고 정의합니다. 이 경우, Masked 토큰에 해당하는 최종 Hidden Vector은 출력 소프트맥스에 입력됩니다. 논문에서 수행한 실험에선 15%의 확률로 Masking을 진행하였습니다. 

 

[MASK] 토큰이 Fine-tuning 과정에선 등장하지 않기 때문에, Pre-training과 Fine-tuning이 상이하다는 단점을 가지고 있습니다. 이러한 단점을 줄이기 위해, Masked word를 항상 [MASK] 토큰으로 교체하지는 않았습니다. 한 단어가 Masekd word로 선택되었을 때, 80%의 확률로 [MASK] 토큰으로 교체하고, 10%의 확률로 랜덤 토큰으로 교체하고, 10%는 교체하지 않았습니다. 그다음 Cross entropy loss를 사용하여 원래의 토큰을 예측합니다.

 

# Cross entropy loss: 예측된 확률 분포와 실제 분포와의 차이를 비교하는 방식. 낮을수록 정확한 예측.

 

# Masked LM의 예시는 다음과 같습니다.

 

예를 들어, Jennifer, Will you marry me?라는 문장이 있을 때 

 

1. 15%의 확률로 Masking을 진행할 단어를 고릅니다. 예시에선 Will이라는 단어가 선택되었다고 가정합니다..

 

2. 선택된 Will을 80%의 확률로 Masking, 10%의 확률로 랜덤한 단어로 교체, 10%의 확률로 교체하지 않습니다. 예시에선 Making처리되었다고 가정합니다. 

 

최종적으로, Jennifer, [MASK] you marry me?라는 문장이 입력이 주어지고, 모델은 [MASK]에 해당하는 단어를 예측합니다.

Task #2: Next Sentence Prediction (NSP)

문장 간의 관계를 모델이 학습할 수 있도록, 다음 문장 예측(NSP)을 수행합니다. 문장 쌍 A, B를 구성할 때, 50%의 B는 A에 이어지는 문장, 나머지 50%는 A와 이어지지 않는 문장으로 사전 학습을 위한 데이터를 준비합니다. 

 

# 이어지는 문장 쌍

 

그녀는 밥을 먹었습니다. [SEP] 국도 같이 먹었습니다.

 

# 이어지지 않는 문장 쌍

 

나는 달을 바라보았습니다. [SEP] 제주도는 돌이 참 많습니다. 

3.2 Fine-tuninng BERT

일반적으로 문장 쌍을 활용하기 위해, 각 문장을 먼저 각각 인코딩하고, 이후 양방향 교차 Attention을 적용합니다. 그러나 BERT는 연결된 문장 쌍을 한 번에 인코딩하여 Self-Attention을 적용합니다. 

 

BERT에 입력되는 문장 쌍 A, B의 종류는 다음과 같습니다.

 

1. A와 B가 유의 관계

2. 가설 A가 전제 B로부터 도출되는지

3. 질문 A와 지문 B

4. 분류, 시퀀스 태깅을 위한 문장 A와 비어있는 문장 B

 

# 시퀀스 태깅과 분류 작업에는 별도의 문장 쌍이 필요하지는 않기 때문에, 비어있는 문장을 집어넣습니다. 

 

출력에서 토큰 Representation은 시퀀스 태깅, QA와 같은 토큰 레벨 작업을 위한 레이어로 입력되며, [CLS] Representation은 포함 관계 분석, 감정 분석과 같은 문장 분류 작업을 위한 출력 레이어로 입력됩니다. 


5. Ablation Studies

 

<표 1 - BERT Ablation Studies - Pre-training tasks>

 

# Ablation Studies란 특정 매개 변수 또는 특징의 중요도를 파악하기 위해 수행되는 실험을 의미합니다.

 

# No NSP는 다음 문장 예측 작업이 수행되지 않은 모델, LTR은 Left-to-right LM을, BiLSTM은 LTR & No NSP 모델을 Fine-tuning 하는 과정에서 맨 위에 BiLSTM 모델을 더한 것을 의미합니다.

 

5.1 Effect of Pre-training Tasks

NSP 작업을 진행하지 않았을 때 모델의 성능이 저하됨을 확인할 수 있었습니다. 또한, MLM이 아닌 LTR모델이 사용되었을 때 역시 성능이 저하되었습니다. 

5.2 Effect of Model Size

 

<표 2 - BERT Ablation Studies - Modle size>

 

이전 연구에서는 은닉층의 차원을 특정 임계값을 넘어 증가시켰을 때 유의미한 결과를 불러일으키지 못한다고 판단하였습니다. 해당 연구에서 사용하는 방식은 Feature-based 한 접근 방식이었기 때문입니다.  

 

이 논문에서는 목표로 하는 작업에 맞추어 Fine-tuning을 진행한 아주 작은 크기의 파라미터를 사전 학습을 진행한 모델에 추가해 준다면, 하류 작업에 사용되는 데이터가 작더라도 모델의 크기에서 얻을 수 있는 이점을 얻을 수 있다는 가설을 제시합니다. 

5.3 Feature-based Approach with BERT

<표 3 - BERT Ablation Studies - Feature-based Approach>

 

사전 학습을 완료한 Transformer의 상위 4개의 은닉층에서 토큰 Representation을 연결했을 때 최고 점수를 기록한 BERT Large 모델과 큰 점수차가 나지 않는 것을 확인할 수 있습니다. BERT 모델이 Fine-tuning방식과 Feature-based 방식 모두 효과적으로 작동하는 것을 의미합니다.


마치며

Attention Is All You Need가 획기적인 아키텍처를 제시했다면, BERT논문은 그 아키텍처를 효과적으로 학습시킬 수 있는 방법에 대해 주로 다루었습니다. KoBERT, RoBERTa 등 수많은 후속 언어 모델이 이 논문에서 비롯된 만큼, 꼼꼼히 읽으시면 많은 도움 될 것 같습니다. 

 

세 번째 국가권력급 논문 Improving Language Understanding by Generative Pre-Training (GPT 1)으로 찾아뵙겠습니다. 감사합니다.