본문 바로가기
딥러닝(Deep Learning)/논문 paper 리뷰

[ToBig's] BERT 논문 이해하기

by rahites 2023. 9. 13.

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

 

BERT는 구글에서 발표한 논문으로 기존 RNN 기반의 모델들의 순차적으로 데이터를 입력해야한다는 문제점을 극복하여 양방향으로 정답을 보고 단어를 예측할 수 있도록 학습시킬 수 있는 방법을 제안한다. 

BERT : https://muppet.fandom.com/wiki/Bert


0. Abstract

BERT : Bidirectional Encoder Representations from Transformers

BERT는 Unlabeled 데이터로 Pre-train한 후 특정 Task에 대해 Fine-Tuning을 진행하는 모델이다. 기존에 Pre-trained BERT에 output layer를 추가하는 것으로 여러 NLP Task를 쉽게 사용할 수 있다. 

 

1. Introduction

이전까지 NLP task에서 Language model의 pre-training 방법을 사용하는 것은 좋은 성능을 이끌어낼 수 있었다. 이 때 Down-stream task에 pre-trained language representation을 적용하는 방법에는 두 가지 전략이 존재한다.

 

1. feature-based Approach

대표적으로 ELMo가 존재하며 Pre-train을 통해 얻은 Representation을 추가적인 Feature로 활용하여 Task-Specific(Fine-Tuning) Architecture를 사용한다. (ELMo는 left-to-right, right-to-left 두 가지의 Representation을 연결(concat)하여 단어 임베딩을 진행하기 때문에 모델 자체는 단방향)

 

2. Fine-tuning Approach

대표적으로 GPT가 존재하며 Task-Specific(Fine-Tuning) 파라미터를 최소화하기 위해 Pre-trained 된 Representation을 모두 Fine-tuning 하는 Downstream Task를 학습한다. 

 

※ Downstream Task

: 최종적으로 해결하고자 하는 Task

 

두 가지 방법 모두 Pre-train 과정에서 동일한 목적함수를 공유하며 일반적으로 language representation을 학습하기 위해 Unidirectional language model을 사용한다.

 

본 논문에서는 기존의 단방향 학습 방법이 Pre-trained representation의 성능을 저하한다고 말하며 MLM(Masked Language Model)을 Pre-training으로 사용하여 양방향 학습이 가능한 BERT 모델을 제안한다. MLM 방식이란 랜덤하게 input token의 일부를 마스킹하고 해당 토큰이 구성하는 문장만을 기반으로 마스킹된 token들의 원래 값을 정확하게 예측하는 것을 말한다. 결국 MLM은 양방향 context를 결합하여 Bidirectional Transformer 모델을 생성한다. 추가적으로, 두 문장이 주어졌을 때 이어지는 문장인지 아닌지를 판단하기 위해 Next Sentence Prediction Task 또한 사용한다.

 

2. Related Work

  • Unsupervised Feature-based Approaches
  • Unsupervised Fine-tuning Approaches
  • Transfer Learning from Supervised Data

 

3. BERT

그림처럼 모든 DownStream Task에서 같은 Pre-traning 파라미터를 사용

BERT 모델은 Pre-training과 Fine-Tuning 두 단계로 나뉜다. Pre-Training은 Unlabeled 데이터로 학습되며 Fine-Tuning을 위해 BERT 모델은 우선 Pre-training된 파라미터로 초기화되고 DownStream 작업의 label이 있는 데이터로 Fine-Tuning된다. 

 

Model Architecture

BERT 모델의 구조는 양방향 Transformer의 Encoder를 여러 층으로 쌓은 것이다. 

 

Input/Output Representations

Input은 3가지 Embedding Vector를 합쳐 사용한다.

  • Token Embeddings
  • Segment Embeddings : SEP 토큰으로 각 문장이 A문장인지, B문장인지 구분
  • Position Embeddings : 위치 정보를 담음

 

3.1. Pre-training BERT

BERT의 Pre-training 과정에는 2가지 Unsupervised-Task가 사용된다.

 

Task #1: Masked LM

: Input Token의 일정 비율을 마스킹하고 마스킹 된 토큰을 예측

 

실험을 통해 Mask의 비율이 15% 일 때 성능이 가장 좋았음을 확인 & Mask는 Pre-training에만 사용하였다. 하지만 이 경우 Fine-tuning에는 Mask 토큰이 존재하지 않기 때문에 변경해주는 15%의 Mask 토큰에 대해 80%는 [MASK], 10%는 랜덤 단어, 10%는 원래 단어 그대로 놔두는 작업을 진행한다. 

 

이 때 랜덤 단어로 바꾸는 것은 전체로 보았을 때 1.5% 밖에 되지 않는 적은 수치로 성능이 낮아지지 않고, 10%의 원래 단어의 경우에는 실제 관측 단어에 대한 Representation에 bias를 주는 과정이라고 한다.

 

Task #2: Next Sentence Prediction (NSP)

NLP의 DownStream Task는 두 문장 사이의 관계를 이해하는 것이 중요하다. 이를 위해 BERT에서는 Next Sentence Prediction(NSP)를 사용한다. BERT는 NSP를 활용하여 Corpus에서 Input으로 들어온 두 문장이 붙어있던 문장인지 아닌지를 학습한다. 

 

Pre-training data

Pre-training을 위해 Books Corpus와 English Wikipedia의 많은 데이터를 사용하였다. 긴 시퀀스를 뽑아내기 위해 문서 단위의 Corpus를 사용하였다.

 

3.2. Fine-tuning BERT

Transformer의 Self-Attention 매커니즘을 활용하여 BERT는 하나의 Pre-training 파라미터를 활용해 여러 DownStream Task를 Fine-Tuning 할 수 있다. 

 

하나의 Layer를 위에 쌓아 Fine-Tuning을 진행하고 수행하려는 Downstream Task에 따라 다른 Task-specific Input을 사용한다.

(1) 문장 쌍 (Paraphrasing)

(2) 가설-전제 쌍 (Hypothesis-premise pairs in Entailment)

(3) 질문-문단 쌍 (Question Answering)

(4) 텍스트 쌍 (Tagging, Text Pair Classification)

 

물론 Output의 형태 또한 Task에 따라 달라진다.

 

<참고자료>

https://youtu.be/30SvdoA6ApE?si=jNGbz9rO0rSe-nJU 

https://hyunsooworld.tistory.com/entry/%EC%B5%9C%EB%8C%80%ED%95%9C-%EC%9E%90%EC%84%B8%ED%95%98%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%9C-%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-BERT-Pre-training-of-Deep-Bidirectional-Transformers-for-Language-Understanding-1

 

[최대한 자세하게 설명한 논문리뷰] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

- References https://arxiv.org/abs/1810.04805?source=post_page (논문 원본) 해당 포스팅은 BERT 논문을 자세히 읽으며 공부한 내용들을 논문의 목차 순서대로 정리한 것이다. 0. Abstract BERT가 unlabeled text로부터 deep

hyunsooworld.tistory.com


세 줄 요약

1. 기존의 단방향 언어 모델들이 언어 표현을 제한하기 때문에 이를 극복하고 양방향 학습이 가능한 BERT 모델 제안
2. Pre-training에 Masking과 NSP 기법을 활용하여 시퀀스 간의 관계를 모델이 잘 학습하도록 구성함
3. 하나의 Pre-trained 모델을 활용하여 여러 NLP DownStream Task에 적용가능 

 

댓글