KimbgAI

[NLP] BERT에 대한 간단 설명 (paper review) 본문

카테고리 없음

[NLP] BERT에 대한 간단 설명 (paper review)

KimbgAI 2024. 4. 8. 14:13
반응형

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

Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).

 

2018년에 구글에서 발표된 너무나도 유명하고 NLP 공부할때 milestone이 되는 모델이다.

시작해보자.

 

 

개요

 

언어모델을 개발할때 양질의 pre-trained word representation을 사용하는 것은 매우 중요함.

? 좋은 word representationdown-stream task해결할때 모델의 성능을 좌우하기 때문.

하지만 좋은 word representation을 얻는 것은 굉장히 어려운일 

예를들어, bag of word나 N-gram과 같은 전통적인 방법은 동음이의어를 처리하기 어려움.

조금더 발전된 Word2Vec, Glove와 같은 기존의 word representation도 마찬가지로 단어를 기준으로 하나의 벡터로 표현됨.

가령, 아래와 같이 1개에 단어에는 1개의 벡터가 매핑됨.

 

하지만 이는 문맥을 반영하지 않기 때문에, ‘사과를 건네다와 같은 문장에서 사과가 무엇을 의미하는지 불분명함.

-> context-independent word representation

 

따라서 최근의 많은 NLP들은 context-dependent word representation을 잘 구축하고자 함.

 

 

 

한편 BERT(Bidirectional Encoder Representations from Transformer) 는 요약하면 아래와 같다.

 - Transformer를 Encoder로 활용하여 양방향의 특징을 활용하는 Language model

 - ELMo, GPT-1과 비슷한 시기 발표

 - Objective는 1) 양질의 pre-trained language representation를 얻는 것, 2) down-stream task로의 간단한 fine-tuning

 - BERT base: 110M params like GPT-1

 - BERT large: 340M params

 

 

관련 연구인 ELMo와 GPT-1과 비교하자면, 아래와 같음.

 

 

좀더 자세히 보면 먼저 ELMo는 ,

 

ELMo (Embeddings from Language Models)

  • feature based approach를 사용함
    • input으로 기존의 context-independent word representationpretrained representation을 추가(concat)하여 사용하는 방법임.
  • Bidirection과 LSTM 구조를 사용함.
    • LSTM 특성상 깊고 양방향 특징 학습에 한계가 있음

Bidirection

 

 

GPT-1는

  • fine-tuning based approach 사용
    • pretrained parameterdown-stream task에서 fine-tuning 하는 방법
  • Unidirection과 Transformer 구조 사용

Unidirection

 

 

 

그래서 BERT는 두 모델의 장점을 차용하기로 함.

Bidirection한 transformer 구조로 되어있고, 

down-stream task를 위한 fine-tuning based approcah를 사용한다.

 

 

앞서 말했듯이, BERT는 context-dependent word representation를 잘 구축하고자 했다.

이를 위한 사전학습은 크게 두 가지를 사용했는데,

 

먼저 MLM (Masked language model)이다. 

GPT와 같이 문장 일부분을 masking하고 이를 맞추게끔 학습이 된다.

전체 문장의 15%정도를 masked token으로 가린다.

 

 

 

다음으로는 NSP (Next sentence prediction) 이다.

NSP는 주어진 문장의 다음 문장이 [IsNext]인지 [NotNext]인지 예측하는 문제를 푸는 것이다.

Down-stream task에는 QA (Question & Anwsering)이나 NLI (Natural language inference)와 같은 고수준의 task가 존재한다.

기존 pretrained LM 같은 경우에는 문장 관계를 고려하는 task에서 좋은 성능을 내지 못했다.

그래서 BERT는 NSP를 통해 사전학습된다.

이 그림에서 C token이 NSP task에서 사용된다.

 

한편, BERT는 pretraing을 위해 BooksCorpus (약 8억개 단어) 와 Englich Wikipedia (약 25억개 단어) 를 사용했다.

 

 

 

Pretraining이 완료되었다면, 각 down-stream task에 맞게 fine tuning을 해야한다.

Fine tuning 단계는 task마다 사용되는 BERT의 output이 다르다.

 

Classification task 같은 경우, 예를들어 RTE (Recognizing Textual Entailment) 나 감정분석같은 경우에는 [c] token 을 사용한다. (아래 그림에서 (a)와 (b) 그림에 해당)

 

