DeBERTa (He et al., 2021, ICLR)

김수빈·2021년 12월 19일
3

논문 리뷰

목록 보기
9/14
post-thumbnail

📄Paper

P. He, X. Liu, J. Gao, W. Chen, "Deberta: decoding-enhanced bert with disentangled attention," Proc. of the 9th International Conference on Learning Representations (ICLR 2021), Online, 2021.

Contribution 정리

1. Position과 Context 간 관계를 완전히 모델링

position과 content 간의 관계를 완전히 모델링함으로써 NLU & NLG task의 성능 개선을 이루어냈다

2. 사전 학습 효율 향상된 PLM 모델 제안

Relative position embedding을 전 계층에 공유함으로써 space complexity 개선
기존 PLM에 비해 적은 사전학습 데이터로 학습하였고 모델 크기도 작지만 SOTA를 달성하였다

3. Human Baseline을 뛰어넘는 SOTA 달성

GLUE benchmark 및 SuperGLUE benchmark에서도 Human baseline을 뛰어넘는 SOTA 달성

📌 목차

  1. Introduction
  2. Background
    2.1 Transformer
    2.2 Masked language model
  3. The DeBERTa architecture
    3.1 Disentangled attention: A two-vector approach to content and position embedding
    3.2 Enhanced mask decoder accounts for absolute word positions
  4. Scale invariant fine-tuning
  5. Experiment
    5.1 Main results on NLU tasks
    5.2 Model analysis
    5.3 Scale up to 1.5 billion parameters
  6. Conclusions

1. Introduction

트랜스포머에 기반한 Pretrained Language Model(PLM)이 많은 NLP task에서 SOTA를 달성하고 있다.

본 논문에서는 Disentangled Attention mechanismEnhanced Mask Decoder를 통해 새로운 SOTA를 달성한 DeBERTa 모델을 제안하였다.

  • ✨ Disentangled Attention mechanism
    단어 간 attention weight는 내용 뿐만 아니라 위치 정보도 상당한 영향을 끼치기 때문에
    Content와 Relative Position 정보를 2개의 벡터로 분리하여 Cross Attention 수행

  • ✨ Enhanced Mask Decoder
    문법적 뉘앙스는 단어의 상대적 위치 정보가 아닌 절대적 위치 정보에 영향을 받는다.
    문법적 뉘앙스를 파악하기 위해 디코딩 시, absolute position embedding을 취합하여 사용한다.

또한 본 논문에서는 perturbation에 대한 robustness를 개선하면서 안정된 성능을 보이는 SiFT algor!ithm도 함께 제안하였다.

Relative position vs Absolute position

☀️ 개선한 내용

  1. 사전학습 효율
    사전 학습 데이터가 적어도 성능 우수
  2. NLU, NLG task에서의 SOTA

2. Background

2.1 Transformer

기존의 Transformer는 입력 sentence가 matrix로 들어가기 때문에, 순차 정보를 포함하지 않는다.
따라서 Positional Embedding을 통해 위치 정보를 포함시키는데,
이러한 위치 정보는 다음 두 가지로 구분될 수 있다.

  • Absolute Position
  • Relative Position

Shaw et al. (2018)의 연구에 따르면 Relative position 정보가 NLU/NLG task에 더 효과적이라고 밝혀졌다.

2.2 Masked language model

Transformer에 기반한 PLM은 대부분 MLM task로 사전학습을 수행한다.
전체 시퀀스의 15%를 마스킹한 X~\tilde{X}가 주어졌을 때, 이를 복원한 XX를 예측하도록 학습한다

maxθlogpθ(XX~)=maxθiClogpθ(xi~=xiX~)\max_\theta \log{p_\theta(X|\tilde{X})} = \max_\theta \sum_{i\in \mathcal{C}} \log{p_\theta (\tilde{x_i}= x_i|\tilde{X})}

where C\mathcal{C}는 masking 된 단어의 index 리스트

3. The DeBERTa architecture

3.1 Disentangled attention: A two-vector approach to content and position embedding

{Hi}\{H_i\} : i번쩨 token에 대한 content vector
{Pij}\{P_{i|j}\} : i번째 token에서 j번째 token에 대한 relative position vector

content와 position에 대한 벡터를 분리했을 때 Cross attention score 계산은 아래와 같이 4개의 컴포넌트에 대한 덧셈으로 분리될 수 있다.

