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

현선·2025년 9월 9일

논문리뷰

목록 보기
5/11

논문 출처: https://arxiv.org/pdf/1810.04805

Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." Proceedings of the 2019 conference of the North American chapter of the association for computational linguistics: human language technologies, volume 1 (long and short papers). 2019.

0. Abstract

이 논문에서는 BERT(Bidirectional Encoder Representations from Transformers)라 불리는 새로운 언어 표현 모델을 소개한다. BERT는 모든 층에서 좌우 문맥을 공동으로 조건화함으로써 비지도 학습 기반의 깊은 양방향 표현을 사전 학습하도록 설계되었다.

그 결과, 사전 학습된 BERT 모델은 단 하나의 추가 출력 층만으로도 다양한 작업(예: 질의 응답, 언어 추론)에 대해 높은 성능을 달성할 수 있으며, 특정 작업에 특화된 아키텍처의 대규모 변경 없이도 가능하다.

BERT는 다음을 포함한 11개의 자연어 처리 작업에서 새로운 최첨단 결과를 달성하였다:

  • GLUE 점수: 80.5% (7.7%포인트 향상)
  • MultiNLI 정확도: 86.7% (4.6%포인트 향상)
  • SQuAD v1.1 테스트 F1: 93.2 (1.5포인트 향상)
  • SQuAD v2.0 테스트 F1: 83.1 (5.1포인트 향상)

앞뒤 문맥을 동시에 고려하는 BERT는, 사전학습만 잘 해두면 거의 모든 언어 작업을 쉽게 해낼 수 있다.


1. Introduction

언어 모델 사전 학습은 다양한 자연어 처리 작업의 성능을 향상시키는 데 효과적인 것으로 입증되었다.

여기에는 문장 전체를 분석하여 문장 간 관계를 예측 문장 수준 작업과, 토큰 수준 작업이 포함된다

  • 문장 수준
    예: 자연어 추론(NLI), 패러프레이징
    → 문장 간의 관계를 파악하는 작업

  • 토큰 수준
    예: 개체명 인식(NER), 질의응답(QA)
    → 문장에서 특정 단어(토큰)에 대한 정밀한 판단이 필요한 작업

사전 학습된 언어 표현을 다운스트림 작업에 적용하는 기존 전략은 두 가지가 있다: 특징 기반 접근법파인튜닝 접근법이다.

  • 특징 기반 접근법: 사전 학습된 표현을 추가적인 입력 특성으로 사용하며, 작업별로 별도의 아키텍처를 설계한다.
    ex) ELMo

  • 파인튜닝 방식: 작업별로 최소한의 파라미터만 추가하고, 사전 학습된 모든 파라미터를 그대로 파인튜닝하여 다운스트림 작업에 적용한다.
    ex) OpenAI GPT

이 두 접근법은 사전 학습 단계에서 같은 목적 함수를 사용하며, 일반적으로 단방향 언어 모델을 통해 일반적인 언어 표현을 학습한다.

“같은 목적 함수를 사용한다” → 사전학습할 때 둘 다 단방향 언어모델링(다음 단어 예측)이라는 동일한 학습 문제를 풀었다는 뜻

그러나 기존 방식들, 특히 파인튜닝 기반 접근법은 사전학습된 표현의 잠재력을 제한하는 한계가 있다.

그 핵심 원인은 대부분의 언어 모델이 단방향 구조를 따르기 때문인데, 이로 인해 사전학습 단계에서 사용할 수 있는 모델 구조가 제한된다.

예를 들어, OpenAI GPT는 왼쪽에서 오른쪽으로만 문맥을 바라보는 구조를 채택했다.
이 구조에서는 트랜스포머의 self-attention 계층에서 각 토큰이 자신 앞에 있는 단어들만 참고할 수 있다.

문제점
1). 문장 수준 작업에 비효율적

자연어 추론(NLI)처럼 문장 전체 의미를 파악해야 하는 작업에선
한쪽 방향 정보만 보면 정확한 판단이 어렵다.

2) 토큰 수준 작업에는 더 치명적
예를 들어 질의응답(QA)에서는 "정답이 왼쪽에 있는지, 오른쪽에 있는지" 모르는 상황이 많은데,GPT 같은 구조는 반쪽짜리 문맥만 보기 때문에 성능에 한계가 생긴다.

이 논문에서는 이러한 파인튜닝 기반 접근법을 개선하기 위해 BERT를 제안한다.

