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.
position과 content 간의 관계를 완전히 모델링함으로써 NLU & NLG task의 성능 개선을 이루어냈다
Relative position embedding을 전 계층에 공유함으로써 space complexity 개선
기존 PLM에 비해 적은 사전학습 데이터로 학습하였고 모델 크기도 작지만 SOTA를 달성하였다
GLUE benchmark 및 SuperGLUE benchmark에서도 Human baseline을 뛰어넘는 SOTA 달성
트랜스포머에 기반한 Pretrained Language Model(PLM)이 많은 NLP task에서 SOTA를 달성하고 있다.
본 논문에서는 Disentangled Attention mechanism과 Enhanced 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도 함께 제안하였다.
기존의 Transformer는 입력 sentence가 matrix로 들어가기 때문에, 순차 정보를 포함하지 않는다.
따라서 Positional Embedding을 통해 위치 정보를 포함시키는데,
이러한 위치 정보는 다음 두 가지로 구분될 수 있다.
Shaw et al. (2018)의 연구에 따르면 Relative position 정보가 NLU/NLG task에 더 효과적이라고 밝혀졌다.
Transformer에 기반한 PLM은 대부분 MLM task로 사전학습을 수행한다.
전체 시퀀스의 15%를 마스킹한 가 주어졌을 때, 이를 복원한 를 예측하도록 학습한다
where 는 masking 된 단어의 index 리스트
: i번쩨 token에 대한 content vector
: i번째 token에서 j번째 token에 대한 relative position vector
content와 position에 대한 벡터를 분리했을 때 Cross attention score 계산은 아래와 같이 4개의 컴포넌트에 대한 덧셈으로 분리될 수 있다.
각각을 content-to-content, content-to-position, position-to-content, position-to-position 로 나타낼 수 있다
💡 Content-to-Position과 Position-to-Content의 차이는 무엇인가Content-to-Position
아래는 i번째 Position에 해당하는 content가 Query로 주어졌을 때, Attention score를 구하는 과정의 예시를 작성한 것이다.
i가 주어졌을 때 각 j position에 대해 Relative position은 아래와 같다
Position-to-Content
i번째 Position이 Query로 주어졌을 때, Attention score를 구하는 과정의 예시를 작성한 것이다.
i가 주어졌을 때 각 j position에 대해 Relative position은 아래와 같다
🧚♀️ 개념 해석 🧚♀️
개념적으로 이해한 내용은 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 정보를 매핑하기 위해 함수를 사용했는데,
개의 시퀀스에 대해 모든 상대적 위치 정보를 저장하지 않고 상한선을 두어 거리까지만 저장한다
위와 같이 함수를 통해 모든 relative position을 0~로 매핑했기 때문에 을 재사용할 수 있으며,
N개의 token에 대한 relative position embedding을 새로 할당하지 않아도 되기 때문에 space complexity가 에서 로 감소하였다.
Attention score 연산이 끝나면 scaling 수행
→ large scale의 PLM을 안정적으로 학습시킬 수 있다
제 해석으로 맞지 않을 수 있습니다
이 논문에서 말하는 Relative position은 어떤 position에서 content를 참조하기 위한 상대적 거리(방향 + 거리)를 나타낸다고 생각했다
아래는 C2P와 P2C의 Relative position을 구하는 예시이다
Content-to-Position 예시
where
번째 position의 Query content로 주어졌을 때, 번째 position에서 content를 참조하기 위한 Relative position은 로 표현된다
Position-to-Content 예시
where
번째 position이 Query position으로 주어졌을 때, 번째 position에서 번째 position에 있는 content를 참조하기 위한 Relative position은 가 아닌 가 되어야 한다.
아래는 Disentangled Self Attention의 연산 과정을 그림으로 그린 것이다
Disentangled Attention을 사용한 DeBERTa의 인코더 계층은 아래와 같다
위의 Disentangled Attention mechanism은 absolute position을 고려하지 않는다.
하지만 절대 위치 정보는 문법적 측면에서 필요한 요소이기 때문에, EMD (Enhanced Mask Decoder)에서 Absolute position embedding을 취합한다.
Absolute position의 영향
아래 store와 mall의 주변 단어를 보면 똑같이 new라는 단어가 있어, local context (relative position과 content)로는 둘을 구분하기 힘들다.
둘이 서로 다른 객체를 가리킨다는 것은 문법적 뉘앙스를 통해 알 수 있는데,
이러한 문법적 뉘앙스는 문장 내 단어들의 absolute position 정보에 의존한다
EMD
BERT는 각 계층에 self-attention을 수행했는데,
deBERTa의 EMD는 와 를 입력으로 받아 를 query로 를 key와 value로 사용하며 cross attention을 수행한다
EMD의 첫번째 계층은 Absolute position embedding을 로 사용하고, 그 다음 계층은 이전 계층의 output을 로 사용한다. 는 DeBERTa의 Encoder의 마지막 전 계층의 Hidden state이다. EMD의 두 계층은 인코더의 마지막 계층을 사용하며, 서로 간 파라미터를 공유한다
는 Relative position embedding으로 모든 계층에서 공유된다
EMD Layer에서의 Attention은?
개인적으로 EMD에 대한 설명이 조금 부족했다고 생각했다.
개념적으로 무엇을 위해 존재하는지 어떤 역할을 하는지 이해할 수는 있었으나, 구조도를 그리거나 구현해보려고 한다면 논문만으로는 정보가 부족하다😥위의 구조도는 배포한 코드를 참고하여 그린 것이다
를 로 사용했으며, 를 로 사용한 Disentangled Cross Attention을 적용하였다EMD에서의 Attention
사실 Relative position embedding ()이 입력으로 전달된다기 보단, 전체 계층에서 공유하고 있기 때문에 각 계층 내에서 호출하여 사용한다고 보면 될 것 같다
부족한 실력으로 그림을 그리니 헷갈리게 하는 부분이 있는 것 같다.. 😭 😭
이 섹션에서는 안정적으로 finetuning 하기 위한 새로운 알고리즘 SiFT (Scale-invariant-Fine-Tuning) 를 제안한다.
Adversarial Training이란, 입력에 perturbation을 추가하여 데이터에 적대적 방향(adversarial direction)을 정의하여 학습하며 perturbation에 대한 robustness를 개선하는 학습이다.
Virtual Adversarial Training는 label이 없는 데이터에 대해서도
가상의 adversarial direction을 정의하여 학습한 것이다.
NLP에서는 perturbation을 word embedding에 추가하는데, 이 임베딩 값은 단어 및 모델마다 그 범위가 매우 다양하다.
문제는 모델의 크기가 커질수록 임베딩 값의 variance가 커지기 때문에 학습 불안정으로 이어질 수 있다
그냥 word embedding에 perturbation을 추가하는 것이 아니라, normalized word embedding에 perturbation을 추가하는 알고리즘이다
모델의 크기가 클수록 성능 개선을 뚜렷하게 확인할 수 있다.
NLU 및 NLG task에 대하여 기존 PLM들과 DeBERTa 모델의 성능 비교 실험 진행
→ SOTA 달성
: 9개의 GLUE benchmark 및 QA, Token Classification task
(1) 모델의 성능
사전 학습 정보GLUE benchmark
GLUE benchmark의 테스크 중에서 9개의 테스크에 대하여 성능 측정
여기서 XLNet과 RoBERTa, ELECTRA는 160G 데이터로 학습을 진행했으며,
DeBERTa는 이의 절반 가량의 데이터로 학습했지만 그럼에도 불구하고 DeBERTa가 가장 높은 성능을 보인다
비슷한 크기의 모델 중에서 DeBERTa가 가장 높은 성능을 보였다.
그보다 더 큰 모델인 과 비교했을 때도 4개의 task 중 3개에서 더 우세한 성능을 보였다
(은 보다 3배 더 크다)
(2) 모델의 성능
사전 학습 정보사전 학습 데이터 : 위와 동일
실험 환경
4개의 NVIDIA DGX-2 머신 사용 (총 64개의 v100 GPU)
Batch size: 2048
Num of steps: 1 million
사전 학습에 소요된 시간: 10일
(3) 모델 크기에 따른 GLUE 비교
모델 크기가 클수록 GLUE 성능이 좋아지며, SiFT 역시 성능을 향상시키는 데 도움이 됨
DeBERTa는 현재 5위에 랭크되어 있으며, Human baseline은 19위에 랭크되어 있음
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이다.
각 Contribution의 효과를 파악하기 위해 ablation study 진행
사전 학습 정보는 본 실험 환경에 RoBERTa를 다시 사전학습 시킨 모델이다
큰 모델을 만들기 위해서 수정한 것
SuperGLUE benchmark
: 여러 사전학습 모델의 체크 포인트와 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을 넘어섰다.
DeBERTa는 현재 5위에 랭크되어 있으며, Human baseline은 6위에 랭크되어 있음
Attention Pattern
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
RoBERTa는 vertical strip이 선명한 데 비하여, DeBERTa는 첫번째 토큰을 제외하면 vertical strip이 드러나지 않음
vertical strip은 자주 등장하는 단어에 의해 나타나는 효과로, DeBERTa는 [CLS] 토큰에 의해서만 나타남
저자들은 [CLS]가 종종 입력 시퀀스의 문맥적 표현을 나타내는 데 사용되기 때문에 첫번째 vertical strip은 필요하다고 주장
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이 거의 필요 없음)