일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- PYTHON
- 킥스타트
- 동적 프로그래밍
- 동적프로그래밍
- 브루트포스
- 프로그래밍
- 프로그래머스
- 구글 킥스타트
- dp
- BFS
- 코딩테스트
- 알고리즘
- CSS
- linux
- google coding competition
- 딥러닝
- DFS
- 운영체제
- kick start
- 네트워크
- 코딩
- 그래프
- 순열
- AI
- 리눅스
- 파이썬
- 백준
- nlp
- OS
- 코딩 테스트
- Today
- Total
오뚝이개발자
RealFormer : Transformer Likes Residual Attention 논문 리뷰 본문
RealFormer : Transformer Likes Residual Attention 논문 리뷰
땅어 2021. 9. 12. 14:38
오늘 리뷰할 논문은 구글 리서치팀에서 발표한 "RealFormer : Transformer Likes Residual Attention"(링크)이다. 해당 논문은 Transformer와 Attention의 후속 연구 같은 느낌이니 두 개념에 대해 먼저 알고 본 포스팅을 보는 것을 추천한다.
무슨 논문이지?
쉽게 말해, RealFormer는 기존의 Transformer의 성능을 향상시키는 방법에 대한 논문이다. 그런데 기존 Transformer의 2개의 canonical한 구조 Pre-LN, Post-LN에서 약간의 구조적인 변화를 주어 이러한 성능 향상을 이끌어 내는 것이다. 정확히는 Resnet의 개념을 Transformer에 접목하여서 말이다. 이에 대해선 뒤에서 더 자세히 설명하겠다. 그렇게 만들어 낸 RealFormer를 기존의 Transformer 모델들과 비교하기 위해 다양한 Task들을 대상으로 성능 평가를 진행하였다.
제목에서 알 수 있듯이 RealFormer를 이해하기 위해선 Transformer + Resnet의 개념이 필요하다. 따라서 이 두 가지 배경지식에 대해 간략히 설명하고자 한다.
Background1 - Transformer
원 논문의 제목은 "Attention is all you need(NIPS, 2017)"이다. Transformer는 현대 NLP model의 Backbone 역할을 하고 있는 중요한 개념이다. 여기엔 크게 2개의 canonical한 구조가 있다.(Two baseline) 이 두 개의 구조는 LN(Layer Normalization)을 어느 위치에서 수행하느냐에 따라 구분된다.
Post-LN
Post-LN의 경우 그림에서 보는 것과 같이 Multi-Head Attention과 Feed Forward layer를 지나고 LN을 수행하기 때문에 Post라는 이름이 붙은 것이다. Post-processing을 한다고 생각하면 된다.
Pre-LN
반대로 Pre-LN의 경우 Multi-Head Attention과 Feed Forward layer를 지나기 이전에 LN을 수행해준다. Pre-processing을 해준다고 생각하면 된다. Post-LN과 다른 또 한가지는 바로 Token Embedding 정보를 Layer 전체에 propagate하기 위한 direct path가 하나 더 있다는 점이다.
Background2 - Resnet
원 논문의 제목은 "Deep Residual Learning for Image Recognition(CVPR, 2016)(링크)"이다. 해당 논문에선 residual block과 shortcut의 개념을 제안하였다. 이 연구는 "층을 깊게 쌓으면 항상 더 좋은 성능을 보일까?"와 같은 의문에서 시작되었다. 아래 그래프를 보면 x축이 학습 iteration 수, y축이 error를 나타낸다. 그런데 56개의 층을 사용한 모델이 20개의 층을 사용한 모델보다 training error, test error에서 모두 더 높은 error를 보이는 것을 알 수 있다. 이는 바로 vanishing gradient 때문이다.
vanishing gradient란 역전파 과정에서 weight parameter를 갱신하면서 미분을 반복하게 되는데 층이 깊어질수록 이 값이 점점 작아져 나중엔 0에 가깝게 되는 현상이다. 이렇게 되어버리면 사실상 parameter가 거의 갱신되지 않은 채로 학습이 종료될 수 있다.
이를 해결해보고자 제안한 것이 바로 Residual block이다. 아래 그림에서와 같이 보통의 network는 input x가 weight layer->activation function의 과정을 반복적으로 거쳐 H(x)라는 output을 내게 된다. 그런데 resnet에선 input x를 가공하지 않고 그대로 더해주는 shortcut path가 추가되어있다. 결국 H(x) = F(x) + x라는 output을 얻게 되고 이를 최소화 하는 과정에서 x는 고정되어 있으니 F(x)만을 최소화 하게 된다. F(x) = H(x) - x로 다시 쓸 수 있고, 이 때 F(x)가 H(x)에서 x를 빼주고 남은 값이라하여 잔차(residual)란 이름이 붙은 것이다.
Concept of RealFormer
RealFormer는 위 사진과 같은 구조를 갖고 있다. 기본적으로는 Post-LN과 유사하지만 우측에 direct path를 추가하여 이전 layer에서 온 raw attention score(=pre-softmax attention score)를 propagate 해준다. 바로 이 부분이 Resnet에서 shortcut과 비슷해 Residual Attention이란 이름이 붙었다.
이전 layer에서 raw attention score를 받아 처리하니 기존의 multihead attention에선 Q(query), K(key), V(value)만 받던 것에 Prev라는 term이 추가되었다. 바로 이 Prev가 raw attention score이다.
RealFormer의 contribution
그래서 RealFormer를 쓰면 도대체 무엇이 좋다는 말인가?
- RealFormer는 기존 Transformer에서 slight change만을 요구하므로 손쉽게 기존의 Transformer를 대체 할 수 있다.
- 기존의 Post-LN과 Pre-LN을 MLM(Masked Language Modeling)에서 outperform한다.
- GLUE나 SQuAD 같은 data set을 대상으로 하는 downstream task에서 accuracy를 개선할 수 있다. (심지어 더 적은 pre-train epoch 수로도 말이다.)
- Regularization effect를 부여한다. -> 망에 범용성 부여해 overfitting 억제, fast learning speed
Experiment 1 : Pre-trained model test
실험에선 BERT model을 기반으로 하여 다야한 model size(small~extra large)를 대상으로 실험을 진행하였다. accuracy 비교를 위해선 MLM(Masked Language Modeling)이 사용되었다. 참고로 MLM이란 input으로 주어진 text에서 특정 단어들을 mask시키고 문맥 정보를 바탕으로 이들을 유추해내는 것이다. 실험 결과 RealFormer는 기존의 두 baseline을 모두 outperform하는 것으로 나타났다. 그리고 이 gap은 모델의 사이즈가 커질수록 더 커졌다.
Experiment 2 : Downstream task
실험에선 downstream task를 가지고 성능평가를 하였다. 여기서 downstream task란 pre-train시킨 model을 가지고 추가적인 학습을 시켜 fine-tuning할 때 사용하는 task를 말한다. 예컨대, 기존의 pre-trained된 BERT를 사용해 감정 분석을 하는 모델을 만들고자 한다면, 긍정/부정 label이 달린 text data를 추가로 학습시켜야 한다. 이 때 긍정/부정 label이 달린 data를 대상으로 판별하는 작업이 바로 downstream task이다.
크게 2가지 level에서 평가를 하였다. GLUE data set을 사용해서 Sentence-level의 평가를, SQuAD data set을 사용해 Token-leve의 평가를 하였다. GLUE는 General Language Understanding Evaluation의 약자로 NLU task의 benchmark로 주로 사용된다. RealFormer는 2개의 baseline과 비교했을 때 평균 성능(Overall)에서 모두 outperform하는 결과를 보여준다. 개개의 task 별로 비교했을 때는 1~2개의 case만 제외하고는 모두 outperform한다.
SQuAD는 Stanford Question Answering Dataset의 약자로, crowd working을 통해 question-answer의 pair로 구성한 dataset이다. RealFormer는 SQuAD를 사용한 token-level에서의 성능평가 실험에서 2개의 baseline을 모두 outperform하는 결과를 냈다.
Research Question 1 : RealFormer는 half pre-training budge으로도 좋은 성능을 낼까?
연구진들은 위의 2개의 실험 이외에도 이런저런 궁금증들을 해소하기 위해 여러가지 부가적인 실험을 진행하였다. 첫 번째 의문은 바로 제한된 pre-training budge으로도, 정확히는 절반의 epoch 수로 pre-train을 시킨 경우에도 기존의 두 baseline보다 좋은 성능을 낼 수 있을까?에 대한 것이다. 실험 결과 500K의 epoch으로 학습시킨 RealFormer는 GLUE dataset에서 1M의 epoch으로 학습시킨 Post-LN을 이겼다. 또한 SQuAD dataset에서는 거의 match하는 성능을 보였다.
Research Question 2 : Residual attention의 regularization 효과는 dropout의 그것을 능가하는가?
초반에 RealFormer가 regularization 효과를 부여한다고 언급했다. regularization은 신경망 학습에서 굉장히 중요한 요소이다. 망에 범용성을 부여하고 overfitting을 방지하는 등 성능을 한층 더 높여주는 좋은 기법이기 때문이다. 그런데 연구진들이 궁금해했던 부분은 residual attention으로 얻을 수 있는 regularization 효과가 dropout의 그것과 다른 측면에서의 효과를 내는가?이다.
위의 table에서 보면 기존의 두 baseline과 RealFormer를 가지고 dropout rate를 바꿔가며 성능을 측정해 비교하였다. 그런데 동일한 dropout rate에서 비교해보면 항상 RealFormer가 outperform하는 것을 알 수 있다. 다시 말해, 단순히 dropout rate를 증가시키는 것만으로는 residual attention이 줄 수 있는 regularization 효과를 누릴 수 없다는 것이다.
Research Question 3 : L번째 layer의 attention head들의 값은 L-1번째 layer의 그것들과 얼마나 유사한가?
아마 층을 거치며 value들의 distribution이 어떻게 변화하는지를 알아보기 위해 본 실험을 진행한 것 같다. 실험에선 vertically adjacent한 attention head들 간의 attention probability의 JSD (Jensen-Shannon Divergence) value를 사용하였다. 통계학에서 JSD value는 서로 다른 두 확률 분포 간의 similarity를 비교하도록 해준다.
이를 확률 분포로 나타냈는데 실험에선 8192개의 held-out development set의 token 정보를 바탕으로 학습을 진행하였다고 한다. 계산한 JSD value를 알아보기 쉽게 coloring을 하였는데 쉽게 생각해서 colder color쪽으로 갈수록 similar attention value를 갖는다고 생각하면 된다.(정확히는 red:median>0.75, yellow:0.25<median<=0.75, blue:median<0.25) 아래 figure를 보면 RealFormer가 lower JSD value를 갖는 경향이 있다. 이것이 바로 RealFormer가 약간의 regularization effect를 준다는 것을 보여주며 그래서 다른 두 개의 baseline 모델을 성능면에서 outperform할 수 있었던 것 같다고 논문에선 말하고 있다.
논문에서 자세한 설명은 없었지만 나의 생각으로 보았을 때, 두 layer간의 value 차이가 크지않다는 것은 그만큼 value들의 분포가 유사하다는 것이고 이것은 층을 지나면서 전과 다르게 한 쪽으로 치우친 결과가 나오지 않는다는 것이다. 따라서, 어느 정도 균일한 분포를 유지해주며 층을 지나는 과정이 regularization의 효과를 주는 듯하다.
결론
- 본 논문은 기존의 Transformer 구조에 residual attention이라는 아이디어를 접목시켜 RealFormer라는 새로운 구조를 제안하였다.
- 이는 BERT에서 사용되는 Transformer를 대체할 수 있다.
- RealFormer는 pre-training과 downstream task에서 기존의 두 baseline 모델을 능가한다.
- RealFormer는 regularization effect를 망에 부여한다.
'AI > Deep Learning Paper Review' 카테고리의 다른 글
Towards a Human-like Open-Domain Chatbot(Meena) 리뷰 (0) | 2021.11.04 |
---|---|
ELECTRA(ICLR 2020) 논문 리뷰 (1) | 2021.10.27 |
BERT(NAACL-HLT 2019) 논문 리뷰 (0) | 2021.10.08 |
Attention is all you need(NIPS 2017) 논문 리뷰 (0) | 2021.09.17 |
NLG(Natural Language Generation)에 대하여 (0) | 2021.09.12 |