BERT는 Masked Language Model, MLM이라는 사전 학습 목적 함수를 사용함으로써 앞서 언급한 단방향 제약을 완화한다.

해결책
1).Masked Language Model (MLM)

기존처럼 단방향으로만 보는 게 아니라, 입력 문장에서 일부 단어를 마스킹하고, 양쪽 문맥을 모두 활용해 해당 단어를 맞추는 방식으로 학습
→ 이걸 통해 Transformer 전체를 깊은 양방향으로 사전학습할 수 있게 된다,

2). Next Sentence Prediction (NSP)

문장 간 관계도 미리 학습시키기 위해, "다음 문장이 실제로 이어지는 문장인가?"를 맞추는 이진 분류 태스크도 함께 학습한다.

본 논문의 주요 기여는 다음과 같다:

  • 양방향 학습의 중요성 강조
    -GPT처럼 단방향이 아니라, MLM을 통해 진짜 양방향 표현 학습을 가능하게 함
    -기존 모델들과 확실히 차별화됨

  • 복잡한 모델 설계 필요 없음

  • 사전 학습된 표현이 고도로 설계된 작업별 아키텍처에 대한 의존을 줄일 수 있음을 보여준다.
  • 성능 향상
    -BERT는 파인튜닝 기반의 표현 학습 모델 중 최초로, 다양한 문장 수준 및 토큰 수준 작업에서 최첨단 성능을 달성했으며, 많은 작업별 전용 아키텍처들을 능가했다.
    -BERT는 총 11개의 NLP 작업에서 최신 성능을 갱신했다.

2 Related Work

일반적인 언어 표현을 사전학습 하는 연구는 오랜 역사를 가지고 있으며, 이 절에서는 가장 널리 사용되는 접근법들을 간단히 정리한다.

2.1 Unsupervised Feature-based Approaches

단어의 범용적이고 널리 적용 가능한 표현을 학습하는 것은 수십 년간 활발히 연구되어온 주제다.
이에는 비신경망 기반 기법신경망 기반 기법 모두 포함된다.

사전학습된 단어 임베딩은 초기화 없이 훈련한 임베딩에 비해 상당한 성능 향상을 제공한다

이러한 단어 임베딩 벡터를 사전학습하기 위해 사용된 목적 함수는 아래와 같다.

  • 왼쪽에서 오른쪽 방향의 언어 모델링
  • 좌우 문맥을 기반으로 올바른 단어와 틀린 단어를 구분하는 목적 함수

이러한 접근법은 단어만으로는 문맥을 표현하기 어려우니,더 큰 단위인 문장 임베딩이나 문단 임베딩으로 발전했다.

문장 표현을 훈련하기 위해 다음과 같은 방법들이 사용되어 왔다:

방법설명
Skip-Thoughts이전 문장을 보고 다음 문장을 생성
Quick-Thoughts다음 문장을 맞히는 순위 예측 문제
Paragraph Vector문단 전체를 하나의 벡터로 표현
Denoising Autoencoder문장에 노이즈를 넣고 원래 문장 복원

ELMo 및 그 전신 모델은 기존 단어 임베딩 연구를 다른 차원으로 일반화한 것이다.
-> 단어를 문맥에 따라 다르게 표현할 수 있다

예: “play”는 밴드에서 쓰이면 악기 뜻, 경기에서 쓰이면 스포츠 동사
→ 문맥에 따라 벡터가 달라짐

ELMo의 구조

  • 왼쪽→오른쪽 LSTM + 오른쪽→왼쪽 LSTM → 각각 따로 훈련
  • 각 토큰의 표현 = 두 방향 결과를 붙여서 사용
    → 하지만 여전히 완전히 양방향 학습은 아님

이러한 문맥 단어 임베딩을 기존의 작업별 아키텍처에 통합했을 때,
ELMo는 여러 주요 NLP 벤치마크에서 최첨단 성능을 달성했다

여기에는 다음과 같은 작업들이 포함된다:

  • 질의응답
  • 감성 분석
  • 개체명 인식

그 외 다양한 시도들

  • Melamud et al. (2016)
    → 좌우 문맥을 기반으로 중간 단어를 예측하는 task
    → 이 모델도 feature-based였고, 깊은 양방향 구조는 아님.
