본문 바로가기
DL/basic

[논문리뷰] BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding

by hits_gold 2022. 2. 16.
반응형

이 논문을 읽기 전에 알면 좋겠다고 생각한 것(내가 몰랐던 것)

   1. pre-trained language representation을 적용하는 두가지 전략

        1) feature-based : 임베딩은 그대로 두고 그 위에 레이어만 학습 하는 방법

        2) fine-tuning : 임베딩까지 모두 업데이트하는 기법

 

    2. downstream Task

            -> 원래 목적으로 만들어진 모델을 fine-tuning할 때 쓰이는 task

                 pre-trained 모델(상류) ------특정 task에 fine-tuning중----> 하류

            ->  이때 특정 task가 downstream Task

    3. ablation study

             -> 머신러닝, 딥러닝 논문에 나오는 단어인데 ablation은 절제라는 뜻으로 완성된 모델에서

                 ai시스템의 일부를 제거해 해당 부분이 시스템 성능에 얼마나 영향을 미쳤나 연구하는 것이다.

 

 

 

Abstract

 BERT는 Bideirectional Encoder Representations from Transformers의 줄임말로, 이전 언어 표현 모델들과 달리 양쪽의 문맥을 동시에 조절함을 통해 라벨링되지 않은 텍스트로부터 bidirectional representations을 학습하도록 설계된 모델이다. BERT는 추가적인 output layer 하나만 fine-tunning한다면 광범위한 task에서 sota를 달성할 수 있다.

  

Introduction

  기존에 pre-trained language representation를 적용하는 전략은 feature-based와 fine-tuning 두 가지가 있었는데 둘 다 단방향적인 언어 모델이라고 할 수 있다.

  현존하는 기술들은 특히 fine-tuning 접근에서 pre-trained representation이 힘을 제한하게 되는데, 이는 기존의 언어모델들이 단방향이고, 이것이 pre-training과정에서 사용될 수 있는 아키텍쳐의 choice를 제한하는 것이다.

 이 논문에서, BERT를 제안함으로써 fine-tuning based 접근을 더 향상시킨다. BERT는 "masked language model(MLM)"을 사용하여 이전에 언급한 단방향적인 모델의 제한을 덜어낸다.  MLM은 불규칙적으로 input의 token을 masking하고 모델은 그것의 맥락으로만 원래의 voca id를 예측하려하게 된다.

  이전의 단방향적인 모델들과 달리 MLM은 깊은 bidrectional Transformer를 pre-train할 수 있다. 게다가 MLM은 text-pair representation을 동시에 학습해 "next sentence prediction"을 사용한다.

 

  이 논문의 성과는 다음과 같다.

  •  language representations를 위한 양방향의 pre-training의 중요성을 입증한다.
  •  pre-trained reperesentations가 무거운 아키테쳐의 중요성을 줄인다는 것을 보여준다.
  •  11개의 task에서 sota를 달성한다.

BERT

  BERT의 두가지 스텝

   1) pre-training

        -> 다른 pre-traning task에서 라벨링되지 않은 데이터를 학습한다

   2) fine-tuning

        -> pre-trained parameters를 초깃값으로, downstream task의 라벨링된 데이터로 모든 parameter를 fine-tuning한다.

 

Model Architecture

  BERT의 기본적인 구조는 Transformer이고 이를 사용하는 것은 흔한 일이기 때문에 관련된 자세한 설명은 생략한다.

 

 이 논문에서 Transformer block의 개수를 L, hidden size를  H, self-attention head 개수를 A로 표시한다. 또한 본 논문에서는 BERT(base)(L=12, H=768, A=12, Total Parameters=110M)와 BERT(LARGE) (L=24, H=1024, A = 16, Total Parametes = 340 ) 이렇게 두 개 사이즈의 모델을 결과로서 주로 기록한다.

 BERT(base)는 비교하기 위해 OpenAI GPT와 같은 사이즈이고, 차이점은 OpenAI GPT는 모든 token이 왼쪽의 맥락만을 참조할 수 있고, BERT는 양방향성이라는 것이다.

Input/Output Representations

 BERT를 다양한 downstream task에 적용하기 위해서 input representation은 분명하게 single sentence와 pair of sentences를 한 토큰 시퀀스에 표현할 수 있어야한다. 이 과정에서, "sentence"는 언어적인 sentence보다 인접한 text의 임의적인 범위여야한다. 논문에서 "시퀀스"는 BERT의 input token으로 들어가 한 문장 또는 두 개의 패킹된 문장들을 의미한다.

