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

saemi·2024년 9월 18일

AI논문

목록 보기
2/3
post-thumbnail

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

BERT: Bidirectional Encoder Representations from Transformers

트랜스포머의 양방향 인코더 표현
모든 레이어에서 왼쪽 및 오른쪽 컨텍스트를 공동으로 조건화하여 레이블이 지정되지 않은 텍스트에서 심층 양방향 표현을 사전 학습함
간단하고 강력한 모델

Introduction

언어 모델 사전 학습: 자연어 처리 작업 개선에 효과적

  • 문장을 전체적으로 분석하여 문장 간의 관계를 예측하는 것을 목표로 하는 자연어 추론
  • 의역과 같은 문장 수준의 작업과 명명된 개체 인식 및 질답과 같은 토큰 수준의 작업
    => 토큰 수준에서 세분화된 결과

다운 스트림 작업 적용 위한 두가지 기존 전략

기능 기반(feature-based) 및 미세 조정(fine-tuning)
두 접근 방식: 사전 학습 중에 동일한 목적 함수를 공유, 단방향 언어 모델을 사용해 일반적인 언어 표현을 학습

기능 기반(feature-based) ex. ELMo

사전 학습된 표현을 추가 기능으로 포함하는 작업별 아키텍처를 사용

미세 조정(fine-tuning) ex. OpenAI GPT

최소한의 작업별 매개 변수를 도입
사전 훈련된 모든 매개 변수를 미세 조정하기만 하면 다운스트림 작업에 대해 훈련됨

저자 팀: 현재 기술이 사전 훈련된 표현의 힘을 제한함

특히 미세 조정 접근 방식에 대해

한계점

표준 언어 모델이 단방향이라는 점
=> 이로 인해 사전 학습 중에 사용할 수 있는 아키텍처를 선택할 수 없음
ex. OpenAI GPT
: 모든 토큰이 트랜스포머의 셀프 어텐션 레이어에서 이전 토큰에만 엑세스할 수 있는 왼쪽에서 오른쪽으로의 아키텍처를 사용하는 경우
=> 이는 문장 수준 작업에 최적이 아니고 양방향 컨텍스트를 통합해야하는 중요 질답과 같은 토큰 수준 작업에 해로울 수 있음

MLM 사전 훈련 목표 사용

  • 단방향성 제약을 완화
  • 마스킹된 언어 모델은 입력에서 일부 토큰을 무작위로 마스킹
  • 목표는 컨텍스트만 기반으로 마스킹된 단어의 원래 어휘 ID를 예측하는 것
  • 왼쪽과 오른쪽 컨텍스트 융합 가능 -> 심층 양방향 트랜스포머 사전 학습 가능
  • 마스킹된 언어 모델 외에도 텍스트 쌍 표현을 공동으로 사전 학습하는 '다음 문장 예측' 작업도 사용

마스킹 언어 모델 사용으로 훈련된 심층 양방향 표현이 가능하게 함

무겁게 설계된 많은 작업별 아키텍처의 필요성을 줄임

11개의 NLP 작업에 대해 최첨단 기술을 발전시킴

Related Work

지도되지 않은 기능 기반 접근 방식

비신경적 및 신경적 방법을 포함해 광범위하게 적용 가능한 단어 표현을 학습하는 것은 수십년동안 활발한 연구 영역

  • 사전 학습된 단어 임베딩은 최신 NLP 시스템의 필수적 부분
  • 단어 임베딩 벡터를 사전 학습하기 위해 왼쪽에서 오른쪽 언어 모델링 목표 사용됨
  • 왼쪽과 오른쪽 맥락에서 올바른 단어와 잘못된 단어 구별 위한 목표도 사용됨

=> 문장 임베딩, 문단 임베딩과 같이 세분화되어 일반화 됨

  • 후보 다음 문장, 이전 문장의 표현이 주어진 다음 문장 단어를 왼쪽에서 오른쪽으로 생성
  • 자동 인코더의 노이즈 제거