구분특징 기반 (Feature-based)깊은 양방향 (Deeply Bidirectional)
대표 예시ELMoBERT
구조좌→우, 우→좌 따로 훈련한 모델에서 좌우 동시에 학습
문맥 처리양쪽 문맥을 나눠서 보고 나중에 결합문맥을 한 번에 양방향으로 처리
표현 방식L2R 벡터 + R2L 벡터 → concat전체 문장을 한 번에 보고 토큰 임베딩 생성
파인튜닝 방식기존 모델에 임베딩만 추가전체 모델을 통째로 fine-tuning
한계좌우 정보가 완전히 통합되지 않음진짜 의미의 양방향 이해 가능
  • Fedus et al. (2018)
    → Cloze task (빈칸 채우기)를 활용해 텍스트 생성 모델의 견고성 향상

2.2 Unsupervised Fine-tuning Approaches

기존의 feature-based 접근법과 마찬가지로, 초기의 연구들은 비지도 텍스트에서 단어 임베딩 파라미터만을 사전학습하는 데 집중했다

이후에는 더 발전된 방식으로,문장 또는 문서 인코더가 등장했는데,

  1. 문맥 기반 토큰 표현
  2. 비라벨 데이터로 사전학습한 뒤,
  3. 라벨이 있는 다운스트림 작업에 fine-tuning하는 흐름으로 발전

이 접근법의 장점은, 처음부터 새로 학습해야 할 파라미터 수가 적다는 점이다. 이러한 이점 덕분에, OpenAI GPT는 GLUE benchmark의 여러 문장 수준 태스크에서 기존 최고 성능을 달성할 수 있었다.

이러한 모델들을 사전학습하는 데에는 아래와 같은 방식 사용

  • Left-to-right language modeling
    → 문장을 왼쪽에서 오른쪽으로 순차적으로 예측
  • Autoencoder 기반 학습
    → 문장 구조를 복원하거나 중간 단어를 예측하는 방식

2.3 Transfer Learning from Supervised Data

대규모 supervised learning 데이터셋을 활용한 태스크로부터 전이 학습이 효과적이라는 연구들도 있다.

전이학습: 기존에 학습된 모델이 습득한 표현/지식을 유사하거나 전혀 다른 태스크에 적용함으로써 모델의 일반화 성능을 높이고 학습 효율을 개선하는 기술

예를 들어,

  • 자연어 추론
  • 기계 번역
    같은 과제에서 감독 데이터로 훈련된 모델을 다른 작업에 전이하는 방식이다.

컴퓨터 비전 분야에서도 전이 학습의 중요성이 여러 차례 입증되었으며,ImageNet으로 사전학습된 모델을 다른 비전 태스크에 파인튜닝하는 방식이 효과적인 접근법으로 자리잡았다.


3. BERT

이 절에서는 BERT와 그 구현 세부사항을 소개한다.

프레임워크는 두 단계로 구성된다: ① Pre-training, ② Fine-tuning

  • 사전학습 단계에서는 모델이 다양한 사전학습 과제에 대해 unlabeled 데이터를 사용하여 학습된다.

  • 파인튜닝 단계에서는 사전학습된 파라미터로 초기화된 BERT 모델을, 다운스트림 작업의 라벨이 있는 데이터로 모든 파라미터를 파인튜닝한다.

모든 다운스트림 태스크는 같은 사전학습된 파라미터로 초기화되지만,
태스크마다 개별적으로 파인튜닝된 모델을 가진다.

✅ BERT의 뚜렷한 특징 중 하나는, 다양한 task에 대해 동일한 아키텍처를 사용할 수 있다는 점이다.
-> 사전학습 시의 모델 구조와 다운스트림 태스크 시의 구조가 거의 동일하다.

시작점도 같고 구조도 같지만, 각 태스크에서 따로 훈련하니까 결과 모델은 달라진다.
구조(아키텍처)는 동일하고, 파라미터는 파인튜닝으로 달라지는 것!

하이퍼파라미터 표기

  • Transformer 층 수: L
  • 히든 사이즈: H
  • self-attention 헤드 수: A

이 논문에서는 다음 두 가지 BERT 모델 크기에 대해 결과를 보고한다:

모델LHA총 파라미터 수
BERTBASE1276812110M
BERTLARGE24102416340M

중요한 차이점은 다음과 같다:
BERT는 양방향 self-attention을 사용하는 반면, GPT는 좌측 문맥만을 참고하는 제한된 self-attention을 사용한다.

Input/Output Representations

BERT가 다양한 다운스트림 태스크를 처리할 수 있도록 하기 위해,
입력 표현 방식은 단일 문장문장 쌍을 하나의 토큰 시퀀스로 명확히 표현할 수 있도록 설계되었다.