Ai,j={Hi,Pij}×{Hj,Pji}A_{i,j} = \{H_i, P_{i|j}\} \times \{H_j, P_{j|i}\}^\intercal
=HiHj+HiPji+PijHj+PijPji= H_iH^\intercal_j + H_iP^\intercal_{j|i} + P_{i|j}H^\intercal_j + P_{i|j}P^\intercal_{j|i}

각각을 content-to-content, content-to-position, position-to-content, position-to-position 로 나타낼 수 있다

💡 Content-to-Position과 Position-to-Content의 차이는 무엇인가
  1. Content-to-Position
    아래는 i번째 Position에 해당하는 content가 Query로 주어졌을 때, Attention score를 구하는 과정의 예시를 작성한 것이다.
    i가 주어졌을 때 각 j position에 대해 Relative position은 아래와 같다


    따라서 주어진 Query에 대한 각 Key을 매핑해보면 아래 그림처럼 나타낼 수 있다

  2. Position-to-Content
    i번째 Position이 Query로 주어졌을 때, Attention score를 구하는 과정의 예시를 작성한 것이다.
    i가 주어졌을 때 각 j position에 대해 Relative position은 아래와 같다


    따라서 주어진 Query에 대한 각 Key을 매핑해보면 아래 그림처럼 나타낼 수 있다

🧚‍♀️ 개념 해석 🧚‍♀️
개념적으로 이해한 내용은 C2P는 어떤 Content가 주어졌을 때, 전체 시퀀스 내 각 Position에서 해당 Content가 어떤 의미인지 모델링하는 것이고,

P2C는 Position이 주어졌을 때, 모든 시퀀스 내 각 Content에서 해당 Position이 어떤 의미를 지니는지 모델링한다고 이해했다.


💡 본 논문에서는 상대적인 위치 정보를 사용하기 때문에, position-to-position term은 필요 없어 제외하여 계산하였다.

아래는 relative position 정보를 임베딩하여 attention을 적용한 기존 Shaw et al. (2018) 연구에서의 Attention score 계산 식으로,
content-to-content, content-to-position로 구성되어 있다.

본 논문에서는 relative position 정보를 매핑하기 위해 δ\delta 함수를 사용했는데,
NN개의 시퀀스에 대해 모든 상대적 위치 정보를 저장하지 않고 상한선을 두어 kk 거리까지만 저장한다


💡 어떻게 공간 복잡도(Space Complexity)가 감소했나

위와 같이 δ\delta 함수를 통해 모든 relative position을 0~2k2k로 매핑했기 때문에 Q,KQ, K을 재사용할 수 있으며,

N개의 token에 대한 relative position embedding을 새로 할당하지 않아도 되기 때문에 space complexity가 O(N2d)O(N^2d)에서 O(kd)O(kd)로 감소하였다.



Attention Output 계산 과정

Attention score 연산이 끝나면 scaling 수행
→ large scale의 PLM을 안정적으로 학습시킬 수 있다

💡 delta(i,j) 가 아닌 delta(j,i)인 이유는?

제 해석으로 맞지 않을 수 있습니다
이 논문에서 말하는 Relative position은 어떤 position에서 content를 참조하기 위한 상대적 거리(방향 + 거리)를 나타낸다고 생각했다

아래는 C2P와 P2C의 Relative position을 구하는 예시이다

  • Content-to-Position 예시

    where k=3k=3

    ii번째 position의 Query content로 주어졌을 때, jj번째 position에서 content를 참조하기 위한 Relative position은 δ(i,j)\delta(i,j)로 표현된다

  • Position-to-Content 예시

    where k=3k=3

    ii번째 position이 Query position으로 주어졌을 때, ii번째 position에서 jj번째 position에 있는 content를 참조하기 위한 Relative position은 δ(i,j)\delta(i,j)가 아닌 δ(j,i)\delta(j,i)가 되어야 한다.


아래는 Disentangled Self Attention의 연산 과정을 그림으로 그린 것이다

Disentangled Self Attention

Disentangled Attention을 사용한 DeBERTa의 인코더 계층은 아래와 같다

DeBERTa Encoder Layer

3.2 Enhanced mask decoder accounts for absolute word positions

위의 Disentangled Attention mechanism은 absolute position을 고려하지 않는다.