BERT input representations

  WordPiece embedding방법을 통해 30,000개 토큰 voca를 사용했고, input token을 정리하면 다음과 같다

   1) Token Embedding -> CLS(Classification token), SEP(Special seperate token)이라는 두가지 특수 토큰을 만든다.

      CLS는 모든 문장의 첫 번째 토큰으로 들어가고 Classification task에서 사용되고, 해당 task가 아닐경우 무시된다.

      SEP를 통해 첫 문장과 두 번째 문장을 구별한다.

    2) Segment Embedding 토큰을 각 문장의 끝에 삽입해 앞 뒤 문장을 더욱 쉽게 구별하도록 만들어준다.

    3) Transformer 구조에서도 사용된 Position Embedding

이 세가지 Embedding을 더해 input으로 사용한다.

 

Pre-training BERT

 BERT에서는 다음과 같은 두가지의 unsupervised-task를 사용해 pre-train한다.

 

 Task1) Masked LM

   문장에서 token 일부를 Masking한다. 논문에서는 각 시퀀스마다 랜덤으로 15프로의 token을 masking했다고 한다. 15프로의 랜덤한 masked token을 사용하자 pre-training과정에서 문제가 생겼고 이를 완화하기 위해 다음과 같이 수정했다.

    1) 랜덤으로 15%의 토큰을 정한다.

    2) 학습의 모든 경우의 80%에 1)에서 선택된 token을 masked token으로 사용한다.

    3) 학습의 10%에 random token으로 1)에서 선택된 token을 대체한다.

    4) 나머지 10%에 1)에서 선택된 token을 그대로 사용한다.

 

  Task2) Next Sentence Prediction(NSP)

   QA(question answering)와 NLI(natural language inference)같은 task는 두 문장의 관계를 알아내는 것에 기초한다. 이를 위해 본 논문에서는 이진적인 "next sentence prediction" task를 pre-train한다. 이는 다음과 같다.

    1) A와 B문장을 Pre-training 예시로 선택한다.

    2) 50%의 경우 B는 A의 뒤를 따르는 다음 문장인 경우로 설정한다

    3) 50%의 경우 B는 random sentence로 설정한다.

 

Fine tuning BERT

 Transformer가 BERT로 많은 downstream-task를 모델링하도록 했기 때문에 fine-tuning은 복잡하지 않다. txt pairs를 포함하는 application들은, 양방향의 attention을 적용하기 전에 text pairs의 흔한 패턴이 독립적으로 인코딩된다. BERT는 대신 이 두 가지 stage(양방향 attention과 text pairs의 독립적 인코딩)를 통합하기 위해 self-attention 메커니즘을 사용한다.

 a, b는 sequence-level-task, c,d는 token-level task다. a, b같은 경우 classification task이기 떄문에 CLS가 output으로 사용된다. c는 QA task로 SEP 이후에서 start-end span을 찾도록 한다. d는 각 토큰에 대한 tagging 작업을 하는 task이다.

 

 

Experiments

--

ablation studies

  1. Effect of Pre-training Tasks

   

    -  No NSP : NSP없이 MLM으로만 학습된 bidirectional model

    - LTR & No NSP : NSP없고 MLM이 아닌 LTR(Left-to-Right)모델을 적용한 것. 이 경우에 pre-train과 fine-tune과정에서 mismach가 일어나 fine-tuning과정에도 적용함.

 

   비교 결과는 위 테이블과 같고, 마지막 BILSTM같은 경우 LTR&NO NSP 모델에  랜덤 초깃값으로 설정된 양방향 LSTM을 얹은 것이다. BiLSTM을 얹은 결과 SQuAD에서 성능 향상이 있었지만, 나머지는 더 떨어졌다.

 

  2. Model size

   fine-tuning accuracy에 model size가 끼친 영향을 알아본다. 

  여기서 GLUE tasks를 사용해 각 경우를 비교했고 LM(ppl)은  MLM의 perplexity를 의미한다.

 

  3. Featured-based Approach with BERT

     기존 fine-tuning 모델과 features-based 모델을 비교한 결과 BERT는 두 가지 방식 모두 효과가 있었다.(BERT_LARGE가 제일 좋은 성능을 보여줌)

반응형

'DL > basic' 카테고리의 다른 글

SPPNet  (3) 2024.01.04
GoogLeNet  (2) 2024.01.04
ResNet  (2) 2024.01.04
[논문리뷰] Attention is all you need  (0) 2022.02.15
[논문리뷰]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks  (0) 2022.01.23