이 논문에서 "문장"이란, 단순히 연속된 텍스트를 의미한다. "시퀀스"는 BERT에 입력되는 토큰 시퀀스 전체를 뜻하며, 하나의 문장 또는 두 문장이 결합된 형태일 수 있다.
-> BERT는 "문장 1개"든, "문장 2개"든 모두 하나의 입력으로 만들어서 처리할 수 있다.

BERT는 WordPiece 임베딩을 사용하며, 30,000개의 토큰vocabulary를 기반으로 한다.

  • 모든 시퀀스의 첫 토큰은 항상 [CLS]라는 특수한 분류 토큰이다.
  • 이 토큰에 해당하는 최종 hidden state는 분류 작업에서 시퀀스 전체의 표현으로 사용된다.
    -> 분류할 때는 [CLS] 토큰의 출력 벡터 하나만 보고 전체 문장을 판단

문장 쌍 입력 시, 두 문장을 하나의 시퀀스로 결합하고
두 가지 방식으로 구분한다:

  • 두 문장 사이에 특수 토큰 [SEP]을 삽입한다.
  • 각 토큰마다 해당 토큰이 문장 A에 속하는지, 문장 B에 속하는지를 나타내는 학습 가능한 segment embedding을 더해준다.

각 입력 토큰의 벡터 표현은 다음 세 가지를 더해서 만든다:

  • WordPiece Embedding : 실질적인 입력이 되는 워드 임베딩. 임베딩 벡터의 종류는 단어 집합의 크기로 30,522개.
  • Position Embedding : 위치 정보를 학습하기 위한 임베딩. 임베딩 벡터의 종류는 문장의 최대 길이인 512개.
  • Segment Embedding : 두 개의 문장을 구분하기 위한 임베딩. 임베딩 벡터의 종류는 문장의 최대 개수인 2개.

3.1 Pre-training BERT

이 논문에서는 BERT를 사전 학습할 때 전통적인 좌→우 또는 우→좌 언어 모델을 사용하지 않았다.
대신, 이 섹션에서 설명할 두 가지 비지도 학습 기반 과제를 통해 BERT를 사전 학습했다.

✅ Task #1: Masked LM (MLM)

기존 언어 모델(좌→우, 우→좌)은 단방향이라 한계가 있다.
→ 진짜 "양방향 문맥"을 활용하려면, 단어 예측할 때 양쪽 다 봐야 됨.

⚠️
그러나 양방향으로 문장을 보면서 단어를 예측하면...
모델이 답을 미리 보고 맞추게 됨→ 학습 무의미

💡 해결책
그래서 진짜 양방향 표현을 학습할 수 있게 하기 위해,단어를 ‘가려서’ 예측하게 만들자!

Masked LM (MLM) 등장
: 입력 토큰 중 일부를 무작위로 가리고(Mask), 그 가려진 단어를 예측하는 방식을 사용하는 방식.

  • 입력 문장에서 WordPiece 토큰 중 15%를 무작위로 선택해 마스킹

이 방식 덕분에 양방향 표현을 학습할 수 있게 되었지만, 하나의 단점도 있다:

→ 사전 학습에는 [MASK] 토큰을 쓰는데,
실제 다운스트림 파인튜닝할 때는 [MASK]가 등장하지 않기 때문에,
사전 학습과 파인튜닝 간에 불일치가 생긴다.

이 문제를 줄이기 위해, 마스킹 방식은 아래처럼 세 가지로 랜덤하게 처리:

  • 80% 확률[MASK] 토큰으로 바꾸고
  • 10% 확률로 무작위 단어(random token)로 바꾸고
  • 10% 확률로 그냥 원래 단어를 유지한다

이후,

  1. [MASK]가 있던 자리에 대해 BERT는 그 위치의 벡터(T_i)를 만들어내고,
  2. 이걸 가지고 전체 단어 목록 중에서 가장 가능성 높은 단어를 softmax로 예측한다.
  3. 그 다음, 이 예측 결과가 실제 정답이랑 얼마나 다른지를 cross-entropy loss로 계산해서,
  4. 틀린 만큼 모델이 더 똑똑해지도록 파라미터를 업데이트

✅ Task #2:Next Sentence Prediction, NSP

질문 응답, 자연어 추론 등 중요한 많은 다운스트림 작업들
두 문장 간의 관계 이해가 필수적인데, 이는 단순한 언어 모델링만으로는 직접적으로 학습되지 않는다.