하지만 절대 위치 정보는 문법적 측면에서 필요한 요소이기 때문에, EMD (Enhanced Mask Decoder)에서 Absolute position embedding을 취합한다.

Absolute position의 영향
아래 store와 mall의 주변 단어를 보면 똑같이 new라는 단어가 있어, local context (relative position과 content)로는 둘을 구분하기 힘들다.

둘이 서로 다른 객체를 가리킨다는 것은 문법적 뉘앙스를 통해 알 수 있는데,
이러한 문법적 뉘앙스는 문장 내 단어들의 absolute position 정보에 의존한다

absolute position에 영향을 받는 예시

EMD

  • BERT의 Absolute position 사용 방법
    BERT는 입력단에 position, segment, token embedding을 더해 입력을 구성함으로써, absolute position 정보를 사용하였다.
    BERT의 Input 구성
BERT의 MLM 학습 구조도

  • DeBERTa의 Absolute position 사용 방법
    입력단에 position 정보를 더한 BERT와 달리, Transformer encoder layer 직후에 Absolute position을 추가하였다.
    이전 Encoder 계층에 Absolute position embedding을 추가 입력받아 Cross Attention을 수행한다
deBERTa의 EMD

BERT는 각 계층에 self-attention을 수행했는데,
deBERTa의 EMD는 IIHH를 입력으로 받아 II를 query로 HH를 key와 value로 사용하며 cross attention을 수행한다

EMD의 첫번째 계층은 Absolute position embedding을 II로 사용하고, 그 다음 계층은 이전 계층의 output을 II로 사용한다. HH는 DeBERTa의 Encoder의 마지막 전 계층의 Hidden state이다. EMD의 두 계층은 인코더의 마지막 계층을 사용하며, 서로 간 파라미터를 공유한다

PP는 Relative position embedding으로 모든 계층에서 공유된다


EMD Layer에서의 Attention은?
개인적으로 EMD에 대한 설명이 조금 부족했다고 생각했다.
개념적으로 무엇을 위해 존재하는지 어떤 역할을 하는지 이해할 수는 있었으나, 구조도를 그리거나 구현해보려고 한다면 논문만으로는 정보가 부족하다😥

위의 구조도는 배포한 코드를 참고하여 그린 것이다
IIQcQ_c로 사용했으며, HHKc,VcK_c, V_c로 사용한 Disentangled Cross Attention을 적용하였다

EMD에서의 Attention


deBERTa의 MLM 학습 구조도

사실 Relative position embedding (PP)이 입력으로 전달된다기 보단, 전체 계층에서 공유하고 있기 때문에 각 계층 내에서 호출하여 사용한다고 보면 될 것 같다

부족한 실력으로 그림을 그리니 헷갈리게 하는 부분이 있는 것 같다.. 😭 😭


4. Scale invariant fine-tuning

이 섹션에서는 안정적으로 finetuning 하기 위한 새로운 알고리즘 SiFT (Scale-invariant-Fine-Tuning) 를 제안한다.

Virtual Adversarial Training (VAT)

Adversarial Training이란, 입력에 perturbation을 추가하여 데이터에 적대적 방향(adversarial direction)을 정의하여 학습하며 perturbation에 대한 robustness를 개선하는 학습이다.

Virtual Adversarial Training는 label이 없는 데이터에 대해서도
가상의 adversarial direction을 정의하여 학습한 것이다.

VAT in NLP

NLP에서는 perturbation을 word embedding에 추가하는데, 이 임베딩 값은 단어 및 모델마다 그 범위가 매우 다양하다.
문제는 모델의 크기가 커질수록 임베딩 값의 variance가 커지기 때문에 학습 불안정으로 이어질 수 있다

SiFT

그냥 word embedding에 perturbation을 추가하는 것이 아니라, normalized word embedding에 perturbation을 추가하는 알고리즘이다
모델의 크기가 클수록 성능 개선을 뚜렷하게 확인할 수 있다.

5. Experiment

NLU 및 NLG task에 대하여 기존 PLM들과 DeBERTa 모델의 성능 비교 실험 진행
→ SOTA 달성

1. NLU task

: 9개의 GLUE benchmark 및 QA, Token Classification task

(1) DeBERTalarge\mathrm{DeBERTa}_{large} 모델의 성능