ELMo와 그 이전 연구

  • 다른 차원에서 전통적인 단어 임베딩 연구를 일반화
  • 양방향으로 언어 모델에서 컨텍스트에 민감한 기능 추출
  • 각 토큰의 컨텍스트 표현은 양방향 표현의 연결
  • 컨텍스트 단어 임베딩을 기존 작업별 아키텍처와 통합할 때
    - ELMo: 질답, 감정 분석, 명명된 개체 인식을 포함한 주요 NLP에 대한 최신 기술 발전시킴
    • LSTM을 사용해 왼쪽 및 오른쪽 컨텍스트 모두에서 단일 단어를 예측하는 작업을 통해 컨텍스트 표현 학습을 제안
      => 특징 기반이며 양방향이 아님
  • cloze 작업을 통해 텍스트 생성 모델의 견고성 개선 가능성을 보여줌

감독되지 않은 미세 조정 접근 방식

이 방향에서의 첫번째 작업은 레이블이 지정되지 않은 텍스트로부터의 단어 임베딩 매개변수만을 사전 학습함
최근에는 문장이나 문서 인코더가 레이블이 지정되지 않은 텍스트에서 사전 학습되고 감독된 다운스트림 작업을 위해 미세 조정됨
이러한 접근 방식의 장점은 처음부터 학습할 필요가 거의 없음
=> GLUE 벤치마킹으로부터 OpenAI GPT는 많은 문장 수준 작업에서 사전 최첨단 결과를 달성
왼쪽에서 오른쪽의 언어 모델링과 자동 인코더는 사전 학습하는데 사용됨

지도 데이터로부터의 전이 학습

자연어 추론 및 기계 번역과 같이 대규모 데이터 세트를 사용하는 지도 작업에서 효과적인 이전을 보여주는 연구도 있음
컴퓨터 비전 연구는 또한 사전 학습된 대규모 모델에서 전이 학습의 중요성을 입증
=> ImageNet으로 사전학습된 모델을 미세조정

BERT

프레임워크: 사전 학습(pre-training)과 미세 조정(fine-tuning)의 두 단계

사전 학습

  • 모델은 다양한 사전 학습 작업에 걸쳐 레이블이 지정되지 않은 데이터에 대해 학습됨

미세 조정

  • 사전 훈련된 매개 변수로 BERT 모델을 먼저 초기화, 다운스트림 작업의 레이블이 지정된 데이터를 사용해 모든 매개 변수를 미세 조정
  • 각 다운스트림 작업에는 동일한 사전 학습된 매개변수로 초기화되었더라도, 별도의 미세 조정된 모델이 있음

BERT

  • 다양한 작업에 걸쳐 통합된 아키텍처를 제공
  • 사전 학습된 아키텍처와 최종 다운스트림 아키텍처사이에는 최소한의 차이가 있음

모델 아키텍처

원래 구현을 기본으로하는 다층 양방향 트랜스포머 인코더
'The Annotated Transformer'을 참조

  • 레이어의 수를 L, 숨겨진 크기를 H, 셀프 어텐션 헤드의 수를 A로 표시
  • 두 가지 모델 사이즈
    - BERTBASE{BERT_{BASE}} : L=12, H=768, A=12, Total Parameters=110M
    • BERTLARGE{BERT_{LARGE}} : L=24, H=1024, A=16, Total Parameters=340M

BERTBASE{BERT_{BASE}}

  • 비교목적의 OpenAI GPT와 동일한 모델 크기
  • 결정적으로 BERT 트랜스포머는 양방향 자기주의를 사용하는 반면, GPT 트랜스포머는 모든 토큰이 왼쪽 커넥스트에만 주의를 기울일 수 있음

Input/Output Representations

  • BERT가 다양한 다운스트림 작업을 처리하도록 하기 위해 입력 표현은 단일 문장과 한 쌍의 문장(ex.h: 질문, i: 답변)을 하나의 토큰 시퀀스로 명확히 표현
  • '문장': 실제 언어 문장이 아닌 임의의 연속 텍스트 범위일 수 있음
  • '시퀀스': BERT에 입력되는 토큰 시퀀스를 의미하며, 이는 하나의 문장 또는 두 문장이 함께 포장된 것일 수 있음