그래서 BERT는 두 문장의 연결 관계를 학습할 수 있도록 NSP라는 이진 분류 태스크를 설계했다.

이 NSP 데이터는 단일 코퍼스로부터 아주 쉽게 생성할 수 있다.
구체적으로, 매 사전 학습 샘플마다 문장 A와 B를 선택할 때:

  • 50% 확률로 B는 A 다음에 실제로 등장하는 문장 (라벨: IsNext)
  • 50% 확률로 B는 완전 랜덤한 문장 (라벨: NotNext)

비록 이 task는 단순해 보일 수 있지만, QA와 NLI 성능에 큰 영향을 준다.

기존 연구는 sentence embedding만을 전달했던 반면,
BERT는 전체 모델 파라미터 자체를 다운스트림 task에 그대로 전달한다는 점에서 다르다.


✅ 사전 학습 데이터

BERT는 언어 모델 사전 학습에 관한 기존 연구들을 전반적으로 따랐다.
사전 학습에 사용한 데이터는 다음과 같다:

  • BooksCorpus (8억 단어)
  • 영어 위키백과 (25억 단어)

이때 중요한 건,
문서 단위로 구성된 코퍼스를 사용하는 것이 필수적이라는 점이다.
-> NSP는 문장 간 관계를 학습하는 과제이기 때문에, 문장 단위로 랜덤하게 섞인 데이터는 부적절

3.2 Fine-tuning BERT

Transformer의 셀프 어텐션 메커니즘 덕분에, BERT는 단일 문장이든 문장 쌍이든 다양한 다운스트림 태스크를 유연하게 처리할 수 있기 때문에 fine-tuning은 매우 간단하다.

→ 즉, 입력과 출력 구조만 태스크에 맞게 바꿔주면, 파인튜닝은 그냥 그대로 전체 모델을 학습시키면 된다.

문장 쌍이 필요한 태스크에서는, 기존 방식대로라면 문장 A와 문장 B를 각각 따로 인코딩한 다음, 그 후에 서로 정보를 주고받는 양방향 교차 어텐션을 적용하는 게 일반적이다.

하지만 BERT는 이 두 단계를 하나로 통합한다.
→ 문장 A와 B를 단순히 이어붙여서 Transformer에 입력하면, 셀프 어텐션이 자동으로 양방향 교차 어텐션 역할까지 해준다.
→ 즉, 문장 A의 토큰은 문장 B의 모든 토큰을 참고하고, 그 반대도 마찬가지

항목기존 방식 (예: Parikh et al., Seo et al.)BERT 방식
문장 쌍 처리A, B 각각 인코딩 → Cross-AttentionA와 B를 그냥 이어붙임 → Self-Attention 하나로 처리
교차 정보 교환별도 어텐션 필요스스로 양방향 참고함

각 태스크에서는 다음과 같이 진행한다:

  • 입력 단계에서는, 사전학습에서 사용했던 문장 A와 B 쌍이 다음과 같이 사용된다:

    1. 문장 유사도 분석 (paraphrasing) → 문장 쌍
    2. 자연어 추론 (NLI) → 가설(hypothesis)-전제(premise) 쌍
    3. 질의응답 (QA) → 질문(question)-지문(passage) 쌍
    4. 문장 분류 또는 시퀀스 태깅 → 사실상 문장 하나 (문장 B 없음)
  • 출력 단계에서는 다음처럼 나뉜다:

    • 토큰 단위 출력이 필요한 작업은 → 각 토큰에 대한 표현을 그대로 출력층에 보낸다. ex) 시퀀스 태깅/ 질문 응답
    • 전체 문장 판단이 필요한 작업은 → [CLS] 토큰의 표현을 출력층에 보낸다. ex) 감성 분석/문장 분류

사전학습과 비교했을 때, 파인튜닝은 훨씬 가볍고 빠르다.
→ 이 논문에서 제시한 모든 결과는 단 한 대의 Cloud TPU로 1시간 이내, 혹은 일반 GPU로 몇 시간 내에 재현 가능하다.


4. Experiments

GLUE 벤치마크는 다양한 자연어 이해 태스크로 구성된 평가 셋이다.

BERT를 GLUE에 파인튜닝할 때는,아래와 같이 입력 시퀀스를 구성한다:

  • 단일 문장 또는 문장 쌍을 입력
예) [CLS] 문장 A [SEP] 문장 B [SEP]