반면, Token 단위의 task인 경우, 예를들어 QA나 Seqeunce tagging 같은 경우에는 BERT의 output token representation을 새로운 layer에 넘겨주는 형태로 학습한다. (아래 그림에서 (c)와 (c) 그림에 해당)

fine tuning의 예시

 

 

 

BERT의 input은 아래와 같이 3개의 embeddings들이 summation되어 만들어진다.

Token embedding은 WordPiece embedding을 사용.

Segment embedding은 각각의 문장을 구분해주기 위한 것으로, 이는 학습 가능한 parameter로 설정한다고 한다. (어떤 메커니즘인지는 모르겠음)

Position embedding은 흔히 사용되는 Sinusoidal Positional Embedding을 사용한다.

 

 

 

 

Results

 

1. GLUE benchmark dataset에서 평가한 결과
GLUE는 General Language Understanding Evaluation의 약자로 다양한 general language understanding task를 포함함.실험 결과: BERT Base, Large 모두 기존의 방법보다 좋은 성능을 보임
특히 BERT-Large는 다른 어떤 모델보다 특히 우수한 성능을 보임

 

 

2. QA dataset인 SQuAD에서 실험한 결과

답을 포함하는 Wikipedia의 context 지문을 통해 QA 작업을 학습하는 데이터셋

BERT 모델들이 기존의 모델보다 우수한 성능

가장 좋은 성능을 보인 모델은 BERT-Large 모델을 앙상블하고 TriviaQA dataset을 통해 먼저 fine-tuning한 모델. 인간보다도 좋은 판단 능력을 보여줌.

 

 

3. SQuAD 2.0 dataset: (QA)

SQuAD 2.0은 답이 지문에 없는 경우를 포함함.

인간의 능력에는 미치지 못하였지만, 기존의 baseline에 비해서는 매우 우수한 성능

 

 

 

4. SWAG (Situations With Adversarial Generation)

SWAG는 이어지는 문장을 고르는 sentence pair inference task.

BERT 모델이 기존의 모델보다 우수한 성능을 보였으며, BERT_Large는 전문가에 필적하는 결과

 

 

 

 

 

Ablation study

제안한 방법의 유무(Ablation)를 통해 효과를 검증.

1) BERT-Base는 MLM과 NSP를 모두 사용한 일반적인 BERT 모델

2) No NSP는 MLM만을 사용하여 학습한 모델

3) LTR & No NSP는 Left-To-Right 의 단방향 모델을 학습한 결과.

2,3의 비교를 통해 MLM의 효과를 확인할 수 있으며, 1,2의 비교를 통해 NSP의 효과 또한 확인할 수 있음

 

 

 

 

Model size에 따른 성능 비교

모델 크기에 따라 성능이 증가함

 

 

Down-stream task approach method 비교

기존의 방법대로 Fine-tuning Approach로 사용했을때와 ELMo와 같은 Feature-based approach로 사용하였을 때의 결과를 비교함.

Feature-based approach는 아래의 경우를 고려하여 실험 진행.

1) Embedding만 사용

2) 두번째 부터 마지막 Hidden을 사용

3) 마지막 Hidden 만을 사용

4) 마지막 4개의 Hidden을 가중합

5) 마지막 4개의 Hidden을 concat

6) 모든 12개의 층의 값을 가중합

 

Feature based approach로 실험을 진행한 결과,

전체 layer를 가중합 하는 것 보다 마지막 4개 layer를 concatenate하는 방법이 가장 좋은 성능으로 나타남

 

 

 

Conclusion

BERT는 Transformer의 Encoder를 사용하여 양질의 pre-trained language representation를 얻을 수 있는 것과 동시에 down-stream task로의 손쉬운 fine-tuning이 가능한 bidirectional language model. 
이 과정에서 기존의 pretrained language model과는 다르게 MLM과 NSP같은 방법이 효과적으로 적용됨.
그 결과 BERT는 11개의 NLP Task에서 약간의 fine-tuning만을 가지고 매우 우수한 성능을 달성할 수 있었음.
또한 일부 task에 있어서는 인간에 필적하는 결과를 냄.

 

 

 

 

각 Task에 따른 evalutation metric에 대한 이해가 아직 없어서, 결과가 얼마나 좋은것인지 체감이 되지 않아서 공부가 필요함을 느끼며... 일단.. 끝!!

 

 

 

 

 

반응형
Comments