문서 내에서...

30,000개의 토큰 어휘와 함께 WordPiece 임베딩을 사용

  • 첫번째 토큰: 항상 특수 분류 토큰([CLS])
  • 이 토큰에 해당하는 최종 숨겨진 상태는 분류 작업의 집계 시퀀스 표현으로 사용됨
  • 문장 쌍은 하나의 시퀀스로 함께 포장됨
  • 문장을 두 가지 방식으로 구분
    • 특별 토큰([SEP])
    • 학습된 임베딩을 문장 A에 속하는지 문장 B에 속하는지 여부를 나타내는 모든 토큰에 추가
    • 그림 1과 같이 입력 임베딩은 E, 특별 [CLS] 토큰의 최종 숨겨진 벡터는 CRH{C ∈ R^H}, i번째 입력 토큰의 최종 숨겨진 벡터는 TiRH{T_i ∈ R^H}로 표시됨
  • 주어진 토큰에 대해 해당 토큰, 세그먼트 및 포지션 임베딩을 합산하여 입력 표현을 구성

Pre-training BERT

  • 사전학습에 전통적인 왼->오 or 오->왼 언어 모델을 사용하지 않음
  • 두 가지 비지도 작업을 사용해 BERT를 사전 훈련

1: Masked LM

  • 직관적으로 심층 양방향 모델은 왼쪽에서 오른쪽으로 모델 또는 왼쪽에서 오른쪽으로 모델과 오른쪽에서 왼쪽으로 모델의 얕은 연결보다 훨씬 더 강력하다고 생각하는 것이 합리적

  • 안타깝게도 표준 조건부 언어 모델은 양방향 조건화를 통해 각 단어가 간접적으로 "스스로를 볼 수" 있고 모델이 다층적인 맥락에서 대상 단어를 사소하게 예측할 수 있기 때문에 왼쪽에서 오른쪽으로 또는 오른쪽에서 왼쪽으로만 훈련

    전자는 종종 "트랜스포머 인코더"라고 불리며, 왼쪽 컨텍스트 전용 버전은 텍스트 생성에 사용할 수 있기 때문에 "트랜스포머 디코더"라고 불림

  • 심층 양방향 표현을 훈련하기 위해 입력 토큰의 일부 비율을 무작위로 마스킹한 다음 마스킹된 토큰을 예측
    => 'masked LM'(MLM) or Cloze{Cloze} task

  • 이 경우 마스크 토큰에 해당하는 최종 숨겨진 벡터는 표준 LM에서와 같이 어휘를 덮으며 출력 소프트맥스에 입력됨

  • 모든 실험에서 각 시퀀스에 포함된 모든 WordPiece 토큰의 15%를 무작위로 마스킹

  • 자동 인코더 노이즈 제거와 달리, 전체 입력을 재구성하지 않고 마스킹된 단어만 예측

  • 양방향 사전 학습 모델을 얻을 수 있지만, 미세 조정 중에는 [MASK] 토큰이 나타나지 않기 때문에 사전 학습과 미세 조정 간에 불일치가 발생한다는 단점
    => 이를 완화하기 위해 항상 '마스크'단어를 실제 [MASK] 토큰으로 대체하는 것은 아님
    - 학습 데이터 생성기: 예측 위해 토큰 포지션의 15%를 무작위로 선택
    - i번째 토큰 선택시 i번째 토큰을 80%의 [MASK]토큰으로 대체
    - 무작위 토큰 10%는 변경되지 않은 i번째 토큰 10%로 대체
    - Ti{T_i}를 사용해 교차 엔트로피 손실이 있는 원래 토큰을 예측