이 중 [CLS] 토큰에 해당하는 최종 hidden vector C ∈ ℝᴴ를 사용해 전체 시퀀스를 대표하는 벡터로 간주한다.

파인튜닝 구조

  • 분류 계층만 추가됨:
    가중치 행렬 W ∈ ℝᴷˣᴴ (K는 라벨 수, H는 hidden size)

  • 분류 방식:
    log(softmax(CWᵀ)) 형태로 분류 손실을 계산 (Cross-Entropy Loss)

학습 설정

  • 배치 크기: 32
  • 전체 학습 횟수 (epoch): 3
  • 학습률:
    → 검증셋에서 성능이 가장 좋은 값을 선택함
    → 후보 값: 5e-5, 4e-5, 3e-5, 2e-5

BERT-LARGE의 경우, 일부 데이터셋이 작으면 파인튜닝이 불안정한 경우가 있었기 때문에, 저자는 여러 번의 랜덤 초기화로 실험을 반복한 후, 검증셋에서 가장 좋은 성능을 낸 모델을 선택하였다.

이때 사용하는 랜덤 초기화는, 동일한 사전 학습 모델 체크포인트를 유지하면서,

다음을 바꾸면서 실험 반복:

데이터 셔플 순서
분류 계층 초기화 방식

결과 요약

BERT-BASE와 BERT-LARGE는 모든 태스크에서 기존 최고 성능 모델을 크게 능가하는 성과를 보였다.

평균 정확도 기준으로, 기존 최고 성능보다 각각 4.5%, 7.0% 향상된 결과를 얻었다.

(참고로, BERT-BASE와 OpenAI GPT는 구조상 거의 동일한 모델이지만, 어텐션 마스킹 방식만 다르다.)

가장 크고 널리 사용되는 GLUE 태스크인 MNLI에서는,
→ BERT가 기존보다 4.6% 정확도 향상을 기록했다.

GLUE 공식 리더보드에 따르면:

  • BERT-LARGE: 80.5점
  • OpenAI GPT: 72.8점

저자는 BERT-LARGE가 BERT-BASE보다 모든 태스크에서 성능이 뛰어나다는 것을 확인했다.
특히, 훈련 데이터가 매우 적은 태스크일수록 성능 차이가 더 두드러졌다.

4.2 SQuADv1.1

SQuADv1.1은 약 10만 개의 질문-답변 쌍으로 구성된 데이터셋

→ 질문과 정답이 포함된 위키피디아 문단이 주어지면,
→ 그 문단 안에서 정답이 어디서부터 어디까지인지(텍스트 범위)를 예측하는 게 목표.

ex)
문단: “나폴레옹은 1769년 프랑스 코르시카에서 태어났다…”
질문: “나폴레옹은 어디서 태어났어?”
정답: “프랑스 코르시카”


질문 + 문단을 하나의 시퀀스로 붙여서 입력한다.

  • 이때 질문 부분에는 Segment A 임베딩을,
  • 문단 부분에는 Segment B 임베딩을 적용한다.

파인튜닝 과정에서는 다음 두 개의 벡터만 새로 추가한다:

  • 시작 위치를 예측하기 위한 벡터 S (Start vector) ∈ ℝᴴ
  • 끝 위치를 예측하기 위한 벡터 E (End vector) ∈ ℝᴴ

예측 방식

  • 어떤 단어 i가 정답의 시작일 확률은
    → S · Ti (점곱),
    → 그다음 문단 전체 단어에 대해 softmax 수행:
    끝 단어에 대해서도 같은 방식으로 계산.

  • 시작 위치 i, 끝 위치 j에 대해
    → 점수는 S · T_i + E · T_j로 계산된다.

  • 가능한 모든 (i ≤ j) 조합 중에서
    → 이 점수가 가장 높은 위치를 정답 범위(span)로 예측한다.

학습 방식

학습 목표: 정답 시작 위치와 끝 위치를 정확히 맞추는 확률을 최대화하는 것.
-> 정답 시작 위치의 로그 확률 + 끝 위치의 로그 확률을 더해서 loss를 줄여나감.

  • 하이퍼파라미터:

    • 에폭 수: 3
    • 러닝레이트: 5e-5
    • 배치 사이즈: 32

성능 결과

앙상블 시스템 기준으로 리더보드 1위 모델보다 F1 점수 +1.5 향상, 단일 모델 기준으로도 +1.3 향상시켰다.
심지어 단일 BERT 모델이 기존 최고 앙상블 모델보다도 F1이 더 높다.