사전 학습 정보
  • 사전 학습 데이터 : 총 78G의 20억 개의 학습 데이터 사용
  • 실험 환경
    6개의 NVIDIA DGX-2 머신 사용 (총 96개의 v100 GPU)
    Batch size: 2048
    Num of steps: 1 million
    사전 학습에 소요된 시간: 20일
모델 구현 정보
  • Num of Layer : 24
  • Hidden Size : 1024
  • Attention Head : 16

  • GLUE benchmark
    GLUE benchmark의 테스크 중에서 9개의 테스크에 대하여 성능 측정

    MNLI 성능이 PLM의 연구 동향을 파악하는데 있어서 주요 지표로 사용되며 기존 PLM 사이에서 가장 높은 성능을 보였다

    여기서 XLNet과 RoBERTa, ELECTRA는 160G 데이터로 학습을 진행했으며,
    DeBERTa는 이의 절반 가량의 데이터로 학습했지만 그럼에도 불구하고 DeBERTa가 가장 높은 성능을 보인다

  • GLUE를 제외한 NLU benchmark
    Question Answering, NER 테스크에 대해서도 성능 평가를 진행
    • Question Answering : SQuAD, RACE, SWAG

비슷한 크기의 모델 중에서 DeBERTa가 가장 높은 성능을 보였다.
그보다 더 큰 모델인 Megatron1.3B\mathrm{Megatron}_{1.3B}과 비교했을 때도 4개의 task 중 3개에서 더 우세한 성능을 보였다
(Megatron1.3B\mathrm{Megatron}_{1.3B}DeBERTalarge\mathrm{DeBERTa}_{large}보다 3배 더 크다)


(2) DeBERTabase\mathrm{DeBERTa}_{base} 모델의 성능

사전 학습 정보
  • 사전 학습 데이터 : 위와 동일

  • 실험 환경
    4개의 NVIDIA DGX-2 머신 사용 (총 64개의 v100 GPU)
    Batch size: 2048
    Num of steps: 1 million
    사전 학습에 소요된 시간: 10일


모델 구현 정보
  • Num of Layer : 12
  • Hidden Size : 768
  • Attention Head : 12

Large 모델보다 성능 차이를 뚜렷하게 확인할 수 있다

(3) 모델 크기에 따른 GLUE 비교
모델 크기가 클수록 GLUE 성능이 좋아지며, SiFT 역시 성능을 향상시키는 데 도움이 됨


[참고] 현재 GLUE 리더보드

DeBERTa는 현재 5위에 랭크되어 있으며, Human baseline은 19위에 랭크되어 있음



2. NLG task

DeBERTa를 통해 NLG task를 수행하도록 확장하였다

Text Generation을 위한 auto-regressive model처럼 동작하게 하기 위해, 각 계층의 attention block에 Transformer의 Masked Self Attention처럼 Masking을 수행한다

이에 MLM 및 Auto-regressive language model(ARLM) task로 사전학습한 모델을 DeBERTa-MT로 칭하였다

성능은 next token에 대한 불확실성을 나타내는 언어 모델의 성능지표인 perplexity(PPL)를 통해 비교하였다.

여기서 DeBERTa-AP는 Absolute position 정보를 Input 단에 추가하도록 변형된 DeBERTa이다.

  • DeBERTa-AP가 DeBERTa보다 높은 perplexity을 보이므로, EMD를 사용하는 것이 더 좋은 성능을 보이는 것을 알 수 있다
  • DeBERTa-MT가 가장 낮은 perplexity를 보였다

3. Ablation Study

각 Contribution의 효과를 파악하기 위해 ablation study 진행

사전 학습 정보
  • 사전 학습 데이터 : Wikipedia + BookCorpus 데이터셋의 2억 개의 학습 데이터 사용
  • 실험 환경
    1개의 NVIDIA DGX-2 머신 사용 (총 16개의 v100 GPU)
    Batch size: 256
    Num of steps: 1 million
    사전 학습에 소요된 시간: 7일
모델 구현 정보 (base 모델과 동일)
  • Num of Layer : 12
  • Hidden Size : 768
  • Attention Head : 12

RoBERTReImpbase\mathrm{RoBERT-ReImp_{base}}는 본 실험 환경에 RoBERTa를 다시 사전학습 시킨 모델이다

  • RoBERTa와 RoBERTa-ReImp의 성능이 비슷하기 때문에 본 실험 환경이 합리적임을 알 수 있다.
  • 각 contribution을 제거했을 때 성능이 낮아지며, 이를 통해 각 contribution이 성능 개선을 이끌어 냄을 알 수 있다.