2: Next Sentence Prediction (NSP)

  • 질문 답변(QA) 및 자연어 추론(NLI)과 같은 많은 중요한 다운스트림 작업은 언어 모델링으로 직접 캡처되지 않는 두 문장 간의 관계를 이해하는 것을 기반으로 함
  • 문장 관계를 이해하는 모델을 훈련하기 위해 단일 언어 말뭉치에서 사소하게 생성할 수 있는 이진화된 다음 문장 예측 작업 위해 사전 훈련함
    - 각 사전 훈련 예제에서 문장 A와 B를 선택할 때 B의 50%는 A 뒤에 오는 실제 다음 문장(IsNext 레이블)이고, 50%는 말뭉치에서 무작위로 추출한 문장(NotNext 레이블)
  • 단순함에도 불구하고 이 작업에 대한 사전 교육이 QA와 NLI 모두에 매우 유익함
  • 이전 작업에서는 문장 임베딩만 다운스트림 작업으로 전송되며, 여기서 BERT는 모든 매개변수를 전송하여 최종 작업 모델 매개변수를 초기화

Pre-training data

  • 사전 학습 절차는 언어 모델 사전 학습에 관한 기존 문헌을 크게 따름
    - 사전 학습 코퍼스는 북스코프러스 (8억 단어)(Zhu 외, 2015)와 영어 위키피디아(2,500만 단어)를 사용
    • 위키백과의 경우 텍스트 지문만 추출하고 목록, 표, 헤더는 무시
    • 긴 연속 시퀀스를 추출하려면 10억 단어 벤치마크(Chelba et al ., 2013)와 같이 혼합된 문장 수준의 말뭉치가 아닌 문서 수준의 말뭉치를 사용하는 것이 중요

Fine-tuning BERT

  • 미세 조정은 간단

  • 트랜스포머의 자기 주의 메커니즘을 통해

  • BERT는 단일 텍스트 또는 텍스트 쌍을 포함하는 많은 다운스트림 작업을 적절한 입력과 출력을 스왑하여 모델링

  • 텍스트 쌍을 포함하는 애플리케이션: 양방향 교차 주의를 적용하기 전에 텍스트 쌍을 독립적으로 인코딩하는 것이 일반적 패턴
    => BERT는 자기 주의 매커니즘을 사용해 이 두 단계를 통합
    -> 두 문장 간의 양방향 교차 주의가 포함되기 때문

  • 각 작업에 대해 작업별 입력과 출력을 BERT에 연결하고 모든 매개 변수를 종단 간으로 미세 조정하면 됨

  • 입력에서 사전 훈련의 문장 A와 문장 B
    - 의역의 문장 쌍

    • 의역의 가설-전제 쌍
    • 질문 답변의 잘문-답변 쌍과 유사
    • 텍스트 분류, 시퀀스 태깅의 퇴화된 텍스트 -∅ 쌍
  • 출력 시 토큰 표현은 시퀀스 태깅 또는 질문 답변과 같은 토큰 수준 작업을 위해 출력 레이어에 입력되고, [CLS] 표현은 수반성 또는 감정 분석과 같은 분류를 위해 출력 레이어에 입력

사전 교육에 비해 미세 조정은 상대적으로 저렴

Experiments

GLUE

The General Language Understanding Evaluation (GLUE) benchmark
(일반 언어 이해 평가)
: 다양한 자연어 이해 작업의 모음

  • 미세 조정
    - 입력 시퀀스를 표현

    • 첫 번째 입력 토큰([CLS])에 해당하는 최종 숨겨진 벡터 CRH{C ∈ R^H}를 집계 표현으로 사용
    • 미세 조정 중에 도입된 유일한 새로운 매개 변수는 분류 레이어 가중치 WRK×H{W ∈ R^{K×H}}
    • C, W, 즉 로그(softmax(CWT){softmax(CW^T)})를 사용해 표준 분류 손실 계산
    • 배치 사이즈: 32, 모든 글루 작업에 대해 데이터 위에 3개의 에포크 미세 조정
    • 각 작업에 대해 Dev 세트에서 가장 좋은 미세 조정 학습률(5e-5, 4e-5, 3e-5, 2e-5 중)을 선택
      - BERTLARGE{BERT_{LARGE}}의 경우 작은 데이터 세트에서 미세 조정이 때때로 불안정하다는 것을 발견했기 때문에 무작위로 몇 번의 재시작을 실행하고 Dev 세트에서 가장 좋은 모델을 선택
    • 무작위 재시작에서는 사전 학습된 체크포인트를 동일하게 사용하지만 데이터 셔플링과 분류기 레이어 초기화를 다르게 미세 조정
  • BERTBASE{BERT_{BASE}}와 OpenAI GPT는 주의 마스킹 외에는 모델 아키텍처 측면에서 거의 동일

  • MNLI 작업으로부터 4.6%의 절대 정확도 향상을 얻음

  • 학습 데이터가 거의 없는 작업에서 BERTLARGE{BERT_{LARGE}}BERTBASE{BERT_{BASE}}를 크게 능가함