4.3 SQuADv2.0

SQuAD 2.0 과제는 SQuAD 1.1보다 더 현실적인 문제 정의를 가지고 있다.
SQuAD 2.0에서는 질문에 대해 주어진 문단에 정답이 없는 경우도 가능하다.


저자는 기존 SQuAD v1.1용 BERT 모델을 아주 간단한 방식으로 확장했다:

  • 정답이 존재하지 않는 질문
    → 답변의 시작/끝 위치가 [CLS] 토큰 위치라고 간주한다.

즉, 정답 없음 = 답변이 [CLS]에 위치한다고 생각하는 것이다.


확률 계산 방식

  • 답변 범위의 시작과 끝 위치를 예측하는 확률 공간
    → 기존 문단의 단어들뿐만 아니라, [CLS] 위치도 포함시킨다.

  • 예측할 때는 아래 두 점수를 비교한다:

    1. 정답 없음 (no-answer) 점수
      snull=SC+ECs_{\text{null}} = S \cdot C + E \cdot C
      → 즉, [CLS] 위치에서의 시작 점수 + 끝 점수

    2. 가장 점수가 높은 실제 정답 구간 (non-null span)
      sij=maxjiSTi+ETjs_{ij} = \max_{j \ge i} S \cdot T_i + E \cdot T_j

  • 이 둘을 비교해서 아래 조건을 만족하면 정답이 있다고 예측한다:

    sij>snull+τs_{ij} > s_{\text{null}} + \tau

    여기서 τ\tauthreshold (임계값)이다.


학습 세부 설정

  • 2 에폭 동안 파인튜닝

  • 러닝레이트: 5e-5

  • 배치 사이즈: 48


성능 결과

결과적으로, 이전 최고 성능 시스템 대비 F1 점수에서 +5.1포인트 향상을 기록했다.


4.4 SWAG

SWAG(Situations With Adversarial Generations) 데이터셋은 총 113,000개의 문장 쌍 완성 예시로 구성되어 있으며, 현실적인 상식 기반 추론 능력을 평가하는 데 사용된다

주어진 문장 A가 있을 때,
→ 이어질 수 있는 4개의 문장 후보 중에서
가장 그럴듯한 문장 B를 선택하는 것이 과제다.


SWAG용 Fine-tuning 방법

  • 학습할 때는, 각 선택지마다 총 4개의 입력 시퀀스를 구성한다.

    • 각각은 주어진 문장 A와 하나의 문장 B 후보를 연결한 것이다.

      • 즉, Input = Sentence A + Sentence B
  • 이 작업에서 추가로 도입된 task-specific 파라미터는 단 하나:

    • 바로 하나의 벡터인데, 이 벡터는 [CLS] 토큰의 표현 CC내적을 계산하여
    • 각 선택지에 대한 점수로 사용된다.
  • 이 점수는 소프트맥스를 통해 정규화되어 최종 확률로 변환된다.

학습 세팅

  • 학습은 총 3 에폭 동안 수행,
  • 러닝레이트: 2e-5
  • 배치 사이즈: 16

성능 결과

  • BERT-LARGE 모델은

    • 논문 저자들이 제시한 기존 베이스라인인 ESIM + ELMo 시스템보다
      +27.1% 높은 정확도를 기록했고,
    • OpenAI GPT 모델보다도
      +8.3% 더 높은 성능을 보여주었다.

5. AblationStudies

이 절에서는 BERT의 다양한 요소들에 대해 ablation experiments을 수행하여, 각 요소가 모델 성능에 얼마나 중요한지를 더 잘 이해하고자 한다.

5.1 Effect of Pre-training Tasks

BERT의 깊은 양방향성의 중요성을 알기 위해 여기서는 동일한 사전학습 데이터, 파인튜닝 방식, 하이퍼파라미터를 사용한 두 가지 사전학습 목표를 비교 평가한다:

① No NSP
→ MLM 은 그대로 사용
→ NSP 태스크는 제거한 양방향 모델.

② LTR & No NSP
→ '왼쪽 문맥만 보는 Left-to-Right(LTR)' 언어 모델로 훈련된 모델.
→ MLM 대신 일반적인 LTR 방식 사용.
→ 마찬가지로 NSP는 사용하지 않음.
→ 파인튜닝할 때도 왼쪽 방향만 보도록 강제: 그렇지 않으면 사전학습과 파인튜닝 간의 불일치로 인해 성능이 저하되기 때문에.

▸ NSP 태스크의 효과:

Table 5를 보면 NSP를 제거하면 QNLI, MNLI, SQuAD 1.1 태스크에서 성능이 현저히 하락하는 걸 볼 수 있다.
→ 즉, NSP는 생각보다 꽤 중요한 역할을 한다


▸ 양방향 표현 학습의 효과:

"No NSP"과 "LTR & No NSP" 을 비교하면, LTR 모델은 모든 태스크에서 MLM 모델보다 성능이 떨어진다.
특히 MRPCSQuAD에서 큰 성능 하락이 발생함.

▸ LTR 모델 성능 개선 시도

LTR 모델을 개선하기 위해, 위에 무작위 초기화된 BiLSTM을 추가해봤다.
→ 그 결과, SQuAD에서는 성능이 꽤 향상되었지만,
여전히 BERT처럼 사전학습된 양방향 모델보다는 성능이 한참 낮았다.

게다가, 이 BiLSTM은 GLUE 태스크들에서는 오히려 성능을 떨어뜨렸다.


▸ LTR + RTL 모델을 병렬로 쓴다면?

ELMo 방식처럼:

  • LTR 모델 + RTL 모델을 따로 훈련시킨 후,
  • 각 토큰 표현을 두 모델의 출력을 합쳐서 사용할 수도 있다.

하지만 이 방식은 다음과 같은 단점이 있다:

  1. 비용: 양방향 모델 하나 훈련하는 것보다 계산 비용이 2배.
  2. 비직관적: 특히 질의응답(QA) 같은 태스크에서는, RTL 모델이 질문을 보기 전에 답을 생성해야 하므로 어색하다.
  3. 덜 강력함: LTR + RTL 조합은 매 층마다 좌우 문맥을 동시에 활용할 수 있는 깊은 양방향 모델보다 표현력이 떨어진다.

5.2 Effect of Model Size

이 섹션에서는 모델 크기가 파인튜닝 과제 정확도에 미치는 영향을 살펴본다.

  • 레이어 수 (L), hidden size (H), attention head 수 (A)를 바꿔서 다양한 크기의 BERT 모델을 구성
  • 나머지 학습 방식, 하이퍼파라미터는 동일하게 유지해서 오직 모델 크기만 성능에 영향을 주는지 확인

그 결과 모델이 클수록 네 가지 데이터셋 모두에서 정확도가 꾸준히 향상된다는 것을 알 수 있다. 심지어 학습용 라벨 데이터가 3,600개밖에 되지 않는 MRPC와 같이 사전학습 과제와 상당히 다른 과제에서도 성능 향상이 나타났다.

또한,이미 SOTA급 성능을 내는 큰 모델보다 더 큰 모델을 썼음에도, 그 크기만큼의 의미 있는 성능 향상이 있었다는 점에서 주목할 만하다.

기존처럼 feature-based 방식에서는 모델이 너무 크면 오히려 효과가 줄어든다는 결과도 있었지만, BERT는 사전학습된 모델을 직접 파인튜닝했다는 점에서 다르다.

즉, 모델이 클수록 표현력이 좋아지고, 이 표현을 직접 파인튜닝하면
작은 데이터셋에서도 성능 향상을 이끌어낼 수 있다는 점을 알 수 있다.

6. Conclusion

요즘 연구에서는 언어 모델을 먼저 훈련시킨 다음, 그걸 다운스트림 작업에 적용하는 방식이 크게 성능을 올려주고 있디.
특히, 이 방법은 학습 데이터가 적은 작업에서도 효과가 좋아서, 단방향 구조에서도 성과를 잘 냈다.

그러나 BERT는 여기서 더 나아가 깊은 양방향 아키텍처에도 적용할 수 있게 만든 것이다. 이를 통해 동일한 사전학습된 모델이 다양한 NLP 태스크들을 성공적으로 처리할 수 있도록 했다


내 생각

기존의 단방향 모델과 달리, 양방향 모델이 가진 강점을 명확히 보여준 논문인 것 같다. 특히 다양한 다운스트림 태스크에 대해 아키텍처를 변경하지 않고도 동일한 모델을 그대로 활용할 수 있다는 점이 인상 깊었다.

읽으면서 헷갈리는 부분도 있었지만 이 논문의 핵심은 MLM을 활용한 양방향 사전학습과, 이를 기반으로 다양한 NLP 태스크에 간단한 파인튜닝만으로 높은 성능을 달성할 수 있다는 점이라 생각한다.

0개의 댓글