4. Larger version of DeBERTa with 1.5 billion parameters

사전 학습 정보
  • 사전 학습 데이터 : 총 160G의 학습 데이터 사용
  • 실험 환경
    16개의 NVIDIA DGX-2 머신 사용 (총 256개의 v100 GPU)
    Batch size: 2048
    Num of steps: 1 million
    사전 학습에 소요된 시간: 30일
모델 구현 정보 (base 모델과 동일)
  • Num of Layer : 48
  • Hidden Size : 1536
  • Attention Head : 24

큰 모델을 만들기 위해서 수정한 것

  1. 150억개의 parameter를 가진 모델을 학습시키기 위해,
    relative position embedding의 projection matrix인 Wk,rW_{k,r}Wq,rW_{q,r}, Wk,cW_{k,c}Wq,cW_{q,c}가 파라미터를 공유하도록 수정
  2. 입력 토큰 사이의 local dependency를 강화하기 위해,
    첫 번째 DeBERTa Encoder Layer에 직후에 Convolution Layer 추가
  • Ablation Study
    Projection matrices 간 파라미터 공유, Convolution layer 사용의 효과를 파악하기 위한 Ablation Study
    DeBERTa-base에 Contribution을 하나씩 추가해봄으로써 각 contribution의 효과 파악
    128K Vocab: 학습 데이터로부터 128K의 Vocabulary를 새로 정의하여 사용
    (기존의 Vocabulary = Radford et al. 2019의 BPE Vocabulary)

SuperGLUE benchmark

DeBERTEnsemble\mathrm{DeBERT}_{Ensemble}: 여러 사전학습 모델의 체크 포인트와 finetuning seed를 활용한 DeBERTa

The BERT ensemble is 7x systems which use different pre-training checkpoints and fine-tuning seeds.

Shi et al. (2021)
Sparsebert: rethinking the importance analysis in self-attention

Avg. score가 89.9로 Human baseline(89.8)을 넘어서는 성능을 보였고,
Ensemble DeBERTa는 더 큰 margin으로 Human baseline을 넘어섰다.

[참고] 현재 GLUE 리더보드

DeBERTa는 현재 5위에 랭크되어 있으며, Human baseline은 6위에 랭크되어 있음



5. 그 외

Attention Pattern

  1. DeBERTa는 RoBERTa보다 Diagonal line이 명확하지 않음
    DeBERTa의 패턴과 DeBERTa-EMD의 결과를 비교해볼 때, 이는 Absolute position embedding을 사용하는 EMD의 영향 때문임을 알 수 있다

    Shi et al. (2021)의 연구에서는 Diagonal element의 중요성이 낮다는 실험 결과를 보이기도 했음

    A surprising result is that diagonal elements in the attention map are the least important compared with other attention positions

  1. RoBERTa는 vertical strip이 선명한 데 비하여, DeBERTa는 첫번째 토큰을 제외하면 vertical strip이 드러나지 않음

    vertical strip은 자주 등장하는 단어에 의해 나타나는 효과로, DeBERTa는 [CLS] 토큰에 의해서만 나타남
    저자들은 [CLS]가 종종 입력 시퀀스의 문맥적 표현을 나타내는 데 사용되기 때문에 첫번째 vertical strip은 필요하다고 주장

6. Conclusions

  • Disentangled Attention mechanism
  • Enhanced Mask Decoder

2개의 주요 Contribution을 통해 SuperGLUE benchmark에 대한 사람의 성능을 뛰어 넘는 DeBERTa 소개

정말 인간을 능가할까?

사람은 새로운 task를 수행하는 데 있어서 task-specific demonstration을 거의 필요로 하지 않으며, 이를 compositional generalization이라 한다.

DeBERTa는 사람과 달리 demonstration을 필요로 하기 때문에 아직 사람을 뛰어넘었다고 볼수 없다.

하지만 DeBERTa가 explicit한 방식으로 이러한 compoistional structure를 취한다면,
인간의 방식을 닮은 symbolic computation과 neural computation의 결합을 가능케 한다
(compositional structure를 취한다면 사람처럼 새로운 task를 배우는 데 demonstration이 거의 필요 없음)

profile
열심히 배우는 내가 되자

0개의 댓글