표 1: 평가 서버에서 채점한 글루 테스트 결과( https://gluebenchmark.com/leaderboard) . 각 작업 아래의 숫자는 교육 예제의 수. "평균" 열은 문제가 있는 WNLI 세트.8 BERT 및 Open을 제외했기 때문에 공식 GLE 점수와는 약간 다. AI GPT는 단일 모델, 단일 작업. QQP 및 MRPC의 경우 F1 점수, STS-B의 경우 Spearman 상관관계, 기타 작업의 경우 정확도 점수가 보고됨. BERT를 구성 요소 중 하나로 사용하는 항목은 제외.

SQuAD v1.1

스탠포드 질문 답변 데이터 세트(SQuAD v1.1)는 10만 개의 크라우드소싱 질문/응답 쌍으로 구성된 컬렉션

  • 질문 답변 작업에서 입력된 질문과 구절을 하나의 포장된 시퀀스로 표현
  • 질문은 A 임베딩을 사용하고 지문은 B 임베딩을 사용
  • 실제로 단일 BERT 모델은 최고의 앙상블 시스템을 능가

표 2: Squad 1.1 결과. BERT 앙상블은 다양한 사전 학습 체크포인트와 미세 조정 시드를 사용하는 7배 시스템

표 3: Squad 2.0 결과. BERT를 구성 요소 중 하나로 사용하는 항목은 제외

TriviaQA 없는 튜닝 데이터는 0.1~0.4F1만 손실되어 여전히 기존의 모든 시스템을 큰 차이로 능가

SQuAD v2.0

  • SQuAD 2.0 작업은 제공된 문단에 단답형 답이 존재하지 않을 가능성을 허용하여 SQuAD 1.1 문제 정의를 확장하여 문제를 더욱 현실적으로 만듬

  • 이 작업을 위해 간단한 접근 방식을 사용하여 SQuAD v1.1 BERT 모델을 확장

  • 답이 없는 질문은 [CLS] 토큰에서 시작과 끝에 대한 답 범위가 있는 것으로 취급

  • 시작 및 종료 응답 범위 위치에 대한 확률 공간은 [CLS] 토큰의 위치를 포함하도록 확장

  • 예측을 위해 무응답 스팬의 점수를 비교

  • 임계값 τ가 F1을 최대화하도록 개발 세트에서 선택

  • 이 모델에는 TriviaQA 데이터를 사용하지 않음

  • 학습률 5e-5, 배치 크기 48로 2개의 에포크를 미세 조정

+5.1 F1 이 개선됨

SWAG

The Situations With Adversarial Generations (SWAG)

  • SWAG데이터 세트에는 근거 상식 추론을 평가하는 113, 000개의 문장 쌍 완성 예제가 포함됨
  • 문장이 주어지면 네 가지 선택 중 가장 그럴듯한 연속을 선택하는 것이 과제
  • 주어진 문장(문장 A)과 가능한 연속(문장 B)의 연결을 포함하는 4개의 입력 시퀀스를 구성
  • 도입된 유일한 작업별 매개변수는 [CLS] 토큰 표현이 C인 내적 소프트맥스 레이어로 정규화된 각 선택에 대한 점수를 나타내는 벡터
  • 학습 속도가 2e-5이고 배치 크기가 16인 3개의 에포크에 대해 모델을 미세 조정

Ablation Studies

사전 학습 작업의 효과

No NSP

'마스크된 LM'(MLM)을 사용하여 훈련되지만 '다음 문장 예측'(NSP) 작업은 수행되지 않는 양방향 모델임

LTR & No NSP

MLM이 아닌 표준 LTR(왼쪽에서 오른쪽으로) LM을 사용하여 훈련되는 왼쪽 컨텍스트 전용 모델

  • 왼쪽 전용 제약 조건을 제거하면 사전 훈련/미세 조정 불일치가 발생하여 다운스트림 성능이 저하되었기 때문에 미세 조정 시에도 적용되었음
  • 이 모델은 NSP 작업 없이 사전 학습
  • 이는 OpenAI GPT와 직접 비교했을 때 더 큰 훈련 데이터 세트, 입력 표현 및 미세 조정 체계를 사용

NSP 작업이 가져올 영향

  • 표 5에서 NSP를 제거하면 QNLI, MNLI 및 SquAD 1.1에서 성능이 크게 저하됨
  • 다음으로, "NSP 없음"을 "LTR 및 NSP 없음"과 비교하여 양방향 표현 훈련의 영향을 평가
  • LTR 모델은 모든 작업에서 MLM 모델보다 성능이 좋지 않으며 MRPC와 SquAD에서 큰 폭으로 감소

Squad의 경우 LTR: 성능 저조

  • BiLSTM을 추가하면 강화되지만 사전 훈련된 양방향 모델보다 훨씬 더 나쁜 결과를 가져옴
    => BiLSTM은 GLUE작업의 성능을 저하시킴

LSTR&RTL모델을 훈련하고 ELMo와 마찬가지로 각 토큰을 두 모델의 연결로 표현하는 것이 가능함

  • 단일 양방향 모델보다 두 배 비쌈
  • RTL 모델이 질문에 대한 답 조건화 못함 -> QA와 같은 작업에 직관적이지 않음
  • 심층 양방향 모델보다 훨씬 덜 강력함

모델 크기의 효과

  • 모델이 충분히 사전 학습되었다면 극단적인 모델 크기로 확장하는 것도 매우 작은 규모의 작업에서 큰 개선으로 이어진다는 것을 설득력 있게 입증
  • 특징 기반 접근 방식: 모델이 다운스트림 작업에서 직접 미세 조정되고 무작위로 초기화된 매우 적은 수의 추가 매개 변수만 사용할 때 작업별 모델이 더 큰 이점을 얻을 수 있다고 가정
  • 다운스트림 작업 데이터가 매우 적은 경우에도 사전 학습된 표현을 더욱 표현

BERT를 통한 기능 기반 접근

  • 사전 훈련된 모델에서 고정된 특징을 추출하는 특징 기반 접근 방식에는 몇 가지 장점
  • 모든 작업을 트랜스포머 인코더 아키텍처로 쉽게 표현할 수 있는 것은 아니므로 작업별 모델 아키텍처를 추가해야 함
  • 훈련 데이터의 값비싼 표현을 한 번 사전 계산한 다음 이 표현 외에도 더 저렴한 모델로 많은 실험을 실행할 수 있는 주요 계산 이점

표7. BERT가 미세 조정 및 특징 기반 접근 방식 모두에 효과적이라는 것을 보여줌

Conclusion

  • 풍부한 비지도 사전 학습이 많은 언어 이해 시스템의 필수적인 부분임
  • 리소스가 적은 작업도 심층 단방향 아키텍처의 이점을 누릴 수 있게 함
  • 심층 양방향 아키텍처로 더욱 일반화하여 동일한 사전 학습 모델이 광범위한 NLP 작업을 성공적으로 처리할 수 있도록 하는 것을 목표로 함
profile
모방은 창작의 어머니, 나는 그 딸

0개의 댓글